1(()=>{"use strict";class e{constructor(){this._request=null,this._errorHandlingInternal=!1}get(e,t){let s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"application/json",i=this._createPreparedRequest("GET",e,s);return this._sendRequest(i,null,t)}post(e,t,s){let i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"application/json";i=this._getContentType(t,i);let r=this._createPreparedRequest("POST",e,i);return this._sendRequest(r,t,s)}delete(e,t,s){let i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"application/json";i=this._getContentType(t,i);let r=this._createPreparedRequest("DELETE",e,i);return this._sendRequest(r,t,s)}patch(e,t,s){let i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"application/json";i=this._getContentType(t,i);let r=this._createPreparedRequest("PATCH",e,i);return this._sendRequest(r,t,s)}abort(){if(this._request)return this._request.abort()}setErrorHandlingInternal(e){this._errorHandlingInternal=e}_registerOnLoaded(e,t){t&&(!0===this._errorHandlingInternal?(e.addEventListener("load",()=>{t(e.responseText,e)}),e.addEventListener("abort",()=>{console.warn(`the request to ${e.responseURL} was aborted`)}),e.addEventListener("error",()=>{console.warn(`the request to ${e.responseURL} failed with status ${e.status}`)}),e.addEventListener("timeout",()=>{console.warn(`the request to ${e.responseURL} timed out`)})):e.addEventListener("loadend",()=>{t(e.responseText,e)}))}_sendRequest(e,t,s){return this._registerOnLoaded(e,s),e.send(t),e}_getContentType(e,t){return e instanceof FormData&&(t=!1),t}_createPreparedRequest(e,t,s){return this._request=new XMLHttpRequest,this._request.open(e,t),this._request.setRequestHeader("X-Requested-With","XMLHttpRequest"),s&&this._request.setRequestHeader("Content-type",s),this._request}}let t="loader",s={BEFORE:"before",INNER:"inner"};class i{constructor(e,t=s.BEFORE){this.parent=e instanceof Element?e:document.body.querySelector(e),this.position=t}create(){if(!this.exists()){if(this.position===s.INNER){this._previousHTML=this.parent.innerHTML,this.parent.innerHTML=i.getTemplate();return}this.parent.insertAdjacentHTML(this._getPosition(),i.getTemplate())}}remove(){if(this.position===s.INNER){this.parent.innerHTML=this._previousHTML;return}this.parent.querySelectorAll(`.${t}`).forEach(e=>e.remove())}exists(){return this.parent.querySelectorAll(`.${t}`).length>0}_getPosition(){return this.position===s.BEFORE?"afterbegin":"beforeend"}static getTemplate(){return`<div class="${t}" role="status"> 2 <span class="visually-hidden">Loading...</span> 3 </div>`}static SELECTOR_CLASS(){return t}}let r="element-loader-backdrop";class n extends i{static create(e){e.classList.add("has-element-loader"),n.exists(e)||(n.appendLoader(e),setTimeout(()=>{let t=e.querySelector(`.${r}`);t&&t.classList.add("element-loader-backdrop-open")},1))}static remove(e){e.classList.remove("has-element-loader");let t=e.querySelector(`.${r}`);t&&t.remove()}static exists(e){return e.querySelectorAll(`.${r}`).length>0}static getTemplate(){return` 4 <div class="${r}"> 5 <div class="loader" role="status"> 6 <span class="visually-hidden">Loading...</span> 7 </div> 8 </div> 9 `}static appendLoader(e){e.insertAdjacentHTML("beforeend",n.getTemplate())}}class o extends window.PluginBaseClass{init(){this._client=new e,this.getNeWPrice()}getNeWPrice(){let e=this;e.options.search=window.location.search,n.create(e.el),e._client.post(e.options.url,JSON.stringify(e.options),function(t,s){200===s.status&&(e.el.outerHTML=t),n.remove(e.el)})}}class a extends window.PluginBaseClass{static #e=this.options={copiedLabel:"â Kopiert!",resetDelay:2e3};init(){this._originalHTML=this.el.innerHTML,this._code=this.el.dataset.wydnPromoCodeCopy,this._code&&this.el.addEventListener("click",this._onCopy.bind(this))}_onCopy(){navigator.clipboard&&navigator.clipboard.writeText?navigator.clipboard.writeText(this._code).then(()=>this._showCopied()).catch(()=>this._fallbackCopy()):this._fallbackCopy()}_showCopied(){this.el.classList.add("wydn-promo-copied"),this.el.innerHTML=`<strong>${this.options.copiedLabel}</strong>`,setTimeout(()=>{this.el.classList.remove("wydn-promo-copied"),this.el.innerHTML=this._originalHTML},this.options.resetDelay)}_fallbackCopy(){let e=document.createElement("input");e.value=this._code,e.style.position="fixed",e.style.opacity="0",document.body.appendChild(e),e.focus(),e.select();try{document.execCommand("copy"),this._showCopied()}catch(e){}finally{document.body.removeChild(e)}}}PluginManager.register("WydnGoogleRepricer",o,"[data-wydn-google-repricer]"),PluginManager.register("WydnPromoCodeCopy",a,"[data-wydn-promo-code-copy]")})();
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.