PageSourceSearch

https://www.laprairie.com/cdn/shop/t/98/assets/section-products-set.js?v=149248636502772904651782478114

js laprairie.com collected 2026-09-24 17:53:23 UTC 3,364 bytes, 2 lines download raw bytes

1if(typeof ProductsSet!="function"){class ProductsSet2 extends HTMLElement{constructor(){super(),this.initSet(),this.checkSet(),this.querySelector("[data-js-add-set-to-cart]").addEventListener("click",e=>{let items=[];if(Object.keys(this.set).map(key=>{this.set[key]!==null&&items.push({id:this.set[key],quantity:1})}),items.length>0){const submitButton=this.querySelector("[data-js-add-set-to-cart]");submitButton.classList.add("working"),window.handleAddToCart(JSON.stringify({items}),items.length,{"Content-Type":"application/json"},()=>{submitButton.classList.remove("working"),this.returnToDefaultSate()})}})}initProducts(){this.querySelectorAll("product-variants").forEach((elm,i)=>{if(!elm.hasAttribute("data-init")){const setid=elm.closest(".product-item").dataset.setIndex=i;!elm.hasAttribute("data-has-variants")&&!elm.hasAttribute("data-unavailable")?this.set[setid]=elm.parentNode.querySelector('input[name="id"]').value:(this.set[setid]=null,elm.dataset.variants=="1"&&elm.querySelector('input[type="radio"]:checked, option:not([data-disabled]):checked')!==null&&(this.set[setid]=elm.parentNode.querySelector('input[name="id"]').value,elm.closest("[data-js-product-item]").classList.add("selected"),elm.closest("[data-js-product-item]").querySelector(".add-to-cart").classList.remove("disabled"),this.checkSet()),elm.addEventListener("VARIANT_CHANGE",e=>{let variant=e.target.currentVariant;variant&&variant.available?(this.set[setid]=elm.parentNode.querySelector('input[name="id"]').value,elm.closest("[data-js-product-item]").classList.add("selected")):this.set[setid]=null,this.checkSet()})),elm.setAttribute("data-init",""),elm.closest(".product-item").addEventListener("reload",e=>{this.initProducts(),this.checkSet()})}})}initSet(){this.set={},this.initProducts()}checkSet(){let setFull=!0;return Object.keys(this.set).map(key=>{this.set[key]===null&&(setFull=!1)}),setFull&&this.classList.contains("products-set--empty")?(this.classList.remove("products-set--empty"),this.querySelector("[data-js-add-set-to-cart-text]").textContent=this.querySelector("[data-js-add-set-to-cart-text]").dataset.text):!setFull&&!this.classList.contains("products-set--empty")&&this.classList.add("products-set--empty"),setFull}returnToDefaultSate(){this.querySelectorAll("product-variants").forEach(elm=>{elm.variantRequired=!0,elm.noVariantSelectedYet=!0,elm.querySelectorAll("input").forEach(input=>{input.hasAttribute("data-product-url")||(input.checked=!1)}),elm.querySelectorAll("select").forEach(select=>{select.selectedIndex=0}),elm.removeAttribute("data-init"),!elm.hasAttribute("data-has-variants")&&!elm.hasAttribute("data-unavailable")||(elm.currentVariant=void 0,elm.parentNode.querySelector("[data-js-product-add-to-cart]").classList.add("disabled"))}),this.querySelectorAll("[data-js-product-item]").forEach(elm=>{elm.classList.remove("selected")}),this.querySelectorAll(".product-variant__item-text-label").forEach(elm=>{elm.textContent=elm.dataset.defaultText}),this.initSet(),this.checkSet(),this.querySelector("[data-js-add-set-to-cart-text]").textContent=KROWN.settings.locales.sets_choose_products,this.classList.add("products-set--empty")}}typeof customElements.get("products-set")>"u"&&customElements.define("products-set",ProductsSet2)}
2//# sourceMappingURL=/cdn/shop/t/98/assets/section-products-set.js.map?v=149248636502772904651782478114

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.