PageSourceSearch

https://www.lyleandscott.com/cdn/shop/t/458/assets/lyle-product-size-guide.js?v=41516824411197242171788364390

js lyleandscott.com collected 2026-09-24 23:00:13 UTC 5,702 bytes, 2 lines download raw bytes

1const normalizeReference=value=>{if(typeof value!="string")return"";try{value=decodeURIComponent(value)}catch{}return value.replace(/^#/,"").replace(/^['"]|['"]$/g,"").trim().toLowerCase()},toHandle=value=>normalizeReference(value).normalize("NFKD").replace(/[\u0300-\u036f]/g,"").replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"");export const guideReferenceMatches=(reference,candidates)=>{const normalizedReference=normalizeReference(reference),referenceHandle=toHandle(reference);return normalizedReference?candidates.some(candidate=>{const normalizedCandidate=normalizeReference(candidate),candidateHandle=toHandle(candidate),handlesMatch=referenceHandle&&candidateHandle&&(candidateHandle===referenceHandle||candidateHandle.includes(referenceHandle)||referenceHandle.includes(candidateHandle));return normalizedCandidate?normalizedCandidate===normalizedReference||handlesMatch||normalizedReference.length>=3&&(normalizedCandidate.includes(normalizedReference)||normalizedReference.includes(normalizedCandidate)):!1}):!1};if(typeof window<"u"){class LyleProductSizeGuide extends HTMLElement{#loaded=!1;#loading=!1;#popover=null;connectedCallback(){this.#popover=this.querySelector("[popover]"),this.#popover?.addEventListener("toggle",event=>{event.newState==="open"&&this.#load()}),this.addEventListener("click",event=>{const unitButton=event.target.closest("[data-size-guide-unit]");if(unitButton&&this.#setUnit(unitButton.dataset.sizeGuideUnit),event.target.closest("[data-size-guide-unit-toggle]")){const activeUnit=this.querySelector('[data-size-guide-unit][aria-pressed="true"]')?.dataset.sizeGuideUnit;this.#setUnit(activeUnit==="cm"?"in":"cm")}})}async#load(){if(!(this.#loaded||this.#loading)){this.#loading=!0;try{const sourceUrl=new URL(this.dataset.url,window.location.href),response=await fetch(`${sourceUrl.pathname}${sourceUrl.search}`,{credentials:"same-origin"});if(!response.ok)throw new Error(`Size guide request failed: ${response.status}`);const sections=[...new DOMParser().parseFromString(await response.text(),"text/html").querySelectorAll("[data-size-guides-section]")];if(!sections.length)throw new Error("Size guide section not found");const categoryReference=sourceUrl.hash;let category=sections.find(section=>guideReferenceMatches(categoryReference,[section.dataset.sizeGuidesSection]))||sections[0],blocks=[...category.querySelectorAll("[data-size-guides-title]")];const allBlocks=sections.flatMap(section=>[...section.querySelectorAll("[data-size-guides-title]")]),guideReference=this.dataset.guideReference;let measurementGuide=blocks.find(block=>block.querySelector("lyle-csv-table")&&guideReferenceMatches(guideReference,this.#guideCandidates(block)));
1if(!measurementGuide&&guideReference&&(measurementGuide=allBlocks.find(block=>block.querySelector("lyle-csv-table")&&guideReferenceMatches(guideReference,this.#guideCandidates(block))),measurementGuide&&(category=measurementGuide.closest("[data-size-guides-section]"),blocks=[...category.querySelectorAll("[data-size-guides-title]")])),measurementGuide||=blocks.find(block=>block.querySelector("lyle-csv-table")),!measurementGuide)throw new Error("Size guide table not found");const contentGuide=blocks.find(block=>block!==measurementGuide&&block.querySelector(".size-guide-item__content"))||measurementGuide;this.#renderGuide(measurementGuide,contentGuide),this.#loaded=!0}catch(error){console.error("Product size guide: unable to load data",error),this.querySelector("[data-size-guide-loading]").hidden=!0,this.querySelector("[data-size-guide-error]").hidden=!1}finally{this.#loading=!1}}}#guideCandidates(block){return[block.dataset.sizeGuidesTitle,block.dataset.sizeGuidesTitleLabel,...[...block.querySelectorAll("lyle-csv-table")].map(table=>table.dataset.url)]}#renderGuide(measurementGuide,contentGuide){const title=measurementGuide.dataset.sizeGuidesTitleLabel,titleElement=this.#popover?.querySelector(".popup-drawer__title");title&&titleElement&&(titleElement.textContent=`${title} ${this.dataset.title}`);const availableUnits=["cm","in"].filter(unit=>{const table=measurementGuide.querySelector(`[data-size-guides-unit-panel="${unit}"] lyle-csv-table`),panel=this.querySelector(`[data-size-guide-panel="${unit}"]`);return panel.replaceChildren(),panel.hidden=!table,table&&panel.appendChild(table.cloneNode(!0)),!!table}),howToContent=contentGuide.querySelector(".size-guide-item__content"),howToSection=this.querySelector("[data-size-guide-how-to]"),howToTarget=this.querySelector("[data-size-guide-how-to-content]");howToContent&&(howToTarget.replaceChildren(howToContent.cloneNode(!0)),howToSection.hidden=!1),this.querySelector("[data-size-guide-unit-controls]").hidden=availableUnits.length<2,this.querySelector("[data-size-guide-loading]").hidden=!0,this.querySelector("[data-size-guide-content]").hidden=!1,this.#setUnit(availableUnits.includes("cm")?"cm":availableUnits[0])}#setUnit(unit){if(unit){for(const panel of this.querySelectorAll("[data-size-guide-panel]"))panel.hidden=panel.dataset.sizeGuidePanel!==unit||!panel.children.length;for(const button of this.querySelectorAll("[data-size-guide-unit]")){const active=button.dataset.sizeGuideUnit===unit;button.classList.toggle("is-active",active),button.setAttribute("aria-pressed",active.toString())}this.querySelector("[data-size-guide-unit-toggle]")?.classList.toggle("is-cm",unit==="cm"),requestAnimationFrame(()=>{this.querySelector(`[data-size-guide-panel="${unit}"] lyle-csv-table`)?.refreshScrollbar?.()})}}}customElements.get("lyle-product-size-guide")||customElements.define("lyle-product-size-guide",LyleProductSizeGuide)}
2//# sourceMappingURL=/cdn/shop/t/458/assets/lyle-product-size-guide.js.map?v=41516824411197242171788364390

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.