PageSourceSearch

https://www.lemlem.com/cdn/shop/t/397/assets/custom.js?v=47309575816220237181788873443

js lemlem.com collected 2026-10-02 03:51:06 UTC 18,626 bytes, 19 lines download raw bytes

1function debounce(fn,wait){let t;return(...args)=>{clearTimeout(t),t=setTimeout(()=>fn.apply(this,args),wait)}}const accountButton=document.querySelector("#account-button"),accountDropDown=document.querySelector("#accountNav");accountDropDown.addEventListener("keydown",function(event2){event2.key==="Escape"&&(removeTrapFocus(accountDropDown),accountDropDown.classList.add("hidden"),accountButton.setAttribute("aria-expanded","false"))}),accountButton?.addEventListener("click",e=>{trapFocus(accountDropDown),accountDropDown.classList.contains("hidden")?(accountDropDown.classList.remove("hidden"),accountButton.setAttribute("aria-expanded","true")):(accountDropDown.classList.add("hidden"),accountButton.setAttribute("aria-expanded","false"))});const loginButton=document.querySelector(".nav-tabs__login"),registerButton=document.querySelector(".nav-tabs__register"),loginForm=document.querySelector("#login"),registerForm=document.querySelector("#register"),forgotPassBtn=document.querySelector(".forgot-password-btn"),forgotPassForm=document.querySelector("#recover_customer_password");loginButton&&loginButton.addEventListener("click",e=>{registerForm.classList.add("hidden"),loginForm.classList.remove("hidden"),loginButton.classList.add("nav--underline"),registerButton.classList.remove("nav--underline"),forgotPassForm.classList.add("hidden")}),registerButton&&registerButton.addEventListener("click",e=>{registerForm.classList.remove("hidden"),loginForm.classList.add("hidden"),loginButton.classList.remove("nav--underline"),registerButton.classList.add("nav--underline"),forgotPassForm.classList.add("hidden")}),forgotPassBtn&&forgotPassBtn.addEventListener("click",e=>{forgotPassForm.classList.remove("hidden"),loginForm.classList.add("hidden")});const topFilters=document.querySelectorAll(".Collapsible__FiltersOnTop");for(const filter of topFilters)filter.addEventListener("mouseleave",e=>{var toggleButton=filter.querySelector(".Collapsible__Button"),collapsibleInner=filter.querySelector(".Collapsible__Inner");!collapsibleInner||toggleButton.getAttribute("aria-expanded")==="false"||(toggleButton.setAttribute("aria-expanded","false"),collapsibleInner.style.overflow="hidden")});window.onload=function(){const sortbyButton=document.getElementById("Sortby__Button"),flickityNext=document.querySelectorAll(".flickity-prev-next-button[disabled]");document.addEventListener("focusin",function(){let openMenu=document.querySelector(".Header__MainNav .HorizontalList__Item.is-expanded[aria-haspopup]");if(openMenu!=null&&!openMenu.contains(document.activeElement)){let megaMenu=openMenu.querySelector('[aria-hidden="false"]');megaMenu&&(megaMenu.ariaHidden="true")}},!0),sortbyButton&&sortbyButton.addEventListener("click",e=>{const focusElement=document.getElementById("collection-sort-popover").querySelector(".is-selected");setTimeout(function(){focusElement.focus()},100)}),document.getElementById("mobile-sidebar-button").addEventListener("click",e=>{setTimeout(function(){document.getElementById("mobile-sidebar-close").focus()},100),document.getElementById("mobile-sidebar-close").focus()})};function isSafari(){const userAgent=navigator.userAgent.toLowerCase();return userAgent.indexOf("safari")!=-1?!(userAgent.indexOf("chrome")>-1):!1}function getSafariZoomFactor(){var deviceWidth,landscape=Math.abs(window.orientation)==90;return window.screen.width==320?deviceWidth=landscape?480:320:deviceWidth=window.screen[landscape?"height":"width"],deviceWidth/window.innerWidth}const removeZoomLevelClasses=()=>{const bodyClass=document.body.className.split(" ").filter(el=>el.toLowerCase().indexOf("zoom-level-")===-1).join(" ");document.body.className=bodyClass},updateZoomLevel=()=>{removeZoomLevelClasses();let zoomLevel=window.devicePixelRatio;isSafari()&&(zoomLevel=parseInt(getSafariZoomFactor())*2),zoomLevel>=5&&(zoomLevel>=8?document.documentElement.classList.add("zoom-level-over-8"):document.documentElement.classList.add(`zoom-level-${zoomLevel}`))},getAllProducts=(target,url)=>{fetch(url,{credentials:"same-origin",method:"GET"}).then(content=>{content.text().then(function(html){var tempElement=document.createElement("div");tempElement.innerHTML=html;var ProductList=tempElement.querySelector(".ProductList");target&&(target.innerHTML=ProductList.innerHTML)})})},updateHeaderonPDP=()=>{if(document.body.classList.contains("template-product")){const header=document.querySelector("#section-header");window.innerWidth<=1007?(document.body.classList.add("has-transparent-header"),header&&header.classList.add("Header--trans
1parent"),document.documentElement.style.setProperty("--header-is-not-transparent",0),document.documentElement.style.setProperty("--header-is-transparent",1),window.pageYOffset<=10?header&&header.classList.add("Header--transparent"):header&&header.classList.remove("Header--transparent")):(document.body.classList.remove("has-transparent-header"),header&&header.classList.remove("Header--transparent"),document.documentElement.style.setProperty("--header-is-not-transparent",1),document.documentElement.style.setProperty("--header-is-transparent",0))}};window.addEventListener("scroll",()=>{updateHeaderonPDP()}),window.addEventListener("resize",()=>{updateZoomLevel(),updateHeaderonPDP()}),document.addEventListener("DOMContentLoaded",()=>{updateZoomLevel();const viewAllProductButton=document.querySelector("[data-js-view-all-products]");viewAllProductButton&&viewAllProductButton.addEventListener("click",()=>{const url=event.target.dataset.url,target=document.querySelector(".ProductList");getAllProducts(target,url)});const PageSkipLink=document.querySelector(".PageSkipLink");PageSkipLink&&PageSkipLink.addEventListener("click",e=>{const mainContent=document.querySelector("#main");mainContent&&mainContent.focus()}),updateHeaderonPDP()});class LocalizationForm extends HTMLElement{constructor(){super(),this.elements={input:this.querySelector('input[name="language_code"], input[name="country_code"]'),button:this.querySelector("button"),panel:this.querySelector("ul"),scrollContainer:this.closest(".Drawer__Main")},this.elements.button.addEventListener("click",this.openSelector.bind(this)),this.elements.button.addEventListener("focusout",this.closeSelector.bind(this)),this.addEventListener("keyup",this.onContainerKeyUp.bind(this)),this.handleDocumentClick=e=>{document.body.contains(e.target)&&this.isOpen&&!this.contains(e.target)&&this.hidePanel()},document.addEventListener("click",this.handleDocumentClick),this.addEventListener("click",e=>{if(e.target.closest("[data-close]")){this.hidePanel();return}e.target.closest("a")&&this.onItemClick(e)})}hidePanel(){this.elements.button.setAttribute("aria-expanded","false"),this.elements.panel.setAttribute("hidden",!0),this.isOpen=!1,this.elements.scrollContainer&&(this.elements.scrollContainer.style.overflow=null,disableBodyScroll(!0,"[data-scrollable]"),this.elements.button.scrollIntoView())}onContainerKeyUp(event2){event2.code.toUpperCase()==="ESCAPE"&&(this.hidePanel(),this.elements.button.focus())}onItemClick(event2){event2.preventDefault();const form=this.querySelector("form");this.elements.input.value=event2.target.dataset.value,form&&form.submit()}openSelector(){this.isOpen=!0,this.elements.button.focus(),this.elements.panel.toggleAttribute("hidden"),this.elements.button.setAttribute("aria-expanded",(this.elements.button.getAttribute("aria-expanded")==="false").toString()),this.elements.scrollContainer&&(this.elements.scrollContainer.scrollTo({top:0}),this.elements.scrollContainer.style.overflow="hidden",disableBodyScroll(!1))}closeSelector(event2){const shouldClose=event2.relatedTarget&&event2.relatedTarget.nodeName==="BUTTON";(event2.relatedTarget===null||shouldClose)&&this.hidePanel()}}customElements.define("localization-form",LocalizationForm);const initAnnouncementBanner=()=>{const banner=document.querySelector("[data-announcement-banner]");if(!banner)return;const{delay}=banner.dataset||2500,swiper=new Swiper(banner,{loop:!0,centeredSlides:!0,autoplay:{delay:parseFloat(delay)*1e3,disableOnInteraction:!1,pauseOnMouseEnter:!1},navigation:{nextEl:banner.querySelector(".swiper-button-next"),prevEl:banner.querySelector(".swiper-button-prev")}})};class Storefront{constructor(){this.headers={"X-Shopify-Storefront-Access-Token":window.storefront.api_token,"Content-Type":"application/json"}}request=async({query,variables={}})=>{if(!window.storefront.api_token||!window.storefront.api_url){console.error("There was an error with the storefront token.");return}return await(await fetch(`${window.storefront.api_url}`,{headers:this.headers,method:"POST",body:JSON.stringify({query,variables})})).json()}}const handleCreateCustomer=async e=>{const form=e.target.closest("form"),formData=new FormData(form);if(!(formData.get("customer[email]")==""||formData.get("customer[password]")=="")){if(formData.get("customer[phone]")=="")return;e.preventDefault();const acceptsMarketingElem=form.querySelector('[name="customer[accepts_marketing]"]');let acceptsMarketing=!1;acceptsMarketingElem&&(acceptsMarketing=acceptsMarketingElem.checked);const storefront=new Storefront,query=`
2      mutation customerCreate($input: CustomerCreateInput!) {
3        customerCreate(input: $input) {
4          customer {
5            firstName
6            lastName
7            email
8            phone
9            acceptsMarketing
10          }
11          customerUserErrors {
12            field
13            message
14            code
15          }
16        }
17      }
18    `,variables={input:{firstName:formData.get("customer[first_name]"),lastName:formData.get("customer[last_name]"),email:formData.get("customer[email]"),phone:formData.get("customer[phone]"),password:formData.get("customer[password]"),acceptsMarketing}},response=await storefront.request({query,variables}),handleErrorValidation=message=>{const formErrorElement=form.querySelector(".Form__Alert");if(formErrorElement)formErrorElement.innerHTML=message;else{const formItem=form.querySelector(".Form__Item"),errorDiv=document.createElement("div");errorDiv.classList.add("Form__Alert","Alert","Alert--error"),errorDiv.innerHTML=message,form.insertBefore(errorDiv,formItem)}};if(response?.data?.customerCreate)if(response?.data?.customerCreate?.customer!=null){console.log(response.data.customerCreate);const loginForm2=document.querySelector("#customer_login"),emailElement=loginForm2.querySelector('[name="customer[email]"]'),passwordElement=loginForm2.querySelector('[name="customer[password]"]');emailElement&&passwordElement&&(emailElement.value=formData.get("customer[email]"),passwordElement.value=formData.get("customer[password]"),loginForm2.submit())}else if(response?.data?.customerCreate?.customerUserErrors){const message=response?.data?.customerCreate?.customerUserErrors[0].message;handleErrorValidation(message)}else handleErrorValidation("Something went wrong, please try again!");else handleErrorValidation("Something went wrong, please try again!")}};document.addEventListener("DOMContentLoaded",()=>{const createButton=document.querySelector('#create_customer [type="submit"]');createButton&&createButton.addEventListener("click",e=>handleCreateCustomer(e)),window.addEventListener("click",evt=>{if(evt.target.classList.contains("PageOverlay")||evt.target.closest(".PageOverlay")){const wrap=document.querySelector(".pdp-sticky-atc");wrap&&wrap.classList.remove("active"),evt.target.classList.remove("is-visible")}}),window.addEventListener("click",evt=>{if(evt.target.hasAttribute("data-pdp-sticky-form-show")||evt.target.closest("[data-pdp-sticky-form-show]")){const overlay=document.querySelector(".PageOverlay"),wrap=document.querySelector(".pdp-sticky-atc");wrap&&wrap.classList.add("active"),overlay&&overlay.classList.add("is-visible")}});var swipe_close=document.querySelector(".atc-popup-swipe-btc"),pdp_sticky_atc=document.querySelector(".pdp-sticky-atc"),sticky_touchstart=null,sticky_touchend=null;pdp_sticky_atc&&swipe_close&&(swipe_close.addEventListener("touchstart",e=>{sticky_touchstart=e.targetTouches[0].clientY,sticky_touchend=null}),swipe_close.addEventListener("touchmove",e=>{sticky_touchend=e.targetTouches[0].clientY,console.log(Math.min(0,sticky_touchstart-sticky_touchend)),pdp_sticky_atc.style.marginBottom=Math.min(0,sticky_touchstart-sticky_touchend)+"px"}),swipe_close.addEventListener("touchend",()=>{console.log(sticky_touchend-sticky_touchstart),sticky_touchend&sticky_touchend-sticky_touchstart>
1850&&(pdp_sticky_atc&&pdp_sticky_atc.classList.remove("active"),document.querySelector(".PageOverlay").classList.remove("is-visible")),pdp_sticky_atc.style.marginBottom=0})),initAnnouncementBanner()});class TabComponent extends HTMLElement{constructor(){super(),this.tabButtons=[...this.querySelectorAll('[data-action="toggle-tab"]')],this.init()}init(){this.tabButtons.map(button=>{button.addEventListener("click",this._switchTab.bind(this))})}_switchTab(event2){if(!event2.target.classList.contains("is-active")){event2.target.classList.add("is-active"),this.getSiblings(event2.target,".is-active").forEach(function(item){item.classList.remove("is-active"),item.setAttribute("aria-selected","false")}),event2.target.setAttribute("aria-selected","true");var tabPanelToShow=this.querySelector("#"+event2.target.getAttribute("aria-controls"));tabPanelToShow.setAttribute("aria-hidden","false"),this.getSiblings(tabPanelToShow,'.TabPanel[aria-hidden="false"]').forEach(function(item){item.setAttribute("aria-hidden","true")})}}getSiblings(element,filter){for(var includeSelf=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,siblings=[],currentElement=element;currentElement=currentElement.previousElementSibling;)(!filter||currentElement.matches(filter))&&siblings.push(currentElement);for(includeSelf&&siblings.push(element),currentElement=element;currentElement=currentElement.nextElementSibling;)(!filter||currentElement.matches(filter))&&siblings.push(currentElement);return siblings}}customElements.get("tab-component")||customElements.define("tab-component",TabComponent);class MenuDrawer extends HTMLElement{constructor(){super(),this.mainDetailsToggle=this.querySelector("details"),this.addEventListener("keyup",this.onKeyUp.bind(this)),this.addEventListener("focusout",this.onFocusOut.bind(this)),this.bindEvents()}bindEvents(){this.querySelectorAll("summary").forEach(summary=>summary.addEventListener("click",this.onSummaryClick.bind(this))),this.querySelectorAll("button:not(.localization-selector)").forEach(button=>button.addEventListener("click",this.onCloseButtonClick.bind(this)))}onKeyUp(event2){if(event2.code.toUpperCase()!=="ESCAPE")return;const openDetailsElement=event2.target.closest("details[open]");openDetailsElement&&(openDetailsElement===this.mainDetailsToggle?this.closeMenuDrawer(event2,this.mainDetailsToggle.querySelector("summary")):this.closeSubmenu(openDetailsElement))}onSummaryClick(event2){const summaryElement=event2.currentTarget,detailsElement=summaryElement.parentNode,parentMenuElement=detailsElement.closest(".has-submenu"),isOpen=detailsElement.hasAttribute("open"),reducedMotion=window.matchMedia("(prefers-reduced-motion: reduce)");function addTrapFocus(){trapFocus(summaryElement.nextElementSibling,detailsElement.querySelector("button")),summaryElement.nextElementSibling.removeEventListener("transitionend",addTrapFocus)}detailsElement===this.mainDetailsToggle?(isOpen&&event2.preventDefault(),isOpen?this.closeMenuDrawer(event2,summaryElement):this.openMenuDrawer(summaryElement),window.matchMedia("(max-width: 990px)")&&document.documentElement.style.setProperty("--viewport-height",`${window.innerHeight}px`)):setTimeout(()=>{detailsElement.classList.add("menu-opening"),summaryElement.setAttribute("aria-expanded",!0),parentMenuElement&&parentMenuElement.classList.add("submenu-open"),!reducedMotion||reducedMotion.matches?addTrapFocus():summaryElement.nextElementSibling.addEventListener("transitionend",addTrapFocus)},100)}openMenuDrawer(summaryElement){setTimeout(()=>{this.mainDetailsToggle.classList.add("menu-opening"),document.querySelector("#ShopifyChat").style.zIndex=1,document.querySelector(".needsclick").style.zIndex=1}),summaryElement.setAttribute("aria-expanded",!0),trapFocus(this.mainDetailsToggle,summaryElement),document.body.classList.add(`overflow-hidden-${this.dataset.breakpoint}`)}closeMenuDrawer(event2,elementToFocus=!1){event2!==void 0&&(this.mainDetailsToggle.classList.remove("menu-opening"),document.querySelector("#ShopifyChat")&&(document.querySelector("#ShopifyChat").style.zIndex=9999),document.querySelector(".needsclick").style.zIndex=9999,this.mainDetailsToggle.querySelectorAll("details").forEach(detail
18s=>{details.removeAttribute("open"),details.classList.remove("menu-opening")}),this.mainDetailsToggle.querySelectorAll(".submenu-open").forEach(submenu=>{submenu.classList.remove("submenu-open")}),document.body.classList.remove(`overflow-hidden-${this.dataset.breakpoint}`),removeTrapFocus(elementToFocus),this.closeAnimation(this.mainDetailsToggle),event2 instanceof KeyboardEvent&&elementToFocus?.setAttribute("aria-expanded",!1))}onFocusOut(){setTimeout(()=>{this.mainDetailsToggle.hasAttribute("open")&&!this.mainDetailsToggle.contains(document.activeElement)&&this.closeMenuDrawer()})}onCloseButtonClick(event2){const detailsElement=event2.currentTarget.closest("details");this.closeSubmenu(detailsElement)}closeSubmenu(detailsElement){const parentMenuElement=detailsElement.closest(".submenu-open");parentMenuElement&&parentMenuElement.classList.remove("submenu-open"),detailsElement.classList.remove("menu-opening"),detailsElement.querySelector("summary").setAttribute("aria-expanded",!1),removeTrapFocus(detailsElement.querySelector("summary")),this.closeAnimation(detailsElement)}closeAnimation(detailsElement){let animationStart;const handleAnimation=time=>{animationStart===void 0&&(animationStart=time),time-animationStart<400?window.requestAnimationFrame(handleAnimation):(detailsElement.removeAttribute("open"),detailsElement.closest("details[open]")&&trapFocus(detail
18sElement.closest("details[open]"),detailsElement.querySelector("summary")))};window.requestAnimationFrame(handleAnimation)}}customElements.define("menu-drawer",MenuDrawer),document.addEventListener("DOMContentLoaded",event2=>{var footer_menus=document.querySelectorAll(".Footer__Block--section.Footer__Menu .Footer__Title");footer_menus.forEach(el=>el.addEventListener("click",function(){console.log(el),el.classList.toggle("active"),el.setAttribute("aria-expanded",el.getAttribute("aria-expanded")==="true"?"false":"true")}))});
19//# sourceMappingURL=/cdn/shop/t/397/assets/custom.js.map?v=47309575816220237181788873443

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.