PageSourceSearch

https://www.icelandcooler.com/cdn/shop/t/37/assets/header.js?v=29884510778072015601778009387

js icelandcooler.com collected 2026-10-08 05:45:25 UTC 7,965 bytes, 57 lines download raw bytes

1class BasicHeader extends HTMLElement{constructor(){super()}get headerSection(){return document.querySelector(".f-section-header")}connectedCallback(){this.classes={active:"f-header__mega-active",headerScheme:this.dataset.headerColorScheme,dropdownScheme:this.dataset.dropdownColorScheme},this.grandLinks=this.querySelectorAll(".f-site-nav__sub-item--has-child"),this.grandLinks&&this.grandLinks.forEach(item=>{this.handleGrandLinksPosition(item)})}handleMegaItemActive(dropdown){const rect=dropdown.getBoundingClientRect();this.style.setProperty("--f-dropdown-height",Math.ceil(rect.height)+"px"),this.classList.remove(this.classes.headerScheme),this.classList.add(this.classes.active,this.classes.dropdownScheme),document.documentElement.style.setProperty("--f-header-height",this.clientHeight+"px")}handleMegaItemDeactive(){this.classList.remove(this.classes.active,this.classes.dropdownScheme),this.classList.add(this.classes.headerScheme),document.documentElement.style.setProperty("--f-header-height",this.clientHeight+"px")}handleGrandLinksPosition(target){const dropdownLV3=target.querySelector(".f-site-nav__dropdown");if(dropdownLV3){const rect=dropdownLV3.getBoundingClientRect();dropdownLV3.classList.remove("f-site-nav__dropdown-reversed"),(!FoxThemeSettings.isRTL&&document.documentElement.clientWidth<rect.x+rect.width+10||FoxThemeSettings.isRTL&&rect.x<10)&&dropdownLV3.classList.add("f-site-nav__dropdown-reversed")}}}customElements.define("basic-header",BasicHeader,{extends:"header"});class StickyHeader extends BasicHeader{constructor(){super(),this.stickyClasses={pinned:"header-pinned"}}connectedCallback(){super.connectedCallback(),this.headerSection.classList.add("header-sticky"),this.stickyType=this.dataset.stickyType,this.currentScrollTop=0,this.headerBounds=this.headerSection.querySelector(".header").getBoundingClientRect(),this.onScrollHandler=this._onScroll.bind(this),this._onScroll(),window.addEventListener("scroll",this.onScrollHandler,!1)}disconnectedCallback(){window.removeEventListener("scroll",this.onScrollHandler)}get isAlwaysSticky(){return this.stickyType==="always"}_onScroll(){const scrollTop=window.scrollY,headerSection=this.headerSection,headerBoundsTop=this.offsetTop+this.headerBounds.height,headerBoundsBottom=this.headerBounds.top+this.headerBounds.height+100;requestAnimationFrame(()=>{scrollTop>headerBoundsTop?(headerSection.classList.add("header-scrolled"),this.isAlwaysSticky?document.body.classList.add(this.stickyClasses.pinned):scrollTop<this.currentScrollTop||scrollTop<headerBoundsBottom?document.body.classList.add(this.stickyClasses.pinned):document.body.classList.remove(this.stickyClasses.pinned)):(headerSection.classList.remove("header-scrolled"),document.body.classList.remove(this.stickyClasses.pinned)),this.currentScrollTop=scrollTop})}_closeMenuDisclosure(){this.disclosures=this.disclosures||this.header.querySelectorAll("header-menu"),this.disclosures.forEach(disclosure=>disclosure.close()),this.siteNav=this.siteNav||this.header.querySelector("site-nav"),this.siteNav&&this.siteNav.closeMegaDropdowns()}}customElements.define("sticky-header",StickyHeader,{extends:"header"});class HeaderMenu extends DetailsDisclosure{constructor(){super()}connectedCallback(){this.header=this.closest(".site-header"),this.classes={itemActive:"f-menu__item-active"},this.header.timeoutEnter=null,this.header.timeoutLeave=null}onToggle(evt){const{target}=evt,li=target.closest(".f-site-nav__item"),isOpen=this.mainDetailsToggle.open,isMega=li.classList.contains("f-site-nav__item--mega");if(!isOpen)clearTimeout(this.header.timeoutEnter),li.classList.remove(this.classes.itemActive),this.header.timeoutLeave=setTimeout(()=>{this.header.handleMegaItemDeactive()},160);else if(isMega){clearTimeout(this.header.timeoutLeave);const dropdown=li.querySelector(".f-site-nav__dropdown");this.header.handleMegaItemActive(dropdown),this.header.timeoutEnter=setTimeout(()=>{li.classList.add(this.classes.itemActive)},160)}else li.classList.add(this.classes.itemActive)}}customElements.define("header-menu",HeaderMenu);class SiteNav extends HTMLElement{constructor(){super()}connectedCallback(){this.header=this.closest(".site-header"),this.classes={itemActive:"f-menu__item-active"},this.megaItems=this.querySelectorAll(".f-site-nav__item--mega"),this.timeoutEnter=null,this.timeoutLeave=null,this.isHover=this.header&&this.header.classList.contains("show-dropdown-menu-on-hover"),this.isHover&&this.megaItems&&this.megaItems.forEac
1h((megaItem,index)=>{megaItem.addEventListener("mouseenter",evt=>this.onMenuItemEnter(evt,index)),megaItem.addEventListener("mouseleave",evt=>this.onMenuItemLeave(evt,index))})}onMenuItemEnter(evt){clearTimeout(this.timeoutLeave);const{target}=evt;target.classList.contains(this.classes.itemActive)||this.megaItems&&this.megaItems.forEach(megaItem=>{megaItem.classList.remove(this.classes.itemActive)});const dropdown=target.querySelector(".f-site-nav__dropdown");dropdown&&(this.header.handleMegaItemActive(dropdown),this.timeoutEnter=setTimeout(()=>{target.classList.add(this.classes.itemActive)}))}onMenuItemLeave(evt){const{target}=evt;clearTimeout(this.timeoutEnter),this.header.handleMegaItemDeactive(),this.timeoutLeave=setTimeout(()=>{target.classList.remove(this.classes.itemActive)})}closeMegaDropdowns(){clearTimeout(this.timeoutEnter),this.megaItems&&this.megaItems.forEach(megaItem=>{megaItem.classList.remove(this.classes.itemActive)}),this.timeoutLeave=setTimeout(()=>{this.header.handleMegaItemDeactive()})}disconnectedCallback(){this.megaItems&&this.megaItems.forEach((megaItem,index)=>{megaItem.removeEventListener("mouseenter",evt=>this.onMenuItemEnter(evt,index)),megaItem.removeEventListener("mouseleave",evt=>this.onMenuItemLeave(evt,index))})}}customElements.define("site-nav",SiteNav);class HeaderAccount extends HTMLElement{async connectedCallback(){const account=this.querySelector("shopify-account");account&&(await customElements.whenDefined("shopify-account"),this.injectAnimation(account))}injectAnimation(account){const shadow=account.shadowRoot;if(!shadow||shadow.querySelector("#custom-account-styles"))return;const style=document.createElement("style");style.id="custom-account-styles",style.textContent=`
2      @keyframes dialogScaleIn {
3        0% {
4          transform: scale(0.8);
5          opacity: 0;
6        }
7        100% {
8          transform: scale(1);
9          opacity: 1;
10        }
11      }
12      @keyframes dialogScaleOut {
13        0% {
14          transform: scale(1);
15          opacity: 1;
16        }
17
18        100% {
19          transform: scale(0.8);
20          opacity: 0;
21        }
22      }
23      @keyframes dialogBackdropIn {
24        0% {
25          opacity: 0;
26        }
27
28        100% {
29          opacity: 1;
30        }
31      }
32      @keyframes dialogBackdropOut {
33        0% {
34          opacity: 1;
35        }
36
37        100% {
38          opacity: 0;
39        }
40      }
41      @media (min-width: 751px) {
42        dialog[open] {
43          animation: dialogScaleIn 0.6s cubic-bezier(0.7, 0, 0.2, 1) !important;
44        }
45        dialog.closing {
46          animation: dialogScaleOut 0.6s cubic-bezier(0.7, 0, 0.2, 1) !important;
47        }
48        dialog[open]::backdrop {
49          cursor: zoom-out;
50          animation: dialogBackdropIn 0.8s cubic-bezier(0.7, 0, 0.2, 1) !important;
51        }
52        dialog.closing::backdrop {
53          animation: dialogBackdropOut 0.8s cubic-bezier(0.7, 0, 0.2, 1) !important;
54        }
55      }
56    `,shadow.prepend(style)}watchDialog(account){const shadow=account.shadowRoot;if(!shadow)return;const dialog=shadow.querySelector("dialog");if(!dialog)return;const update=()=>{document.documentElement.classList.toggle("account-dialog-open",dialog.hasAttribute("open"))};
56update(),new MutationObserver(update).observe(dialog,{attributes:!0,attributeFilter:["open"]})}}customElements.define("header-account",HeaderAccount);
57//# sourceMappingURL=/cdn/shop/t/37/assets/header.js.map?v=29884510778072015601778009387

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.