PageSourceSearch

https://medibiotix.de/cdn/shop/t/8/assets/product-set-selector.js?v=133634163572166377211789462131

js medibiotix.de collected 2026-10-09 23:27:29 UTC 5,514 bytes, 2 lines download raw bytes

1customElements.get("product-set-selector")||customElements.define("product-set-selector",class extends HTMLElement{connectedCallback(){this.productInfo=this.closest("product-info"),this.form=document.getElementById(this.dataset.formId),this.variantInput=this.form?.querySelector('[name="id"]'),this.priceContainer=this.productInfo?.querySelector(`#Price-${this.dataset.sectionId}`),this.purchaseOptions=this.productInfo?.querySelector("purchase-options"),this.dynamicCheckout=this.form?.querySelector(".f-product-form__button-dynamic"),this.pickupAvailability=this.productInfo?.querySelector("pickup-availability"),this.cards=Array.from(this.querySelectorAll("[data-set-card]")),this.priceSnapshot=this.priceContainer?.innerHTML||"",this.dynamicCheckoutWasHidden=this.dynamicCheckout?.hidden||!1,this.pickupWasHidden=this.pickupAvailability?.hidden||!1,this.originalVariantId=this.variantInput?.value||"",this.stickyBar=document.querySelector(`sticky-atc-bar[data-product-id="${this.dataset.productId}"]`),this.stickySelect=this.stickyBar?.querySelector('[name="id"]'),this.stickyPrice=this.stickyBar?.querySelector(".f-price"),this.stickyOptionsSnapshot=this.stickySelect?.innerHTML||"",this.stickyPriceSnapshot=this.stickyPrice?.innerHTML||"",this.stickyPriceClassSnapshot=this.stickyPrice?.className||"",!(!this.form||!this.variantInput)&&(this.addEventListener("change",this.onChange.bind(this)),this.syncSelection())}onChange(event){event.target.matches("[data-set-option]")&&this.syncSelection()}syncSelection(){const card=this.querySelector("[data-set-option]:checked")?.closest("[data-set-card]");if(!card)return;const isSet=card.dataset.isSet==="true",available=card.dataset.available==="true";this.cards.forEach(item=>{item.classList.toggle("is-selected",item===card)}),this.variantInput.value=card.dataset.variantId,this.updateQuantityVariant(card.dataset.variantId),this.updateButton(this.form,available),this.updatePurchaseOptions(isSet),this.updatePrice(card,isSet),this.updateDynamicCheckout(isSet),this.updatePickupAvailability(isSet),this.updateStickyBar(card,isSet,available)}updateQuantityVariant(variantId){const quantityInput=this.productInfo?.querySelector("[data-quantity-variant-id]");quantityInput&&(quantityInput.dataset.quantityVariantId=variantId)}updateButton(form,available){const button=form?.querySelector('[name="add"]'),text=button?.querySelector("span");button&&(button.disabled=!available,button.toggleAttribute("aria-disabled",!available),text&&(text.textContent=available?this.dataset.addToCartText:this.dataset.soldOutText))}updatePurchaseOptions(isSet){if(this.purchaseOptions){if(isSet){const oneTime=this.purchaseOptions.querySelector('input[value="one-time"]');oneTime&&(oneTime.checked=!0),this.purchaseOptions.syncSelection?.()}this.purchaseOptions.hidden=isSet}}updatePrice(card,isSet){if(!this.priceContainer)return;if(!isSet){this.priceContainer.innerHTML=this.priceSnapshot;return}const price=this.priceContainer.querySelector(".f-price"),regularPrice=this.priceContainer.querySelector(".f-price__regular .f-price-item--regular"),salePrice=this.priceContainer.querySelector(".f-price-item--sale"),comparePrice=this.priceContainer.querySelector(".f-price__sale .f-price-item--regular"),dailyPrice=this.priceContainer.querySelector(".f-price__per-day"),unitPrice=this.priceContainer.querySelector(".f-price__unit-wrapper"),onSale=Number(card.dataset.comparePrice)>Number(card.dataset.price);price?.classList.toggle("f-price--on-sale",onSale),price?.classList.toggle("f-price--sold-out",card.dataset.available!=="true"),regularPrice&&(regularPrice.textContent=card.dataset.priceMoney),salePrice&&(salePrice.textContent=card.dataset.priceMoney),comparePrice&&(comparePrice.textContent=card.dataset.comparePriceMoney),dailyPrice&&(dailyPrice.textContent=card.dataset.dailyPriceLabel),unitPrice&&(unitPrice.hidden=!0)}updateDynamicCheckout(isSet){this.dynamicCheckout&&(this.dynamicCheckout.hidden=isSet?!0:this.dynamicCheckoutWasHidden
1)}updatePickupAvailability(isSet){this.pickupAvailability&&(this.pickupAvailability.hidden=isSet?!0:this.pickupWasHidden)}updateStickyBar(card,isSet,available){if(!this.stickyBar||!this.stickySelect)return;isSet?(this.stickySelect.innerHTML="",this.stickySelect.add(new Option(card.dataset.productTitle,card.dataset.variantId,!0,!0)),this.updateStickyPrice(card)):(this.stickySelect.innerHTML=this.stickyOptionsSnapshot,this.stickySelect.value=this.originalVariantId,this.stickyPrice&&(this.stickyPrice.innerHTML=this.stickyPriceSnapshot,this.stickyPrice.className=this.stickyPriceClassSnapshot));const stickyForm=this.stickySelect.closest("form");this.updateButton(stickyForm,available);const stickyQuantity=stickyForm?.querySelector("[data-quantity-variant-id]");stickyQuantity&&(stickyQuantity.dataset.quantityVariantId=card.dataset.variantId)}updateStickyPrice(card){if(!this.stickyPrice)return;const salePrice=this.stickyPrice.querySelector(".f-price-item--sale"),regularPrices=this.stickyPrice.querySelectorAll(".f-price-item--regular"),onSale=Number(card.dataset.comparePrice)>Number(card.dataset.price);this.stickyPrice.classList.toggle("f-price--on-sale",onSale),this.stickyPrice.classList.toggle("f-price--sold-out",card.dataset.available!=="true"),salePrice&&(salePrice.textContent=card.dataset.priceMoney),regularPrices.forEach(item=>{item.textContent=onSale?card.dataset.comparePriceMoney:card.dataset.priceMoney})}});
2//# sourceMappingURL=/cdn/shop/t/8/assets/product-set-selector.js.map?v=133634163572166377211789462131

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.