1"use strict";(self.webpackChunklautsprecher_teufel=self.webpackChunklautsprecher_teufel||[]).push([[7294],{45577:(t,e,r)=>{r.r(e),r.d(e,{default:()=>u});var a=r(10467),s=r(57142),i=r(24681),c=r(90788),o=r(21048),n=r(87239),d=r(54836),g=r(94781);class u extends s.A{constructor(){super(),this.activeAttribute="data-"+this.name+"-category-active"}readyCallback(){}connectedCallback(){var t=this;return(0,a.A)(function*(){t.dataStore=yield n.A.getInstance(t.referenceProductSku,t.endpoint),t.dataStore.isReferenceProductIncluded=!t.omitReferenceProduct,t.dispatchUpdateEvent(),t.activateCategory(t.activeCategory||t.firstCategory),t.toggleCategory(t.activeCategory||t.firstCategory,!0),t.updateCategoryTriggers(),t.observeInteractions()})()}attributeChangedCallback(t,e,r){this.toggleCategory(e,!1),this.toggleCategory(r,!0)}toggleCategory(t,e){Array.from(this.querySelectorAll("[data-"+this.name+'-category-key="'+t+'"]')).forEach(t=>{e?t.setAttribute(this.activeAttribute,""):t.removeAttribute(this.activeAttribute)})}observeInteractions(){this.categoryTriggers.forEach(t=>t.addEventListener("click",this.onCategoryTriggerClick.bind(this))),this.addEventListener(g.w5,this.onAccessoryToggleIntention.bind(this)),this.addEventListener(g.v0,this.addToCart.bind(this)),this.addEventListener(g.wd,this.updateCategoryTriggers.bind(this)),this.backLink.addEventListener("click",this.close)}onCategoryTriggerClick(t){var{currentTarget:e}=t,r=e.getAttribute("data-"+this.name+"-category-key"),a=r!==this.activeCategory?r:"";this.activateCategory(a)}activateCategory(t){window.matchMedia("(min-width: "+d.fi.xxlMin+"px)").matches&&""===t||this.setAttribute("data-"+this.name+"-active-category",t)}onAccessoryToggleIntention(t){var{detail:e}=t;this.toggleAccessory(e)}toggleAccessory(t){var{selectedAccessories:e}=this;this.selectedAccessories=e.includes(t)?e.filter(e=>e!==t):[...e,t],this.dispatchUpdateEvent()}dispatchUpdateEvent(){this.dispatchEvent(new CustomEvent(g.wd,{bubbles:!0,detail:[...this.selectedAccessories]}))}addToCart(){var t=this;return(0,a.A)(function*(){var e=[...t.selectedAccessories];t.dataStore.isReferenceProductIncluded&&e.unshift(t.referenceProductSku);var r=e.reduce((t,e)=>Object.assign(t,{[e]:1}),{});t.close(),(0,i.A)({top:0}),yield(0,c.b)({context:g.vU,token:t.addToCartToken,tokenName:t.addToCartTokenName,route:t.addToCartRoute,productsWithQuantity:r}),t.selectedAccessories=[]})()}close(){(0,o.tu)()}updateCategoryTriggers(){this.categoryTriggers.forEach(this.updateCategoryTrigger.bind(this))}updateCategoryTrigger(t){var e=JSON.parse(t.getAttribute("data-"+this.name+"-contained-accessories")),r=this.selectedAccessories,a=e.filter(t=>r.includes(t));this.toggleCategoryTrigger(t,a.length)}toggleCategoryTrigger(t,e){t.setAttribute("data-"+this.name+"-selected-accessories-count",e.toString())}get selectedAccessories(){return this.dataStore.getSelectedSkus()}set selectedAccessories(t){this.dataStore.setSelectedSkus(t)}get activeCategory(){return this.getAttribute("data-"+this.name+"-active-category")}get firstCategory(){var t,e="data-"+this.name+"-category-key";return null==(t=this.querySelector("["+e+"]"))?void 0:t.getAttribute(e)}get referenceProductSku(){return this.getAttribute("data-"+this.name+"-reference-product-sku")}get endpoint(){return this.getAttribute("data-"+this.name+"-endpoint")}get omitReferenceProduct(){return this.hasAttribute("data-"+this.name+"-omit-reference-product")}get categoryTriggers(){return Array.from(this.querySelectorAll("[data-"+this.name+"-category-trigger]"))}get backLink(){return this.querySelector("[data-"+this.name+"-back]")}get addToCartRoute(){return this.getAttribute("data-"+this.name+"-add-to-cart-route")}get addToCartTokenName(){return this.getAttribute("data-"+this.name+"-add-to-cart-token-name")}get addToCartToken(){return this.getAttribute("data-"+this.name+"-add-to-cart-token")}static get observedAttributes(){return["data-accessory-bundler-active-category"]}}},87239:(t,e,r)=>{r.d(e,{A:()=>c});var a=r(10467),s="accessory-bundler-selection",i={};class c{constructor(t,e){var{html:r,categorizedProducts:a,product:s}=e;this.isReferenceProductIncluded=!0,this.html=r,this.referenceProductSku=t,this.referenceProductData=s,this.categoriesDataMap=a,this.deselectUnavailableProducts()}static getInstance(t,e){return(0,a.A)(function*(){var r=i[e];if(r)return r;e||console.error("unknown endpoint");var a=yield fetch(e),s=yield a.json();return i[e]=new c(t,s)})()}deselectUnavailableProducts(){var t=this.getSelectedSkus(),e=this.getProductsData(),r=t.filter(t=>!!e[t]);r.length!==t.length&&this.setSelectedSkus(r)}getHTML(){return this.html}getReferenceProductData(){return this.referenceProductData}getCategoriesDataMap(){return this.categoriesDataMap}getSelectedSkus(){return this.localStorageData[this.referenceProductSku]||[]}setSelectedSkus(t){var e=this.localStorageData;e[this.referenceProductSku]=t,this.localStorageData=e}getProductsData(){return this.getFlatProductsData().reduce((t,e)=>(t[e.sku]=e,t),{})}getFlatProductsData(){var t=this.getCategoriesDataMap();return Object.values(t).map(t=>t.products).reduce((t,e)=>[...t,...e],[])}get localStorageData(){var t=window.localStorage.getItem(s);if(!t)return{};try{return JSON.parse(t)}catch(t){return{}}}set localStorageData(t){window.localStorage.setItem(s,JSON.stringify(t))}}}}]);
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.