1"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[80530],{266:(e,t,n)=>{n.d(t,{Z:()=>r});class r{static iterate(e,t){if(e instanceof Map||Array.isArray(e))return e.forEach(t);if(e instanceof FormData){for(var n of e.entries())t(n[1],n[0]);return}if(e instanceof NodeList)return e.forEach(t);if(e instanceof HTMLCollection)return Array.from(e).forEach(t);if(e instanceof Object)return Object.keys(e).forEach(n=>{t(e[n],n)});throw Error("The element type ".concat(typeof e," is not iterable!"))}}},107:(e,t,n)=>{n.d(t,{Z:()=>r});class r{get(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"application/json",r=this._createPreparedRequest("GET",e,n);return this._sendRequest(r,null,t)}post(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"application/json";r=this._getContentType(t,r);let s=this._createPreparedRequest("POST",e,r);return this._sendRequest(s,t,n)}delete(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"application/json";r=this._getContentType(t,r);let s=this._createPreparedRequest("DELETE",e,r);return this._sendRequest(s,t,n)}patch(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"application/json";r=this._getContentType(t,r);let s=this._createPreparedRequest("PATCH",e,r);return this._sendRequest(s,t,n)}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 ".concat(e.responseURL," was aborted"))}),e.addEventListener("error",()=>{console.warn("the request to ".concat(e.responseURL," failed with status ").concat(e.status))}),e.addEventListener("timeout",()=>{console.warn("the request to ".concat(e.responseURL," timed out"))})):e.addEventListener("loadend",()=>{t(e.responseText,e)}))}_sendRequest(e,t,n){return this._registerOnLoaded(e,n),e.send(t),e}_getContentType(e,t){return e instanceof FormData&&(t=!1),t}_createPreparedRequest(e,t,n){return this._request=new XMLHttpRequest,this._request.open(e,t),this._request.setRequestHeader("X-Requested-With","XMLHttpRequest"),n&&this._request.setRequestHeader("Content-type",n),this._request}constructor(){this._request=null,this._errorHandlingInternal=!1}}},327:(e,t,n)=>{n.d(t,{Z:()=>i});var r=n(363);let s="element-loader-backdrop";class i extends r.Z{static create(e){e.classList.add("has-element-loader"),i.exists(e)||(i.appendLoader(e),setTimeout(()=>{let t=e.querySelector(".".concat(s));t&&t.classList.add("element-loader-backdrop-open")},1))}static remove(e){e.classList.remove("has-element-loader");let t=e.querySelector(".".concat(s));t&&t.remove()}static exists(e){return e.querySelectorAll(".".concat(s)).length>0}static getTemplate(){return'\n <div class="'.concat(s,'">\n <div class="loader" role="status">\n <span class="').concat("visually-hidden",'">Loading...</span>\n </div>\n </div>\n ')}static appendLoader(e){e.insertAdjacentHTML("beforeend",i.getTemplate())}}},363:(e,t,n)=>{n.d(t,{Z:()=>o});var r=n(266);let s="loader",i={BEFORE:"before",INNER:"inner"};class o{create(){if(!this.exists()){if(this.position===i.INNER){this.parent.innerHTML=o.getTemplate();return}this.parent.insertAdjacentHTML(this._getPosition(),o.getTemplate())}}remove(){let e=this.parent.querySelectorAll(".".concat(s));r.Z.iterate(e,e=>e.remove())}exists(){return this.parent.querySelectorAll(".".concat(s)).length>0}_getPosition(){return this.position===i.BEFORE?"afterbegin":"beforeend"}static getTemplate(){return'<div class="'.concat(s,'" role="status">\n <span class="').concat("visually-hidden",'">Loading...</span>\n </div>')}static SELECTOR_CLASS(){return s}constructor(e,t=i.BEFORE){this.parent=e instanceof Element?e:document.body.querySelector(e),this.position=t}}},530:(e,t,n)=>{n.r(t),n.d(t,{default:()=>o});var r=n(107),s=n(665),i=n(327);class o extends window.PluginBaseClass{init(){if(!this.options.active)return;this.options.url=this.el.getAttribute(this.options.urlAttribute),this._client=new r.Z;let e=new s.Z,t=this;e.observeElement(this.el,function(){t._loadSlider()})}_loadSlider(){i.Z.create(this.el),this._client.get(this.options.url,e=>{try{let t=this.el.querySelector(this.options.productDetailCrossSellingSelector);t&&(t.innerHTML=e,window.PluginManager.initializePlugin("ProductSlider","[data-product-slider]"),this.$emitter.publish("elioDataDiscoveryCrossSelling/slidersLoaded",{crossSellingSlider:t}))}catch(e){console.error(e)}finally{i.Z.remove(this.el)}})}}o.options={urlAttribute:"data-e-elio-data-discovery-product-detail-cross-selling-url",url:null,productDetailCrossSellingSelector:".product-detail-cross-selling",active:"1"===window.elioDataDiscovery.global.active}},665:(e,t,n)=>{n.d(t,{Z:()=>r});class r{observeElement(e,t){"IntersectionObserver"in window?this._observeElementIntersectionObserver(e,t):this._observeElementLegacy(e,t)}_observeElementIntersectionObserver(e,t){let n=new IntersectionObserver(function(e,r){e.forEach(function(e){e.isIntersecting&&(t(),n.unobserve(e.target))})});n.observe(e)}_observeElementLegacy(e,t){let n=!1,r=function(){!1===n&&(n=!0,window.setTimeout(function(){e.getBoundingClientRect().top<=window.innerHeight&&e.getBoundingClientRect().bottom>=0&&"none"!==getComputedStyle(e).display&&(t(),document.removeEventListener("scroll",r),window.removeEventListener("resize",r),window.removeEventListener("orientationchange",r)),n=!1},200))};document.addEventListener("scroll",r),window.addEventListener("resize",r),window.addEventListener("orientationchange",r)}}}}]);
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.