PageSourceSearch

https://www.fredesigner.com/cdn/shop/t/75/assets/fd-global-twopages.js?v=166036210182062920771789885926

js fredesigner.com collected 2026-10-06 17:42:25 UTC 28,498 bytes, 45 lines download raw bytes

1(()=>{if(window.__fdCartCoordinator)return;const pending=new Set,controls=new Map,selector='[data-fd-cart-action], [data-fd-cart-input], [data-fd-cart-panel-action], [data-fd-cart-panel-input], [name="updates[]"], [name="update"], a[href*="/cart/change"], form[action*="/cart/add"] button[type="submit"]',state={version:"cart-sync-v1-20260915",revision:0,failures:0,locked:!1},changed=()=>{state.revision++,window.__fdCartRequestInFlight=null},begin=()=>{const token={};pending.add(token),changed();let done=!1;return failed=>{done||(done=!0,pending.delete(token),failed&&state.failures++,changed())}},isWrite=value=>{try{const url=new URL(typeof value=="string"||value instanceof URL?String(value):value.url,location.origin);return url.origin===location.origin&&/\/(?:cart)\/(?:add|change|update|clear)(?:\.js)?\/?$/.test(url.pathname)}catch{return!1}},originalFetch=window.fetch;if(window.fetch=function(input,init){if(!isWrite(input))return originalFetch.apply(this,arguments);const finish=begin();try{return originalFetch.apply(this,arguments).then(async response=>{let failed=!response.ok;try{if((response.headers.get("content-type")||"").includes("json")){const body=await response.clone().json();failed=failed||Number(body.status)>=400}}catch{failed=!0}return finish(failed),response},error=>{throw finish(!0),error})}catch(error){throw finish(!0),error}},window.XMLHttpRequest){const requests=new WeakMap,open=XMLHttpRequest.prototype.open,send=XMLHttpRequest.prototype.send;XMLHttpRequest.prototype.open=function(method,url){return requests.set(this,isWrite(url)),open.apply(this,arguments)},XMLHttpRequest.prototype.send=function(){if(!requests.get(this))return send.apply(this,arguments);const finish=begin(),complete=()=>{let failed=this.status<200||this.status>=400;try{const body=this.responseType==="json"?this.response:JSON.parse(this.responseText);failed=failed||Number(body&&body.status)>=400}catch{}finish(failed)};this.addEventListener("loadend",complete,{once:!0});try{return send.apply(this,arguments)}catch(error){throw this.removeEventListener("loadend",complete),finish(!0),error}}}const lockControls=()=>{state.locked&&document.querySelectorAll(selector).forEach(control=>{controls.has(control)||controls.set(control,{disabled:"disabled"in control?control.disabled:null,aria:control.getAttribute("aria-disabled")}),"disabled"in control&&!control.disabled&&(control.disabled=!0),control.getAttribute("aria-disabled")!=="true"&&control.setAttribute("aria-disabled","true")})};state.setControlBusy=(control,busy)=>{state.locked&&control.matches(selector)?(controls.has(control)?controls.get(control).disabled=busy:controls.set(control,{disabled:busy,aria:control.getAttribute("aria-disabled")}),control.disabled=!0):control.disabled=busy},state.lock=()=>{state.locked=!0,lockControls()},state.unlock=()=>{state.locked=!1,controls.forEach((before,control)=>{control.isConnected&&(before.disabled!==null&&(control.disabled=before.disabled),before.aria===null?control.removeAttribute("aria-disabled"):control.setAttribute("aria-disabled",before.aria))}),controls.clear()},state.pendingCount=()=>pending.size,state.waitForIdle=(timeout=8e3)=>new Promise((resolve,reject)=>{const deadline=Date.now()+timeout,failures=state.failures;let quietSince=Date.now(),lastRevision=state.revision;const check=()=>{if(state.failures!==failures)return reject(new Error("A cart update failed. Review your cart before checking out."));if((pending.size||state.revision!==lastRevision)&&(quietSince=Date.now(),lastRevision=state.revision),!pending.size&&Date.now()-quietSince>=250)return resolve();if(Date.now()>=deadline)return reject(new Error("Your cart is still updating. Please wait and try again."));setTimeout(check,25)};check()}),["click","change","input","keydown","submit"].forEach(type=>document.addEventListener(type,event=>{if(!state.locked)return;const target=event.target;(type==="submit"&&target.matches&&target.matches('form[action*="/cart"]')&&!(event.submitter&&event.submitter.name==="checkout")||target.closest&&target.closest(selector))&&(event.preventDefault(),event.stopImmediatePropagation())},!0)),new MutationObserver(lockControls).observe(document.documentElement,{childList:!0,subtree:!0}),window.__fdCartCoordinator=state})(),(function(){const header=document.querySelector("[data-fd-global-header]"),hasGlobalHeader=!!header,miniCart=hasGlobalHeader?header.querySelector("[data-fd-mini-cart]"):null,miniCartContent=miniCart?miniCart.querySelector("[data-fd-mini-cart-content]"):null,routes=window.theme&&window.theme.routes?window.theme.routes:{},cookieConsentKey="fdCookieConsent",cookieConsentCookie="fd_cookie_consent",route=(name,fallback)=>routes[name]||fallback,hasCookieConsent=()=>{try{if(window.localStorage&&window.localStorage.getItem(cookieConsentKey))return!0}catch{}try{return document.cookie.split(";").some(item=>item.trim().indexOf(`${cookieConsentCookie}=`)===0)}catch{return!1}},storeCookieConsent=choice=>{const value=encodeURIComponent(choice||"dismissed");try{window.localStorage&&window.localStorage.setItem(cookieConsentKey,value)}catch{}try{document.cookie=`${cookieConsentCookie}=${value}; max-age=31536000; path=/; SameSite=Lax`}catch{}},hideCookieBars=()=>{document.querySelectorAll("[data-fd-cookie]").forEach(cookie=>{cookie.style.setProperty("display","none","important"),cookie.hidden=!0})},enableCookieBars=()=>{document.querySelectorAll("[data-fd-cookie]").forEach(cookie=>{cookie.hidden=!1,cookie.style.setProperty("display","grid","important"),cookie.style.setProperty("z-index","2147483000","important"),cookie.style.setProperty("pointer-events","auto","important"),cookie.querySelectorAll("button, a").forEach(control
1=>{control.style.setProperty("pointer-events","auto","important"),control.style.position="relative",control.style.zIndex="1"})})},syncCookieBars=()=>{hasCookieConsent()?hideCookieBars():enableCookieBars()};if(syncCookieBars(),document.addEventListener("DOMContentLoaded",syncCookieBars),window.addEventListener("load",syncCookieBars),window.setTimeout(syncCookieBars,300),window.setTimeout(syncCookieBars,1200),window.setTimeout(syncCookieBars,3e3),document.addEventListener("click",event=>{const cookieClose=event.target&&event.target.closest?event.target.closest("[data-fd-cookie-close]"):null;if(!cookieClose)return;const choice=(cookieClose.textContent||"dismissed").trim().toLowerCase().replace(/\s+/g,"-");storeCookieConsent(choice),hideCookieBars()},!0),!hasGlobalHeader)return;const syncProductHeaderOffset=()=>{if(!document.body||!document.body.classList.contains("template-product"))return;const height=Math.ceil(header.getBoundingClientRect().height||0);height>0&&document.documentElement.style.setProperty("--fd-product-sticky-header-height",`${height}px`)};syncProductHeaderOffset(),window.requestAnimationFrame(syncProductHeaderOffset),window.addEventListener("load",syncProductHeaderOffset,{once:!0}),window.addEventListener("resize",syncProductHeaderOffset),window.ResizeObserver&&new ResizeObserver(syncProductHeaderOffset).observe(header);const escapeHtml=value=>String(value||"").replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#039;"),formatMoney=cents=>window.theme&&window.theme.Currency&&typeof window.theme.Currency.formatMoney=="function"?window.theme.Currency.formatMoney(cents,window.theme.settings&&window.theme.settings.moneyFormat):window.Shopify&&typeof window.Shopify.formatMoney=="function"?window.Shopify.formatMoney(cents):`$${(Number(cents||0)/100).toFixed(2)}`,readJson=response=>response.json().then(data=>{if(!response.ok||data.status===422)throw data;return data}),getCart=()=>{if(window.__fdCartRequestInFlight)return window.__fdCartRequestInFlight;const sharedRequest=fetch(`${route("cart","/cart.js")}?t=${Date.now()}`,{credentials:"same-origin",headers:{Accept:"application/json"}}).then(readJson).then(cart=>(window.__fdCartSnapshot=cart,cart)).finally(()=>{window.__fdCartRequestInFlight===sharedRequest&&(window.__fdCartRequestInFlight=null)});return window.__fdCartRequestInFlight=sharedRequest,sharedRequest};window.__fdGetCartShared=getCart;const changeCartItem=(key,quantity)=>fetch(`${route("cartChange","/cart/change.js")}?t=${Date.now()}`,{method:"POST",credentials:"same-origin",headers:{Accept:"application/json","Content-Type":"application/json","X-Requested-With":"XMLHttpRequest"},body:JSON.stringify({id:key,quantity:Math.max(parseInt(quantity,10)||0,0)})}).then(readJson),setBusy=(scope,isBusy)=>{scope&&(scope.classList.toggle("is-loading",isBusy),scope.querySelectorAll("button, input").forEach(control=>{window.__fdCartCoordinator?window.__fdCartCoordinator.setControlBusy(control,isBusy):control.disabled=isBusy}))},cartErrorMessage=error=>error?typeof error.description=="string"?error.description:typeof error.message=="string"?error.message:"We could not update your cart. Please try again.":"We could not update your cart. Please try again.",updateCartCounts=cart=>{const count=cart&&typeof cart.item_count=="number"?cart.item_count:0;document.querySelectorAll("[data-fd-cart-count], .cart-link__bubble-num").forEach(node=>{node.textContent=count,node.hidden=count===0}),document.querySelectorAll(".fd-cart-dot, .cart-link__bubble").forEach(node=>{node.hidden=count===0,node.classList.toggle("cart-link__bubble--visible",count>0)})},renderMiniCart=cart=>{if(!miniCartContent||!cart)return;if(updateCartCounts(cart),!cart.item_count){miniCartContent.innerHTML=`
2        <div class="fd-cart-panel__empty">
3          <strong>Your cart is empty.</strong>
4          <p>Start with a paid Sample Book or browse custom window treatments.</p>
5        </div>
6        <nav>
7          <a href="/search?q=sample%20book&type=product">Browse Sample Books</a>
8          <a href="/collections/linen-curtains">Shop Drapery</a>
9          <a href="/collections/custom-roman-shades">Shop Roman Shades</a>
10          <a href="/collections/bamboo-roman-shade">Shop Bamboo Shades</a>
11        </nav>
12      `;return}
12const visibleItems=cart.items.slice(0,6),itemsMarkup=visibleItems.map(item=>{const title=escapeHtml(item.product_title||item.title),variant=item.variant_title&&item.variant_title!=="Default Title"?`<span>${escapeHtml(item.variant_title)}</span>`:"",image=item.image||item.featured_image&&item.featured_image.url||"",imageMarkup=image?`<img src="${escapeHtml(image)}" alt="${title}" width="80" height="80" loading="lazy">`:'<span class="fd-cart-panel__placeholder" aria-hidden="true"></span>';return`
13        <div class="fd-cart-panel__item" data-fd-cart-panel-item data-fd-cart-panel-key="${escapeHtml(item.key)}">
14          ${imageMarkup}
15          <div>
16            <a href="${escapeHtml(item.url||"/cart")}">${title}</a>
17            ${variant}
18            <div class="fd-cart-panel__qty">
19              <button type="button" data-fd-cart-panel-action="decrease" aria-label="Decrease ${title} quantity">-</button>
20              <input type="number" value="${item.quantity}" min="0" inputmode="numeric" data-fd-cart-panel-input aria-label="${title} quantity">
21              <button type="button" data-fd-cart-panel-action="increase" aria-label="Increase ${title} quantity">+</button>
22              <button class="fd-cart-panel__remove" type="button" data-fd-cart-panel-action="remove">Remove</button>
23            </div>
24            <strong>${formatMoney(item.final_line_price)}</strong>
25          </div>
26        </div>
27      `}).join(""),extraItems=cart.items.length>visibleItems.length?`<p class="fd-cart-panel__more">${cart.items.length-visibleItems.length} more item${cart.items.length-visibleItems.length>1?"s":""} in your cart.</p>`:"";miniCartContent.innerHTML=`
28      <div class="fd-cart-panel__items" data-fd-mini-cart-items>${itemsMarkup}</div>
29      ${extraItems}
30      <div class="fd-cart-panel__subtotal">
31        <span>Subtotal</span>
32        <strong data-fd-mini-cart-subtotal>${formatMoney(cart.total_price)}</strong>
33      </div>
34      <ul class="fd-cart-panel__assurance" aria-label="Checkout reassurance">
35        <li>Secure checkout</li>
36        <li>U.S./Canada shipping at checkout</li>
37        <li>Measuring help before ordering</li>
38      </ul>
39      <div class="fd-header-panel__actions">
40        <a class="fd-btn fd-btn--ghost" href="/cart">View Cart</a>
41        <a class="fd-btn" href="${escapeHtml(route("cartPage","/cart"))}">Review cart to checkout</a>
42      </div>
43      <p class="fd-cart-panel__notice">Worldwide shipping can be arranged. U.S./Canada standard rates are shown at checkout; contact us before ordering for other destinations. Physical street addresses only; P.O. boxes and military addresses cannot be fulfilled.</p>
44    `},updateCartPage=cart=>{const page=document.querySelector("[data-fd-cart-page]");if(!page||!cart)return;if(!cart.item_count){page.querySelector("[data-fd-cart-item]")&&window.location.reload();return}const byKey=new Map(cart.items.map(item=>[item.key,item]));page.querySelectorAll("[data-fd-cart-item]").forEach(itemNode=>{const item=byKey.get(itemNode.dataset.fdCartKey);if(!item){itemNode.remove();return}const input=itemNode.querySelector("[data-fd-cart-input]"),linePrice=itemNode.querySelector("[data-fd-cart-line-price]");input&&(input.value=item.quantity),linePrice&&(linePrice.innerHTML=formatMoney(item.final_line_price))});const subtotal=page.querySelector("[data-fd-cart-subtotal]");subtotal&&(subtotal.innerHTML=formatMoney(cart.total_price))},refreshCart=()=>getCart().then(cart=>(window.__fdCartSnapshot=cart,renderMiniCart(cart),updateCartPage(cart),document.dispatchEvent(new CustomEvent("cart:updated",{detail:{cart}})),cart)),updateCartQuantity=(key,quantity,scope)=>key?(setBusy(scope,!0),changeCartItem(key,quantity).then(cart=>(window.__fdCartSnapshot=cart,renderMiniCart(cart),updateCartPage(cart),document.dispatchEvent(new CustomEvent("cart:updated",{detail:{cart}})),cart)).catch(error=>{throw alert(cartErrorMessage(error)),error}).finally(()=>setBusy(scope,!1))):Promise.resolve(),focusableSelector='a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), summary, [tabindex]:not
44([tabindex="-1"])';let activePanel=null,activeToggle=null;const getFocusable=panel=>Array.from(panel.querySelectorAll(focusableSelector)).filter(node=>!node.hidden&&node.getClientRects().length>0),closePanels=({restoreFocus=!1}={})=>{const returnTarget=restoreFocus&&activeToggle&&activeToggle.isConnected?activeToggle:null;header.querySelectorAll(".fd-header-panel, .fd-mobile-menu").forEach(panel=>{panel.hidden=!0,panel.setAttribute("aria-hidden","true"),panel.setAttribute("inert","")}),header.querySelectorAll("[data-fd-toggle]").forEach(button=>{button.setAttribute("aria-expanded","false")}),document.body.classList.remove("fd-header-panel-open"),activePanel=null,activeToggle=null,returnTarget&&window.requestAnimationFrame(()=>returnTarget.focus({preventScroll:!0}))},openPanel=(panel,toggle=null)=>{closePanels(),panel.hidden=!1,panel.setAttribute("aria-hidden","false"),panel.removeAttribute("inert"),toggle&&toggle.setAttribute("aria-expanded","true"),activePanel=panel,activeToggle=toggle,panel.getAttribute("aria-modal")==="true"&&document.body.classList.add("fd-header-panel-open"),window.requestAnimationFrame(()=>{(panel.querySelector("[data-fd-close]")||getFocusable(panel)[0]||panel).focus({preventScroll:!0})})},handlePanelKeydown=event=>{if(!activePanel)return;if(event.key==="Escape"){event.preventDefault(),closePanels({restoreFocus:!0});return}if(event.key!=="Tab"||activePanel.getAttribute("aria-modal")!=="true")return;const focusable=getFocusable(activePanel);if(!focusable.length){event.preventDefault(),activePanel.focus({preventScroll:!0});return}const first=focusable[0],last=focusable[focusable.length-1];event.shiftKey&&document.activeElement===first?(event.preventDefault(),last.focus()):!event.shiftKey&&document.activeElement===last&&(event.preventDefault(),first.focus())},desktopNavigation=window.matchMedia("(min-width: 1200px)"),handleNavigationBreakpoint=event=>{event.matches&&activePanel&&activePanel.id==="FdMobileMenu"&&closePanels(),event.matches||header.querySelectorAll("[data-fd-mega-trigger]").forEach(trigger=>{trigger.setAttribute("aria-expanded","false");const item=trigger.closest(".fd-nav-item");item&&(item.removeAttribute("data-fd-mega-dismissed"),item.removeAttribute("data-fd-mega-open"))})};desktopNavigation.addEventListener?desktopNavigation.addEventListener("change",handleNavigationBreakpoint):desktopNavigation.addListener(handleNavigationBreakpoint);const desktopMegaTriggers=Array.from(header.querySelectorAll("[data-fd-mega-trigger]")),hydrateDesktopMegaImages=item=>{!item||item.dataset.fdMegaImagesHydrated==="true"||(item.querySelectorAll("img[data-fd-mega-image]").forEach(image=>{const srcset=image.getAttribute("data-srcset"),src=image.getAttribute("data-src");srcset&&image.setAttribute("srcset",srcset),src&&image.setAttribute("src",src),image.hidden=!1}),item.dataset.fdMegaImagesHydrated="true")},setDesktopMegaExpanded=(trigger,expanded)=>{if(!trigger)return;const item=trigger.closest(".fd-nav-item");expanded&&(hydrateDesktopMegaImages(item),desktopMegaTriggers.forEach(otherTrigger=>{if(otherTrigger===trigger)return;otherTrigger.setAttribute("aria-expanded","false");const otherItem=otherTrigger.closest(".fd-nav-item");otherItem&&otherItem.removeAttribute("data-fd-mega-open")})),trigger.setAttribute("aria-expanded",expanded?"true":"false"),item&&(expanded?item.setAttribute("data-fd-mega-open","true"):item.removeAttribute("data-fd-mega-open"))};desktopMegaTriggers.forEach(trigger=>{const item=trigger.closest(".fd-nav-item");item&&(item.addEventListener("pointerenter",()=>{desktopNavigation.matches&&(item.removeAttribute("data-fd-mega-dismissed"),setDesktopMegaExpanded(trigger,!0))}),item.addEventListener("pointerleave",()=>{!desktopNavigation.matches||item.contains(document.activeElement)||setDesktopMegaExpanded(trigger,!1)}),item.addEventListener("focusin",()=>{!desktopNavigation.matches||item.getAttribute("data-fd-mega-dismissed")==="true"||setDesktopMegaExpanded(trigger,!0)}),item.addEventListener("focusout",event=>{!desktopNavigation.matches||item.contains(event.relatedTarget)||(setDesktopMegaExpanded(trigger,!1),item.removeAttribute("data-fd-mega-dismissed"))}),item.addEventListener("keydown",event=>{if(!desktopNavigation.matches)return;if(event.key==="Escape"){event.preventDefault(),event.stopPropagation(),item.setAttribute("data-fd-mega-dismissed","true"),setDesktopMegaExpanded(trigger,!1),trigger.focus({preventScroll:!0});return}const isSupportTrigger=trigger.getAttribute("aria-controls")==="FdSupportMega",isKeyboardActivation=event.key==="Enter"||event.key===" "||event.key==="Spacebar";if(isSupportTrigger&&isKeyboardActivation&&event.target===trigger){const firstMegaLink=item.querySelector(".fd-mega a[href]");if(!firstMegaLink)return;event.preventDefault(),item.removeAttribute("data-fd-mega-dismissed"),setDesktopMegaExpanded(trigger,!0),firstMegaLink.focus({preventScroll:!0});return}if(event.key==="ArrowDown"&&event.target===trigger){const firstMegaLink=item.querySelector(".fd-mega a[href]");if(!firstMegaLink)return;event.preventDefault(),item.removeAttribute("data-fd-mega-dismissed"),setDesktopMegaExpanded(trigger,!0),firstMegaLink.focus({preventScroll:!0})}}))}),header.setAttribute("data-fd-mega-ready","true");const mobileAccordionGroups=Array.from(header.querySelectorAll("#FdMobileMenu details.fd-mobile-menu__group"));mobileAccordionGroups.forEach(group=>{const summary=group.querySelector("summary");summary&&summary.setAttribute("aria-expanded",group.open?"true":"false"),group.addEventListener("toggle",()=>{summary&&summary.setAttribute("aria-expanded",group.open?"true":"false"),group.open&&mobileAccordionGroups.forEach(otherGroup=>{otherGroup!==group&&otherGroup.open&&(otherGroup.open=!1)})})});const openCartPanel=()=>{const panel=document.getElementById("FdCartPanel");
44if(!panel)return;const toggle=header.querySelector('[aria-controls="FdCartPanel"]');openPanel(panel,toggle),header.querySelectorAll('[aria-controls="FdCartPanel"]').forEach(button=>{button.setAttribute("aria-expanded","true")})};header.addEventListener("click",event=>{const target=event.target&&event.target.closest?event.target:null;if(!target)return;const panelAction=target.closest("[data-fd-cart-panel-action]");if(panelAction){event.preventDefault();const item=panelAction.closest("[data-fd-cart-panel-item]"),input=item?item.querySelector("[data-fd-cart-panel-input]"):null,currentQuantity=input&&parseInt(input.value,10)||0,action=panelAction.dataset.fdCartPanelAction,nextQuantity=action==="increase"?currentQuantity+1:action==="decrease"?Math.max(currentQuantity-1,0):0;updateCartQuantity(item&&item.dataset.fdCartPanelKey,nextQuantity,item).catch(()=>refreshCart().catch(()=>{}));return}const toggle=target.closest("[data-fd-toggle]");if(target.closest("[data-fd-close]")){closePanels({restoreFocus:!0});return}if(target.matches(".fd-mobile-menu:not([hidden])")){closePanels({restoreFocus:!0});return}if(target.closest("#FdMobileMenu a[href]")){closePanels({restoreFocus:!0});return}if(!toggle)return;event.preventDefault();const targetId=toggle.getAttribute("aria-controls")||`Fd${toggle.dataset.fdToggle}`,panel=document.getElementById(targetId);if(!panel)return;const willOpen=panel.hidden;willOpen?(targetId==="FdMobileMenu"&&hydrateDesktopMegaImages(panel),openPanel(panel,toggle)):closePanels({restoreFocus:!0}),willOpen&&targetId==="FdCartPanel"&&refreshCart().catch(()=>{})}),header.addEventListener("change",event=>{const input=event.target&&event.target.closest?event.target.closest("[data-fd-cart-panel-input]"):null;if(!input)return;const item=input.closest("[data-fd-cart-panel-item]");updateCartQuantity(item&&item.dataset.fdCartPanelKey,input.value,item).catch(()=>refreshCart().catch(()=>{}))}),document.addEventListener("click",event=>{const actionButton=event.target&&event.target.closest?event.target.closest("[data-fd-cart-action]"):null;if(!actionButton)return;const item=actionButton.closest("[data-fd-cart-item]");if(!item)return;event.preventDefault();const input=item.querySelector("[data-fd-cart-input]"),currentQuantity=input&&parseInt(input.value,10)||0,action=actionButton.dataset.fdCartAction,nextQuantity=action==="increase"?currentQuantity+1:action==="decrease"?Math.max(currentQuantity-1,0):0;updateCartQuantity(item.dataset.fdCartKey,nextQuantity,item).catch(()=>refreshCart().catch(()=>{}))}),document.addEventListener("change",event=>{const input=event.target&&event.target.closest?event.target.closest("[data-fd-cart-input]"):null;if(!input)return;const item=input.closest("[data-fd-cart-item]");item&&updateCartQuantity(item.dataset.fdCartKey,input.value,item).catch(()=>refreshCart().catch(()=>{}))}),document.addEventListener("keydown",handlePanelKeydown),document.addEventListener("click",event=>{header.contains(event.target)||closePanels()}),(document.querySelector("[data-fd-cart-page]")||/^\/cart\/?$/.test(window.location.pathname))&&refreshCart().catch(()=>{})})(),(function(){const replacements=[[/business days \./g,"business days."],[/support@fredesigner\.com \./g,"[email protected]."],[/\?Beautifully Customized!/g,"Beautifully Customized!"],[/\?Good quality/g,"Good quality"]],cleanTextNode=node=>{let nextValue=node.nodeValue;replacements.forEach(([pattern,value])=>{nextValue=nextValue.replace(pattern,value)}),nextValue!==node.nodeValue&&(node.nodeValue=nextValue)},cleanVisibleText=root=>{if(!root||root.nodeType!==Node.ELEMENT_NODE||root.matches("script, style, textarea, input"))return;const walker=document.createTreeWalker(root,NodeFilter.SHOW_TEXT,{acceptNode(node){return node.nodeValue&&node.nodeValue.trim()?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT}}),nodes=[];for(;walker.nextNode();)nodes.push(walker.currentNode);nodes.forEach(cleanTextNode)},runTextCleanup=()=>cleanVisibleText(document.body);document.readyState==="loading"?document.addEventListener("DOMContentLoaded",runTextCleanup,{once:!0}):runTextCleanup()})(),(function(){const lazyVideos=Array.from(document.querySelectorAll("[data-fd-lazy-footer-video]"));if(!lazyVideos.length)return;const pauseOtherVideos=activeVideo=>{lazyVideos.forEach(video=>{video!==activeVideo&&video.pause()})},playWhenReady=video=>
44{const playPromise=video.play();playPromise&&typeof playPromise.catch=="function"&&playPromise.catch(()=>{})},loadPoster=video=>{if(!video||video.dataset.fdPosterLoaded==="true")return;const poster=video.dataset.fdVideoPoster;poster&&(video.poster=poster,video.dataset.fdPosterLoaded="true")},loadVideo=video=>{if(!video||video.dataset.fdVideoLoaded==="true")return;const src=video.dataset.fdVideoSrc;if(!src)return;const source=document.createElement("source");source.src=src,source.type="video/mp4",video.append(source),video.dataset.fdVideoLoaded="true",video.preload="metadata",video.load()},previewVideo=video=>{if(video){if(pauseOtherVideos(video),loadVideo(video),video.readyState>=2){playWhenReady(video);return}video.addEventListener("canplay",()=>playWhenReady(video),{once:!0})}};if(lazyVideos.forEach(video=>{const media=video.closest(".fd-footer-reel-card__media")||video,onIntent=()=>{loadPoster(video),previewVideo(video)};media.addEventListener("pointerenter",onIntent,{passive:!0}),media.addEventListener("touchstart",onIntent,{passive:!0}),media.addEventListener("focusin",onIntent)}),"IntersectionObserver"in window){const loadNearbyPosters=new IntersectionObserver((entries,observer)=>{entries.forEach(entry=>{entry.isIntersecting&&(loadPoster(entry.target),observer.unobserve(entry.target))})},{rootMargin:"300px 0px"}),pauseWhenAway=new IntersectionObserver(entries=>{entries.forEach(entry=>{entry.isIntersecting||entry.target.pause()})},{rootMargin:"120px 0px"});lazyVideos.forEach(video=>{loadNearbyPosters.observe(video),pauseWhenAway.observe(video)})}else lazyVideos[0]&&loadPoster(lazyVideos[0])})(),(function(){const initOfferWidget=()=>{if(window.__fdOfferWidgetReady)return;const widget=document.querySelector("[data-fd-offer-widget]"),modal=document.querySelector("[data-fd-offer-modal]");if(!widget||!modal)return;window.__fdOfferWidgetReady=!0;const dismissedKey="fdOfferWidgetDismissed",openButtons=document.querySelectorAll("[data-fd-offer-open]"),closeButtons=document.querySelectorAll("[data-fd-offer-close]"),dismissButtons=document.querySelectorAll("[data-fd-offer-dismiss]"),feedback=modal.querySelector("[data-fd-offer-feedback]"),setModalOpen=isOpen=>{if(modal.hidden=!isOpen,modal.setAttribute("aria-hidden",isOpen?"false":"true"),document.body.classList.toggle("fd-offer-modal-open",isOpen),isOpen){const closeButton=modal.querySelector("[data-fd-offer-close]");closeButton&&closeButton.focus({preventScroll:!0})}},sessionStorageReady=(()=>{try{const key="__fd_offer_test__";return window.sessionStorage.setItem(key,"1"),window.sessionStorage.removeItem(key),!0}catch{return!1}})();sessionStorageReady&&window.sessionStorage.getItem(dismissedKey)==="true"&&(widget.hidden=!0),openButtons.forEach(button=>{button.addEventListener("click",()=>setModalOpen(!0))}),closeButtons.forEach(button=>{button.addEventListener("click",()=>setModalOpen(!1))}),dismissButtons.forEach(button=>{button.addEventListener("click",()=>{widget.hidden=!0,sessionStorageReady&&window.sessionStorage.setItem(dismissedKey,"true"),setModalOpen(!1)})}),modal.addEventListener("click",event=>{event.target===modal&&setModalOpen(!1)}),document.addEventListener("keydown",event=>{event.key==="Escape"&&!modal.hidden&&setModalOpen(!1)}),document.addEventListener("click",event=>{const copyButton=event.target&&event.target.closest?event.target.closest("[data-fd-copy]"):null;if(!copyButton)return;const code=copyButton.dataset.fdCopy||"",originalLabel=copyButton.dataset.fdCopyLabel||(copyButton.textContent||"").trim(),originalHtml=copyButton.innerHTML,setCopied=()=>{copyButton.textContent="Copied",window.setTimeout(()=>{originalLabel?copyButton.textContent=originalLabel:copyButton.innerHTML=originalHtml},1400)};if(navigator.clipboard&&navigator.clipboard.writeText){navigator.clipboard.writeText(code).then(setCopied).catch(()=>{window.prompt("Copy discount code",code)});return}window.prompt("Copy discount code",code)}),feedback&&setModalOpen(!0)};document.readyState==="loading"?document.addEventListener("DOMContentLoaded",initOfferWidget,{once:!0}):initOfferWidget()})();
45//# sourceMappingURL=/cdn/shop/t/75/assets/fd-global-twopages.js.map?v=166036210182062920771789885926

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.