1<!doctype html> 2<!--[if lt IE 7 ]> <html class="ie ie6" lang="en"> <![endif]--> 3<!--[if IE 7 ]> <html class="ie ie7" lang="en"> <![endif]--> 4<!--[if IE 8 ]> <html class="ie ie8" lang="en"> <![endif]--> 5<!--[if IE 9 ]> <html class="ie ie9" lang="en"> <![endif]--> 6<!-- [if (gte IE 10)|!(IE)]><! --> 7<html lang="en"> 8 <!-- <![endif] --> 9 <head> 10 <!-- Google Tag Manager --> 11
11<script>
vendor: 358 bytes, lines 11-16
11 12 (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 13 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 14 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 15 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 16 })(window,document,'script','dataLayer','
16GTM-MLSBP48
vendor: 8 bytes, lines 16-17
16'); 17
17</script>
17 18 <!-- End Google Tag Manager --> 19 <!-- Google tag (gtag.js) -->
vendor: 68 bytes, lines 19-20
19 20 <script async src="https://www.googletagmanager.com/gtag/js?id=
20UA-115557542-1
vendor: 16 bytes, lines 20-21
20"></script> 21
21<script> 22
vendor: 146 bytes, lines 22-26
22window.dataLayer = window.dataLayer || []; 23 function gtag(){dataLayer.push(arguments);} 24 gtag('js', new Date()); 25 26 gtag('config', '
26UA-115557542-1
vendor: 8 bytes, lines 26-27
26'); 27
27</script>
27 28 <meta charset="utf-8"> 29 <meta http-equiv="cleartype" content="on"> 30 <meta name="robots" content="index,follow"> 31 32 33 <title> 34 Store Locator - Wee Forest Folk 35 </title> 36 37 38 39 <!-- Custom Fonts --> 40 41 <link 42 href="//fonts.googleapis.com/css?family=.|Open+Sans+Condensed:light,normal,bold|Open+Sans+Condensed:light,normal,bold|PT+Sans+Narrow:light,normal,bold|Raleway:light,normal,bold|Raleway:light,normal,bold" 43 rel="stylesheet" 44 type="text/css" 45 > 46 47 48 49 50<meta name="author" content="Wee Forest Folk"> 51<meta property="og:url" content="https://www.weeforestfolk.com/pages/store-locator"> 52<meta property="og:site_name" content="Wee Forest Folk"> 53 54 55 <meta property="og:type" content="article"> 56 <meta property="og:title" content="Store Locator"> 57 58 59 60 61 62 63 64 65 66<meta name="twitter:card" content="summary_large_image"> 67 68 69 70 71 72 <!-- Mobile Specific Metas --> 73 <meta name="HandheldFriendly" content="True"> 74 <meta name="MobileOptimized" content="320"> 75 <meta name="viewport" content="width=device-width,initial-scale=1"> 76 <meta name="theme-color" content="#ffffff"> 77 <meta name="google-site-verification" content="oO9wNnefEu6KHSHzPZSlpBiHXMPrpVpNtI5YmgUkLRo"> 78 <!-- Stylesheets for Responsive 6.1.7 --> 79 <link href="//www.weeforestfolk.com/cdn/shop/t/9/assets/styles.scss.css?v=65747947479586084251789497090" rel="stylesheet" type="text/css" media="all" /> 80 81 <!-- Icons --> 82 83 <link rel="shortcut icon" type="image/x-icon" href="//www.weeforestfolk.com/cdn/shop/files/favicon_small.png?v=1613733598"> 84 85 <link rel="canonical" href="https://www.weeforestfolk.com/pages/store-locator"> 86 87 88 89
89<script src="//www.weeforestfolk.com/cdn/shop/t/9/assets/app.js?v=16770124246154569111599870217" type="text/javascript"></script>
89 90
90<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
90<meta name="google-site-verification" content="oO9wNnefEu6KHSHzPZSlpBiHXMPrpVpNtI5YmgUkLRo"> 91<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/18912115/digital_wallets/dialog"> 92<meta id="in-context-paypal-metadata" data-shop-id="18912115" data-venmo-supported="false" data-environment="production" data-locale="en_US" data-paypal-v4="true" data-currency="USD"> 93<link rel="ucp" href="/.well-known/ucp" version="2026-08-25">
93<script async="async" src="/checkouts/internal/preloads.js?locale=en-US"></script>
93 94<link rel="preconnect" href="https://shop.app" crossorigin="anonymous">
95<script async="async" src="https://shop.app/checkouts/internal/preloads.js?locale=en-US&shop_id=18912115" crossorigin="anonymous"></script>
vendor: 1 bytes, line 95
95
96<script id="apple-pay-shop-capabilities" type="application/json">{"shopId":18912115,"countryCode":"US","currencyCode":"USD","merchantCapabilities":["supports3DS"],"merchantId":"gid:\/\/shopify\/Shop\/18912115","merchantName":"Wee Forest Folk","requiredBillingContactFields":["postalAddress","email"],"requiredShippingContactFields":["postalAddress","email"],"shippingType":"shipping","supportedNetworks":["visa","masterCard","amex","discover","elo","jcb"],"total":{"type":"pending","label":"Wee Forest Folk","amount":"1.00"},"shopifyPaymentsEnabled":true,"supportsSubscriptions":true}</script>
vendor: 1 bytes, line 96
96
97<script id="shopify-features" type="application/json">{"accessToken":"35e3d6aaa9c397a36eb3bcc7ed8fd5aa","betas":["rich-media-storefront-analytics"],"domain":"www.weeforestfolk.com","predictiveSearch":true,"shopId":18912115,"locale":"en"}</script>
vendor: 1 bytes, line 97
97
98<script>var Shopify = Shopify || {}; 99Shopify.shop = "wee-forest-folk.myshopify.com"; 100Shopify.locale = "en"; 101Shopify.currency = {"active":"USD","rate":"1.0"}; 102Shopify.country = "US"; 103Shopify.theme = {"name":"Responsive - Wholesale [Afterpay 9\/11\/20]","id":83198509118,"schema_name":"Responsive","schema_version":"6.1.7","theme_store_id":304,"role":"main"}; 104Shopify.theme.handle = "null"; 105Shopify.theme.style = {"id":null,"handle":null}; 106Shopify.cdnHost = "www.weeforestfolk.com/cdn"; 107Shopify.routes = Shopify.routes || {}; 108Shopify.routes.root = "/"; 109Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js"; 110Shopify.SignInWithShop = Shopify.SignInWithShop || {}; 111Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {}; 112Shopify.SignInWithShop.User.recognized = false;</script>
vendor: 1 bytes, line 112
112
113<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
vendor: 1 bytes, line 113
113
114<script>!function(o){function n(){var o=[];function n(){o.push(Array.prototype.slice.apply(arguments))}return n.q=o,n}var t=o.Shopify=o.Shopify||{};t.loadFeatures=n(),t.autoloadFeatures=n()}(window);</script>
vendor: 1 bytes, line 114
114
115<script> 116 window.ShopifyPay = window.ShopifyPay || {}; 117 window.ShopifyPay.apiHost = "shop.app\/pay"; 118 window.ShopifyPay.redirectState = null; 119</script>
vendor: 1 bytes, line 119
119
120<script> 121 window.Shopify = window.Shopify || {}; 122 window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {}; 123 window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 }; 124 window.Shopify.SignInWithShop.eligible = true; 125</script>
vendor: 1 bytes, line 125
125
126<script id="shop-js-analytics" type="application/json">{"pageType":"page"}</script>
vendor: 1 bytes, line 126
126
127<script defer="defer" async type="module" src="https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js"></script>
vendor: 1 bytes, line 127
127
128<script type="module"> 129 await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js"); 130 131 window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true}); 132 133</script>
vendor: 1 bytes, line 133
133
134<script> 135 window.Shopify = window.Shopify || {}; 136 if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {}; 137 window.Shopify.featureAssets['shop-js'] = {"avatar":["modules/v2/loader.avatar.en.esm.js"],"checkout-modal":["modules/v2/loader.checkout-modal.en.esm.js"],"init-customer-accounts-sign-up":["modules/v2/loader.init-customer-accounts-sign-up.en.esm.js"],"init-customer-accounts":["modules/v2/loader.init-customer-accounts.en.esm.js"],"init-fed-cm":["modules/v2/loader.init-fed-cm.en.esm.js"],"init-shop-cart-sync":["modules/v2/loader.init-shop-cart-sync.en.esm.js"],"init-shop-email-lookup-coordinator":["modules/v2/loader.init-shop-email-lookup-coordinator.en.esm.js"],"init-shop-for-new-customer-accounts":["modules/v2/loader.init-shop-for-new-customer-accounts.en.esm.js"],"init-shop-user-recognition":["modules/v2/loader.init-shop-user-recognition.en.esm.js"],"init-windoid":["modules/v2/loader.init-windoid.en.esm.js"],"lead-capture":["modules/v2/loader.lead-capture.en.esm.js"],"listener":["modules/v2/loader.listener.en.esm.js"],"pay-button":["modules/v2/loader.pay-button.en.esm.js"],"payment-terms":["modules/v2/loader.payment-terms.en.esm.js"],"shop-button":["modules/v2/loader.shop-button.en.esm.js"],"shop-cart-sync":["modules/v2/loader.shop-cart-sync.en.esm.js"],"shop-cash-offers":["modules/v2/loader.shop-cash-offers.en.esm.js"],"shop-follow-button":["modules/v2/loader.shop-follow-button.en.esm.js"],"shop-login-button":["modules/v2/loader.shop-login-button.en.esm.js"],"shop-login":["modules/v2/loader.shop-login.en.esm.js"],"shop-toast-manager":["modules/v2/loader.shop-toast-manager.en.esm.js"],"shop-user-recognition":["modules/v2/loader.shop-user-recognition.en.esm.js"]}; 138</script>
vendor: 1 bytes, line 138
138
139<script>(function() { 140 var isLoaded = false; 141 function asyncLoad() { 142 if (isLoaded) return; 143 isLoaded = true; 144 var urls = ["\/\/static.zotabox.com\/e\/1\/e1356a36c0c98e05f2e70f3181ab4f9a\/widgets.js?shop=wee-forest-folk.myshopify.com","https:\/\/nulls.solutions\/shopify\/gift-wrap\/app\/js\/nulls-gift-wrap.js?shop=wee-forest-folk.myshopify.com","\/\/cdn.shopify.com\/proxy\/a2a89bd7b7ffc0d10f5ded35c2ce3af9f9db9fd6ffe5ad74eaa2433864453ab2\/bingshoppingtool-t2app-prod.trafficmanager.net\/uet\/tracking_script?shop=wee-forest-folk.myshopify.com\u0026sp-cache-control=cHVibGljLCBtYXgtYWdlPTkwMA","https:\/\/cdn.roseperl.com\/storelocator-prod\/stockist-form\/wee-forest-folk-1750222951.js?shop=wee-forest-folk.myshopify.com","https:\/\/cdn.roseperl.com\/storelocator-prod\/setting\/wee-forest-folk-1780511271.js?shop=wee-forest-folk.myshopify.com","https:\/\/cdn.roseperl.com\/storelocator-prod\/wtb\/wee-forest-folk-1780511272.js?shop=wee-forest-folk.myshopify.com","https:\/\/cdn.roseperl.com\/storelocator-prod\/fo\/wee-forest-folk-1780511272.js?shop=wee-forest-folk.myshopify.com"]; 145 for (var i = 0; i < urls.length; i++) { 146 var s = document.createElement('script'); 147 s.type = 'text/javascript'; 148 s.async = true; 149 s.src = urls[i]; 150 var x = document.getElementsByTagName('script')[0]; 151 x.parentNode.insertBefore(s, x); 152 } 153 }; 154 if(window.attachEvent) { 155 window.attachEvent('onload', asyncLoad); 156 } else { 157 window.addEventListener('load', asyncLoad, false); 158 } 159})();</script>
vendor: 1 bytes, line 159
159
160<script id="__st">var __st={"a":18912115,"offset":-14400,"reqid":"fb457692-5a69-4c23-af4b-5605bfc0db42-1790432666","pageurl":"www.weeforestfolk.com\/pages\/store-locator","s":"pages-263595087","u":"8458983bfd4b","p":"page","rtyp":"page","rid":263595087};</script>
vendor: 1 bytes, line 160
160
161<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
vendor: 1 bytes, line 161
161
162<script id="captcha-bootstrap">!function(){'use strict';const t='contact',e='account',n='new_comment',o=[[t,t],['blogs',n],['comments',n],[t,'customer']],c=[[e,'customer_login'],[e,'guest_login'],[e,'recover_customer_password'],[e,'create_customer']],r=t=>t.map((([t,e])=>`form[action*='/${t}']:not([data-nocaptcha='true']) input[name='form_type'][value='${e}']`)).join(','),a=t=>()=>t?[...document.querySelectorAll(t)].map((t=>t.form)):[];function s(){const t=[...o],e=r(t);return a(e)}const i='password',u='form_key',d=['recaptcha-v3-token','g-recaptcha-response','h-captcha-response',i],f=()=>{try{return window.sessionStorage}catch{return}},m='__shopify_v',_=t=>t.elements[u];function p(t,e,n=!1){try{const o=window.sessionStorage,c=JSON.parse(o.getItem(e)),{data:r}=function(t){const{data:e,action:n}=t;return t[m]||n?{data:e,action:n}:{data:t,action:n}}(c);for(const[e,n]of Object.entries(r))t.elements[e]&&(t.elements[e].value=n);n&&o.removeItem(e)}catch(o){console.error('form repopulation failed',{error:o})}}const l='form_type',E='cptcha';function T(t){t.dataset[E]=!0}const w=window,h=w.document,L='Shopify',v='ce_forms',y='captcha';let A=!1;((t,e)=>{const n=(g='f06e6c50-85a8-45c8-87d0-21a2b65856fe',I='https://cdn.shopify.com/shopifycloud/storefront-forms-hcaptcha/ce_storefront_forms_captcha_hcaptcha.v1.5.3.iife.js',D={infoText:'Protected by hCaptcha',privacyText:'Privacy',termsText:'Terms'},(t,e,n)=>{const o=w[L][v],c=o.bindForm;if(c)return c(t,g,e,D).then(n);var r;o.q.push([[t,g,e,D],n]),r=I,A||(h.body.append(Object.assign(h.createElement('script'),{id:'captcha-provider',async:!0,src:r})),A=!0)});var g,I,D;w[L]=w[L]||{},w[L][v]=w[L][v]||{},w[L][v].q=[],w[L][y]=w[L][y]||{},w[L][y].protect=function(t,e){n(t,void 0,e),T(t)},Object.freeze(w[L][y]),function(t,e,n,w,h,L){const[v,y,A,g]=function(t,e,n){const i=e?o:[],u=t?c:[],d=[...i,...u],f=r(d),m=r(i),_=r(d.filter((([t,e])=>n.includes(e))));return[a(f),a(m),a(_),s()]}(w,h,L),I=t=>{const e=t.target;return e instanceof HTMLFormElement?e:e&&e.form},D=t=>v().includes(t);t.addEventListener('submit',(t=>{const e=I(t);if(!e)return;const n=D(e)&&!e.dataset.hcaptchaBound&&!e.dataset.recaptchaBound,o=_(e),c=g().includes(e)&&(!o||!o.value);(n||c)&&t.preventDefault(),c&&!n&&(function(t){try{if(!f())return;!function(t){const e=f();if(!e)return;const n=_(t);if(!n)return;const o=n.value;o&&e.removeItem(o)}(t);const e=Array.from(Array(32),(()=>Math.random().toString(36)[2])).join('');!function(t,e){_(t)||t.append(Object.assign(document.createElement('input'),{type:'hidden',name:u})),t.elements[u].value=e}(t,e),function(t,e){const n=f();if(!n)return;const o=[...t.querySelectorAll(`input[type='${i}']`)].map((({name:t})=>t)),c=[...d,...o],r={};for(const[a,s]of new FormData(t).entries())c.includes(a)||(r[a]=s);n.setItem(e,JSON.stringify({[m]:1,action:t.action,data:r}))}(t,e)}catch(e){console.error('failed to persist form',e)}}(e),e.submit())}));const S=(t,e)=>{t&&!t.dataset[E]&&(n(t,e.some((e=>e===t))),T(t))};for(const o of['focusin','change'])t.addEventListener(o,(t=>{const e=I(t);D(e)&&S(e,y())}));const B=e.get('form_key'),M=e.get(l),P=B&&M;t.addEventListener('DOMContentLoaded',(()=>{const t=y();if(P)for(const e of t)e.elements[l].value===M&&p(e,B);[...new Set([...A(),...v().filter((t=>'true'===t.dataset.shopifyCaptcha))])].forEach((e=>S(e,t)))}))}(h,new URLSearchParams(w.location.search),n,t,e,['guest_login'])})(!0,!0)}();</script>
vendor: 1 bytes, line 162
162
163<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//www.weeforestfolk.com/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
vendor: 1 bytes, line 163
163
164<script>(function () {var userAgent = navigator.userAgent;var platform = navigator.platform;var maxTouchPoints = navigator.maxTouchPoints || 0;var isIOS = /iPad|iPhone|iPod/.test(platform) || (platform === 'MacIntel' && maxTouchPoints > 1);var isMacSafari = platform.indexOf('Mac') === 0 && /Safari/.test(userAgent) && !/Chrome|Chromium|CriOS|FxiOS|Edg|OPR|Android/.test(userAgent);var isAppleSafari = isIOS || isMacSafari;if (isAppleSafari) {fetch('/sf_private_access_tokens' + location.search).catch(function () {});}function browserMajorVersion(pattern) {var match = userAgent.match(pattern);return match ? parseInt(match[1], 10) : null;}function shouldLoadAutosizesPolyfill() {if (!window.PerformanceObserver?.supportedEntryTypes?.includes('paint')) {return false;}var chromeVersion = browserMajorVersion(/Chrome\/(\d+)/);if (chromeVersion !== null) {return chromeVersion < 126;}var firefoxVersion = browserMajorVersion(/Firefox\/(\d+)/);if (firefoxVersion !== null) {return firefoxVersion < 150;}var safariVersion = isAppleSafari ? browserMajorVersion(/Version\/(\d+).*Safari\//) : null;if (safariVersion !== null) {return safariVersion < 27;}return true;}if (shouldLoadAutosizesPolyfill()) {var autosizesScript = document.createElement('script');autosizesScript.async = true;autosizesScript.crossOrigin = 'anonymous';autosizesScript.src = "//www.weeforestfolk.com/cdn/shopifycloud/storefront/assets/storefront/autosizes-84416378.js";(document.head || document.documentElement).appendChild(autosizesScript);}window.ShopifyAnalytics = window.ShopifyAnalytics || {};window.ShopifyAnalytics.performance = window.ShopifyAnalytics.performance || {};(function () {var LONG_FRAME_THRESHOLD = 50;var longAnimationFrames = [];var activeRafId = null;function collectLongFrames() {var previousTime = null;function rafMonitor(now) {if (activeRafId === null) {return;}var delta = now - previousTime;if (delta > LONG_FRAME_THRESHOLD) {longAnimationFrames.push({startTime: previousTime,endTime: now,});}previousTime = now;activeRafId = requestAnimationFrame(rafMonitor);}previousTime = performance.now();activeRafId = requestAnimationFrame(rafMonitor);}if (!window.PerformanceObserver?.supportedEntryTypes?.includes('long-animation-frame')) {collectLongFrames();var timeoutId = setTimeout(function () {cancelAnimationFrame(activeRafId);}, 10000);window.ShopifyAnalytics.performance.getLongAnimationFrames = function (stopCollection) {if (stopCollection === undefined) {stopCollection = false;}if (stopCollection) {clearTimeout(timeoutId);cancelAnimationFrame(activeRafId);}return longAnimationFrames;};}})();})();</script>
164<script crossorigin="anonymous" defer="defer" src="//www.weeforestfolk.com/cdn/shopifycloud/storefront/assets/shopify_pay/storefront-616277c7.js?v=20250812"></script>
vendor: 1 bytes, line 164
164
165<script id="shopify-origin-trials" async="async" integrity="sha256-qJbe/jEZBHtr5W/BlA2cKAz3vkXu6vJQyLjgvgCC86g=" src="//cdn.shopify.com/shopifycloud/storefront/assets/storefront/origin_trials-318ab40a.js" crossorigin="anonymous" onload="window.__shopifyOriginTrialsDone = true" onerror="window.__shopifyOriginTrialsDone = true"></script>
vendor: 1 bytes, line 165
165
166<script> 167 window.Shopify = window.Shopify || {}; 168 window.Shopify.MCP = window.Shopify.MCP || {}; 169 window.Shopify.MCP.enabled = true; 170 window.Shopify.MCP.shop = "wee-forest-folk.myshopify.com"; 171 window.Shopify.MCP.mcpEndpoint = "https:\/\/www.weeforestfolk.com\/api\/mcp"; 172 window.Shopify.MCP.tools = [{"name":"search_shop_policies_and_faqs","description":"Used to get facts about the stores policies, products, or services.\nSome examples of questions you can ask are:\n - What is your return policy?\n - What is your shipping policy?\n - What is your phone number?\n - What are your hours of operation?\"\n","inputSchema":{"$schema":"https:\/\/json-schema.org\/draft\/2020-12\/schema","type":"object","properties":{"query":{"type":"string","description":"A natural language query."},"context":{"type":"string","description":"Additional information about the request such as user demographics, mood, location, or other relevant details that could help in tailoring the response appropriately."}},"required":["query"]}}]; 173</script>
vendor: 1 bytes, line 173
173
174<script>(()=>{var d="shopify:webmcp_adapter_loaded",n=Symbol.for("shopify.webmcp_adapter_loading");function s(c,a,{win:r=window,doc:o=document}={}){function p(){try{return r.localStorage.getItem(d)==="true"}catch{return!1}}function l(){try{r.localStorage.setItem(d,"true")}catch{}}function u(){return typeof(o.modelContext||r.navigator?.modelContext)?.registerTool=="function"}function f(){if(r[n]||!u())return;let t=o.head||o.getElementsByTagName("head")[0];if(!t)return;let e=o.createElement("script");e.type="module",e.crossOrigin="anonymous",a&&(e.integrity=a),e.src=c,e.addEventListener("load",l,{once:!0}),e.addEventListener("error",()=>{r[n]=!1},{once:!0}),t.appendChild(e),r[n]=!0}function _(t){let e=o.getElementById("shopify-origin-trials");if(!e||r.__shopifyOriginTrialsDone){t();return}e.addEventListener("load",t,{once:!0}),e.addEventListener("error",t,{once:!0})}function i(){_(()=>r.setTimeout(f,0))}function m(){o.addEventListener("DOMContentLoaded",i,{once:!0})}p()?i():m()}s("\/\/www.weeforestfolk.com\/cdn\/shopifycloud\/storefront\/assets\/storefront\/webmcp-c6b62ece.js","sha256-ke4DDuBjdvea3vxLWxHc9E9nq8zihuG4IfYEGbb77ys=");})(); 175</script>
vendor: 1 bytes, line 175
175
176<script data-source-attribution="shopify.dynamic_checkout.dynamic.init">var Shopify=Shopify||{};Shopify.PaymentButton=Shopify.PaymentButton||{isStorefrontPortableWallets:!0,init:function(){window.Shopify.PaymentButton.init=function(){};var t=document.createElement("script");t.src="https://www.weeforestfolk.com/cdn/shopifycloud/portable-wallets/latest/portable-wallets.en.js",t.type="module",document.head.appendChild(t)}}; 177</script>
vendor: 1 bytes, line 177
177
178<script data-source-attribution="shopify.dynamic_checkout.buyer_consent"> 179 function portableWalletsHideBuyerConsent(e){var t=document.getElementById("shopify-buyer-consent"),n=document.getElementById("shopify-subscription-policy-button");t&&n&&(t.classList.add("hidden"),t.setAttribute("aria-hidden","true"),n.removeEventListener("click",e))}function portableWalletsShowBuyerConsent(e){var t=document.getElementById("shopify-buyer-consent"),n=document.getElementById("shopify-subscription-policy-button");t&&n&&(t.classList.remove("hidden"),t.removeAttribute("aria-hidden"),n.addEventListener("click",e))}window.Shopify?.PaymentButton&&(window.Shopify.PaymentButton.hideBuyerConsent=portableWalletsHideBuyerConsent,window.Shopify.PaymentButton.showBuyerConsent=portableWalletsShowBuyerConsent); 180</script>
vendor: 1 bytes, line 180
180
181<script data-source-attribution="shopify.dynamic_checkout.cart.bootstrap">document.addEventListener("DOMContentLoaded",(function(){function t(){return document.querySelector("shopify-accelerated-checkout-cart, shopify-accelerated-checkout")}if(t())Shopify.PaymentButton.init();else{new MutationObserver((function(e,n){t()&&(Shopify.PaymentButton.init(),n.disconnect())})).observe(document.body,{childList:!0,subtree:!0})}})); 182</script>
vendor: 1 bytes, line 182
182
183<script id='scb4127' type='text/javascript' async='' src='https://www.weeforestfolk.com/cdn/shopifycloud/privacy-banner/storefront-banner.js'></script>
183<link id="shopify-accelerated-checkout-styles" rel="stylesheet" media="screen" href="https://www.weeforestfolk.com/cdn/shopifycloud/portable-wallets/latest/accelerated-checkout-backwards-compat.css" crossorigin="anonymous"> 184<style id="shopify-accelerated-checkout-cart"> 185 #shopify-buyer-consent { 186 margin-top: 1em; 187 display: inline-block; 188 width: 100%; 189} 190 191#shopify-buyer-consent.hidden { 192 display: none; 193} 194 195#shopify-subscription-policy-button { 196 background: none; 197 border: none; 198 padding: 0; 199 text-decoration: underline; 200 font-size: inherit; 201 cursor: pointer; 202} 203 204#shopify-subscription-policy-button::before { 205 box-shadow: none; 206} 207 208 </style> 209
210<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
vendor: 1 bytes, line 210
210
211<script>window.BOLD = window.BOLD || {}; 212 window.BOLD.common = window.BOLD.common || {}; 213 window.BOLD.common.Shopify = window.BOLD.common.Shopify || {}; 214 window.BOLD.common.Shopify.shop = { 215 domain: 'www.weeforestfolk.com', 216 permanent_domain: 'wee-forest-folk.myshopify.com', 217 url: 'https://www.weeforestfolk.com', 218 secure_url: 'https://www.weeforestfolk.com', 219 money_format: "${{amount_no_decimals}}", 220 currency: "USD" 221 }; 222 window.BOLD.common.Shopify.customer = { 223 id: null, 224 tags: null, 225 }; 226 window.BOLD.common.Shopify.cart = {"note":null,"attributes":{},"original_total_price":0,"total_price":0,"total_discount":0,"total_weight":0.0,"item_count":0,"items":[],"requires_shipping":false,"currency":"USD","items_subtotal_price":0,"cart_level_discount_applications":[],"checkout_charge_amount":0}; 227 window.BOLD.common.template = 'page.sca-storelocator';window.BOLD.common.Shopify.formatMoney = function(money, format) { 228 function n(t, e) { 229 return "undefined" == typeof t ? e : t 230 } 231 function r(t, e, r, i) { 232 if (e = n(e, 2), 233 r = n(r, ","), 234 i = n(i, "."), 235 isNaN(t) || null == t) 236 return 0; 237 t = (t / 100).toFixed(e); 238 var o = t.split(".") 239 , a = o[0].replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1" + r) 240 , s = o[1] ? i + o[1] : ""; 241 return a + s 242 } 243 "string" == typeof money && (money = money.replace(".", "")); 244 var i = "" 245 , o = /\{\{\s*(\w+)\s*\}\}/ 246 , a = format || window.BOLD.common.Shopify.shop.money_format || window.Shopify.money_format || "$ {{ amount }}"; 247 switch (a.match(o)[1]) { 248 case "amount": 249 i = r(money, 2); 250 break; 251 case "amount_no_decimals": 252 i = r(money, 0); 253 break; 254 case "amount_with_comma_separator": 255 i = r(money, 2, ".", ","); 256 break; 257 case "amount_no_decimals_with_comma_separator": 258 i = r(money, 0, ".", ","); 259 break; 260 case "amount_with_space_separator": 261 i = r(money, 2, ".", " "); 262 break; 263 case "amount_no_decimals_with_space_separator": 264 i = r(money, 0, ".", " "); 265 break; 266 } 267 return a.replace(o, i); 268 }; 269 window.BOLD.common.Shopify.saveProduct = function (handle, product) { 270 if (typeof handle === 'string' && typeof window.BOLD.common.Shopify.products[handle] === 'undefined') { 271 if (typeof product === 'number') { 272 window.BOLD.common.Shopify.handles[product] = handle; 273 product = { id: product }; 274 } 275 window.BOLD.common.Shopify.products[handle] = product; 276 } 277 }; 278 window.BOLD.common.Shopify.saveVariant = function (variant_id, variant) { 279 if (typeof variant_id === 'number' && typeof window.BOLD.common.Shopify.variants[variant_id] === 'undefined') { 280 window.BOLD.common.Shopify.variants[variant_id] = variant; 281 } 282 };window.BOLD.common.Shopify.products = window.BOLD.common.Shopify.products || {}; 283 window.BOLD.common.Shopify.variants = window.BOLD.common.Shopify.variants || {}; 284 window.BOLD.common.Shopify.handles = window.BOLD.common.Shopify.handles || {};window.BOLD.common.Shopify.saveProduct(null, null);window.BOLD.common.Shopify.metafields = window.BOLD.common.Shopify.metafields || {};window.BOLD.common.Shopify.metafields["bold_rp"] = {};</script>
284<script src="https://cp.boldapps.net/js/csp.js" type="text/javascript"></script>
284<script>var BOLD = BOLD || {}; 285 BOLD.products = BOLD.products || {}; 286 BOLD.variant_lookup = BOLD.variant_lookup || {};BOLD.products[null] ={"id":null,"title":null,"handle":null,"description":null,"published_at":"T","created_at":"T","vendor":null,"type":null,"tags":null,"price":"NaN","price_min":"NaN","price_max":"NaN","price_varies":false,"compare_at_price":"NaN","compare_at_price_min":"NaN","compare_at_price_max":"NaN","compare_at_price_varies":false,"all_variant_ids":[],"variants":[],"available":false,"images":null,"featured_image":null,"options":null,"url":null}</script>
286<meta name="google-site-verification" content="JegLSBfCn1pkvv07JPCbd2708WqtLrn-49mEVno3xAg"> 287 <!-- Global site tag (gtag.js) - AdWords: 947498305 --> 288 <!--
vendor: 70 bytes, lines 288-289
288 289 <script async src="https://www.googletagmanager.com/gtag/js?id=
289AW-947498305
vendor: 18 bytes, lines 289-290
289"></script> 290
290<script> 291
vendor: 152 bytes, lines 291-295
291window.dataLayer = window.dataLayer || []; 292 function gtag(){dataLayer.push(arguments);} 293 gtag('js', new Date()); 294 295 gtag('config', '
295AW-947498305
vendor: 10 bytes, lines 295-296
295'); 296
296</script>
296 297
297<script> 298 gtag('event', 'page_view', { 299 'send_to': 'AW-947498305', 300 'ecomm_pagetype': 'product_page', 301 'ecomm_prodid': 'M-XXX', 302 'user_id': 'wff_user' 303 }); 304 </script>
304 305 --> 306 307 <meta class='easybot' content='[{"status":1,"userflow":0,"message_text":"","display_timeout":300,"icon_image":"","small_icon":1,"chat_title":"Message us","border_color":"76A5AF","reply_text":"Write a reply...","position":"bottom","social_page_id":"113217708699598"}]'> 308 309
310<script id="sca_fg_cart_ShowGiftAsProductTemplate" type="text/template"> 311 312 <div class="item not-sca-qv" id="sca-freegift-{{productID}}"> 313 <a class="close_box" style="display: none;position: absolute;top:5px;right: 10px;font-size: 22px;font-weight: bold;cursor: pointer;text-decoration:none;color: #aaa;">Ã</a> 314 <a href="/products/{{productHandle}}" target="_blank"><img style="margin-left: auto; margin-right: auto; width: 50%;" class="lazyOwl" data-src="{{productImageURL}}"></a> 315 <div class="sca-product-shop"> 316 <div class="f-fix"><span class="sca-product-title" style="white-space: nowrap;color:#000;{{showfgTitle}}">{{productTitle}}</span> 317 <div id="product-variants-{{productID}}"> 318 <div class="sca-price" id="price-field-{{productID}}"> 319 <span class="sca-old-price">{{variant_compare_at_price}}</span> 320 <span class="sca-special-price">{{variant_price}}</span> 321 </div> 322 <div id="stay-content-sca-freegift-{{productID}}" class="sca-fg-cart-item"> 323 <a class="close_box" style="display: none;position: absolute;top:5px;right: 10px;font-size: 22px;font-weight: bold;cursor: pointer;text-decoration:none;color: #aaa;">Ã</a> 324 <select id="product-select-{{productID}}" name="id" style="display: none"> 325 {{optionVariantData}} 326 </select> 327 </div> 328 </div> 329 <button type='button' id="sca-btn-select-{{productID}}" class="sca-button" onclick="onclickSelect_{{productID}}();"><span>{{SelectButton}}</span></button> 330 <button type='button' id="sca-btn-{{productID}}" class="sca-button" style="display: none"><span>{{AddToCartButton}}</span></button> 331 </div> 332 </div> 333 </div> 334 335</script>
vendor: 1 bytes, line 335
335
336<script id = "sca_fg_cart_ShowGiftAsProductScriptTemplate" type="text/template"> 337 338 var selectCallback_{{productID}}=function(_,t){if(_?(_.available?(SECOMAPP.jQuery("#sca-btn-{{productID}}").removeClass("disabled").removeAttr("disabled").html("<span>{{AddToCartButton}}</span>").fadeTo(200,1),SECOMAPP.jQuery("#sca-btn-{{productID}}").unbind("click"),SECOMAPP.jQuery("#sca-btn-{{productID}}").click(SECOMAPP.jQuery.proxy(function(){SECOMAPP.addGiftToCart(_.id,1)},_))):SECOMAPP.jQuery("#sca-btn-{{productID}}").html("<span>{{UnavailableButton}}</span>").addClass("disabled").attr("disabled","disabled").fadeTo(200,.5),_.compare_at_price>_.price?SECOMAPP.jQuery("#price-field-{{productID}}").html("<span class='sca-old-price'>"+SECOMAPP.formatMoney(_.compare_at_price)+"</span> <s class='sca-special-price'>"+SECOMAPP.formatMoney(_.price)+"</s>"):SECOMAPP.jQuery("#price-field-{{productID}}").html("<span class='sca-special-price'>"+SECOMAPP.formatMoney(_.price)+"</span>")):SECOMAPP.jQuery("#sca-btn-{{productID}}").html("<span>{{UnavailableButton}}</span>").addClass("disabled").attr("disabled","disabled").fadeTo(200,.5),_&&_.featured_image){var a=SECOMAPP.jQuery("#sca-freegift-{{productID}} img"),e=_.featured_image,o=a[0];Shopify.Image.switchImage(e,o,function(_,t,a){SECOMAPP.jQuery(a).parents("a").attr("href",_),SECOMAPP.jQuery(a).attr("src",_)})}},onclickSelect_{{productID}}=function(){SECOMAPP.jQuery.getJSON("/products/{{productHandle}}.js",{_:(new Date).getTime()},function(_){1==_.options.length&&SECOMAPP.jQuery("<label><strong>"+_.options[0].name+"</strong></label>").insertBefore("#product-select-{{productID}}");var t=[];SECOMAPP.jQuery.each(_.options,function(_,a){t[_]=a.name}),_.options=t;for(var a={{variantsGiftList}},e={{mainVariantsList}},o=_.variants.length-1;o>-1;o--)a.indexOf(_.variants[o].id)<0&&e.indexOf(_.variants[o].id)<0&&_.variants.splice(o,1);for(var c=e.length-1;c>-1;c--){var n=a[c],r=e[c],i=0,s=0;for(o=_.variants.length-1;o>-1;o--)_.variants[o].id==n?i=o:_.variants[o].id==r&&(s=o);"undefined"!=typeof SECOMAPP&&void 0!==SECOMAPP.fgsettings&&!0===SECOMAPP.fgsettings.sca_sync_gift&&void 0!==SECOMAPP.fgsettings.sca_fg_gift_variant_quantity_format&&"equal_original_inventory"===SECOMAPP.fgsettings.sca_fg_gift_variant_quantity_format&&(_.variants[i].available=_.variants[s].available,_.variants[i].inventory_management=_.variants[s].inventory_management),_.variants[i].option1=_.variants[s].option1,_.variants[i].options[0].name=_.variants[s].options[0].name,_.variants[i].options[1]&&(_.variants[i].options[1].name=_.variants[s].options[1].name,_.variants[i].option2=_.variants[s].option2),_.variants[i].options[2]&&(_.variants[i].options[2].name=_.variants[s].options[2].name,_.variants[i].option3=_.variants[s].option3),_.variants[i].title=_.variants[s].title,_.variants[i].name=_.variants[s].name,_.variants[i].public_title=_.variants[s].public_title,_.variants.splice(s,1)}SECOMAPP.jQuery("#sca-btn-select-{{productID}}").hide(),SECOMAPP.jQuery("#product-select-{{productID}}").show(),SECOMAPP.jQuery("#sca-btn-{{productID}}").show(),SECOMAPP.jQuery("#stay-content-sca-freegift-{{productID}} .close_box").show(),SECOMAPP.jQuery("#stay-content-sca-freegift-{{productID}} .close_box").click(function(){SECOMAPP.jQuery("#stay-content-sca-freegift-{{productID}}").hide(),SECOMAPP.jQuery("#sca-btn-{{productID}}").hide(),SECOMAPP.jQuery("#sca-btn-select-{{productID}}").show()}),onclickSelect_{{productID}}=function(){SECOMAPP.jQuery("#stay-content-sca-freegift-{{productID}}").show(),SECOMAPP.jQuery("#sca-btn-{{productID}}").show(),SECOMAPP.jQuery("#sca-btn-select-{{productID}}").hide()},1==_.variants.length?(-1!==_.variants[0].title.indexOf("Default")&&SECOMAPP.jQuery("#sca-freegift-{{productID}} .selector-wrapper").hide(),1==_.variants[0].available&&(SECOMAPP.jQuery("#sca-btn-{{productID}}").show(),SECOMAPP.jQuery("#sca-btn-select-{{productID}}").hide(),SECOMAPP.jQuery("#sca-btn-{{productID}}").removeClass("disabled").removeAttr("disabled").html("<span>{{AddToCartButton}}</span>").fadeTo(200,1),SECOMAPP.jQuery("#sca-btn-{{productID}}").unbind("click"),SECOMAPP.jQuery("#sca-btn-{{productID}}").click(SECOMAPP.jQuery.proxy(function(){SECOMAPP.addGiftToCart(_.variants[0].id,1)},_)))):(new Shopify.OptionSelectors("product-select-{{productID}}",{product:_,onVariantSelected:selectCallback_{{productID}},enableHistoryState:!0}),SECOMAPP.jQuery("#stay-content-sca-freegift-{{productID}}").show(),SECOMAPP.jQuery("#stay-content-sca-freegift-{{productID}}").focus())})};1=={{variantsGiftList}}.length&&onclickSelect_{{productID}}(); 339 340</script>
340 341
342<script id="sca_fg_cart_ShowGiftAsVariantTemplate" type="text/template"> 343 344 <div class="item not-sca-qv" id="sca-freegift-{{variantID}}"> 345 <a href="/products/{{productHandle}}?variant={{originalVariantID}}" target="_blank"><img style="margin-left: auto; margin-right: auto; width: 50%;" class="lazyOwl" data-src="{{variantImageURL}}"></a> 346 <div class="sca-product-shop"> 347 <div class="f-fix"> 348 <span class="sca-product-title" style="white-space: nowrap;color:#000;">{{variantTitle}}</span> 349 <div class="sca-price"> 350 <span class="sca-old-price">{{variant_compare_at_price}}</span> 351 <span class="sca-special-price">{{variant_price}}</span> 352 </div> 353 <button type="button" id="sca-btn{{variantID}}" class="sca-button" onclick="SECOMAPP.addGiftToCart({{variantID}},1);"> 354 <span>{{AddToCartButton}}</span> 355 </button> 356 </div> 357 </div> 358 </div> 359 360</script>
360 361
362<script id="sca_fg_prod_GiftList" type="text/template"> 363 364 <a style="text-decoration: none !important" id ="{{giftShowID}}" class="product-image freegif-product-image freegift-info-{{giftShowID}}" 365 title="{{giftTitle}}" href="/products/{{productsHandle}}"> 366 <img class="not-sca-qv" src="{{giftImgUrl}}" alt="{{giftTitle}}" /> 367 </a> 368 369</script>
369 370
371<script id="sca_fg_prod_Gift_PopupDetail" type="text/template"> 372 373 <div class="sca-fg-item fg-info-{{giftShowID}}" style="display:none;z-index:2147483647;"> 374 <div class="sca-fg-item-options"> 375 <div class="sca-fg-item-option-title"> 376 <em>{{freegiftRuleName}}</em> 377 </div> 378 <div class="sca-fg-item-option-ct"> 379 <!-- <div class="sca-fg-image-item"> 380 <img src="{{giftImgUrl}}" /> --> 381 <div class="sca-fg-item-name"> 382 <a href="#">{{giftTitle}}</a> 383 </div> 384 <!-- </div> --> 385 </div> 386 </div> 387 </div> 388 389</script>
389 390
391<script id="sca_fg_ajax_GiftListPopup" type="text/template"> 392 393 <div id="freegift_popup" class="mfp-hide"> 394 <div id="sca-fg-owl-carousel"> 395 <div id="freegift_cart_container" class="sca-fg-cart-container" style="display: none;"> 396 <div id="freegift_message" class="owl-carousel"></div> 397 </div> 398 <div id="sca-fg-slider-cart" style="display: none;"> 399 <div class="sca-fg-cart-title"> 400 <strong>{{popupTitle}}</strong> 401 </div> 402 <div id="sca_freegift_list" class="owl-carousel"></div> 403 </div> 404 </div> 405 </div> 406 407</script>
407 408
409<script id="sca_fg_checkout_confirm_popup" type="text/template"> 410 411 <div class='sca-fg-checkout-confirm-popup' style='font-family: "Myriad","Cardo","Big Caslon","Bodoni MT",Georgia,serif; position: relative;background: #FFF;padding: 20px 20px 50px 20px;width: auto;max-width: 500px;margin: 20px auto;'> 412 <h1 style='font-family: "Oswald","Cardo","Big Caslon","Bodoni MT",Georgia,serif;'>YOU CAN STILL ADD MORE!</h1> 413 <p>You get 1 free item with every product purchased. It looks like you can still add more free item(s) to your cart. What would you like to do?</p> 414 <p class='sca-fg-checkout-confirm-buttons' style='float: right;'> 415 <a class='btn popup-modal-dismiss action_button add_to_cart' href='#' style='width: 200px !important;margin-right: 20px;'>ADD MORE</a> 416 <a class='btn checkout__button continue-checkout action_button add_to_cart' href='/checkout' style='width: 200px !important;'>CHECKOUT</a> 417 </p> 418 </div> 419 420</script>
420 421 422 423 424<link href="//www.weeforestfolk.com/cdn/shop/t/9/assets/sca.freegift.css?v=118326107520137171181599870194" rel="stylesheet" type="text/css" media="all" />
425<script src="//www.weeforestfolk.com/cdn/shopifycloud/storefront/assets/themes_support/option_selection-b017cd28.js" type="text/javascript"></script>
vendor: 1 bytes, line 425
425
426<script> 427 Shopify.money_format = "${{amount_no_decimals}}"; 428 //enable checking free gifts condition when checkout clicked 429 if ((typeof SECOMAPP) === 'undefined') { window.SECOMAPP = {}; }; 430 SECOMAPP.enableOverrideCheckout = true; 431 // SECOMAPP.preStopAppCallback = function(cart){ 432 // if(typeof yotpo!=='undefined' && typeof yotpo.initWidgets==='function'){ 433 // yotpo.initWidgets(); 434 // } 435 // } 436</script>
vendor: 1 bytes, line 436
436
437<script type="text/javascript">(function(){if(typeof SECOMAPP==="undefined"){SECOMAPP={};};if(typeof Shopify==="undefined"){Shopify={};};SECOMAPP.fg_ver=1551715614;SECOMAPP.gifts_list_avai={"18706403786814":true};})();</script>
437 438
439<script src="//www.weeforestfolk.com/cdn/shop/t/9/assets/sca.freegifts.data.js?v=75208444372992039761599870194" type="text/javascript"></script>
vendor: 1 bytes, line 439
439
440<script data-cfasync="false" type="text/javascript"> 441 /* Smart Ecommerce App (SEA Inc) 442 * http://www.secomapp.com 443 * Do not reuse those source codes if don't have permission of us. 444 * */ 445 446 (function(){if(!Array.isArray){Array.isArray=function(e){return Object.prototype.toString.call(e)==="[object Array]"}}"function"!==typeof Object.create&&(Object.create=function(e){function t(){}t.prototype=e;return new t});if(!Object.keys){Object.keys=function(e){var t=[],i;for(i in e){if(Object.prototype.hasOwnProperty.call(e,i)){t.push(i)}}return t}}if(!String.prototype.endsWith){Object.defineProperty(String.prototype,"endsWith",{value:function(e,t){var i=this.toString();if(t===undefined||t>i.length){t=i.length}t-=e.length;var r=i.indexOf(e,t);return r!==-1&&r===t},writable:true,enumerable:true,configurable:true})}if(!Array.prototype.indexOf){Array.prototype.indexOf=function(e,t){var i;if(this==null){throw new TypeError('"this" is null or not defined')}var r=Object(this);var o=r.length>>>0;if(o===0){return-1}var n=+t||0;if(Math.abs(n)===Infinity){n=0}if(n>=o){return-1}i=Math.max(n>=0?n:o-Math.abs(n),0);while(i<o){if(i in r&&r[i]===e){return i}i++}return-1}}if(!Array.prototype.forEach){Array.prototype.forEach=function(e,t){var i,r;if(this==null){throw new TypeError(" this is null or not defined")}var o=Object(this);var n=o.length>>>0;if(typeof e!=="function"){throw new TypeError(e+" is not a function")}if(arguments.length>1){i=t}r=0;while(r<n){var a;if(r in o){a=o[r];e.call(i,a,r,o)}r++}}}console=console||{};console.log=console.log||function(){};if(typeof Shopify==="undefined"){Shopify={}}if(typeof Shopify.onError!=="function"){Shopify.onError=function(){}}if(typeof SECOMAPP==="undefined"){SECOMAPP={}}SECOMAPP.removeGiftsVariant=function(e){setTimeout(function(){try{e("select option").not(".sca-fg-cart-item select option").filter(function(){var t=e(this).val();var i=e(this).text();if(i.indexOf(" - ")!==-1){i=i.slice(0,i.indexOf(" - "))}var r=[];if(i.indexOf(" / ")!==-1){r=i.split(" / ");i=r[r.length-1]}if(typeof SECOMAPP.gifts_list_avai!=="undefined"&&typeof SECOMAPP.gifts_list_avai[t]!=="undefined"||i.endsWith("% off)")){e("select option").not(".sca-fg-cart-item select option").filter(function(){var r=e(this).val();var o=e(this).text();return o.endsWith(i)||r==t||o.endsWith("% off)")}).remove();e(".dropdown *,ul li,label,div").filter(function(){var r=e(this).html(),o=e(this).data("value");return r&&r.endsWith(i)||r&&r.endsWith("% off)")||o==t}).remove();return true}return false})}catch(e){console.log(e)}},500)};SECOMAPP.formatMoney=function(e,t){if(typeof e=="string"){e=e.replace(".","")}var i="";var r=typeof Shopify!=="undefined"&&typeof Shopify.money_format!=="undefined"?Shopify.money_format:"{{amount}}";var o=/\{\{\s*(\w+)\s*\}\}/;var n=t||(typeof this.fgsettings.sca_currency_format==="string"&&this.fgsettings.sca_currency_format.indexOf("amount")>-1?this.fgsettings.sca_currency_format:null)||r;if(n.indexOf("amount_no_decimals_no_comma_separator")<0&&n.indexOf("amount_no_comma_separator_up_cents")<0&&n.indexOf("amount_up_cents")<0&&typeof Shopify.formatMoney==="function"){return Shopify.formatMoney(e,n)}function a(e,t){return typeof e=="undefined"?t:e}function f(e,t,i,r,o,n){t=a(t,2);i=a(i,",");r=a(r,".");if(isNaN(e)||e==null){return 0}e=(e/100).toFixed(t);var f=e.split("."),c=f[0].replace(/(\d)(?=(\d\d\d)+(?!\d))/g,"$1"+i),s=f[1]?!o||!n?r+f[1]:o+f[1]+n:"";return c+s}switch(n.match(o)[1]){case"amount":i=f(e,2);break;case"amount_no_decimals":i=f(e,0);break;case"amount_with_comma_separator":i=f(e,2,",",".");break;case"amount_no_decimals_with_comma_separator":i=f(e,0,",",".");break;case"amount_no_decimals_no_comma_separator":i=f(e,0,"","");break;case"amount_up_cents":i=f(e,2,",","","<sup>","</sup>");break;case"amount_no_comma_separator_up_cents":i=f(e,2,"","","<sup>","</sup>");break}return n.replace(o,i)};SECOMAPP.setCookie=function(e,t,i,r,o){var n=new Date;n.setTime(n.getTime()+i*24*60*60*1e3+r*60*1e3);var a="expires="+n.toUTCString();document.cookie=e+"="+t+";"+a+(o?";path="+o:";path=/")};SECOMAPP.getCookie=function(e){var t=e+"=";var i=document.cookie.split(";");for(var r=0;r<i.length;r++){var o=i[r];while(o.charAt(0)==" ")o=o.substring(1);if(o.indexOf(t)==0)return o.substring(t.length,o.length)}return""};SECOMAPP.getQueryString=function(){var e={};var t=window.location.search.substring(1);var i=t.split("&");for(var r=0;r<i.length;r++){var o=i[r].split("=");if(typeof e[o[0]]==="undefined"){e[o[0]]=decodeURIComponent(o[1])}
446else if(typeof e[o[0]]==="string"){var n=[e[o[0]],decodeURIComponent(o[1])];e[o[0]]=n}else{e[o[0]].push(decodeURIComponent(o[1]))}}return e};SECOMAPP.freegifts_product_json=function(e){if(e){for(var t=0;t<e.options.length;t++){option=e.options[t];if(option.values)for(var i=0;i<option.values.length;i++){if(option.values[i].endsWith("(Freegifts)")||option.values[i].endsWith("% off)")){option.values.splice(i,1);i--}}}for(var r=function(e){for(var t in e)if(e.hasOwnProperty(t))return!1;return!0},o=e.price,n=e.price_max,a=e.price_min,f=e.compare_at_price,c=e.compare_at_price_max,s=e.compare_at_price_min,t=0;t<e.variants.length;t++){var i=e.variants[t],p=!i.option3?!i.option2?i.option1:i.option2:i.option3;"undefined"!=typeof SECOMAPP&&"undefined"!=typeof SECOMAPP.gifts_list_avai&&!r(SECOMAPP.gifts_list_avai)&&"undefined"!=typeof SECOMAPP.gifts_list_avai[i.id]||p.endsWith("(Freegifts)")||p.endsWith("% off)")?(e.variants.splice(t,1),t-=1):(n>=i.price&&(n=i.price,o=i.price),a<=i.price&&(a=i.price),i.compare_at_price&&(c>=i.compare_at_price&&(c=i.compare_at_price,f=i.compare_at_price),s<=i.compare_at_price&&(s=i.compare_at_price)),1==i.available&&(e.available=!0))}e.price=o,e.price_max=a,e.price_min=n,e.compare_at_price=f,e.compare_at_price_max=s,e.compare_at_price_min=c,e.price_varies=a>n?!0:!1,e.compare_at_price_varies=s>c?!0:!1}return e};SECOMAPP.fg_codes=[];if(SECOMAPP.getCookie("sca_fg_codes")!==""){SECOMAPP.fg_codes=JSON.parse(SECOMAPP.getCookie("sca_fg_codes"))}var e=SECOMAPP.getQueryString();if(e["freegifts_code"]&&SECOMAPP.fg_codes.indexOf(e["freegifts_code"])===-1){if(typeof SECOMAPP.activateOnlyOnePromoCode!=="undefined"&&SECOMAPP.activateOnlyOnePromoCode===true){SECOMAPP.fg_codes=[]}SECOMAPP.fg_codes.push(e["freegifts_code"]);SECOMAPP.setCookie("sca_fg_codes",JSON.stringify(SECOMAPP.fg_codes))}})(); 447 448 ;SECOMAPP.customer={};SECOMAPP.customer.orders=[];SECOMAPP.customer.freegifts=[];;null;SECOMAPP.customer.email=null;SECOMAPP.customer.first_name=null;SECOMAPP.customer.last_name=null;SECOMAPP.customer.tags=null;SECOMAPP.customer.orders_count=null;SECOMAPP.customer.total_spent=null; 449</script>
449 450 451
451<script> 452 var appEnvironment = 'storelocator-prod'; 453 var shopHash = '5e3bfcd6954b145169cce5441183c33e'; 454</script>
454 455 456 457 <style> #trustreviews { max-width: 1200px; margin: 0 auto; } .trustreviews-rating svg { color: #67ad8e; } a[href='#trustreviewsFrame']:visited { color: black; } a[href='#trustreviewsFrame'] { color: black; text-decoration: none; } .trustreviews-float-widget-container { width: 0; position: fixed; z-index: 9999; top: 50%; display: flex; justify-content: center; transition-duration: 0.4s; transition-timing-function: cubic-bezier(1, 0, 0, 1); } .trustreviews-float-widget-container.widget-right { right: 0; transform: rotate(90deg) translate(50%, 50%); } .trustreviews-float-widget-container.widget-left { left: 0; transform: rotate(270deg) translate(-50%, 0); transform-origin: top; } .trustreviews.sidebar-widget { padding: 10px 20px 15px 20px; font-size: 18px; line-height: 1; cursor: pointer; position: relative; transition-duration: 0.4s; transition-timing-function: cubic-bezier(1, 0, 0, 1); width: auto; white-space: nowrap; border-radius: 0 0 15px 15px; margin: 0 8px 0px 8px; display: flex; justify-content: center; align-items: center; gap: 4px; border: none; } .trustreviews.sidebar-widget.reviews { background-color: #8f8f8f; color: #FFFFFF; } .trustreviews.sidebar-widget.onsite { background-color: #000000; color: #ffffff; } </style> 458 <!-- BEGIN app block: shopify://apps/inbox/blocks/chat/841fc607-4181-4ad1-842d-e24d7f8bad6b --><link rel='modulepreload' href='https://cdn.shopify.com/storefront/web-components/chat.js' crossorigin fetchpriority='low'> 459
460<script id='shopify-chat-app-embed-data' type='application/json'> 461 { 462 "settings": { 463 "invertActivatorColors": true, 464 "greetingMessage": "ð Hi, message us with any question. We're happy to help!", 465 "showFeaturedProducts": true, 466 "featuredProducts": [], 467 "horizontalPosition": "bottom_right", 468 "icon": "chat_bubble", 469 "buttonLabel": "" 470 } 471 } 472</script>
472 473 474<style data-shopify> 475 476 477 /* Shadow DOM content does not prevent theme-wide :empty rules from matching the host. */ 478 shopify-chat:defined:empty { 479 display: grid; 480 } 481 482 :root { 483 --shopify-chat-bg-color: #FFFFFF; 484 --shopify-chat-text-color: #000000; 485 --shopify-chat-accent-bg-color: #000000; 486 --shopify-chat-accent-text-color: #FFFFFF; 487 --shopify-chat-activator-offset: 20px; 488 489 490 491 --shopify-chat-activator-font-size: 16px; 492 --shopify-chat-border-radius: 16px; 493 } 494 495 496</style> 497
498<script src='https://cdn.shopify.com/storefront/web-components/chat.js' type='module' crossorigin fetchpriority='low' async></script>
498 499 500 501<!-- END app block --><!-- BEGIN app block: shopify://apps/klaviyo-email-marketing-sms/blocks/klaviyo-onsite-embed/2632fe16-c075-4321-a88b-50b567f42507 --> 502 503 504 505 506 507 508 509 510 511 512 513 514
514<script async src="https://static.klaviyo.com/onsite/js/Yd7gps/klaviyo.js?company_id=Yd7gps"></script>
514 515
515<script>!function(){if(!window.klaviyo){window._klOnsite=window._klOnsite||[];try{window.klaviyo=new Proxy({},{get:function(n,i){return"push"===i?function(){var n;(n=window._klOnsite).push.apply(n,arguments)}:function(){for(var n=arguments.length,o=new Array(n),w=0;w<n;w++)o[w]=arguments[w];var t="function"==typeof o[o.length-1]?o.pop():void 0,e=new Promise((function(n){window._klOnsite.push([i].concat(o,[function(i){t&&t(i),n(i)}]))}));return e}}})}catch(n){window.klaviyo=window.klaviyo||[],window.klaviyo.push=function(){var n;(n=window._klOnsite).push.apply(n,arguments)}}}}();</script>
515 516 517 518 519 520 521 522
522<script> 523 window.klaviyoReviewsProductDesignMode = false 524 </script>
524 525 526 527 528 529 530 531 532 533 534<!-- END app block --><link href="https://cdn.shopify.com/extensions/01a0d217-a4a8-78a9-b1eb-a1933407237b/store-locator-4-63/assets/wtb.css" rel="stylesheet" type="text/css" media="all">
535<script src="https://cdn.shopify.com/extensions/01a0d2a3-23d4-7eab-8707-4bef87dc5dd8/swym-relay-839/assets/wishlistcollections.js" type="text/javascript" defer="defer"></script>
535 536<link href="https://cdn.shopify.com/extensions/01a0d2a3-23d4-7eab-8707-4bef87dc5dd8/swym-relay-839/assets/wishlistcollections.css" rel="stylesheet" type="text/css" media="all"> 537<link href="https://cdn.shopify.com/extensions/01a0d217-a4a8-78a9-b1eb-a1933407237b/store-locator-4-63/assets/findonline.css" rel="stylesheet" type="text/css" media="all"> 538<link href="https://cdn.shopify.com/extensions/01a0d217-a4a8-78a9-b1eb-a1933407237b/store-locator-4-63/assets/dealerform.css" rel="stylesheet" type="text/css" media="all"> 539<link href="https://cdn.shopify.com/extensions/01a0d217-a4a8-78a9-b1eb-a1933407237b/store-locator-4-63/assets/storelocator.css" rel="stylesheet" type="text/css" media="all"> 540<meta property="og:image" content="https://cdn.shopify.com/s/files/1/1891/2115/files/IMG_8032.jpg?v=1733595808" /> 541<meta property="og:image:secure_url" content="https://cdn.shopify.com/s/files/1/1891/2115/files/IMG_8032.jpg?v=1733595808" /> 542<meta property="og:image:width" content="3648" /> 543<meta property="og:image:height" content="2048" /> 544<link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
545<script>(function(){if ("sendBeacon" in navigator && "performance" in window) {try {var session_token_from_headers = performance.getEntriesByType('navigation')[0].serverTiming.find(x => x.name == '_s').description;} catch {var session_token_from_headers = undefined;}var session_cookie_matches = document.cookie.match(/_shopify_s=([^;]*)/);var session_token_from_cookie = session_cookie_matches && session_cookie_matches.length === 2 ? session_cookie_matches[1] : "";var session_token = session_token_from_headers || session_token_from_cookie || "";function handle_abandonment_event(e) {var entries = performance.getEntries().filter(function(entry) {return /monorail-edge.shopifysvc.com/.test(entry.name);});if (!window.abandonment_tracked && entries.length === 0) {window.abandonment_tracked = true;var currentMs = Date.now();var navigation_start = performance.timing.navigationStart;var payload = {shop_id: 18912115,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "page"};window.navigator.sendBeacon("https://monorail-edge.shopifysvc.com/v1/produce", JSON.stringify({schema_id: "online_store_buyer_site_abandonment/1.1",payload: payload,metadata: {event_created_at_ms: currentMs,event_sent_at_ms: currentMs}}));}}window.addEventListener('pagehide', handle_abandonment_event);}}());</script>
vendor: 1 bytes, line 545
545
546<script> 547 window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || []; 548</script>
vendor: 1 bytes, line 548
548
549<script>(function(){var wpmLoader=function(){"use strict";var e=/Googlebot|Storebot-Google|bingbot|Baiduspider|YandexBot|DuckDuckBot|Slurp|facebookexternalhit|Twitterbot|LinkedInBot|Applebot|AdsBot-Google|Mediapartners-Google|APIs-Google|PetalBot|SemrushBot|AhrefsBot|MJ12bot|DotBot|Acunetix|PerplexityBot|Perplexity-User/i,t=/bytedance/i;function i(){try{var e=document.cookie;if(!e||"string"!=typeof e)return;for(var t=0,i=e.split(";");t<i.length;t++){var n=i[t],r=n.indexOf("=");if(-1!==r){var o=n.slice(0,r).trim();if(o){var a=void 0;try{a=decodeURIComponent(o)}catch(e){a=o}if("_shopify_s"===a){var d=n.slice(r+1).trim();try{return decodeURIComponent(d)}catch(e){return d}}}}}return}catch(e){return}}function n(e){try{"undefined"!=typeof console&&"function"==typeof console.warn&&console.warn(e)}catch(e){}}function r(e,t){return"string"==typeof e&&e.length>0&&e.length<=t?e:void 0}function o(e){var t;switch(null==(t=null==e?void 0:e.navigation)?void 0:t.type){case 0:return"navigate";case 1:return"reload";case 2:return"back_forward";default:return}}function a(){var e,t,i;try{var n=null==(i=null==(t=null==(e=self.ShopifyAnalytics)?void 0:e.lib)?void 0:t.trekkie)?void 0:i.state;return"awaiting-consent"===n||"initialized"===n?n:void 0}catch(e){return}}return function(d,s,u,l){var c=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};try{var p=c.trekkieShim;!0!==p&&"true"!==p||null!=window.__TREKKIE_SHIM_QUEUE||(window.__TREKKIE_SHIM_QUEUE=[])}catch(e){}var f,v,h,y,g=(v=(f={modern:/Edge?\/(1{2}[4-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Firefox\/(1{2}[4-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Chrom(ium|e)\/(9{2}|\d{3,})\.\d+(\.\d+|)|(Maci|X1{2}).+ Version\/(15\.\d+|(1[6-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(9{2}|\d{3,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(15[._]\d+|(1[6-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Android.+Firefox\/(15\d|1[6-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|SamsungBrowser\/([2-9]\d|\d{3,})\.\d+/,legacy:/Edge?\/(1[6-9]|[2-9]\d|\d{3,})\.\d+(\.\d+|)|Firefox\/(5[4-9]|[6-9]\d|\d{3,})\.\d+(\.\d+|)|Chrom(ium|e)\/(5[1-9]|[6-9]\d|\d{3,})\.\d+(\.\d+|)([\d.]+$|.*Safari\/(?![\d.]+ Edge\/[\d.]+$))|(Maci|X1{2}).+ Version\/(10\.\d+|(1[1-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(3[89]|[4-9]\d|\d{3,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(10[._]\d+|(1[1-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Mobile Safari.+OPR\/([89]\d|\d{3,})\.\d+\.\d+|Android.+Firefox\/(15\d|1[6-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+(UC? ?Browser|UCWEB|U3)[ /]?(15\.([5-9]|\d{2,})|(1[6-9]|[2-9]\d|\d{3,})\.\d+)\.\d+|SamsungBrowser\/(5\.\d+|([6-9]|\d{2,})\.\d+)|Android.+MQ{2}Browser\/(14(\.(9|\d{2,})|)|(1[5-9]|[2-9]\d|\d{3,})(\.\d+|))(\.\d+|)|K[Aa][Ii]OS\/(3\.\d+|([4-9]|\d{2,})\.\d+)(\.\d+|)/}).modern,h=f.legacy,(y=navigator.userAgent).match(e)?"bot":y.match(v)?"modern":y.match(h)?"legacy":y.match(t)?"bot":"unknown"),m=function(e){var t,i,n=r(e,128);try{var a=window.performance,d=null==(t=null==a?void 0:a.getEntriesByType)?void 0:t.call(a,"navigation")[0];if(!d)return{requestId:n,navigationType:o(a)};var s="type"in d?r(d.type,64):void 0,u="serverTiming"in d&&Array.isArray(d.serverTiming)?d.serverTiming:[];return{requestId:null!=n?n:r(null==(i=u.find(function(e){return"requestID"===e.name}))?void 0:i.description,128),navigationType:s}}catch(e){return{requestId:n}}}(c.requestId),w=function(e){var t=e.version,r=e.browserTarget,o=e.surface,a=e.shopId,d=e.monorailEndpoint,s=window.location.href;return{emit:function(e){var u=e.status,l=e.errorMsg,c=e.failureReason,p=e.useKeepaliveFallback,f=void 0!==p&&p,v=e.navigationType,h=e.pagehidePersisted,y=e.requestId,g=e.trekkieState;if(d){var m,w;try{var b=(new Date).getTime();m=JSON.stringify({metadata:{event_sent_at_ms:b},events:[{schema_id:"web_pixels_manager_load/3.3",payload:{version:t,bundle_target:r,page_url:s,status:u,surface:o,error_msg:l,failure_reason:c,navigation_type:v,pagehide_persisted:h,request_id:y,trekkie_state:g,shop_id:a,visit_token:i()},metadata:{event_created_at_ms:b}}]})}catch(e){return}try{if("function"==typeof window.navigator.sendBeacon&&-1===(w=window.navigator.userAgent).indexOf("iPhone; CPU iPhone OS 12_")&&-1===w.indexOf("iPad; CPU OS 12_")&&-1===w.indexOf("iPod touch; CPU iPhone OS 12_")&&window.navigator.sendBeacon.bind(window.navigator)(d,m))return}catch(e){}if(f)try{"function"==typeof window.fetch&&window.fetch(d,{method:"POST",headers:{"Content-Type":"text/plain"},body:m,keepalive:!0}
549).catch(function(){})}catch(e){}else try{var _=new XMLHttpRequest;_.open("POST",d,!0),_.setRequestHeader("Content-Type","text/plain"),_.send(m)}catch(e){n("[Web Pixels Manager] Got an unhandled error while logging to Monorail.")}}else n("[Web Pixels Manager] No Monorail endpoint provided, skipping logging.")}}}({version:u,browserTarget:g,surface:d.surface,shopId:d.shopId,monorailEndpoint:d.monorailEndpoint});if(Boolean(null==(_=null==(b=window.Shopify)?void 0:b.analytics)?void 0:_.replayQueue))w.emit({status:"setup-skipped",errorMsg:"replay queue already initialized."});else{var b,_;w.emit({status:"setup-started"}),window.Shopify=window.Shopify||{};var S=window.Shopify;S.analytics=S.analytics||{};var P=S.analytics;P.replayQueue=[],P.publish=function(e,t,i){return P.replayQueue.push([e,t,i]),!0};try{self.performance.mark("wpm:start")}catch(e){}var k,C="modern"===g?"modern":"legacy",E=(null!=l?l:{modern:"",legacy:""})[C],I=[(k={baseUrl:s,hashVersion:u,buildTarget:C}).baseUrl,"/wpm","/b",k.hashVersion,"modern"===k.buildTarget?"m":"l",".js"].join(""),O=!1,T=!1;try{c.browserTarget=g,function(){O=!0;try{window.addEventListener("pagehide",M)}catch(e){O=!1}}(),R(function(){try{R(x)}catch(e){D(e)}}),w.emit({status:"loading",requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()})}catch(e){D(e)}}function U(){var e;if(q(),!function(){var e,t;return Boolean(null==(t=null==(e=window.Shopify)?void 0:e.analytics)?void 0:t.initialized)}()){var t,i,n;try{if("function"!=typeof(null==(e=window.webPixelsManager)?void 0:e.init))return void A();if(!(null!==(n=i=t=window.webPixelsManager.init(d))&&"function"!=typeof n&&Object(n)===n&&"publish"in i&&"function"==typeof i.publish&&"publishCustomEvent"in i&&"function"==typeof i.publishCustomEvent&&"visitor"in i&&"function"==typeof i.visitor))return void A()}catch(e){return void A(e)}var r=window.Shopify.analytics;r.replayQueue.forEach(function(e){var i=e[0],n=e[1],r=e[2];t.publishCustomEvent(i,n,r)}),r.replayQueue=[],r.publish=t.publishCustomEvent,r.visitor=t.visitor,r.initialized=!0}}function A(e){B("manager_api_unavailable",void 0===e?void 0:Q(e))}function x(){B("script_load_failed","".concat(I," has failed to load"))}function B(e,t){T||(T=!0,q(),w.emit({status:"failed",errorMsg:t,failureReason:e,requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()}))}function M(e){O&&(q(),w.emit({status:"pagehide-while-loading",useKeepaliveFallback:!0,pagehidePersisted:e.persisted,requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()}))}function q(){O=!1;try{window.removeEventListener("pagehide",M)}catch(e){}}function R(e){var t;!function(e){var t=e.src,i=e.async,n=void 0===i||i,r=e.onload,o=e.onerror,a=e.sri,d=e.scriptDataAttributes,s=void 0===d?{}:d,u=document.createElement("script"),l=document.querySelector("head"),c=document.querySelector("body");if(u.async=n,u.src=t,a&&(u.integrity=a,u.crossOrigin="anonymous"),s)for(var p in s)if(Object.prototype.hasOwnProperty.call(s,p))try{u.dataset[p]=String(s[p])}catch(e){}if(r&&u.addEventListener("load",r),o&&u.addEventListener("error",o),l)l.appendChild(u);else{if(!c)throw new Error("Did not find a head or body element to append the script");c.appendChild(u)}}({src:I,async:!0,onload:U,onerror:e,sri:(t=E,"string"==typeof t&&/^sha384-[A-Za-z0-9+/=]+$/.test(t)?E:""),scriptDataAttributes:c})}function D(e){B("script_append_failed",Q(e))}function Q(e){return e instanceof Error?e.message:"Unknown error"}}}();wpmLoader({shopId: 18912115,storefrontBaseUrl: "https://www.weeforestfolk.com",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://www.weeforestfolk.com/.well-known/shopify/monorail/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["16072cab","8450a54b","7ee89bf1"],webPixelsConfigList: [{"id":"1978695996","configuration":"{\"swymApiEndpoint\":\"https:\/\/swymstore-v3starter-01.swymrelay.com\",\"swymTier\":\"v3starter-01\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"5b6f6917e306bc7f24523662663331c0","type":"APP","apiClientId":1350849,"privacyPurposes":["ANALYTICS","MARKETING","PREFERENCES"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"780304700","configuration":"{\"config\":\"{\\\"google_tag_ids\\\":[\\\"G-7WHKBH56RC\\\",\\\"GT-KVJZ2DZ\\\"],\\\"target_country\\\":\\\"US\\\",\\\"gtag_events\\\":[{\\\"type\\\":\\\"search\\\",\\\"action_label\\\":\\\"G-7WHKBH56RC\\\"},{\\\"type\\\":\\\"begin_checkout\\\",\\\"action_label\\\":\\\"G-7WHKBH56RC\\\"},{\\\"type\\\":\\\"remove_from_cart\\\",\\\"action_label\\\":\\\"G-7WHKBH56RC\\\"},{\\\"type\\\":\\\"view_item\\\",\\\"action_label\\\":[\\\"G-7WHKBH56RC\\\",\\\"MC-LML00H98Q9\\\"]},{\\\"type\\\":\\\"purchase\\\",\\\"action_label\\\":[\\\"G-7WHKBH56RC\\\",\\\"MC-LML00H98Q9\\\"]},{\\\"type\\\":\\\"add_shipping_info\\\",\\\"action_label\\\":\\\"G-7WHKBH56RC\\\"},{\\\"type\\\":\\\"page_view\\\",\\\"action_label\\\":[\\\"G-7WHKBH56RC\\\",\\\"MC-LML00H98Q9\\\"]},{\\\"type\\\":\\\"view_item_list\\\",\\\"action_label\\\":\\\"G-7WHKBH56RC\\\"},{\\\"type\\\":\\\"add_payment_info\\\",\\\"action_label\\\":\\\"G-7WHKBH56RC\\\"},{\\\"type\\\":\\\"add_to_cart\\\",\\\"action_label\\\":\\\"G-7WHKBH56RC\\\"},{\\\"type\\\":\\\"view_cart\\\",\\\"action_label\\\":\\\"G-7WHKBH56RC\\\"}],\\\"enable_monitoring_mode\\\":false}\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"a3321ca85cf5aaf6b57585fcd8d67b3a","type":"APP","apiClientId":1780363,"privacyPurposes":[],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]}
549,{"id":"354025788","configuration":"{\"pixel_id\":\"439437606521998\",\"pixel_type\":\"facebook_pixel\",\"metaapp_system_user_token\":\"-\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"96420dbe9ea96c426a1b7f364f977719","type":"APP","apiClientId":2329312,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"209715516","configuration":"{\"tagID\":\"2612811596347\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"7ae565e198624b39e0856d352b9a6b4c","type":"APP","apiClientId":3009811,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"shopify-app-pixel","configuration":"{}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"0530","apiClientId":"shopify-pixel","type":"APP","privacyPurposes":["ANALYTICS","MARKETING"]},{"id":"shopify-custom-pixel","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"0530","apiClientId":"shopify-pixel","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING"]}],isMerchantRequest: false,initData: {"shop":{"name":"Wee Forest Folk","paymentSettings":{"currencyCode":"USD"},"myshopifyDomain":"wee-forest-folk.myshopify.com","countryCode":"US","storefrontUrl":"https:\/\/www.weeforestfolk.com"},"customer":null,"cart":null,"checkout":null,"productVariants":[],"products":[],"purchasingCompany":null},},"https://www.weeforestfolk.com/cdn","c8540278we853e1abpb62b2c4amde256306",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"true","themeId":"83198509118","themeStoreId":"304","themePublished":"true","eventMetadataId":"ecd85cb7-b995-451c-9811-80ce39faeb39","pageType":"page","resourceId":"263595087","shopId":"18912115","storefrontBaseUrl":"https:\/\/www.weeforestfolk.com","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[\"16072cab\", \"8450a54b\", \"7ee89bf1\"]","isMerchantRequest":"false","hashVersion":"c8540278we853e1abpb62b2c4amde256306","publish":"custom","events":"[[\"page_viewed\",{}]]"});})();</script>
549<script> 550 window.ShopifyAnalytics = window.ShopifyAnalytics || {}; 551 window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {}; 552 window.ShopifyAnalytics.meta.currency = 'USD'; 553 var meta = {"page":{"pageType":"page","resourceType":"page","resourceId":263595087,"requestId":"fb457692-5a69-4c23-af4b-5605bfc0db42-1790432666"}}; 554 for (var attr in meta) { 555 window.ShopifyAnalytics.meta[attr] = meta[attr]; 556 } 557</script>
vendor: 1 bytes, line 557
557
558<script class="analytics"> 559 (function () { 560 var customDocumentWrite = function(content) { 561 var jquery = null; 562 563 if (window.jQuery) { 564 jquery = window.jQuery; 565 } else if (window.Checkout && window.Checkout.$) { 566 jquery = window.Checkout.$; 567 } 568 569 if (jquery) { 570 jquery('body').append(content); 571 } 572 }; 573 574 var hasLoggedConversion = function(token) { 575 if (token) { 576 return document.cookie.indexOf('loggedConversion=' + token) !== -1; 577 } 578 return false; 579 } 580 581 var setCookieIfConversion = function(token) { 582 if (token) { 583 var twoMonthsFromNow = new Date(Date.now()); 584 twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2); 585 586 document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow; 587 } 588 } 589 590 var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || []; 591 window.ShopifyAnalytics.lib.trekkie = window.trekkie; 592 if (trekkie.integrations) { 593 return; 594 } 595 trekkie.methods = [ 596 'identify', 597 'page', 598 'ready', 599 'track', 600 'trackForm', 601 'trackLink' 602 ]; 603 trekkie.factory = function(method) { 604 return function() { 605 var args = Array.prototype.slice.call(arguments); 606 args.unshift(method); 607 trekkie.push(args); 608 if (method == 'track' || method == 'page') { 609 var pageUrl; 610 try { 611 pageUrl = window.location.href; 612 } catch (e) {} 613 var pageReferrer; 614 try { 615 pageReferrer = document.referrer; 616 } catch (e) {} 617 try { 618 if (window.__TREKKIE_SHIM_QUEUE == null) { 619 window.__TREKKIE_SHIM_QUEUE = []; 620 } 621 window.__TREKKIE_SHIM_QUEUE.push({ 622 from: 'trekkie-stub', 623 method: method, 624 args: args.slice(1), 625 pageContext: { 626 url: pageUrl, 627 referrer: pageReferrer 628 } 629 }); 630 } catch (e) { 631 // no-op 632 } 633 } 634 return trekkie; 635 }; 636 }; 637 for (var i = 0; i < trekkie.methods.length; i++) { 638 var key = trekkie.methods[i]; 639 trekkie[key] = trekkie.factory(key); 640 } 641 trekkie.load = function(config) { 642 trekkie.config = config || {}; 643 trekkie.config.initialDocumentCookie = document.cookie; 644 var first = document.getElementsByTagName('script')[0]; 645var script = document.createElement('script'); 646script.type = 'text/javascript'; 647script.onerror = function(e) { 648 var scriptFallback = document.createElement('script'); 649 scriptFallback.type = 'text/javascript'; 650 scriptFallback.onerror = function(error) { 651 var Monorail = { 652 produce: function produce(monorailDomain, schemaId, payload) { 653 var currentMs = new Date().getTime(); 654 var event = { 655 schema_id: schemaId, 656 payload: payload, 657 metadata: { 658 event_created_at_ms: currentMs, 659 event_sent_at_ms: currentMs 660 } 661 }; 662 return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event)); 663 }, 664 sendRequest: function sendRequest(endpointUrl, payload) { 665 // Try the sendBeacon API 666 if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) { 667 var blobData = new window.Blob([payload], { 668 type: 'text/plain' 669 }); 670 671 if (window.navigator.sendBeacon(endpointUrl, blobData)) { 672 return true; 673 } // sendBeacon was not successful 674 675 } // XHR beacon 676 677 var xhr = new XMLHttpRequest(); 678 679 try { 680 xhr.open('POST', endpointUrl); 681 xhr.setRequestHeader('Content-Type', 'text/plain'); 682 xhr.send(payload); 683 } catch (e) { 684 console.log(e); 685 } 686 687 return false; 688 }, 689 isIos12: function isIos12() { 690 return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1; 691 } 692 }; 693 Monorail.produce('monorail-edge.shopifysvc.com', 694 'trekkie_storefront_load_errors/1.1', 695 {shop_id: 18912115, 696 theme_id: 83198509118, 697 app_name: "storefront", 698 context_url: window.location.href, 699 source_url: "//www.weeforestfolk.com/cdn/s/trekkie.storefront.f1ba865b3fecd812ad617f74ac079261075e9edb.min.js"}); 700 701 }; 702 scriptFallback.async = true; 703 scriptFallback.src = '//www.weeforestfolk.com/cdn/s/trekkie.storefront.f1ba865b3fecd812ad617f74ac079261075e9edb.min.js'; 704 first.parentNode.insertBefore(scriptFallback, first); 705}; 706script.async = true; 707script.src = '//www.weeforestfolk.com/cdn/s/trekkie.storefront.f1ba865b3fecd812ad617f74ac079261075e9edb.min.js'; 708first.parentNode.insertBefore(script, first); 709 710 }; 711 trekkie.load( 712 {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":18912115,"isMerchantRequest":null,"themeId":83198509118,"themeCityHash":"17526950107398775647","contentLanguage":"en","currency":"USD","eventMetadataId":"ecd85cb7-b995-451c-9811-80ce39faeb39"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","8450a54b","7ee89bf1"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":true,"source":"trekkie-storefront-renderer","apiClientId":580111}} 713 ); 714 715 var loaded = false;
716 trekkie.ready(function() { 717 if (loaded) return; 718 loaded = true; 719 720 window.ShopifyAnalytics.lib = window.trekkie; 721 722 var originalDocumentWrite = document.write; 723 document.write = customDocumentWrite; 724 try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {}; 725 document.write = originalDocumentWrite; 726 727 var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/) 728 var token = match? match[1]: undefined; 729 if (!hasLoggedConversion(token)) { 730 setCookieIfConversion(token); 731 732 } 733 }); 734 735 window.ShopifyAnalytics.lib.page(null,{"pageType":"page","resourceType":"page","resourceId":263595087,"requestId":"fb457692-5a69-4c23-af4b-5605bfc0db42-1790432666","shopifyEmitted":true}); 736 737 var eventsListenerScript = document.createElement('script'); 738 eventsListenerScript.async = true; 739 eventsListenerScript.src = "//www.weeforestfolk.com/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js"; 740 document.getElementsByTagName('head')[0].appendChild(eventsListenerScript); 741})();</script>
741 742
742<script> 743 if (!window.ga || (window.ga && typeof window.ga !== 'function')) { 744 window.ga = function ga() { 745 (window.ga.q = window.ga.q || []).push(arguments); 746 if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') { 747 window.Shopify.analytics.publish("ga_stub_called", {}, {sendTo: "google_osp_migration"}); 748 } 749 console.error("Shopify's Google Analytics stub called with:", Array.from(arguments), "\nSee https://help.shopify.com/manual/promoting-marketing/pixels/pixel-migration#google for more information."); 750 }; 751 if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') { 752 window.Shopify.analytics.publish("ga_stub_initialized", {}, {sendTo: "google_osp_migration"}); 753 } 754 } 755</script>
vendor: 1 bytes, line 755
755
756<script 757 defer 758 src="https://www.weeforestfolk.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.9.4.min.js" 759 data-application="storefront-renderer" 760 data-shop-id="18912115" 761 data-render-region="gcp-us-central1" 762 data-page-type="page" 763 data-theme-instance-id="83198509118" 764 data-theme-name="Responsive" 765 data-theme-version="6.1.7" 766 data-monorail-region="shop_domain" 767 data-resource-timing-sampling-rate="10" 768 data-shs="true" 769 data-shs-beacon="true" 770 data-shs-export-with-fetch="true" 771 data-shs-logs-sample-rate="1" 772 data-shs-beacon-endpoint="https://www.weeforestfolk.com/api/collect" 773></script>
vendor: 1 bytes, line 773
773
774<script id="shopify-chat-page-data" type="application/json">{"greetingMessage":"Welcome to Wee Forest Folk. How can I help?","customerServiceEmail":"[email protected]","onlineStorePasswordProtected":false,"translations":[{"key":"agent_chat.panel.open_chat","value":"Open chat"},{"key":"agent_chat.panel.ask_anything","value":"Ask anything"},{"key":"agent_chat.panel.title","value":"Storekick"},{"key":"agent_chat.panel.unread_replies","value":"Unread replies"},{"key":"agent_chat.panel.back_to_chat","value":"Back to chat"},{"key":"agent_chat.panel.see_history","value":"See chat history"},{"key":"agent_chat.panel.new_chat","value":"Create a new chat"},{"key":"agent_chat.panel.close","value":"Close chat"},{"key":"agent_chat.panel.undock","value":"Undock chat"},{"key":"agent_chat.panel.dock","value":"Dock chat"},{"key":"agent_chat.panel.expand","value":"Expand chat"},{"key":"agent_chat.panel.contract","value":"Contract chat"},{"key":"agent_chat.panel.jump_to_latest","value":"Jump to latest"},{"key":"agent_chat.panel.loading_chat","value":"Loading chat"},{"key":"agent_chat.input.label","value":"Type your message"},{"key":"agent_chat.input.placeholder","value":"Ask anything..."},{"key":"agent_chat.input.send","value":"Send"},{"key":"agent_chat.input.stop","value":"Stop generating"},{"key":"agent_chat.thinking","value":"Thinking..."},{"key":"agent_chat.first_response_delayed","value":"Agent is taking longer to respondâ¦"},{"key":"agent_chat.searching","value":"Searching..."},{"key":"agent_chat.message.sent_timestamp","value":"Sent · {{time}}"},{"key":"agent_chat.message.automated_label","value":"Automated"},{"key":"agent_chat.message.automated_timestamp","value":"Automated · {{time}}"},{"key":"agent_chat.liveAgentHandoff","value":"Someone from our team will be with you shortly"},{"key":"agent_chat.human_handoff.action","value":"Chat with our team"},{"key":"agent_chat.human_handoff.request","value":"Iâd like to talk to someone from your team"},{"key":"agent_chat.human_handoff.ai_assistant","value":"AI assistant"},{"key":"agent_chat.greeting.default","value":"Hi there!"},{"key":"agent_chat.greeting.with_name","value":"Hi {{name}}!"},{"key":"agent_chat.greeting.welcome","value":"You can ask questions about shopping, sizing\/dimensions, shipping, returns, or order status."},{"key":"agent_chat.greeting.welcome_back","value":"Welcome back to %{shop_name}! How can I help?"},{"key":"agent_chat.greeting.welcome_back_no_shop","value":"Welcome back! How can I help?"},{"key":"agent_chat.greeting.welcome_to_shop","value":"Welcome to %{shop_name}. How can I help?"},{"key":"agent_chat.greeting.generic","value":"How can I help?"},{"key":"agent_chat.disclaimer.text","value":"This chat is powered by AI from Shopify and may make mistakes. Your messages are visible to {{shop_name}}. See"},{"key":"agent_chat.disclaimer.text_human","value":"Your messages are visible to {{shop_name}} and to Shopify for the provision and improvement of the services. See"},{"key":"agent_chat.disclaimer.link_text","value":"privacy policy"},{"key":"agent_chat.error.response_unavailable","value":"Response unavailable"},{"key":"agent_chat.error.generic","value":"Something went wrong."},{"key":"agent_chat.error.response_failed","value":"Couldnât load this message"},{"key":"agent_chat.error.message_send_failed","value":"Your message couldnât be sent"},{"key":"agent_chat.error.attachment_upload_failed","value":"Your attachment didnât upload"},{"key":"agent_chat.error.first_response_stalled","value":"Agent couldnât respond"},{"key":"agent_chat.error.try_again","value":"Try again"},{"key":"agent_chat.error.unavailable","value":"Chat isn't available right now - try again later"},{"key":"agent_chat.error.usage_limit","value":"Message limit reached â try again later or email us at {{email}}"},{"key":"agent_chat.error.usage_limit_no_email","value":"Message limit reached â try again later"},{"key":"agent_chat.error.cost_quota_unhandled","value":"Chat isnât available right nowâemail us at {{email}}"},{"key":"agent_chat.error.cost_quota_unhandled_no_email","value":"Chat isnât available right now"},{"key":"agent_chat.error.cost_quota_handover","value":"AI assistant isnât available right now â our team will reply shortly"},{"key":"agent_chat.history.heading","value":"Chat history"},{"key":"agent_chat.history.loading","value":"Loading conversation history"},{"key":"agent_chat.history.aria_label","value":"Conversation history"},{"key":"agent_chat.history.no_conversations","value":"No conversations"},{"key":"agent_chat.history.conversation.one","value":"conversation"},{"key":"agent_chat.history.conversation.other","value":"conversations"},{"key":"agent_chat.history.error_message","value":"Something went wrong."},{"key":"agent_chat.history.try_again","value":"Try again"},{"key":"agent_chat.history.no_past","value":"No past conversations"},{"key":"agent_chat.history.start_new","value":"Start a new chat"},{"key":"agent_chat.history.untitled","value":"Untitled conversation"},{"key":"agent_chat.history.resume","value":"Resume: {{title}}"},{"key":"agent_chat.history.resume_with_time","value":"Resume: {{title}}, {{time}}"},{"key":"agent_chat.history.delete","value":"Delete conversation: {{title}}"},{"key":"agent_chat.history.delete_failed","value":"Could not delete conversation"},{"key":"agent_chat.feedback.group_label","value":"Message feedback"},{"key":"agent_chat.feedback.thumbs_up","value":"Thumbs up"},{"key":"agent_chat.feedback.thumbs_down","value":"Thumbs down"},{"key":"agent_chat.feedback.add_comment","value":"Add comment"},{"key":"agent_chat.feedback.thanks","value":"Thanks for your feedback"},{"key":"agent_chat.feedback.placeholder_up","value":"Tell us what went well"},{"key":"agent_chat.feedback.placeholder_down","value":"Tell us what could have been better"},{"key":"agent_chat.feedback.comment_label","value":"Feedback comment"},{"key":"agent_chat.feedback.cancel","value":"Cancel"},{"key":"agent_chat.feedback.submit","value":"Submit"},{"key":"agent_chat.feedback.character_count","value":"{{current}}\/{{max}}"},{"key":"agent_chat.feedback.character_limit_reached","value":"Maximum length reached. Feedback is limited to {{max}} characters."},{"key":"agent_chat.buyer_profile.button.open","value":"Buyer Profile"},{"key":"agent_chat.buyer_profile.title","value":"Buyer Profile"},{"key":"agent_chat.buyer_profile.empty","value":"No buyer profile available."},{"key":"agent_chat.buyer_profile.close","value":"Close"},{"key":"agent_chat.suggestions.empty_state_label","value":"Suggested questions"},{"key":"agent_chat.suggestions.quick_reply_label","value":"Suggested replies"},{"key":"agent_chat.auth.sign_in_to_continue","value":"Sign in to continue"},{"key":"agent_chat.auth.sign_in","value":"Sign in"},{"key":"agent_chat.auth.skip_and_chat","value":"Skip and start chatting"},{"key":"agent_chat.auth.pre_chat_title","value":"Sign in to personalize and save your chats"},{"key":"agent_chat.auth.pre_chat_subtitle","value":"Sign in or create an account"},{"key":"agent_chat.auth.staff_chat_required_title","value":"Don't miss a reply"},{"key":"agent_chat.auth.staff_chat_required_subtitle","value":"Sign in to chat with our team. We'll email you if you leave the chat."},{"key":"agent_chat.auth.share_disclaimer","value":"By continuing, Shop will share your name and email with this store. See their {{terms_link}} and {{privacy_link}}"},{"key":"agent_chat.auth.terms_link","value":"terms"},{"key":"agent_chat.auth.privacy_link","value":"privacy policy"},{"key":"agent_chat.auth.declined_pre_chat","value":"I canât connect you with the store unless you sign in."},{"key":"agent_chat.reply_by_email.continuation_prompt","value":"If you leave the chat, weâll email you when thereâs a reply."},{"key":"agent_chat.reply_by_email.sign_in_prompt","value":"Sign in to get emailed when thereâs a reply."},{"key":"agent_chat.order_lookup.track_order","value":"Track my order"},{"key":"agent_chat.order_lookup.track_another_order","value":"Track another order"},{"key":"agent_chat.order_lookup.new_conversation","value":"New conversation"},{"key":"agent_chat.order_lookup.follow_up_label","value":"Order lookup actions"},{"key":"agent_chat.order_lookup.enter_order_information","value":"Enter order information"},{"key":"agent_chat.order_lookup.prompt","value":"To see your order status, please provide your order details."},{"key":"agent_chat.order_lookup.form_title","value":"Track my order"},{"key":"agent_chat.order_lookup.form_subtitle","value":"Please provide your information."},{"key":"agent_chat.order_lookup.order_number_label","value":"Order number"},{"key":"agent_chat.order_lookup.email_label","value":"Email address"},{"key":"agent_chat.order_lookup.submit","value":"Track my order"},{"key":"agent_chat.order_lookup.cancel","value":"Cancel"},{"key":"agent_chat.order_lookup.invalid_order_number","value":"Please enter a valid order number with only numbers and letters, no spaces (e.g. 1006)."},{"key":"agent_chat.order_lookup.invalid_order_number_whitespace","value":"Please enter a valid order number with only numbers and letters, no spaces (e.g. 1006)."},{"key":"agent_chat.order_lookup.invalid_email","value":"Please enter a valid email address"},{"key":"agent_chat.order_lookup.generic_error","value":"There was a problem looking up your order. Please try again."},{"key":"agent_chat.order_lookup.rate_limited_error","value":"Too many attempts. Try again later."},{"key":"agent_chat.order_lookup.locked_composer_status","value":"Order lookup is in progress. Start a new conversation to ask something else."},{"key":"agent_chat.legacy_contact.form_title","value":"Before we get started"},{"key":"agent_chat.legacy_contact.form_subtitle","value":"Please provide your information so we can reply to you if you leave the chat."},{"key":"agent_chat.legacy_contact.first_name_label","value":"First name"},{"key":"agent_chat.legacy_contact.last_name_label","value":"Last name"},{"key":"agent_chat.legacy_contact.email_label","value":"Email"},{"key":"agent_chat.legacy_contact.marketing_opt_in","value":"Email me with news and offers"},{"key":"agent_chat.legacy_contact.submit","value":"Start chat"},{"key":"agent_chat.legacy_contact.cancel","value":"Cancel"}
774,{"key":"agent_chat.legacy_contact.invalid_first_name","value":"Enter a valid first name."},{"key":"agent_chat.legacy_contact.invalid_last_name","value":"Enter a valid last name."},{"key":"agent_chat.legacy_contact.invalid_email","value":"Enter a valid email address."},{"key":"agent_chat.legacy_contact.invalid_email_length","value":"Email address is too long."},{"key":"agent_chat.legacy_contact.generic_error","value":"Something went wrong."},{"key":"agent_chat.legacy_contact.rate_limited_error","value":"Too many attempts. Try again later."},{"key":"agent_chat.discountCard.useDiscount","value":"Use discount"},{"key":"agent_chat.discountCard.discountApplicationContext","value":"Applies automatically at checkout"},{"key":"agent_chat.cart.checkout","value":"Checkout"},{"key":"agent_chat.product.add_to_cart","value":"Add to cart"},{"key":"agent_chat.product.view_details","value":"View details"},{"key":"agent_chat.product.out_of_stock","value":"Out of stock"},{"key":"agent_chat.product.compare_suggestions","value":"Compare suggestions"},{"key":"agent_chat.product.hide_suggestions","value":"Hide suggestions"},{"key":"agent_chat.product.sold_out","value":"Sold out"},{"key":"agent_chat.order.item.one","value":"item"},{"key":"agent_chat.order.item.other","value":"items"},{"key":"agent_chat.order.less_items.one","value":"- hide {{count}} item"},{"key":"agent_chat.order.less_items.other","value":"- hide {{count}} items"},{"key":"agent_chat.order.more_items.one","value":"+ {{count}} more item"},{"key":"agent_chat.order.more_items.other","value":"+ {{count}} more items"},{"key":"agent_chat.order.view_order","value":"View order {{orderId}}"},{"key":"agent_chat.order.track_shipment","value":"Track shipment"},{"key":"agent_chat.order.of_total","value":"{{index}} of {{total}}"},{"key":"agent_chat.order.label","value":"Order {{number}}"},{"key":"agent_chat.order.count.one","value":"{{count}} Order"},{"key":"agent_chat.order.count.other","value":"{{count}} Orders"},{"key":"agent_chat.order.ordered_on","value":"Ordered {{date}}"},{"key":"agent_chat.order.select","value":"Select order {{number}}"},{"key":"agent_chat.return.heading","value":"Select items to return"},{"key":"agent_chat.return.toggle_item","value":"Select {{name}}"},{"key":"agent_chat.return.select_item_non_returnable","value":"{{name}}, not returnable"},{"key":"agent_chat.return.quantity_label","value":"Return quantity"},{"key":"agent_chat.return.reason_label","value":"Reason for return"},{"key":"agent_chat.return.reason_placeholder","value":"Select a reason"},{"key":"agent_chat.return.confirm","value":"Request return"},{"key":"agent_chat.return.confirmed","value":"Return requested"},{"key":"agent_chat.return.reason.size_too_small","value":"Size too small"},{"key":"agent_chat.return.reason.size_too_large","value":"Size too large"},{"key":"agent_chat.return.reason.unwanted","value":"Unwanted"},{"key":"agent_chat.return.reason.not_as_described","value":"Not as described"},{"key":"agent_chat.return.reason.wrong_item","value":"Wrong item"},{"key":"agent_chat.return.reason.defective","value":"Defective"},{"key":"agent_chat.return.reason.style","value":"Style"},{"key":"agent_chat.return.reason.color","value":"Color"},{"key":"agent_chat.return.reason.other_reason","value":"Other"},{"key":"agent_chat.scroll.previous","value":"Previous"},{"key":"agent_chat.scroll.next","value":"Next"}]}</script>
vendor: 1 bytes, line 774
774
775<script id="shopify-customer-account-data" type="application/json">{"customer":null,"shop":{"id":"18912115","customerAccountTranslations":[{"key":"account_menu.signed_out_state.sheet_title","value":"Sign in or create account"},{"key":"account_menu.signed_out_state.section_divider","value":"More ways to sign in"},{"key":"account_menu.signed_out_state.alternate_divider","value":"OR"},{"key":"account_menu.signed_out_state.email_field_label","value":"Email"},{"key":"account_menu.signed_out_state.orders_button","value":"Orders"},{"key":"account_menu.signed_out_state.profile_button","value":"Profile"},{"key":"account_menu.signed_out_state.shop_login_button","value":"Sign in with Shop"},{"key":"account_menu.signed_out_state.continue_with_google","value":"Continue with Google"},{"key":"account_menu.signed_out_state.continue_with_facebook","value":"Continue with Facebook"},{"key":"account_menu.signed_out_state.marketing_consent_label","value":"Email me with news and offers"},{"key":"account_menu.signed_in_state.greeting_with_name","value":"Hi, {{first_name}}"},{"key":"account_menu.signed_in_state.greeting_without_name","value":"Account"},{"key":"account_menu.signed_in_state.orders_button","value":"Orders"},{"key":"account_menu.signed_in_state.profile_button","value":"Profile"},{"key":"account_menu.location_picker.sheet_title","value":"Locations"},{"key":"account_menu.location_picker.search_field_placeholder","value":"Search"},{"key":"account_menu.aria_labels.close_menu","value":"Close menu"},{"key":"account_menu.aria_labels.back_to_main_menu","value":"Back to main menu from {{title}}"},{"key":"account_menu.aria_labels.open_submenu","value":"{{title}}, opens submenu"},{"key":"account_menu.aria_labels.loading_menu","value":"Loading menu"},{"key":"account_menu.aria_labels.account","value":"Account"},{"key":"account_menu.aria_labels.sign_in_with_email","value":"Sign in with email"},{"key":"account_menu.aria_labels.sign_in","value":"Sign in"}],"socialLoginProviders":[{"handle":"Shop"}],"legacyCustomerAccounts":false,"signInLinksVisible":true,"b2bEnabled":false,"marketingConsentSigninEnabled":true,"marketingConsentPreselected":true},"visitor":{"country":"US","language":"en"}}</script>
775 776<meta name="shopify-y" content="3cc1556e-d14f-4baa-97b1-4869bcb1e439" data-expiration="1821990266000"><meta name="shopify-s" content="cbc17eb7-c23d-48d9-8ede-b38b98e6baa8" data-expiration="1790434466000"><meta name="new-cookie-storage-activated" content="t"> 777</head> 778 <body class="page"> 779 780 781 <!-- "snippets/socialshopwave-helper.liquid" was not rendered, the associated app was uninstalled --> 782 783 <!-- Google Tag Manager (noscript) -->
vendor: 87 bytes, lines 783-786
783 784 <noscript 785 ><iframe 786 src="https://www.googletagmanager.com/ns.html?id=
786GTM-MLSBP48
vendor: 123 bytes, lines 786-792
786" 787 height="0" 788 width="0" 789 style="display:none;visibility:hidden" 790 ></iframe 791 ></noscript> 792
792<!-- End Google Tag Manager (noscript) --> 793 <div id="shopify-section-header" class="shopify-section header-section"><div class="top_bar top_bar--fixed-true"> 794 <div class="container"> 795 796 <div class="four columns top_bar_search"> 797 <form class="search" action="/search"> 798 799 <input type="hidden" name="type" value="product" /> 800 801 <input type="text" name="q" class="search_box" placeholder="Search..." value="" autocapitalize="off" autocomplete="off" autocorrect="off" /> 802 </form> 803 </div> 804 805 806 807 <div class="four columns currencies-switcher mobile_hidden"> 808 <select id="currencies" class="currencies " name="currencies"> 809 810 811 <option value="USD" selected="selected">USD</option> 812 813 814 815 816 <option value="CAD">CAD</option> 817 818 819 820 <option value="INR">INR</option> 821 822 823 824 <option value="GBP">GBP</option> 825 826 827 828 <option value="AUD">AUD</option> 829 830 831 832 <option value="EUR">EUR</option> 833 834 835 836 <option value="JPY">JPY</option> 837 838 839</select> 840 </div> 841 842 843 <div class="columns eight"> 844 <ul> 845 846 847 <li> 848 <a href="/collections/gift-ideas">Gift Ideas</a> 849 </li> 850 851 852 853 854 855 856 857 858 859 <div id="ssw-topauth" class="ssw-topauth"> 860 861 <!-- <li> 862 <a id="customer_login_link" href="javascript:void(0);" data-toggle="ssw-modal" data-target="#login_modal" onclick="trackShopStats('login_popup_view', 'all')">Log in</a> 863 </li>--> 864 865 </div> 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 <li> 881 <a href="/cart" class="cart_button"><span class="icon-cart"></span> Cart (<span class="cart_count">0</span>)</a> 882 </li> 883 <li> 884 885 <a href="/cart" class="checkout">Checkout</a> 886 887 </li> 888 </ul> 889 </div> 890 </div> 891</div> 892 893<div class="container content"> 894 <div class="sixteen columns logo header-logo"> 895 896 <div class="header_icons"> 897 898 <a href="https://twitter.com/weeforestfolk" title="Wee Forest Folk on Twitter" class="ss-icon" rel="me" target="_blank"> 899  900 </a> 901 902 903 904 <a href="https://www.facebook.com/weeforestfolk/" title="Wee Forest Folk on Facebook" class="ss-icon" rel="me" target="_blank"> 905  906 </a> 907 908 909 910 911 912 913 914 915 916 <a href="https://www.pinterest.com/weeforestfolk/?etslf=5529&eq=wee%20fore" title="Wee Forest Folk on Pinterest" class="ss-icon" rel="me" target="_blank"> 917  918 </a> 919 920 921 922 923 924 <a href="https://www.instagram.com/weeforestfolk/" title="Wee Forest Folk on Instagram" class="ss-icon" rel="me" target="_blank"> 925  926 </a> 927 928 929 930 931 932 933 934 </div> 935 936 937 <a href="/" title="Wee Forest Folk" class="logo-align--center"> 938 939 <img src="//www.weeforestfolk.com/cdn/shop/files/wff-logo2_42ab3edd-f3b6-4611-87d9-3984fc50929d_720x.png?v=1613733598" alt="Wee Forest Folk" /> 940 941 </a> 942 </div> 943 944 <div class="sixteen columns clearfix"> 945 <div id="mobile_nav" class="nav-align--center nav-border--dotted"> 946 947 <div class="mobile_currency"> 948 <select id="currencies" class="currencies " name="currencies"> 949 950 951 <option value="USD" selected="selected">USD</option> 952 953 954 955 956 <option value="CAD">CAD</option> 957 958 959 960 <option value="INR">INR</option> 961 962 963 964 <option value="GBP">GBP</option> 965 966 967 968 <option value="AUD">AUD</option> 969 970 971 972 <option value="EUR">EUR</option> 973 974 975 976 <option value="JPY">JPY</option> 977 978 979</select> 980 </div> 981 982 </div> 983 <div id="nav" class=" nav-align--center 984 nav-border--dotted 985 nav-separator--none"> 986 <ul id="menu"> 987 988 989 <li><a href="/collections/new" >New</a></li> 990 991 992 993 <li><a href="/collections/2024-current-line" >2026 Current Line</a></li> 994 995 996 997 <li class="dropdown"><a href="/pages/our-process" class="sub-menu ">About Us<span class="icon-down-arrow arrow"></span></a> 998 <ul class="animated fadeIn"> 999 1000 1001 <li><a href="/pages/our-process">Our Process</a></li> 1002 1003 1004 1005 <li><a href="/pages/our-story">Our Story</a></li> 1006 1007 1008 1009 <li><a href="/pages/gallery">Gallery of Collector Displays</a></li> 1010 1011 1012 1013 <li><a href="/pages/tours">Tours</a></li> 1014 1015 1016 1017 <li><a href="/blogs/news">News</a></li> 1018 1019 1020 </ul> 1021 </li> 1022 1023 1024 1025 <li class="dropdown"><a href="/collections/all" class="sub-menu ">Categories<span class="icon-down-arrow arrow"></span></a> 1026 <ul class="animated fadeIn"> 1027 1028 1029 <li><a href="/collections/all" class="sub-menu">Sculptures <span class="icon-right-arrow arrow"></span></a> 1030 <ul class="animated fadeIn"> 1031 1032 <li><a href="/collections/mice">Mice</a></li> 1033 1034 <li><a href="/collections/bunnies">Bunnies</a></li> 1035 1036 <li><a href="/collections/bears">Bears</a></li> 1037 1038 <li><a href="/collections/birds">Birds</a></li> 1039 1040 <li><a href="/collections/fairies">Fairies</a></li> 1041 1042 <li><a href="/collections/minis">Minis</a></li> 1043 1044 </ul> 1045 </li> 1046 1047 1048 1049 <li><a href="/collections/accessories">Accessories</a></li> 1050 1051 1052 1053 <li><a href="/collections/retired" class="sub-menu">Retired <span class="icon-right-arrow arrow"></span></a> 1054 <ul class="animated fadeIn"> 1055 1056 <li><a href="/pages/retired">Retired List</a></li> 1057 1058 <li><a href="/pages/retired-pieces">Retired FAQ</a></li> 1059 1060 <li><a href="/collections/retired-2013">2013</a></li> 1061 1062 <li><a href="/collections/retired-2014">2014</a></li> 1063 1064 <li><a href="/collections/retired-2015">2015</a></li> 1065 1066 <li><a href="/collections/retired-2016">2016</a></li> 1067 1068 <li><a href="/collections/retired-2017">2017</a></li> 1069 1070 <li><a href="/collections/retired-january-2018">2018</a></li> 1071 1072 <li><a href="/collections/retired-2019">2019</a></li> 1073 1074 <li><a href="/collections/retired-2020">2020</a></li> 1075 1076 </ul> 1077 </li> 1078 1079 1080 1081 <li><a href="/collections/limited">Limited</a></li> 1082 1083 1084 1085 <li><a href="/collections/gifting" class="sub-menu">Gifting <span class="icon-right-arrow arrow"></span></a> 1086 <ul class="animated fadeIn"> 1087 1088 <li><a href="/products/gift-card">Gift Card</a></li> 1089 1090 <li><a href="/collections/note-cards">Note Cards</a></li> 1091 1092 <li><a href="/products/giftcheckout-gift-wrap">Gift Wrapping</a></li> 1093 1094 <li><a href="/products/wrapping-paper">Wrapping Paper</a></li> 1095 1096 <li><a href="/products/christmas-gift-tags">Christmas Gift Tags</a></li> 1097 1098 </ul> 1099 </li> 1100 1101 1102 1103 <li><a href="/collections/note-cards">Note Cards</a></li> 1104 1105 1106 1107 <li><a href="/collections/train-set-1">Train Set</a></li> 1108 1109 1110 1111 <li><a href="/collections/ornaments">Ornaments</a></li> 1112 1113 1114 1115 <li><a href="/collections/display-boxes">Displays</a></li> 1116 1117 1118 1119 <li><a href="/products/the-secret-flight-of-tom-mouse">Books</a></li> 1120 1121 1122 </ul> 1123 </li> 1124 1125 1126 1127 <li class="dropdown"><a href="/collections" class="sub-menu ">Collections<span class="icon-down-arrow arrow"></span></a> 1128 <ul class="animated fadeIn"> 1129 1130 1131 <li><a href="/collections/all">All</a></li> 1132 1133 1134 1135 <li><a href="/collections/gnomes-faries">Gnomes & Fairies</a></li> 1136 1137 1138 1139 <li><a href="/collections/forest-mice">Woodland Collection</a></li> 1140 1141 1142 1143 <li><a href="/collections/garden">Garden</a></li> 1144 1145 1146 1147 <li><a href="/collections/new-baby">New Baby</a></li> 1148 1149 1150 1151 <li><a href="/collections/professions">Professions</a></li> 1152 1153 1154 1155 <li><a href="/collections/sports">Sports</a></li> 1156 1157 1158 1159 <li><a href="/collections/train-set">Planes, Trains & Automobiles</a></li> 1160 1161 1162 1163 <li><a href="/collections/birthday">Birthday</a></li> 1164 1165 1166 1167 <li><a href="/collections/hobbies">
1167Hobbies</a></li> 1168 1169 1170 1171 <li><a href="/collections/pets">Pets</a></li> 1172 1173 1174 1175 <li><a href="/collections/couples">Couples</a></li> 1176 1177 1178 1179 <li><a href="/collections/family">Kids & Family</a></li> 1180 1181 1182 1183 <li><a href="/collections/wedding-anniversary">Wedding & Anniversary</a></li> 1184 1185 1186 1187 <li><a href="/collections/mothers-day-1">Gifts for Mom</a></li> 1188 1189 1190 1191 <li><a href="/collections/fathers-day-1">Gifts for Dad</a></li> 1192 1193 1194 1195 <li><a href="/collections/cupcakes">Cupcakes</a></li> 1196 1197 1198 1199 <li><a href="/collections/religious">Religious</a></li> 1200 1201 1202 </ul> 1203 </li> 1204 1205 1206 1207 <li class="dropdown"><a href="/collections/holidays" class="sub-menu ">Holiday Gifts<span class="icon-down-arrow arrow"></span></a> 1208 <ul class="animated fadeIn"> 1209 1210 1211 <li><a href="/collections/christmas">Christmas</a></li> 1212 1213 1214 1215 <li><a href="/collections/12-days-of-christmas">12 Days of Christmas</a></li> 1216 1217 1218 1219 <li><a href="/collections/thanksgiving">Thanksgiving</a></li> 1220 1221 1222 1223 <li><a href="/collections/halloween">Halloween</a></li> 1224 1225 1226 1227 <li><a href="/collections/valentines-day">Valentine's Day</a></li> 1228 1229 1230 1231 <li><a href="/collections/st-patricks-day">St. Patrick's Day</a></li> 1232 1233 1234 1235 <li><a href="/collections/easter">Easter</a></li> 1236 1237 1238 1239 <li><a href="/collections/mothers-day-1">Mother's Day </a></li> 1240 1241 1242 1243 <li><a href="/collections/fathers-day-1">Father's Day</a></li> 1244 1245 1246 1247 <li><a href="/collections/fourth-of-july">Fourth of July</a></li> 1248 1249 1250 1251 <li><a href="/collections/hannukah">Hanukkah</a></li> 1252 1253 1254 </ul> 1255 </li> 1256 1257 1258 1259 <li class="dropdown"><a href="/collections/seasons" class="sub-menu ">Season Inspired<span class="icon-down-arrow arrow"></span></a> 1260 <ul class="animated fadeIn"> 1261 1262 1263 <li><a href="/collections/spring">Spring</a></li> 1264 1265 1266 1267 <li><a href="/collections/summer">Summer</a></li> 1268 1269 1270 1271 <li><a href="/collections/fall">Fall</a></li> 1272 1273 1274 1275 <li><a href="/collections/winter">Winter</a></li> 1276 1277 1278 </ul> 1279 </li> 1280 1281 1282 1283 <li><a href="/pages/store-locator" class="active">Find a Store</a></li> 1284 1285 1286 </ul> 1287 </div> 1288 </div> 1289 1290 <div class="sixteen columns"> 1291 <div class="section clearfix featured_content"> 1292 1293 <a href="/blogs/news/halloween-special-offer"> 1294 1295 <p><strong>FREE tiny gift with your order until Oct. 31st!</strong></p> 1296 1297 </a> 1298 1299 </div> 1300 </div> 1301 1302</div> 1303 1304<style> 1305 .header-logo.logo a { 1306 max-width: 420px; 1307 } 1308 .featured_content a, .featured_content p { 1309 color: #EA8C19; 1310 } 1311</style> 1312 1313</div> 1314 1315 <div 1316 1317 class="container" 1318 1319 > 1320 <div id='scasl-app-container' class="new-for-mobile" style="display:none"> 1321<div class="bh-sl-container scasl-container" > 1322 <div id="page-header"> 1323 <h1 class="bh-sl-title">Find Our Store</h1> 1324 </div> 1325 1326 <div class="bh-sl-form-container"> 1327 <div id="scasl-tab-radius"> 1328 <form id="bh-sl-user-location" class="scasl-distance" method="post" action="#"> 1329 <div class="form-input"> 1330 <label for="bh-sl-address">Current Location</label> 1331 <div class="scasl-address-wrap"> 1332 <input type="text" id="bh-sl-address" name="bh-sl-address" />
1333 <a href="#" id="scapl-geocode-btn" title="Find My Location" style="background-color: none !important"> 1334 <img src="//www.weeforestfolk.com/cdn/shop/t/9/assets/sca.location-find-location.png?v=3821"> 1335 </a> 1336 <button id="scapl-geocode-btn" type="button">Find My Location</button> 1337 </div> 1338 </div> 1339 1340 <div class="scasl-see-more-content"> 1341 <div class="form-input"> 1342 <label for="scasl-radius-container">Search Radius</label> 1343 <select id="scasl-radius-container" name="bh-sl-maxdistance"> 1344 </select> 1345 </div> 1346 1347 <div class="form-input"> 1348 <label for="scasl-lengthUnit">Search Radius Measurement</label> 1349 <select id="scasl-lengthUnit" name="scasl-lengthUnit"> 1350 <option value="km">Kilometer</option> 1351 <option value="m">Mile</option> 1352 </select> 1353 </div> 1354 1355 <div class="bh-sl-filters-container scasl-tag"> 1356 <label for="scasl-tag-list-container">Tags</label> 1357 <ul id="scasl-tag-list-container" class="bh-sl-filters scasl-tag-list"> 1358 </ul> 1359 </div> 1360 </div> 1361 1362 <a class="scasl-see-more">More »</a> 1363 <a class="scasl-see-less">Less «</a> 1364 1365 <div class="scasl-search-btn"> 1366 <button id="bh-sl-submit" type="submit">Search</button> 1367 </div> 1368 </form> 1369 <div class="spinner"> 1370 <div class="double-bounce1"></div> 1371 <div class="double-bounce2"></div> 1372 </div> 1373 </div> 1374 </div> 1375 1376 <ul id="scasl-tabs"> 1377 <li class="scasl-tab-list active">List</li> 1378 <li class="scasl-tab-map">Map</li> 1379 </ul> 1380 1381 <div id="bh-sl-map-container" class="bh-sl-map-container scasl-map-container"> 1382 <div class="bh-sl-loc-list scasl-location-list"> 1383 <ul class="list"></ul> 1384 </div> 1385 <div id="bh-sl-map" class="bh-sl-map scasl-map"></div> 1386 </div> 1387</div> 1388 1389</div> 1390<br style="clear:both !important;" />
1391<script src="//cdn.secomapp.com/storelocator/assets/cdn/js/infobubble.min.js"></script>
vendor: 1 bytes, line 1391
1391
1392<script src="//cdnjs.cloudflare.com/ajax/libs/handlebars.js/4.0.5/handlebars.min.js"></script>
vendor: 1 bytes, line 1392
1392
1393<script> 1394if("undefined"==typeof Handlebars&&"function"==typeof define&&define.amd){var scasl_tempamd=define.amd;define.amd=void 0;var scasl_fileref=document.createElement("script");scasl_fileref.setAttribute("type","text/javascript"),scasl_fileref.setAttribute("src","//cdnjs.cloudflare.com/ajax/libs/handlebars.js/4.0.5/handlebars.min.js"),document.getElementsByTagName("head")[0].appendChild(scasl_fileref),setTimeout(function(){define.amd=scasl_tempamd},1e3)} 1395</script>
vendor: 1 bytes, line 1395
1395
1396<script src="https://cdnjs.cloudflare.com/ajax/libs/js-marker-clusterer/1.0.0/markerclusterer.js"></script>
1396 1397 1398 1399<link rel="stylesheet" type="text/css" href='//www.weeforestfolk.com/cdn/shop/t/9/assets/sca.storelocator.css?v=5902274656337517001640698978' /> 1400<link rel="stylesheet" type="text/css" href='//www.weeforestfolk.com/cdn/shop/t/9/assets/sca.api.storelocator.css?v=114989542776798313521698673731' />
1401<script id="scasl-infowindow-template" type="text"> 1402 1403{{#location}} 1404<div id="scasl-window-container" class="scasl-info-window"> 1405 <div class="scasl-info-location" {{#if store_image}} style="width:50%" {{/if}}> 1406 <div id="scasl-title" class="scasl-field" >{{name}}</div> 1407 <div id="scasl-description" class="scasl-field"><p>{{{description}}}</p></div> 1408 <div id="scasl-address" class="scasl-field">{{address}}</div> 1409 <div id="scasl-address2" class="scasl-field">{{address2}}</div> 1410 {{#if operating_hours}} 1411 <div class="scasl-operating-hour scasl-field"> 1412 <div class="minimize-oh-wrapper"> 1413 <span class="main-oh-status" style="color: {{oh_color}} !important">{{oh_main_status}}</span> 1414 <span class="end-oh-status">{{oh_end_status}}</span> 1415 </div> 1416 </div> 1417 {{/if}} 1418 <div>{{#if city}}<span id="scasl-city" class="scasl-field">{{city}}</span> {{/if}}{{#if state}}<span id="scasl-state" class="scasl-field">{{state}}</span> {{/if}}{{#if postal}}<span id="scasl-zipcode" class="scasl-field">{{postal}}</span> {{/if}}{{#if country}} <span id="scasl-country" class="scasl-field">{{country}}</span>{{/if}}</div> 1419 {{#if phone}}<div id="scasl-phone" class="scasl-field"><span id="scasl-phone-label">Ph:</span> <a href="tel:{{phone}}">{{phone}}</a> </div>{{/if}} 1420 {{#if fax}}<div id="scasl-fax" class="scasl-field"><span id="scasl-fax-label">Fax:</span> {{fax}} </div>{{/if}} 1421 {{#if email}}<div id="scasl-email" class="scasl-field"><span id="scasl-email-label">Email:</span> <a href="mailto:{{email}}">{{email}}</a> </div>{{/if}} 1422 {{#if schedule}}<div id="scasl-schedule" class="scasl-field"><span id="scasl-schedule-label">Store Message:</span> {{{schedule}}} </div>{{/if}} 1423 {{#each cfields}} 1424 <div id="scasl-extra"> 1425 <span>{{key}}</span>:<span>{{{value}}}</span> 1426 </div> 1427 {{/each}} 1428 <div id="scasl-tags" class="scasl-field"> 1429 {{#each tags}} 1430 <span class="scasl-tags">{{tag}}</span> 1431 {{/each}} 1432 </div> 1433 {{#if web}} 1434 <div id="scasl-web" class="scasl-field"><a href="{{web}}" target="_blank">{{#if webdisplay}}{{webdisplay}}{{else}}{{niceURL web}}{{/if}}</a></div> 1435 {{/if}} 1436 {{#if distance}} 1437 <div id="scasl-distance" class="scasl-field">{{distance}} {{length}}</div> 1438 <div id="scasl-direction" class="scasl-field"><a href="https://maps.google.com/maps?saddr={{origin}}&daddr={{address}} {{address2}} {{city}}, {{state}} {{postal}}" target="_blank">Directions</a></div> 1439 {{/if}} 1440 </div> 1441 1442 {{#if store_image}} 1443 <div id="scasl-store_image" class="scasl-info-image scasl-field"> 1444 <img src="{{store_image}}" /> 1445 </div> 1446 {{/if}} 1447</div> 1448{{/location}} 1449 1450</script>
1450 1451
1452<script id="scasl-list-template" type="text"> 1453 1454{{#location}} 1455<li id="scasl-list-container" data-markerid="{{markerid}}"> 1456 <div class="list-details scasl-list-details" {{#if store_image}} style="width:50%" {{/if}}> 1457 <div class="list-content scasl-list-content"> 1458 <div id="scasl-title" class="scasl-field" >{{name}}</div> 1459 <div id="scasl-description" class="scasl-field"><p>{{{description}}}</p></div> 1460 <div id="scasl-address" class="scasl-field">{{address}}</div> 1461 <div id="scasl-address2" class="scasl-field">{{address2}}</div> 1462 {{#if operating_hours}} 1463 <div class="scasl-operating-hour scasl-field"> 1464 <div class="minimize-oh-wrapper"> 1465 <span class="main-oh-status" style="color: {{oh_color}} !important">{{oh_main_status}}</span> 1466 <span class="end-oh-status">{{oh_end_status}}</span> 1467 <img src="{{oh_arrow_down}}" alt="Arrow Down Icon"> 1468 </div> 1469 <div class="maximize-oh-wrapper"> 1470 <div class="maximize-oh-status"> 1471 <span class="expand-oh-status" style="color: {{oh_color}} !important">{{oh_expand_content}}</span> 1472 <img src="{{oh_arrow_up}}" alt="Arrow Up Icon"> 1473 </div> 1474 <table> 1475 {{#each oh_data}} 1476 <tr> 1477 <td rowspan={{rowspan}} class="{{data1.class}}">{{ name }}{{#if reason}}<br>{{reason}}{{/if}}</td> 1478 <td class="{{data1.class}}">{{data1.content}}{{#if data1.timeDiffer}}<br><span class="time-different" style="color: #dd860e !important;">Hours might differ</span>{{/if}}{{#if data1.currentTimezoneText}}<br>{{data1.currentTimezoneText}}{{/if}}</td> 1479 </tr> 1480 {{#leftData}} 1481 <tr> 1482 <td class="{{class}}">{{content}}{{#if timeDiffer}}<br><span class="time-different" style="color: #dd860e !important;">Hours might differ</span>{{/if}}{{#if currentTimezoneText}}<br>{{currentTimezoneText}}{{/if}}</td> 1483 </tr> 1484 {{/leftData}} 1485 {{/each}} 1486 </table> 1487 </div> 1488 </div> 1489 {{/if}} 1490 <div>{{#if city}}<span id="scasl-city" class="scasl-field">{{city}}</span> {{/if}}{{#if state}}<span id="scasl-state" class="scasl-field">{{state}}</span> {{/if}}{{#if postal}}<span id="scasl-zipcode" class="scasl-field">{{postal}}</span> {{/if}}{{#if country}} <span id="scasl-country" class="scasl-field">{{country}}</span>{{/if}}</div> 1491 {{#if phone}}<div id="scasl-phone" class="scasl-field"><span id="scasl-phone-label">Ph:</span> <a href="tel:{{phone}}">{{phone}}</a> </div>{{/if}} 1492 {{#if fax}}<div id="scasl-fax" class="scasl-field"><span id="scasl-fax-label">Fax:</span> {{fax}} </div>{{/if}} 1493 {{#if email}}<div id="scasl-email" class="scasl-field"><span id="scasl-email-label">Email:</span> <a href="mailto:{{email}}">{{email}}</a> </div>{{/if}} 1494 {{#if schedule}}<div id="scasl-schedule" class="scasl-field"><span id="scasl-schedule-label">Store Message:</span> {{{schedule}}} </div>{{/if}} 1495 {{#each cfields}} 1496 <div id="scasl-extra"> 1497 <span>{{key}}</span>:<span>{{{value}}}</span> 1498 </div> 1499 {{/each}} 1500 <div id="scasl-tags" class="scasl-field"> 1501 {{#each tags}} 1502 <span class="scasl-tags">{{tag}}</span> 1503 {{/each}} 1504 </div> 1505 {{#if web}} 1506 <div id="scasl-web" class="scasl-field"><a href="{{web}}" target="_blank">{{#if webdisplay}}{{webdisplay}}{{else}}{{niceURL web}}{{/if}}</a></div> 1507 {{/if}} 1508 {{#if distance}} 1509 <div id="scasl-distance" class="scasl-field">{{distance}} {{length}}</div> 1510 <div id="scasl-direction" class="scasl-field"><a href="https://maps.google.com/maps?saddr={{origin}}&daddr={{address}} {{address2}} {{city}}, {{state}} {{postal}}" target="_blank">Directions</a></div> 1511 {{/if}} 1512 </div> 1513 </div> 1514 {{#if store_image}} 1515 <div id="scasl-store_image" class="list-image scasl-list-image scasl-field"> 1516 <img src="{{store_image}}" /> 1517 </div> 1518 {{/if}} 1519</li> 1520{{/location}} 1521 1522</script>
1522 1523
1524<script id="scasl-viewmap-btn-template" type="text"> 1525 1526<button class="scasl-view-map-btn">View Map</button> 1527 1528</script>
1528 1529 1530 </div> 1531 1532 <div id="shopify-section-footer" class="shopify-section footer-section"><footer class="footer text-align--center"> 1533 <div class="container"> 1534 <div class="sixteen columns"> 1535 1536 1537 1538 <div class="ten columns offset-by-three alpha center"> 1539 1540 <h6>Sign up for our Newsletter</h6> 1541 <p>Subscribe to our newsletter and always be the first to hear about what is happening.</p> 1542 <div class="newsletter "> 1543 <p class="message"></p> 1544 1545 <form method="post" action="/contact#contact_form" id="contact_form" accept-charset="UTF-8" class="contact-form"><input type="hidden" name="form_type" value="customer" /><input type="hidden" name="utf8" value="â" /> 1546 1547 1548 1549 <input type="hidden" name="contact[tags]" value="newsletter"> 1550 1551 1552 1553 <input class="newsletter-half first-name" type="text" name="contact[first_name]" placeholder="First Name" /> 1554 1555 1556 <input class="newsletter-half last-name" type="text" name="contact[last_name]" placeholder="Last Name" /> 1557 1558 1559 <input type="hidden" name="challenge" value="false"> 1560 <input type="email" class="contact_email" name="contact[email]" required placeholder="Enter your email address..." autocorrect="off" autocapitalize="off" /> 1561 <input type='submit' name="commit" class="action_button sign_up" value="Sign Up" /> 1562 </form> 1563</div> 1564 1565 1566 1567 1568 <a href="https://twitter.com/weeforestfolk" title="Wee Forest Folk on Twitter" class="ss-icon" rel="me" target="_blank"> 1569  1570 </a> 1571 1572 1573 1574 <a href="https://www.facebook.com/weeforestfolk/" title="Wee Forest Folk on Facebook" class="ss-icon" rel="me" target="_blank"> 1575  1576 </a> 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 <a href="https://www.pinterest.com/weeforestfolk/?etslf=5529&eq=wee%20fore" title="Wee Forest Folk on Pinterest" class="ss-icon" rel="me" target="_blank"> 1587  1588 </a> 1589 1590 1591 1592 1593 1594 <a href="https://www.instagram.com/weeforestfolk/" title="Wee Forest Folk on Instagram" class="ss-icon" rel="me" target="_blank"> 1595  1596 </a> 1597 1598 1599 1600 1601 1602 1603 1604 1605 </div> 1606 1607 1608 1609 <div class="sixteen columns alpha omega center"> 1610 <div class="section"> 1611 1612 <hr /> 1613 1614 1615 1616 <ul class="footer_menu"> 1617 1618 <li><a href="/search">Search</a></li> 1619 1620 <li><a href="/pages/pay-with-afterpay">Afterpay</a></li> 1621 1622 <li><a href="/pages/retired">Retired</a></li> 1623 1624 <li><a href="/pages/retired-pieces">FAQs</a></li> 1625 1626 <li><a href="/pages/wholesale">Wholesale</a></li> 1627 1628 <li><a href="/pages/repairs">Repairs</a></li> 1629 1630 <li><a href="/pages/terms-of-service">Terms & Conditions</a></li> 1631 1632 <li><a href="/pages/return-policy">Return Policy</a></li> 1633 1634 <li><a href="/pages/privacy-policy">Privacy Policy</a></li> 1635 1636 <li><a href="/pages/contact-us">Contact</a></li> 1637 1638 </ul> 1639 1640 1641 <p class="credits"> 1642 © 2026 <a href="/" title="">Wee Forest Folk</a>. 1643 1644 1645 1646 </p> 1647 1648 1649 </div> 1650 </div> 1651 </div> 1652 </div> 1653</footer> <!-- end footer --> 1654 1655 1656</div> 1657 1658 1659 1660 1661 1662
1663<script src="/services/javascripts/currencies.js" type="text/javascript"></script>
vendor: 1 bytes, line 1663
1663
1664<script src="//www.weeforestfolk.com/cdn/shop/t/9/assets/jquery.currencies.min.js?v=165048700939037185011599870189" type="text/javascript"></script>
1664 1665
1666<script> 1667 1668 1669 Currency.format = 'money_format'; 1670 1671 1672var shopCurrency = 'USD'; 1673 1674/* Sometimes merchants change their shop currency, let's tell our JavaScript file */ 1675Currency.money_with_currency_format[shopCurrency] = "${{amount_no_decimals}} USD"; 1676Currency.money_format[shopCurrency] = "${{amount_no_decimals}}"; 1677 1678/* Default currency */ 1679var defaultCurrency = 'USD' || shopCurrency; 1680 1681/* Cookie currency */ 1682var cookieCurrency = Currency.cookie.read(); 1683 1684/* Fix for customer account pages */ 1685jQuery('span.money span.money').each(function() { 1686 jQuery(this).parents('span.money').removeClass('money'); 1687}); 1688 1689/* Saving the current price */ 1690jQuery('span.money').each(function() { 1691 jQuery(this).attr('data-currency-USD', jQuery(this).html()); 1692}); 1693 1694// If there's no cookie. 1695if (cookieCurrency == null) { 1696 if (shopCurrency !== defaultCurrency) { 1697 Currency.convertAll(shopCurrency, defaultCurrency); 1698 } 1699 else { 1700 Currency.currentCurrency = defaultCurrency; 1701 } 1702} 1703// If the cookie value does not correspond to any value in the currency dropdown. 1704else if (jQuery('[name=currencies]').size() && jQuery('[name=currencies] option[value=' + cookieCurrency + ']').size() === 0) { 1705 Currency.currentCurrency = shopCurrency; 1706 Currency.cookie.write(shopCurrency); 1707} 1708else if (cookieCurrency === shopCurrency) { 1709 Currency.currentCurrency = shopCurrency; 1710} 1711else { 1712 Currency.convertAll(shopCurrency, cookieCurrency); 1713} 1714 1715jQuery('[name=currencies]').val(Currency.currentCurrency).change(function() { 1716 var newCurrency = jQuery(this).val(); 1717 Currency.convertAll(Currency.currentCurrency, newCurrency); 1718 jQuery('.selected-currency').text(Currency.currentCurrency); 1719}); 1720 1721var original_selectCallback = window.selectCallback; 1722var selectCallback = function(variant, selector) { 1723 original_selectCallback(variant, selector); 1724 Currency.convertAll(shopCurrency, jQuery('[name=currencies]').val()); 1725 jQuery('.selected-currency').text(Currency.currentCurrency); 1726}; 1727 1728jQuery('.selected-currency').text(Currency.currentCurrency); 1729 1730</script>
1730 1731 1732 1733 1734 1735 <!-- Bold: CSP Step 1 (theme) --> 1736
1736<script type="text/javascript" charset="utf-8"> 1737 var shappify_customer_tags =null 1738 </script>
1738 1739 <!-- // end bold code --> 1740 1741 <!-- BEEKETINGSCRIPT CODE START --> 1742 1743 <!-- BEEKETINGSCRIPT CODE END --> 1744 1745 1746<link rel="dns-prefetch" href="https://swymstore-v3starter-01.swymrelay.com" crossorigin> 1747<link rel="dns-prefetch" href="//swymv3starter-01.azureedge.net/code/swym-shopify.js"> 1748<link rel="preconnect" href="//swymv3starter-01.azureedge.net/code/swym-shopify.js">
1749<script id="swym-snippet"> 1750 window.swymLandingURL = document.URL; 1751 window.swymCart = {"note":null,"attributes":{},"original_total_price":0,"total_price":0,"total_discount":0,"total_weight":0.0,"item_count":0,"items":[],"requires_shipping":false,"currency":"USD","items_subtotal_price":0,"cart_level_discount_applications":[],"checkout_charge_amount":0}; 1752 window.swymPageLoad = function(){ 1753 window.SwymProductVariants = window.SwymProductVariants || {}; 1754 window.SwymHasCartItems = 0 > 0; 1755 window.SwymPageData = {}, window.SwymProductInfo = {}; 1756 var unknown = {et: 0}; 1757 window.SwymPageData = unknown; 1758 1759 window.SwymPageData.uri = window.swymLandingURL; 1760 }; 1761 1762 if(window.selectCallback){ 1763 (function(){ 1764 // Variant select override 1765 var originalSelectCallback = window.selectCallback; 1766 window.selectCallback = function(variant){ 1767 originalSelectCallback.apply(this, arguments); 1768 try{ 1769 if(window.triggerSwymVariantEvent){ 1770 window.triggerSwymVariantEvent(variant.id); 1771 } 1772 }catch(err){ 1773 console.warn("Swym selectCallback", err); 1774 } 1775 }; 1776 })(); 1777 } 1778 window.swymCustomerId = null; 1779 window.swymCustomerExtraCheck = null; 1780 1781 var swappName = ("Watchlist" || "Wishlist"); 1782 var swymJSObject = { 1783 pid: "vI+zGOzHe99yQkedyETbm79vBM8kQ74F41y+Yj064uY=" || "vI+zGOzHe99yQkedyETbm79vBM8kQ74F41y+Yj064uY=", 1784 interface: "/apps/swym" + swappName + "/interfaces/interfaceStore.php?appname=" + swappName 1785 }; 1786 window.swymJSShopifyLoad = function(){ 1787 if(window.swymPageLoad) swymPageLoad(); 1788 if(!window._swat) { 1789 (function (s, w, r, e, l, a, y) { 1790 r['SwymRetailerConfig'] = s; 1791 r[s] = r[s] || function (k, v) { 1792 r[s][k] = v; 1793 }; 1794 })('_swrc', '', window); 1795 _swrc('RetailerId', swymJSObject.pid); 1796 _swrc('Callback', function(){initSwymShopify();}); 1797 }else if(window._swat.postLoader){ 1798 _swrc = window._swat.postLoader; 1799 _swrc('RetailerId', swymJSObject.pid); 1800 _swrc('Callback', function(){initSwymShopify();}); 1801 }else{ 1802 initSwymShopify(); 1803 } 1804 } 1805 if(!window._SwymPreventAutoLoad) { 1806 swymJSShopifyLoad(); 1807 } 1808 window.swymGetCartCookies = function(){ 1809 var RequiredCookies = ["cart", "swym-session-id", "swym-swymRegid", "swym-email"]; 1810 var reqdCookies = {}; 1811 RequiredCookies.forEach(function(k){ 1812 reqdCookies[k] = _swat.storage.getRaw(k); 1813 }); 1814 var cart_token = window.swymCart.token; 1815 var data = { 1816 action:'cart', 1817 token:cart_token, 1818 cookies:reqdCookies 1819 }; 1820 return data; 1821 } 1822 1823 window.swymGetCustomerData = function(){ 1824 1825 return {status:1}; 1826 1827 } 1828</script>
1828 1829 1830<style id="safari-flasher-pre"></style>
1831<script> 1832 if (navigator.userAgent.indexOf('Safari') != -1 && navigator.userAgent.indexOf('Chrome') == -1) { 1833 document.getElementById("safari-flasher-pre").innerHTML = '' 1834 + '#swym-plugin,#swym-hosted-plugin{display: none;}' 1835 + '.swym-button.swym-add-to-wishlist{display: none;}' 1836 + '.swym-button.swym-add-to-watchlist{display: none;}' 1837 + '#swym-plugin #swym-notepad, #swym-hosted-plugin #swym-notepad{opacity: 0; visibility: hidden;}' 1838 + '#swym-plugin #swym-notepad, #swym-plugin #swym-overlay, #swym-plugin #swym-notification,' 1839 + '#swym-hosted-plugin #swym-notepad, #swym-hosted-plugin #swym-overlay, #swym-hosted-plugin #swym-notification' 1840 + '{-webkit-transition: none; transition: none;}' 1841 + ''; 1842 window.SwymCallbacks = window.SwymCallbacks || []; 1843 window.SwymCallbacks.push(function(tracker){ 1844 tracker.evtLayer.addEventListener(tracker.JSEvents.configLoaded, function(){ 1845 // flash-preventer 1846 var x = function(){ 1847 SwymUtils.onDOMReady(function() { 1848 var d = document.createElement("div"); 1849 d.innerHTML = "<style id='safari-flasher-post'>" 1850 + "#swym-plugin:not(.swym-ready),#swym-hosted-plugin:not(.swym-ready){display: none;}" 1851 + ".swym-button.swym-add-to-wishlist:not(.swym-loaded){display: none;}" 1852 + ".swym-button.swym-add-to-watchlist:not(.swym-loaded){display: none;}" 1853 + "#swym-plugin.swym-ready #swym-notepad, #swym-plugin.swym-ready #swym-overlay, #swym-plugin.swym-ready #swym-notification," 1854 + "#swym-hosted-plugin.swym-ready #swym-notepad, #swym-hosted-plugin.swym-ready #swym-overlay, #swym-hosted-plugin.swym-ready #swym-notification" 1855 + "{-webkit-transition: opacity 0.3s, visibility 0.3ms, -webkit-transform 0.3ms !important;-moz-transition: opacity 0.3s, visibility 0.3ms, -moz-transform 0.3ms !important;-ms-transition: opacity 0.3s, visibility 0.3ms, -ms-transform 0.3ms !important;-o-transition: opacity 0.3s, visibility 0.3ms, -o-transform 0.3ms !important;transition: opacity 0.3s, visibility 0.3ms, transform 0.3ms !important;}" 1856 + "</style>"; 1857 document.head.appendChild(d); 1858 }); 1859 }; 1860 setTimeout(x, 10); 1861 }); 1862 }); 1863 } 1864</script>
1864 1865<style id="swym-product-view-defaults"> 1866 /* Hide when not loaded */ 1867 .swym-button.swym-add-to-wishlist-view-product:not(.swym-loaded){ 1868 display: none; 1869 } 1870</style> 1871 1872 1873 1874 1875 1876 1877 1878 <!-- 1879
1879<script src="https://apis.google.com/js/platform.js?onload=renderBadge" async defer></script>
1879 1880
1880<script> 1881 window.renderBadge = function() { 1882 var ratingBadgeContainer = document.createElement("div"); 1883 document.body.appendChild(ratingBadgeContainer); 1884 window.gapi.load('ratingbadge', function() { 1885 window.gapi.ratingbadge.render(ratingBadgeContainer, { 1886 "merchant_id": 126253303, 1887 "position": "BOTTOM_LEFT" 1888 }); 1889 }); 1890 } 1891 window.___gcfg = { 1892 lang: 'en_US' 1893 }; 1894 </script>
1894 1895 --> 1896 1897 <!-- Start of Afterpay assets --> 1898<!-- Begin Shopify-Afterpay JavaScript Snippet (v1.0.4) -->
1899<script type="text/javascript"> 1900 var afterpay_logo_theme = 'colour'; // 'colour', 'black' or 'white'. 1901// var afterpay_product_selector = '.product__prices:nth-child(4)'; 1902// var afterpay_cart_static_selector = '.cart__total-amount'; 1903 var afterpay_min = 1; 1904 var afterpay_max = 1000; 1905 var afterpay_show_currency_code = false; 1906 var afterpay_modal_responsive = true; 1907 var afterpay_modal_open_icon = true; 1908 var afterpay_hide_upper_limit = true; 1909 1910 var afterpay_shop_currency = "USD"; 1911 var afterpay_shop_money_format = "${{amount_no_decimals}}"; 1912 var afterpay_shop_permanent_domain = "wee-forest-folk.myshopify.com"; 1913 var afterpay_theme_name = "Responsive - Wholesale [Afterpay 9\/11\/20]"; 1914 var afterpay_product = null; 1915 var afterpay_current_variant = null; 1916 var afterpay_cart_total_price = 0; 1917 var afterpay_js_snippet_version = '1.0.4'; 1918 var cartItems = []; 1919 var isGiftCard = (item) => item.product_type === "Gift Card"; 1920 1921 if(afterpay_product && afterpay_product.type === "Gift Card") { 1922 afterpay_product_selector = ''; 1923 } 1924 1925 if(cartItems && cartItems.some(isGiftCard)) { 1926 afterpay_cart_static_selector = ''; 1927 } 1928</script>
1928 1929
1930<script type="text/javascript" src="https://static.afterpay.com/shopify-afterpay-javascript.js"></script>
1930 1931<!-- End Shopify-Afterpay JavaScript Snippet (v1.0.4) --> 1932<style type="text/css"> 1933 .afterpay-logo { 1934 width: 5.5em !important; 1935 height: auto !important; 1936 } 1937 .afterpay-link-inner, .afterpay-link { 1938 color: black; 1939 text-decoration: none; 1940 } 1941 1942 .afterpay-paragraph { 1943 font-size: 0.9em; 1944 margin-bottom: 18px !important; 1945 } 1946 1947 1948 .afterpay-modal-headline { 1949 border: none; 1950 } 1951</style> 1952<!-- End of Afterpay assets --> 1953 1954 <!-- Back in Stock helper snippet --> 1955 1956
1957<script id="back-in-stock-helper"> 1958 var _BISConfig = _BISConfig || {}; 1959 1960 1961 1962 1963</script>
1963 1964 1965 <!-- End Back in Stock helper snippet --> 1966 1967
1967<script async src="https://reviews.trustapps.co/js/dbfb2f7f-c21c-4f01-ad9e-1b5351ccb645/trustreviews.1631276147.js?shop=wee-forest-folk.myshopify.com"></script>
1967 1968 1969 1970 1971 1972 <!-- Begin Constant Contact Active Forms -->
1973<script> var _ctct_m = "946b7098d97036bbd02bdd25332eaf0c"; </script>
vendor: 1 bytes, line 1973
1973
1974<script id="signupScript" src="//static.ctctcdn.com/js/signup-form-widget/current/signup-form-widget.min.js" async defer></script>
1974 1975<!-- End Constant Contact Active Forms --> 1976 1977 1978 1979 <div id="shopify-block-AU2NlRUlROGErWGk1V__16934432316630173842" class="shopify-block shopify-app-block"> 1980 1981 1982
1983<script> 1984 var isPfAppEmbed = true; 1985</script>
1985 1986 1987 1988</div><div id="shopify-block-AbEpqaklGb2U2U255a__10274264662263595587" class="shopify-block shopify-app-block">
1989<script> 1990 window.SwymCollectionsConfig = { 1991 'CollectionsSelectors': [], 1992 'CollectionsPosition': "top-right", 1993 'CollectionsIcon': "heart", 1994 'CollectionsButtonSize': 25, 1995 'CollectionsVerticalOffset': 0, 1996 'CollectionsHorizontalOffset': 0, 1997 'CollectionsProductLinkSelector': "-", 1998 'CollectionsProductTileSelector': "-", 1999 'CollectionsVariantSelector': "false", 2000 'CollectionsVariantSelectorChooseActionText': "Choose or Create new Wishlist", 2001 'CollectionsCreateListTitle': "Name Your Wishlist", 2002 'CollectionsCreateListPlaceholder': "Enter wishlist name", 2003 'CollectionsCustomIconAdd': "", 2004 'CollectionsCustomIconAdded': "", 2005 'CollectionsIconColor': "#000000", 2006 'CollectionsIconThickness': "1.7", 2007} 2008</script>
2008 2009<style> 2010 .swym-wishlist-collections-v2, .swym-wishlist-collections-v2 svg {border:unset; background:unset; min-width: 25px; height: 25px!important;} 2011 .swym-wishlist-collections-icon-heart-filled, .swym-wishlist-collections-icon-heart-unfilled, .swym-wishlist-collections-icon-star-filled, .swym-wishlist-collections-icon-star-unfilled, .swym-wishlist-collections-icon-bookmark-unfilled, .swym-wishlist-collections-icon-bookmark-filled {fill: #000000;} 2012 .swym-wishlist-collections-v2 .swym-collections-social-count {color: #000000;} 2013</style> 2014 2015 2016
2017<script> 2018 // Send heartbeat for collections button 2019 (function() { 2020 let collectionsButtonHeartbeatData = ''; 2021 try { 2022 collectionsButtonHeartbeatData = JSON.parse(collectionsButtonHeartbeatData) || {}; 2023 } catch (e) { 2024 collectionsButtonHeartbeatData = {}; 2025 } 2026 const ShopifyTheme = window.Shopify.theme; 2027 const themeId = ShopifyTheme.id; 2028 let heartbeatMetadata = { 2029 schema_name: ShopifyTheme?.schema_name, 2030 schema_version: ShopifyTheme?.schema_version, 2031 theme_store_id: ShopifyTheme?.theme_store_id, 2032 role: ShopifyTheme?.role 2033 }; 2034 2035 const isDesignMode = !!window.swymDesignMode; 2036 2037 if (!window.SwymCallbacks) { 2038 window.SwymCallbacks = []; 2039 } 2040 window.SwymCallbacks.push((swat) => { 2041 if (!swat || !themeId) { 2042 return; 2043 } 2044 const triggerHeartbeat = swat?.ExtensionHealth?.triggerExtensionHeartbeat; 2045 if (typeof triggerHeartbeat !== "function") return; 2046 2047 const lastHeartbeat = isDesignMode ? collectionsButtonHeartbeatData?.editor : collectionsButtonHeartbeatData?.[themeId]; 2048 const themeContext = isDesignMode ? 'editor' : themeId; 2049 2050 const extensionData = { 2051 extensionName: "add-to-wishlist-collections-button", 2052 extensionType: "app-embed", 2053 metadata: heartbeatMetadata, 2054 themeId: themeContext, 2055 extensionSource: "default" 2056 }; 2057 2058 /** Stop heartbeat 2059 triggerHeartbeat(extensionData, lastHeartbeat); 2060 */ 2061 }); 2062 })(); // IIFE to prevent polluting global scope 2063</script>
2063 2064 2065 2066<style> 2067 .swym-advanced-wishlist-collections-container { 2068 display: none; 2069 } 2070</style> 2071</div><div id="shopify-block-AT09BQzF5OVIxeEV5U__12645857707859633983" class="shopify-block shopify-app-block"> 2072
2073<script> 2074 var isOlAppEmbed = true; 2075</script>
2075 2076 2077 2078</div><div id="shopify-block-ASXJCWWEvMUE5L1VWd__5946647744298494267" class="shopify-block shopify-app-block"> 2079 2080 2081<!-- BEGIN app snippet: swymVersion -->
2081<script>var __SWYM__VERSION__ = '7.0.7';</script>
2081<!-- END app snippet --> 2082<!-- BEGIN app snippet: swymCustomCss --> 2083 2084 2085 2086 2087<style id="swym-custom-css"> 2088 2089</style> 2090 2091<!-- END app snippet --> 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103
2104<script> 2105 (function () { 2106 // Get CompanyLocation Metadata for B2B customer scenerios (SFS) 2107 2108 2109 // Put metafields in window variable 2110 const commonCustomizationSettings = '{"global-settings":{"icon":"heart","primaryColor":"#03000C","secondaryColor":"#FFFFFF","storefrontLayoutType":"as-drawer","buttonType":{"displayIcon":true,"displayText":true,"style":"solid"},"collectionsButtonPosition":{"position":"top-right","verticalOffset":0,"horizontalOffset":0},"pdpButtonPosition":{"position":"default","verticalOffset":0,"horizontalOffset":0},"enableStorefrontLayoutNotification":true,"storefrontLayoutDrawerWidth":400}}'; 2111 try { 2112 const parsedSettings = JSON.parse(commonCustomizationSettings); 2113 if (parsedSettings) { 2114 window.SwymWishlistCommonCustomizationSettings = parsedSettings[window.Shopify.theme.schema_name] || parsedSettings['global-settings']; 2115 } else { 2116 window.SwymWishlistCommonCustomizationSettings = {}; 2117 } 2118 } catch (e) { 2119 window.SwymWishlistCommonCustomizationSettings = {}; 2120 } 2121 2122 let enabledCommonFeatures = '{"add-to-wishlist-collections-button":true,"add-to-wishlist-pdp-button":true,"auto-add-to-wishlist-from-pdp":{"pdpViewCount":"3","notificationTimeoutDuration":"5","selectedPosition":"TopLeft","enabled":true},"sfl-popup-v2":true,"control-centre":true,"multiple-wishlist":false,"social-count":{"enabledOnCollections":false}}'; 2123 try { 2124 enabledCommonFeatures = JSON.parse(enabledCommonFeatures) || {}; 2125 } catch (e) { 2126 enabledCommonFeatures = {}; 2127 } 2128 // Storing COMMON FEATURES data in the window object for potential use in the storefront JS code. 2129 window.SwymEnabledCommonFeatures = enabledCommonFeatures; 2130 2131 // Ghost-Intent Configuration 2132 // Defaults to disabled (false). Only enabled when metafields explicitly set to "true". 2133 try { 2134 let ghostIntentConfig = { 2135 isExplicitConsentNeeded: false, 2136 isExplicitConsentNeededEvenForLocalStorage: false, 2137 askForPermissionOnFirstClick: true 2138 }; 2139 2140 2141 2142 window.SwymGhostIntentConfig = ghostIntentConfig; 2143 } catch(e) { 2144 window.SwymGhostIntentConfig = { 2145 isExplicitConsentNeeded: false, 2146 isExplicitConsentNeededEvenForLocalStorage: false, 2147 askForPermissionOnFirstClick: true 2148 }; 2149 } 2150 2151 // Education Layer Configuration 2152 // Reads from common enabled-features metafield first. Falls back to old standalone metafield for backward compatibility. 2153 2154 2155 window.SwymEducationLayerEnabled = enabledCommonFeatures?.["education-layer"] ?? true; 2156 2157 // Login Nudge Configuration 2158 // Reads from common enabled-features metafield first. Falls back to old standalone metafield for backward compatibility. 2159 2160 2161 window.SwymLoginNudgeEnabled = enabledCommonFeatures?.["login-nudge"] ?? true; 2162 2163 // Initialize or ensure SwymViewProducts exists 2164 if (!window.SwymViewProducts) { 2165 window.SwymViewProducts = {}; 2166 } 2167 2168 })(); 2169</script>
2169 2170 2171<!-- BEGIN app snippet: swymLoadConsentManager -->
2172<script> 2173 (function () { 2174 if (document.querySelector("script[data-swym-consent-manager]")) return; 2175 var swymConsentManagerScript = document.createElement("script"); 2176 swymConsentManagerScript.src = "https:\/\/cdn.shopify.com\/extensions\/01a0d2a3-23d4-7eab-8707-4bef87dc5dd8\/swym-relay-839\/assets\/swym-consent-manager.js"; 2177 swymConsentManagerScript.async = false; // run in insertion order once fetched, instead of whenever fetch resolves 2178 swymConsentManagerScript.setAttribute("data-swym-consent-manager", "true"); 2179 document.head.appendChild(swymConsentManagerScript); 2180 })(); 2181</script>
2181 2182<!-- END app snippet --> 2183
2184<script 2185 2186 id="wishlist-embed-init" 2187 defer 2188 async 2189> 2190 (function () { 2191 window.swymWishlistEmbedLoaded = true; 2192 var fullAssetUrl = "https://cdn.shopify.com/extensions/01a0d2a3-23d4-7eab-8707-4bef87dc5dd8/swym-relay-839/assets/apps.bundle.js"; 2193 var assetBaseUrl = fullAssetUrl?.substring(0, fullAssetUrl.lastIndexOf('/') + 1); 2194 var swymJsPath = '//startercdn.swymrelay.com/code/swym-shopify.js'; 2195 var baseJsPath = swymJsPath?.substring(0, swymJsPath.lastIndexOf('/') + 1); 2196 window.SwymCurrentJSPath = baseJsPath; 2197 window.SwymAssetBaseUrl = assetBaseUrl; 2198 2199 window.SwymCurrentStorePath = "//swymstore-v3starter-01.swymrelay.com"; 2200 2201 function loadSwymShopifyScript() { 2202 var element = ""; 2203 var scriptSrc = ""; 2204 2205 2206 element = "swym-ext-shopify-script"; 2207 window.SwymShopifyCdnInUse = true; 2208 scriptSrc = "https://cdn.shopify.com/extensions/01a0d2a3-23d4-7eab-8707-4bef87dc5dd8/swym-relay-839/assets/swym-ext-shopify.js"; 2209 2210 2211 if (document.getElementById(element)) { 2212 return; 2213 } 2214 2215 var s = document.createElement("script"); 2216 s.id = element; 2217 s.type = "text/javascript"; 2218 s.async = true; 2219 s.defer = true; 2220 s.src = scriptSrc; 2221 2222 s.onerror = function() { 2223 console.warn("Failed to load Swym Shopify script: ", scriptSrc, " Continuing with default"); 2224 // Fallback logic here 2225 element = `swym-ext-shopify-script-${__SWYM__VERSION__}`; 2226 var fallbackJsPathVal = "\/\/startercdn.swymrelay.com\/code\/swym-shopify.js"; 2227 var fallbackJsPathWithExt = fallbackJsPathVal.replace("swym-shopify", "swym-ext-shopify"); 2228 scriptSrc = fallbackJsPathWithExt + '?shop=' + encodeURIComponent(window.Shopify.shop) + '&v=' + __SWYM__VERSION__; 2229 2230 var fallbackScript = document.createElement("script"); 2231 fallbackScript.id = element; 2232 fallbackScript.type = "text/javascript"; 2233 fallbackScript.async = true; 2234 fallbackScript.defer = true; 2235 fallbackScript.src = scriptSrc; 2236 var y = document.getElementsByTagName("script")[0]; 2237 y.parentNode.insertBefore(fallbackScript, y); 2238 }; 2239 2240 var x = document.getElementsByTagName("script")[0]; 2241 x.parentNode.insertBefore(s, x); 2242 } 2243 2244 var consentAPICallbackInvoked = false; 2245 function checkConsentAndLoad() { 2246 // Allow app to load in design mode (theme editor) regardless of consent 2247 if (window.Shopify?.designMode) { 2248 loadSwymShopifyScript(); 2249 return; 2250 } 2251 2252 // Ghost-Intent: If merchant enabled explicit consent, block SDK until 2253 // consent is given through our Ghost-Intent flow (sync nudge accept). 2254 // This works on any store regardless of region (EU or non-EU). 2255 var ghostConfig = window.SwymGhostIntentConfig || {}; 2256 if (ghostConfig.isExplicitConsentNeeded || ghostConfig.isExplicitConsentNeededEvenForLocalStorage) { 2257 try { 2258 var consentKey = 'swym-ghost-consent-' + (window.Shopify && window.Shopify.shop || ''); 2259 if (localStorage.getItem(consentKey) === 'true') { 2260 // Consent was given through our flow â load SDK 2261 loadSwymShopifyScript(); 2262 return; 2263 } 2264 } catch(e) {} 2265 2266 // Check if Shopify native cookie consent was given via the cookie banner. 2267 // If user accepted cookies through Shopify's banner, load SDK normally 2268 // (Ghost-Intent is only needed when NO consent mechanism has been used). 2269 var shopifyConsentGiven = window.Shopify?.customerPrivacy?.preferencesProcessingAllowed?.(); 2270 if (shopifyConsentGiven) { 2271 loadSwymShopifyScript(); 2272 return; 2273 } 2274 2275 console.warn("[Swym Ghost-Intent] SDK blocked until explicit consent is given"); 2276 return; 2277 } 2278 2279 var isCookieBannerVisible = window.Shopify?.customerPrivacy?.shouldShowBanner?.(); 2280 if(!isCookieBannerVisible) { 2281 loadSwymShopifyScript(); 2282 return; 2283 } 2284 var shouldLoadSwymScript = window.Shopify?.customerPrivacy?.preferencesProcessingAllowed?.(); 2285 if (shouldLoadSwymScript) { 2286 loadSwymShopifyScript(); 2287 } else { 2288 console.warn("No customer consent to load Swym Wishlist Plus"); 2289 } 2290 } 2291 function initialiseConsentCheck() { 2292 document.addEventListener("visitorConsentCollected", (event) => { checkConsentAndLoad(); }); 2293 window.Shopify?.loadFeatures?.( 2294 [{name: 'consent-tracking-api', version: '0.1'}], 2295 error => { 2296 consentAPICallbackInvoked = true; 2297 if (error) { 2298 if(!window.Shopify?.customerPrivacy) { 2299 loadSwymShopifyScript(); 2300 return; 2301 } 2302 } 2303 checkConsentAndLoad(); 2304 } 2305 ); 2306 } 2307 function consentCheckFallback(retryCount) { 2308 if(!consentAPICallbackInvoked) { 2309 if (window.Shopify?.customerPrivacy) { 2310 checkConsentAndLoad(); 2311 } else if (retryCount >= 1) { 2312 console.warn("Shopify.loadFeatures unsuccessful on site, refer - https://shopify.dev/docs/api/customer-privacy#loading-the-customer-privacy-api. Proceeding with normal Swym Wishlist Plus load"); 2313 // Ghost-Intent: route through checkConsentAndLoad so SDK block is respected 2314 checkConsentAndLoad(); 2315 } else { 2316 setTimeout(() => consentCheckFallback(retryCount + 1), 1000); 2317 } 2318 } 2319 } 2320 if (document.readyState === "loading") { 2321 document.addEventListener("DOMContentLoaded", initialiseConsentCheck); 2322 window.addEventListener("load", () => consentCheckFallback(0)); 2323 } else { 2324 initialiseConsentCheck(); 2325 } 2326 2327 })(); 2328</script>
2328 2329 2330<!-- BEGIN app snippet: swymSnippet -->
2330<script defer> 2331 (function () { 2332 const currentSwymJSPath = '//startercdn.swymrelay.com/code/swym-shopify.js'; 2333 const currentSwymStorePath = 'https://swymstore-v3starter-01.swymrelay.com'; 2334 const dnsPrefetchLink = `<link rel="dns-prefetch" href="${currentSwymStorePath}" crossorigin>`; 2335 const dnsPrefetchLink2 = `<link rel="dns-prefetch" href="${currentSwymJSPath}">`; 2336 const preConnectLink = `<link rel="preconnect" href="${currentSwymJSPath}">`; 2337 const swymSnippet = document.getElementById('wishlist-embed-init'); 2338 if(dnsPrefetchLink) {swymSnippet.insertAdjacentHTML('afterend', dnsPrefetchLink);} 2339 if(dnsPrefetchLink2) {swymSnippet.insertAdjacentHTML('afterend', dnsPrefetchLink2);} 2340 if(preConnectLink) {swymSnippet.insertAdjacentHTML('afterend', preConnectLink);} 2341 })() 2342</script>
vendor: 1 bytes, line 2342
2342
2343<script id="swym-snippet" type="text"> 2344 window.swymLandingURL = document.URL; 2345 window.swymCart = {"note":null,"attributes":{},"original_total_price":0,"total_price":0,"total_discount":0,"total_weight":0.0,"item_count":0,"items":[],"requires_shipping":false,"currency":"USD","items_subtotal_price":0,"cart_level_discount_applications":[],"checkout_charge_amount":0}; 2346 window.swymPageLoad = function() { 2347 window.SwymProductVariants = window.SwymProductVariants || {}; 2348 window.SwymHasCartItems = 0 > 0; 2349 window.SwymPageData = {}, window.SwymProductInfo = {}; 2350 var unknown = {et: 0}; 2351 window.SwymPageData = unknown; 2352 2353 window.SwymPageData.uri = window.swymLandingURL; 2354 }; 2355 if(window.selectCallback){ 2356 (function(){ 2357 var originalSelectCallback = window.selectCallback; 2358 window.selectCallback = function(variant){ 2359 originalSelectCallback.apply(this, arguments); 2360 try{ 2361 if(window.triggerSwymVariantEvent){ 2362 window.triggerSwymVariantEvent(variant.id); 2363 } 2364 }catch(err){ 2365 console.warn("Swym selectCallback", err); 2366 } 2367 };})();} 2368 window.swymCustomerId =null; 2369 window.swymCustomerExtraCheck = 2370 null; 2371 var swappName = ("Watchlist" || "Wishlist"); 2372 var swymJSObject = { 2373 pid: "vI+zGOzHe99yQkedyETbm79vBM8kQ74F41y+Yj064uY=", 2374 interface: "/apps/swym" + swappName + "/interfaces/interfaceStore.php?appname=" + swappName 2375 }; 2376 window.swymJSShopifyLoad = function(){ 2377 if(window.swymPageLoad) swymPageLoad(); 2378 if(!window._swat) { 2379 (function (s, w, r, e, l, a, y) { 2380 r['SwymRetailerConfig'] = s; 2381 r[s] = r[s] || function (k, v) { 2382 r[s][k] = v; 2383 }; 2384 })('_swrc', '', window); 2385 _swrc('RetailerId', swymJSObject.pid); 2386 _swrc('Callback', function(){initSwymShopify();}); 2387 }else if(window._swat.postLoader){ 2388 _swrc = window._swat.postLoader; 2389 _swrc('RetailerId', swymJSObject.pid); 2390 _swrc('Callback', function(){initSwymShopify();}); 2391 }else{ 2392 initSwymShopify();} 2393 } 2394 if(!window._SwymPreventAutoLoad) { 2395 swymJSShopifyLoad(); 2396 } 2397</script>
2397 2398 2399<style id="safari-flasher-pre"></style>
2400<script> 2401 if (navigator.userAgent.indexOf('Safari') != -1 && navigator.userAgent.indexOf('Chrome') == -1) { 2402 document.getElementById("safari-flasher-pre").innerHTML = '' + '#swym-plugin,#swym-hosted-plugin{display: none;}' + '.swym-button.swym-add-to-wishlist{display: none;}' + '.swym-button.swym-add-to-watchlist{display: none;}' + '#swym-plugin #swym-notepad, #swym-hosted-plugin #swym-notepad{opacity: 0; visibility: hidden;}' + '#swym-plugin #swym-notepad, #swym-plugin #swym-overlay, #swym-plugin #swym-notification,' + '#swym-hosted-plugin #swym-notepad, #swym-hosted-plugin #swym-overlay, #swym-hosted-plugin #swym-notification' + '{-webkit-transition: none; transition: none;}' + ''; 2403 window.SwymCallbacks = window.SwymCallbacks || []; 2404 window.SwymCallbacks.push(function(tracker) { 2405 tracker.evtLayer.addEventListener(tracker.JSEvents.configLoaded, function() { 2406 var x = function() { 2407 SwymUtils.onDOMReady(function() { 2408 var d = document.createElement("div"); 2409 d.innerHTML = "<style id='safari-flasher-post'>" + "#swym-plugin:not(.swym-ready),#swym-hosted-plugin:not(.swym-ready){display: none;}" + ".swym-button.swym-add-to-wishlist:not(.swym-loaded){display: none;}" + ".swym-button.swym-add-to-watchlist:not(.swym-loaded){display: none;}" + "#swym-plugin.swym-ready #swym-notepad, #swym-plugin.swym-ready #swym-overlay, #swym-plugin.swym-ready #swym-notification," + "#swym-hosted-plugin.swym-ready #swym-notepad, #swym-hosted-plugin.swym-ready #swym-overlay, #swym-hosted-plugin.swym-ready #swym-notification" + "{-webkit-transition: opacity 0.3s, visibility 0.3ms, -webkit-transform 0.3ms !important;-moz-transition: opacity 0.3s, visibility 0.3ms, -moz-transform 0.3ms !important;-ms-transition: opacity 0.3s, visibility 0.3ms, -ms-transform 0.3ms !important;-o-transition: opacity 0.3s, visibility 0.3ms, -o-transform 0.3ms !important;transition: opacity 0.3s, visibility 0.3ms, transform 0.3ms !important;}" + "</style>"; 2410 document.head.appendChild(d); 2411 });}; 2412 setTimeout(x, 10); 2413 });});} 2414 window.SwymOverrideMoneyFormat = "${{amount_no_decimals}}"; 2415</script>
2415 2416<style id="swym-product-view-defaults"> .swym-button.swym-add-to-wishlist-view-product:not(.swym-loaded) { display: none; } </style><!-- END app snippet --> 2417
2418<script 2419 2420 id="swymSnippetCheckAndActivate" 2421> 2422 (function () { 2423 var duplicateProneIds = ['safari-flasher-pre', 'swym-product-view-defaults', 'swym-wrap-login-handler']; 2424 2425 function removeDuplicateIdNodes(id) { 2426 var nodes = document.querySelectorAll('#' + id); 2427 nodes.forEach(function (node, index) { 2428 if (index > 0) { 2429 node.remove(); 2430 } 2431 }); 2432 } 2433 2434 function cleanupDuplicateSnippetNodes(activeScript) { 2435 if (!activeScript) { 2436 return; 2437 } 2438 var allSwymSnippets = document.querySelectorAll('script#swym-snippet'); 2439 allSwymSnippets.forEach(function (scriptNode) { 2440 if (scriptNode !== activeScript) { 2441 scriptNode.remove(); 2442 } 2443 }); 2444 } 2445 2446 function cleanupDuplicateActivationGuards() { 2447 var guardScripts = document.querySelectorAll('script#swymSnippetCheckAndActivate'); 2448 guardScripts.forEach(function (scriptNode, index) { 2449 if (index > 0) { 2450 scriptNode.removeAttribute('id'); 2451 } 2452 }); 2453 } 2454 2455 function postDomLoad() { 2456 var activeScript = document.querySelector('script#swym-snippet:not([type="text"])'); 2457 if (!activeScript) { 2458 var inactiveScript = document.querySelector('script#swym-snippet[type="text"]'); 2459 if (inactiveScript) { 2460 inactiveScript.type = 'text/javascript'; 2461 new Function(inactiveScript.textContent)(); 2462 activeScript = inactiveScript; 2463 } 2464 } 2465 2466 cleanupDuplicateSnippetNodes(activeScript); 2467 cleanupDuplicateActivationGuards(); 2468 duplicateProneIds.forEach(removeDuplicateIdNodes); 2469 } 2470 2471 if (document.readyState === 'loading') { 2472 document.addEventListener('DOMContentLoaded', postDomLoad); 2473 } else { 2474 postDomLoad(); 2475 } 2476 })(); 2477</script>
2477 2478 2479 2480
2481<script> 2482 (function () { 2483 const themeSchemaName = window.Shopify.theme.schema_name; 2484 2485 if (!window.SwymCallbacks) { 2486 window.SwymCallbacks = []; 2487 } 2488 window.SwymCallbacks.push(swat => { 2489 if (!swat) { 2490 return; 2491 } 2492 2493 // Ghost-Intent: Sync local wishlist items to cloud when SDK loads after consent 2494 if (window.SwymLocalWishlist && window.SwymLocalWishlist.getSyncableItems().length > 0) { 2495 window.SwymLocalWishlist.syncToCloud(swat); 2496 } 2497 2498 if (window._SwymSDKOnlyMode) { 2499 return; 2500 } 2501 2502 // ENABLE COMMON FEATURES 2503 let swymEnabledCommonFeatures = window.SwymEnabledCommonFeatures; 2504 Object.keys(swymEnabledCommonFeatures).forEach(key => { 2505 if (!swymEnabledCommonFeatures[key]) return; 2506 2507 switch (key) { 2508 case 'add-to-wishlist-collections-button': 2509 // Check if app block is already handling the collections button 2510 if (window.SwymCollectionsConfig) { 2511 return; 2512 } 2513 2514 // Check if v2 default collections is handling it 2515 if (window.SwymAdvancedCollectionsWishlistConfig) { 2516 return; 2517 } 2518 2519 // Fallback to old v1 behavior if v2 config is not present 2520 swat?.collectionsApi?.setDefaultCustomizationOptions(); 2521 swat?.collectionsApi?.initializeCollections(swat, false, themeSchemaName); 2522 2523 break; 2524 case 'add-to-wishlist-pdp-button': 2525 // Check if app block is already handling the PDP button 2526 if (window.swymATWButtonConfig?.shopifyExtensionType === 'appblock') { 2527 return; 2528 } 2529 2530 if (!(window.SwymPageData && window.SwymPageData.et === 1)) { 2531 // Not initiating pdp button as it is not a product page 2532 return; 2533 } 2534 2535 // Inject addtowishlist.css into the document's <head> 2536 var head = document.head; 2537 var pdpButtonStylesheet = "https://cdn.shopify.com/extensions/01a0d2a3-23d4-7eab-8707-4bef87dc5dd8/swym-relay-839/assets/addtowishlistbutton.css"; 2538 var pdpButtonStylesheetTag = document.createElement('link'); 2539 pdpButtonStylesheetTag.id = `swym-pdp-button-stylesheet`; 2540 pdpButtonStylesheetTag.rel = 'stylesheet'; 2541 pdpButtonStylesheetTag.href = pdpButtonStylesheet; 2542 2543 if (!document.getElementById('swym-pdp-button-stylesheet')) { 2544 head.appendChild(pdpButtonStylesheetTag); 2545 } 2546 2547 var x = document.getElementsByTagName('script')[0]; 2548 function createAndInsertScript(id, src, onLoadCallback) { 2549 var scriptTag = document.createElement('script'); 2550 scriptTag.id = id; 2551 scriptTag.type = 'text/javascript'; 2552 scriptTag.src = src; 2553 scriptTag.onload = onLoadCallback; 2554 x.parentNode.insertBefore(scriptTag, x); 2555 } 2556 2557 var pdpButtonScript = "https://cdn.shopify.com/extensions/01a0d2a3-23d4-7eab-8707-4bef87dc5dd8/swym-relay-839/assets/addtowishlistbutton.js"; 2558 createAndInsertScript(`swym-pdp-button-script`, pdpButtonScript, function () { 2559 const pdpBtnApi = window.WishlistPlusPDPButtonAPI; 2560 if (pdpBtnApi) { 2561 pdpBtnApi.setDefaultCustomizationOptions(swat); 2562 pdpBtnApi.initializePDPButton(swat, true); 2563 } 2564 }); 2565 break; 2566 default: 2567 return; 2568 } 2569 }); 2570 }); 2571 })(); // IIFE to prevent polluting global scope 2572</script>
2572 2573 2574 2575
2576<script> 2577 (function () { 2578 // Get the settings from Shopify's Liquid variables and create the styles 2579 const isControlCentreEnabledFromMetafield = window?.SwymEnabledCommonFeatures?.["control-centre"]; 2580 const isCommonCustomizationEnabledFromMetafield = window?.SwymWishlistCommonCustomizationSettings && 2581 Object.keys(window.SwymWishlistCommonCustomizationSettings).length > 0; 2582 const isControlCentreEnabledFromBlockSettings = false; 2583 2584 if (!(isControlCentreEnabledFromMetafield && isCommonCustomizationEnabledFromMetafield) && !isControlCentreEnabledFromBlockSettings) { 2585 // Don't enable control centre if this is disabled and block settings are not enabled 2586 return; 2587 } 2588 2589 let borderRadius = 6; 2590 let drawerWidth = window?.SwymWishlistCommonCustomizationSettings?.storefrontLayoutDrawerWidth || 400; 2591 2592 // Check if block settings exist, use them, otherwise fall back to common settings 2593 let primaryBgColor = isControlCentreEnabledFromBlockSettings ? 2594 "#000000" : 2595 window.SwymWishlistCommonCustomizationSettings.primaryColor; 2596 2597 let primaryTextColor = isControlCentreEnabledFromBlockSettings ? 2598 "#ffffff" : 2599 window.SwymWishlistCommonCustomizationSettings.secondaryColor; 2600 2601 let secondaryBgColor = isControlCentreEnabledFromBlockSettings ? 2602 "#F4F8FE" : null; 2603 let secondaryTextColor = isControlCentreEnabledFromBlockSettings ? 2604 "#333333" : null; 2605 2606 // Only use color adjustment functions if we're using common settings 2607 if (!secondaryBgColor || !secondaryTextColor) { 2608 function adjustOpacity(color, opacity) { 2609 if (color[0] === '#') { 2610 color = color.slice(1); 2611 } 2612 2613 if (color.length === 3) { 2614 color = color.split('').map(char => char + char).join(''); 2615 } 2616 2617 const r = parseInt(color.slice(0, 2), 16); 2618 const g = parseInt(color.slice(2, 4), 16); 2619 const b = parseInt(color.slice(4, 6), 16); 2620 2621 return `rgba(${r}, ${g}, ${b}, ${opacity})`; 2622 } 2623 2624 function hexToRgb(color) { 2625 if (color[0] === '#') { 2626 color = color.slice(1); 2627 } 2628 if (color.length === 3) { 2629 color = color.split('').map(c => c + c).join(''); 2630 } 2631 2632 return { 2633 r: parseInt(color.slice(0, 2), 16), 2634 g: parseInt(color.slice(2, 4), 16), 2635 b: parseInt(color.slice(4, 6), 16) 2636 }; 2637 } 2638 2639 function getLuminance({ r, g, b }) { 2640 return 0.299 * r + 0.587 * g + 0.114 * b; 2641 } 2642 2643 function generateSecondaryColors(primaryBgColor, primaryTextColor) { 2644 const secondaryBgOpacity = 0.2; 2645 const secondaryTextOpacity = 0.8; 2646 2647 const secondaryBgColor = adjustOpacity(primaryBgColor, secondaryBgOpacity); 2648 2649 const bgRgb = hexToRgb(primaryBgColor); 2650 const bgLuminance = getLuminance(bgRgb); 2651 2652 // Determine whether to use dark or light text for contrast 2653 const lightText = adjustOpacity(primaryTextColor, secondaryTextOpacity); 2654 const darkText = adjustOpacity(primaryBgColor, secondaryTextOpacity); 2655 2656 const secondaryTextColor = bgLuminance > 186 ? darkText : lightText; 2657 2658 return { 2659 secondaryBgColor, 2660 secondaryTextColor 2661 }; 2662 } 2663 2664 const generatedColors = generateSecondaryColors(primaryBgColor, primaryTextColor); 2665 secondaryBgColor = secondaryBgColor || generatedColors.secondaryBgColor; 2666 secondaryTextColor = secondaryTextColor || generatedColors.secondaryTextColor; 2667 } 2668 2669 // Create the CSS rule 2670 let styles = ` 2671 .swym-storefront-layout-root-component { 2672 --swym-storefront-layout-ui-border-radius: ${borderRadius}px; 2673 --swym-storefront-layout-button-border-radius: ${borderRadius}px; 2674 --swym-storefront-layout-side-drawer-width: ${drawerWidth}px; 2675 --swym-storefront-layout-button-color-bg-primary: ${primaryBgColor}; 2676 --swym-storefront-layout-button-color-text-primary: ${primaryTextColor}; 2677 --swym-storefront-layout-button-color-bg-secondary: ${secondaryBgColor}; 2678 --swym-storefront-layout-button-color-text-secondary: ${secondaryTextColor}; 2679 } 2680 `; 2681 2682 // Create a <style> element and append the styles 2683 let styleSheet = document.createElement("style"); 2684 styleSheet.type = "text/css"; 2685 styleSheet.innerText = styles; 2686 document.head.appendChild(styleSheet); 2687 2688 if (typeof window.SwymStorefrontLayoutContext === 'undefined') { 2689 window.SwymStorefrontLayoutContext = {}; 2690 } 2691 if (typeof window.SwymStorefrontLayoutExtensions === 'undefined'){ 2692 window.SwymStorefrontLayoutExtensions = {}; 2693 } 2694 2695 // Expose block settings toggle state so ThemeCSSMapping can respect it. 2696 // When true, theme editor color pickers take priority over inherited theme CSS variables. 2697 SwymStorefrontLayoutContext.BlockSettingsEnabled = isControlCentreEnabledFromBlockSettings; 2698 2699 if (isControlCentreEnabledFromBlockSettings) { 2700 // If block settings are enabled, use them 2701 SwymStorefrontLayoutContext.Settings = { 2702 EnableStorefrontLayoutOnLauncher: true, 2703 EnableStorefrontLayoutNotification: window?.SwymWishlistCommonCustomizationSettings?.enableStorefrontLayoutNotification ?? true, 2704 StorefrontLayoutType: window?.SwymWishlistCommonCustomizationSettings?.storefrontLayoutType || "as-drawer", 2705 StorefrontLayoutDrawerPosition: "left", 2706 StorefrontLayoutAsSectionContainerId: "swym-wishlist-render-container", 2707 StorefrontLayoutAsSectionPageURL: "/pages/swym-wishlist", 2708 EnableStorefrontLayoutVariantSelector: true, 2709 StorefrontLayoutNotificationPosition: "left", 2710 StorefrontLayoutActionPopupPosition: "left", 2711 StorefrontLayoutNotificationDuration: 5000 2712 }; 2713 } else { 2714 // If only metafield is enabled but no block settings, use common settings 2715 SwymStorefrontLayoutContext.Settings = { 2716 EnableStorefrontLayoutOnLauncher: true, 2717 EnableStorefrontLayoutNotification: window?.SwymWishlistCommonCustomizationSettings?.enableStorefrontLayoutNotification ?? true, 2718 StorefrontLayoutType: window?.SwymWishlistCommonCustomizationSettings?.storefrontLayoutType || "as-drawer", 2719 StorefrontLayoutDrawerPosition: "left", 2720 StorefrontLayoutAsSectionContainerId: "swym-wishlist-render-container", 2721 StorefrontLayoutAsSectionPageURL: "/pages/swym-wishlist", 2722 EnableStorefrontLayoutVariantSelector: true, 2723 StorefrontLayoutNotificationPosition: "left", 2724 StorefrontLayoutActionPopupPosition: "left", 2725 StorefrontLayoutNotificationDuration: 5000 2726 }; 2727 } 2728 const storefrontLayoutCallback = (swat) =>{ 2729 SwymStorefrontLayoutContext.swat = swat; 2730 let isStoreOnPaidPlan = swat.getApp('Wishlist')?.['is-paid']; 2731 let isWishlistEnabled = swat.getApp('Wishlist')?.['enabled']; 2732 SwymStorefrontLayoutContext.Settings = { 2733 ...SwymStorefrontLayoutContext?.Settings, 2734 EnableStorefrontLayoutCollection: window?.SwymEnabledCommonFeatures?.["multiple-wishlist"] ?? false, 2735 EnableStorefrontLayout: isWishlistEnabled && (isControlCentreEnabledFromBlockSettings || isControlCentreEnabledFromMetafield), 2736 } 2737 2738 if(SwymStorefrontLayoutContext?.Settings?.EnableStorefrontLayout){ 2739 if(SwymStorefrontLayoutContext?.CustomEvents?.LayoutInitialized){ 2740 var event = new CustomEvent(SwymStorefrontLayoutContext.CustomEvents.LayoutInitialized, { 2741 detail: { settings: SwymStorefrontLayoutContext?.Settings } 2742 }); 2743 document.dispatchEvent(event); 2744 }else{ 2745 swat.utils.warn(`LayoutInitialized event is not defined.`); 2746 } 2747 }else{ 2748 swat.utils.warn(`Storefront Layout is disabled.`); 2749 document.getElementById("swym-storefront-layout-container")?.remove(); 2750 document.getElementById("swym-storefront-extention-render-container")?.remove(); 2751 } 2752 } 2753 2754 if (!window.SwymCallbacks) { 2755 window.SwymCallbacks = []; 2756 } 2757 window.SwymCallbacks.push(storefrontLayoutCallback); 2758 2759 SwymStorefrontLayoutContext.SwymCustomerData = { 2760 2761 name: null, 2762 email: null 2763 2764 };
2765 SwymStorefrontLayoutContext.isShopperLoggedIn = !!SwymStorefrontLayoutContext?.SwymCustomerData?.email; 2766 })(); 2767</script>
2767 2768 2769 2770 2771 2772 2773 <div id="swym-storefront-extention-render-container"> 2774 <!-- BEGIN app snippet: swymStorefrontLayout -->
2774<script> 2775 (function () { 2776 const isControlCentreEnabledFromMetafield = window?.SwymEnabledCommonFeatures?.["control-centre"]; 2777 const isControlCentreEnabledFromBlockSettings = false; 2778 const isCommonCustomizationEnabledFromMetafield = window?.SwymWishlistCommonCustomizationSettings && 2779 Object.keys(window.SwymWishlistCommonCustomizationSettings).length > 0; 2780 2781 if (!(isControlCentreEnabledFromMetafield && isCommonCustomizationEnabledFromMetafield) && !isControlCentreEnabledFromBlockSettings) { 2782 return; 2783 } 2784 if (typeof window.SwymStorefrontLayoutContext === 'undefined') { 2785 window.SwymStorefrontLayoutContext = {}; 2786 } 2787 2788 // Initialize strings with empty values first to prevent string changes after loadStrings() 2789 SwymStorefrontLayoutContext.Strings = { 2790 title: "", 2791 addToCart: "", 2792 addedToCart: "", 2793 addAllToCartCta: "", 2794 addAllToCartSuccessText: "", 2795 addAllToCartEmptyText: "", 2796 addAllToCartErrorText: "", 2797 soldOut: "", 2798 addingToCart: "", 2799 viewCartCta: "", 2800 moveToCartCta: "", 2801 movingToCartCta: "", 2802 removeSflItemCta: "", 2803 2804 loginHeading: "", 2805 loginText: "", 2806 loginButtonText: "", 2807 loggedUserWelcomeMessage: "", 2808 VariantSelectorBtnText: "", 2809 wishlistTitle: "", 2810 wishlistInfo: "", 2811 emptyWishlistTitle: "", 2812 emptyWishlistDescription: "", 2813 2814 collectionTitle: "", 2815 emptyCarouselCollectionText: "", 2816 emptyCollectionText: "", 2817 emptyCollectionDescription: "", 2818 2819 addToCollectionTitle: "", 2820 removeItemCta: "", 2821 addToCollectionCta: "", 2822 createCollectionCta: "", 2823 saveNewCollectionCta: "", 2824 renameCollectionCta: "", 2825 deleteCollectionCta: "", 2826 shareCollectionCta: "", 2827 saveCollectionCta: "", 2828 editCollectionCta: "", 2829 shareCollectionTitle: "", 2830 shareCollectionMessage: "", 2831 sharedCollectionMessage: "", 2832 updateCollectionTitle: "", 2833 2834 errorMessageListNameRequired: "", 2835 errorMessageListNameRequire3Char: "", 2836 errorMessageListNameAlreadyExist: "", 2837 2838 notificationMessageItemSaved: "", 2839 notificationMessageItemRemoved: "", 2840 notificationMessageAddedToCart: "", 2841 notificationMessageAddedToCollection: "", 2842 notificationMessageCollectionSaved: "", 2843 notificationMessageCollectionDeleted: "", 2844 notificationMessageCollectionUpdated: "", 2845 notificationMessageCollectionUnavailable: "", 2846 notificationMessageSFLItemSaved: "", 2847 notificationMessageSFLItemRemoved: "", 2848 notificationMessageMovedToCart: "", 2849 2850 notificationActionAddToCollection: "", 2851 notificationActionView: "", 2852 notificationActionViewCollection: "", 2853 notificationActionGoToCart: "", 2854 2855 item: "", 2856 items: "", 2857 2858 tabWishlist: "", 2859 tabSavedForLater: "", 2860 tabSavedForYou: "", 2861 2862 savedForLaterTitle: "", 2863 emptySavedForLaterTitle: "", 2864 emptySavedForLaterDescription: "", 2865 2866 awNudgeMessage: "", 2867 awNudgeMessageSub: "", 2868 awNudgeLoginCTA: "", 2869 awNudgeDismiss: "", 2870 2871 emptySingleLoggedInTitle: "", 2872 emptySingleLoggedInDescription: "", 2873 emptySingleLoggedInBullet1: "", 2874 emptySingleLoggedInBullet2: "", 2875 emptySingleLoggedInBullet3: "", 2876 emptySingleLoggedInCTA: "", 2877 2878 emptyMultiLoggedInTitle: "", 2879 emptyMultiLoggedInDescription: "", 2880 emptyMultiLoggedInCreateTitle: "", 2881 emptyMultiLoggedInCreateDescription: "", 2882 emptyMultiLoggedInBrowseLabel: "", 2883 emptyMultiLoggedInCTA: "", 2884 emptyMultiLoggedInTag1: "", 2885 emptyMultiLoggedInTag2: "", 2886 emptyMultiLoggedInTag3: "", 2887 emptyMultiLoggedInTag4: "", 2888 emptyMultiLoggedInTag5: "", 2889 2890 emptyGuestTitle: "", 2891 emptyGuestDescription: "", 2892 emptyGuestSingleNotice: "", 2893 emptyGuestMultiNotice: "", 2894 emptyGuestLoginCTA: "", 2895 emptyGuestBrowseCTA: "", 2896 emptyGuestSignupText: "", 2897 emptyGuestSignupCTA: "", 2898 2899 emptySflTitle: "", 2900 emptySflDescription: "", 2901 emptySflStep1Title: "", 2902 emptySflStep1Description: "", 2903 emptySflStep2Title: "", 2904 emptySflStep2Description: "", 2905 emptySflLoggedInNotice: "", 2906 emptySflGuestNotice: "", 2907 emptySflGoToCartCTA: "", 2908 emptySflLoginCTA: "", 2909 emptySflSignupText: "", 2910 emptySflSignupCTA: "" 2911 }; 2912 2913 SwymStorefrontLayoutContext.stringsLoaded = false;
2914 SwymStorefrontLayoutContext.StorefrontLayoutUrls = SwymStorefrontLayoutContext.StorefrontLayoutUrls || {}; 2915 SwymStorefrontLayoutContext.StorefrontLayoutUrls.Login = "\/customer_authentication\/login?return_to=%2Fpages%2Fstore-locator\u0026locale=en\u0026ui_hint=full\u0026region_country=US"; 2916 2917 /** 2918 * Function to override Swym's default UI behavior. 2919 **/ 2920 const overrideSwymDefaultUI = (swat) => { 2921 try{ 2922 swat.ui.open = function(){ 2923 window.location.hash = SwymStorefrontLayoutContext?.StorefrontLayoutUrls?.List; 2924 } 2925 2926 if (swat.ui?.uiRef?.settings?.UI) { 2927 swat.ui.uiRef.settings.UI.NotificationDisabled = true; 2928 } 2929 }catch(e){ 2930 swat.utils?.warn('Error overriding Swym default UI:', e); 2931 } 2932 } 2933 2934 /** 2935 * Callback function to override Swym's default UI behavior based on Storefront Layout settings. 2936 * 2937 * - Overrides `swat.ui.open` to redirect to a custom Storefront Layout URL if enabled. 2938 * - Overrides Swym's default notifications to log notifications instead of displaying them. 2939 * - Ensures the callback is pushed to `window.SwymCallbacks` for execution when Swym is initialized. 2940 * 2941 * @param {Object} swat - Swym's UI object used for overriding UI behaviors. 2942 */ 2943 const swymStorefrontLayoutCallback = (swat) =>{ 2944 SwymStorefrontLayoutContext.swat = swat; 2945 2946 overrideSwymDefaultUI(swat); 2947 2948 2949 let triggerHeartbeat = swat?.ExtensionHealth?.triggerExtensionHeartbeat; 2950 if (typeof triggerHeartbeat !== "function") return; 2951 2952 let wishlistNewUiHeartbeatData = ''; 2953 try { 2954 wishlistNewUiHeartbeatData = JSON.parse(wishlistNewUiHeartbeatData) || {}; 2955 } catch (e) { 2956 wishlistNewUiHeartbeatData = {}; 2957 } 2958 2959 let themeId = window.Shopify.theme.id; 2960 let isDesignMode = !!window.swymDesignMode; 2961 let lastHeartbeat = isDesignMode ? wishlistNewUiHeartbeatData?.editor : wishlistNewUiHeartbeatData?.[themeId]; 2962 let themeContext = isDesignMode ? 'editor' : themeId; 2963 let extensionData = { 2964 extensionName: "wishlist-new-ui", 2965 extensionType: "app-embed", 2966 metadata: {}, 2967 themeId: themeContext, 2968 extensionSource: "default" 2969 }; 2970 /** Stop heartbeat 2971 triggerHeartbeat(extensionData, lastHeartbeat); 2972 */ 2973 } 2974 2975 if (!window.SwymCallbacks) { 2976 window.SwymCallbacks = []; 2977 } 2978 window.SwymCallbacks.push(swymStorefrontLayoutCallback); 2979 })(); 2980</script>
2980 2981<link rel="stylesheet" href="https://cdn.shopify.com/extensions/01a0d2a3-23d4-7eab-8707-4bef87dc5dd8/swym-relay-839/assets/storefront-layout.css">
2982<script src="https://cdn.shopify.com/extensions/01a0d2a3-23d4-7eab-8707-4bef87dc5dd8/swym-relay-839/assets/async-wishlist-apis.js" defer="defer"></script>
vendor: 1 bytes, line 2982
2982
2983<script src="https://cdn.shopify.com/extensions/01a0d2a3-23d4-7eab-8707-4bef87dc5dd8/swym-relay-839/assets/storefront-layout.js" defer="defer"></script>
vendor: 1 bytes, line 2983
2983
2984<script src="https://cdn.shopify.com/extensions/01a0d2a3-23d4-7eab-8707-4bef87dc5dd8/swym-relay-839/assets/storefront-layout-components.js" defer="defer"></script>
2984 2985 2986<swym-storefront-layout class="swym-storefront-layout-root-component"></swym-storefront-layout> 2987<!-- END app snippet --> 2988 </div> 2989 <!-- BEGIN app snippet: swymEducationTooltip --> 2990 2991 2992 2993 2994 <div id="swym-education-tooltip" aria-hidden="true" 2995 data-toast-desktop-message="Interesting? Click '{{wishlistIcon}}' to save it to your {{wishlistName}}." 2996 data-toast-mobile-message="Interesting? Tap '{{wishlistIcon}}' to add to your {{wishlistName}}." 2997 data-toast-cta="Wishlist Now" 2998 data-tooltip-desktop-message="Interesting? Click '{{wishlistIcon}}' to save it to your {{wishlistName}}." 2999 data-tooltip-mobile-message="Interesting? Tap '{{wishlistIcon}}' to add to your {{wishlistName}}." 3000 data-button-transition-text-1="Price drops? Know first." 3001 data-button-transition-text-2="Almost gone. Just saying." 3002 data-button-transition-text-3="Yours when ready."> 3003 </div> 3004 3005 <div id="swym-education-tooltip-bubble" class="swym-education-tooltip swym-education-tooltip-above" aria-hidden="true" role="tooltip"> 3006 <div class="swym-education-tooltip-content"> 3007 <span class="swym-education-tooltip-message"></span> 3008 <button class="swym-education-tooltip-close" data-swym-education-tooltip-close aria-label="Close consent dialog"> 3009 <svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"> 3010 <path d="M18 6L6 18M6 6l12 12"></path> 3011 </svg> 3012 </button> 3013 </div> 3014 <div class="swym-education-tooltip-arrow"></div> 3015 </div> 3016 3017 <style> 3018 /* Education tooltip â positioned fixed, managed by JS */ 3019 .swym-education-tooltip { 3020 position: fixed; 3021 z-index: 500; 3022 visibility: hidden; 3023 opacity: 0; 3024 transition: opacity 0.2s ease, visibility 0.2s ease; 3025 pointer-events: none; 3026 } 3027 .swym-education-tooltip.swym-education-tooltip-visible { 3028 visibility: visible; 3029 opacity: 1; 3030 pointer-events: auto; 3031 } 3032 .swym-education-tooltip-content { 3033 background: var(--swym-storefront-layout-notification-neutral-bg-color, #FFFFFF); 3034 color: var(--swym-storefront-layout-notification-neutral-text-color, #383d41); 3035 border: 1px solid var(--swym-storefront-layout-notification-neutral-border-color, #d6d8db); 3036 padding: 10px 14px; 3037 border-radius: var(--swym-storefront-layout-ui-border-radius, 10px); 3038 font-size: 13px; 3039 line-height: 1.4; 3040 display: flex; 3041 align-items: center; 3042 gap: 8px; 3043 max-width: 320px; 3044 box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2); 3045 } 3046 .swym-education-tooltip-message { 3047 flex: 1; 3048 } 3049 .swym-education-tooltip-close { 3050 background: none; 3051 border: none; 3052 color: inherit; 3053 cursor: pointer; 3054 padding: 2px; 3055 line-height: 1; 3056 flex-shrink: 0; 3057 opacity: 0.7; 3058 } 3059 .swym-education-tooltip-close:hover { 3060 opacity: 1; 3061 } 3062 3063 /* Button text fade transition for education nudge */ 3064 .swym-btn-text-fade-out { 3065 opacity: 0; 3066 transition: opacity 0.2s ease; 3067 } 3068 .swym-btn-text-fade-in { 3069 opacity: 1; 3070 transition: opacity 0.3s ease; 3071 } 3072 3073 /* Arrow â points down when tooltip is above, up when below */ 3074 .swym-education-tooltip-arrow { 3075 width: 0; 3076 height: 0; 3077 position: absolute; 3078 left: 50%; 3079 transform: translateX(-50%); 3080 } 3081 .swym-education-tooltip-above .swym-education-tooltip-arrow { 3082 bottom: -6px; 3083 border-left: 6px solid transparent; 3084 border-right: 6px solid transparent; 3085 border-top: 6px solid var(--swym-storefront-layout-notification-neutral-bg-color, #FFFFFF); 3086 } 3087 .swym-education-tooltip-below .swym-education-tooltip-arrow { 3088 top: -6px; 3089 border-left: 6px solid transparent; 3090 border-right: 6px solid transparent; 3091 border-bottom: 6px solid var(--swym-storefront-layout-notification-neutral-bg-color, #FFFFFF); 3092 } 3093 3094 /* Hidden data element */ 3095 #swym-education-tooltip { 3096 display: none; 3097 } 3098 3099 @media (max-width: 480px) { 3100 .swym-education-tooltip-content { 3101 max-width: 90vw; 3102 font-size: 12px; 3103 } 3104 } 3105 </style> 3106 3107
3107<script src="https://cdn.shopify.com/extensions/01a0d2a3-23d4-7eab-8707-4bef87dc5dd8/swym-relay-839/assets/swym-education-tooltip.js" defer="defer"></script>
3107 3108
3108<script src="https://cdn.shopify.com/extensions/01a0d2a3-23d4-7eab-8707-4bef87dc5dd8/swym-relay-839/assets/swym-education.js" defer="defer"></script>
3108 3109 3110<!-- END app snippet --> 3111 3112 3113</div><div id="shopify-block-Ady9IdDFscnNkR1MyY__17288229127477420511" class="shopify-block shopify-app-block"> 3114 <!-- BEGIN app snippet: stockistform-embed --><div id="stockist-app-embed"> 3115 <!-- Spinner Loading --> 3116 <div id='scasl-loading-spinner' class='scasl-loading-overlay'> 3117 <div class='scasl-spinner-container'> 3118 <div class='scasl-spinner'></div> 3119 </div> 3120 </div> 3121 <div id="dealer-form"></div> 3122</div>
vendor: 61 bytes, lines 3122-3123
3122 3123<script src="https://www.google.com/recaptcha/api.js?render=
31236LeTRAoeAAAAACKeCUlhSkXvVTIwv0_OgDTqgYsa
vendor: 23 bytes, lines 3123-3128
3123" async></script> 3124 3125 3126 3127 3128
3129<!-- END app snippet --> 3130
3130<script> 3131 var loadingImg = "https://cdn.shopify.com/extensions/01a0d217-a4a8-78a9-b1eb-a1933407237b/store-locator-4-63/assets/sca.location-loading.png"; 3132 var isStockistAppEmbed = true; 3133 </script>
3133 3134 3135 3136 3137</div><div id="shopify-block-ANThZazMwNGNyV05Va__18020446634262408591" class="shopify-block shopify-app-block"> 3138 <!-- BEGIN app snippet: storelocator-embed --> 3139<div id="locator-app-embed"> 3140 <!-- Spinner Loading --> 3141 <div id='scasl-loading-spinner' class='scasl-loading-overlay'> 3142 <div class='scasl-spinner-container'> 3143 <div class='scasl-spinner'></div> 3144 </div> 3145 </div> 3146 <div id='scasl-app-container' class="new-for-mobile"> 3147<div class="bh-sl-container scasl-container" > 3148 <div id="page-header"> 3149 <div class="bh-sl-title">Find Our Store</div> 3150 </div> 3151 3152 <div class="bh-sl-form-container"> 3153 <div id="scasl-tab-radius"> 3154 <form id="bh-sl-user-location" class="scasl-distance" method="post" action="#"> 3155 <div class="form-input"> 3156 <label for="bh-sl-address">Current Location</label> 3157 <div class="scasl-address-wrap"> 3158 <input type="text" id="bh-sl-address" name="bh-sl-address" /> 3159 3160 <a href="#" title="Find My Location" aria-label="Find My Location" id="scapl-geocode-btn" style="background-color: none !important"> 3161 <img width="15" height="15" src="https://cdn.shopify.com/extensions/01a0d217-a4a8-78a9-b1eb-a1933407237b/store-locator-4-63/assets/sca.location-find-location.png" alt="Find My Location Icon" title="Find My Location Icon" > 3162 </a> 3163 <button id="scapl-geocode-btn" type="button">Find My Location</button> 3164 3165 </div> 3166 </div> 3167 3168 <div class="scasl-see-more-content"> 3169 <div class="form-input"> 3170 <label for="scasl-radius-container">Search Radius</label> 3171 <select id="scasl-radius-container" name="bh-sl-maxdistance"> 3172 </select> 3173 </div> 3174 3175 <div class="form-input"> 3176 <label for="scasl-lengthUnit">Search Radius Measurement</label> 3177 <select id="scasl-lengthUnit" name="scasl-lengthUnit"> 3178 <option value="km">Kilometer</option> 3179 <option value="m">Mile</option> 3180 </select> 3181 </div> 3182 3183 <div class="bh-sl-filters-container scasl-tag"> 3184 <label for="scasl-tag-list-container">Tags</label> 3185 <ul id="scasl-tag-list-container" class="bh-sl-filters scasl-tag-list"> 3186 </ul> 3187 </div> 3188 </div> 3189 3190 3191 <a class="scasl-see-more" title="Show more search options" aria-label="Show more search options" >More »</a> 3192 <a class="scasl-see-less" title="Show fewer search options" aria-label="Show fewer search options" >Less «</a> 3193 3194 3195 <div class="scasl-search-btn"> 3196 <button id="bh-sl-submit" type="submit">Search</button> 3197 </div> 3198 </form> 3199 <div class="spinner"> 3200 <div class="double-bounce1"></div> 3201 <div class="double-bounce2"></div> 3202 </div> 3203 </div> 3204 </div> 3205 3206 <ul id="scasl-tabs"> 3207 <li class="scasl-tab-list active">List</li> 3208 <li class="scasl-tab-map">Map</li> 3209 </ul> 3210 3211 <div id="bh-sl-map-container" class="bh-sl-map-container scasl-map-container"> 3212 <div class="bh-sl-loc-list scasl-location-list"> 3213 <ul class="list"></ul> 3214 </div> 3215 <div id="bh-sl-map" class="bh-sl-map scasl-map"></div> 3216 </div> 3217 3218</div> 3219</div> 3220</div> 3221<div style='clear:both !important;'></div>
3222<script src="//cdn.roseperl.com/storelocator-prod/assets/js/infobubble.min.js" async></script>
vendor: 1 bytes, line 3222
3222
3223<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/handlebars.min.js" async></script>
vendor: 1 bytes, line 3223
3223
3224<script> 3225if("undefined"==typeof Handlebars&&"function"==typeof define&&define.amd){var scasl_tempamd=define.amd;define.amd=void 0;var scasl_fileref=document.createElement("script");scasl_fileref.setAttribute("type","text/javascript"),scasl_fileref.setAttribute("src","https://cdn.jsdelivr.net/npm/[email protected]/dist/handlebars.min.js"),document.getElementsByTagName("head")[0].appendChild(scasl_fileref),setTimeout(function(){define.amd=scasl_tempamd},1e3)} 3226</script>
3226 3227 3228
3229<script src="https://cdnjs.cloudflare.com/ajax/libs/js-marker-clusterer/1.0.0/markerclusterer.js" async></script>
3229 3230 3231 3232 3233<link rel="stylesheet" type="text/css" href='https://cdn.shopify.com/extensions/01a0d217-a4a8-78a9-b1eb-a1933407237b/store-locator-4-63/assets/sca.storelocator.css' />
3234<script id="scasl-infowindow-template" type="text"> 3235 3236{{#location}} 3237<div id="scasl-window-container" class="scasl-info-window"> 3238 <div class="scasl-info-location" {{#if store_image}} style="width:50%" {{/if}}> 3239 <div {{#unless accessibility}}id="scasl-title"{{/unless}} class="scasl-title scasl-field" >{{name}}</div> 3240 <div id="scasl-description" class="scasl-field"><p>{{{description}}}</p></div> 3241 <div id="scasl-address" class="scasl-field"><a class="scasl-content" href="https://maps.google.com/maps?saddr={{origin}}&daddr={{address}} {{address2}} {{city}}, {{state}} {{postal}}" target="_blank" title="Directions to {{address}}" aria-label="Directions to {{address}}">{{address}}</a></div> 3242 <div id="scasl-address2" class="scasl-field">{{address2}}</div> 3243 {{#if operating_hours}} 3244 <div class="scasl-operating-hour scasl-field"> 3245 <div class="minimize-oh-wrapper"> 3246 <div class="scasl-content-wrapper"> 3247 <span class="main-oh-status" style="color: {{oh_color}} !important">{{oh_main_status}}</span> 3248 <span class="end-oh-status">{{oh_end_status}}</span> 3249 </div> 3250 </div> 3251 </div> 3252 {{/if}} 3253 3254 <div class="scasl-national-wrapper">{{#if city}}<span id="scasl-city" class="scasl-field">{{city}}</span> {{/if}}{{#if state}}<span id="scasl-state" class="scasl-field">{{state}}</span> {{/if}}{{#if postal}}<span id="scasl-zipcode" class="scasl-field">{{postal}}</span> {{/if}}{{#if country}} <span id="scasl-country" class="scasl-field">{{country}}</span>{{/if}}</div> 3255 {{#if phone}}<div id="scasl-phone" class="scasl-field"><span id="scasl-phone-label">Phone:</span> <a href="tel:{{phone}}" title="Call {{phone}}" aria-label="Call {{phone}}">{{phone}}</a> </div>{{/if}} 3256 {{#if fax}}<div id="scasl-fax" class="scasl-field"><span id="scasl-fax-label">Fax:</span><span class="scasl-content">{{fax}}</span></div>{{/if}} 3257 {{#if email}}<div id="scasl-email" class="scasl-field"><span id="scasl-email-label">Email:</span> <a href="mailto:{{email}}" title="Email {{email}}" aria-label="Email {{email}}">{{email}}</a> </div>{{/if}} 3258 {{#if schedule}}<div id="scasl-schedule" class="scasl-field"><div class="scasl-content-wrapper"><span id="scasl-schedule-label">Message:</span><span class="scasl-content">{{{schedule}}}</span></div></div>{{/if}} 3259 {{#each cfields}} 3260 <div id="scasl-extra"> 3261 <span>{{key}}</span>:<span>{{{value}}}</span> 3262 </div> 3263 {{/each}} 3264 <div id="scasl-tags" class="scasl-field"> 3265 {{#each tags}} 3266 <span class="scasl-tags">{{tag}}</span> 3267 {{/each}} 3268 </div> 3269 {{#if web}} 3270 <div id="scasl-web" class="scasl-field"><a href="{{web}}" target="_blank" title="{{web}}" aria-label="{{web}}" >{{#if webdisplay}}{{webdisplay}}{{else}}{{niceURL web}}{{/if}}</a></div> 3271 {{/if}} 3272 {{#if distance}} 3273 <div id="scasl-distance" class="scasl-field">{{distance}} {{length}}</div> 3274 <div id="scasl-direction" class="scasl-field"><a href="https://maps.google.com/maps?saddr={{origin}}&daddr={{address}} {{address2}} {{city}}, {{state}} {{postal}}" target="_blank" title="Directions to {{address}}" aria-label="Directions to {{address}}" >Directions</a></div> 3275 {{/if}} 3276 </div> 3277 3278 {{#if store_image}} 3279 <div {{#unless accessibility}}id="scasl-store_image"{{/unless}} class="scasl-store_image scasl-info-image scasl-field"> 3280 <img src="{{store_image}}" alt="{{name}} Store Image" title="{{name}} Store Image" /> 3281 </div> 3282 {{/if}} 3283</div> 3284{{/location}} 3285 3286</script>
3286 3287
3288<script id="scasl-list-template" type="text"> 3289 3290{{#location}} 3291<li {{#unless accessibility}}id="scasl-list-container"{{/unless}} class="scasl-list-container" data-markerid="{{markerid}}"{{#if accessibility}} role="button" tabindex="0"{{/if}}> 3292 <div class="list-details scasl-list-details" {{#if store_image}} style="width:100%" {{/if}}> 3293 <div class="image-title-group"> 3294 {{#if store_image}} 3295 <div {{#unless accessibility}}id="scasl-store_image"{{/unless}} class="scasl-store_image scasl-info-image scasl-field"> 3296 <img src="{{store_image}}" alt="{{name}} Store Image" title="{{name}} Store Image" /> 3297 </div> 3298 {{/if}} 3299 <div class="scasl-info-location" {{#if store_image}} style="width:100%" {{/if}}> 3300 <div {{#unless accessibility}}id="scasl-title"{{/unless}} class="scasl-title scasl-field" >{{name}}</div> 3301 <div id="scasl-address" class="scasl-field"><span class="scasl-content">{{address}}</span></div> 3302 <div id="scasl-address2" class="scasl-field" style="padding-left: 0px">{{address2}}</div> 3303 <div class="scasl-national-wrapper" style="padding-left: 0px">{{#if city}}<span id="scasl-city" class="scasl-field">{{city}}</span> {{/if}}{{#if state}}<span id="scasl-state" class="scasl-field">{{state}}</span> {{/if}}{{#if postal}}<span id="scasl-zipcode" class="scasl-field">{{postal}}</span> {{/if}}{{#if country}} <span id="scasl-country" class="scasl-field">{{country}}</span>{{/if}}</div> 3304 <div id="scasl-description" class="scasl-field" style="padding-left: 0px"><p>{{{description}}}</p></div> 3305 </div> 3306 </div> 3307 <div class="list-content direction-share-link"> 3308 </div> 3309 3310 <div style="display: flex; flex-wrap: wrap; gap: 8px;"> 3311 {{#if phone}} 3312 <div> 3313 <div id="scasl-phone" class="scasl-field"> 3314 <span id="scasl-phone-label">Phone Number</span> 3315 </div> 3316 <a href="tel:{{phone}}" id="scasl-phone" class="scasl-field" title="Call {{phone}}" aria-label="Call {{phone}}">{{phone}}</a> 3317 </div> 3318 {{/if}} 3319 {{#if fax}} 3320 <div> 3321 <div id="scasl-fax" class="scasl-field"> 3322 <span id="scasl-fax-label">Fax:</span> 3323 </div> 3324 <span id="scasl-fax" class="scasl-content scasl-field">{{fax}}</span> 3325 </div> 3326 {{/if}} 3327 {{#if email}} 3328 <div> 3329 <div id="scasl-email" class="scasl-field"> 3330 <span id="scasl-email-label">Email</span> 3331 </div> 3332 <a href="mailto:{{email}}" id="scasl-email" class="scasl-field" title="Email {{email}}" aria-label="Email {{email}}">{{email}}</a> 3333 </div> 3334 3335 {{/if}} 3336 {{#if schedule}} 3337 <div> 3338 <div id="scasl-schedule" class="scasl-field"> 3339 <div class="scasl-content-wrapper"> 3340 <span id="scasl-schedule-label">Store Message</span> 3341 </div> 3342 <span class="scasl-content">{{{schedule}}}</span> 3343 </div> 3344 </div> 3345 {{/if}} 3346 {{#each cfields}} 3347 <div id="scasl-extra"> 3348 <span>{{key}}</span>:<span>{{{value}}}</span> 3349 </div> 3350 {{/each}} 3351 {{#if tags.length}} 3352 <div id="scasl-tags" class="scasl-field"> 3353 <span id="scasl-tags">Tag</span> 3354 {{#each tags}} 3355 <span class="scasl-tags">{{tag}}</span> 3356 {{/each}} 3357 </div> 3358 {{/if}} 3359 {{#if distance}} 3360 <div> 3361 <div id="scasl-distance" class="scasl-field"> 3362 <span id="scasl-distance-label">Distance</span> 3363 <div id="scasl-distance">{{distance}} {{length}}</div> 3364 </div> 3365 <div id="scasl-direction" class="scasl-field">
3365<a href="https://maps.google.com/maps?saddr={{origin}}&daddr={{address}} {{address2}} {{city}}, {{state}} {{postal}}" target="_blank" title="Directions to {{address}}" aria-label="Directions to {{address}}" >Directions</a></div> 3366 </div> 3367 3368 {{/if}} 3369 {{#if web}} 3370 <div> 3371 <div id="scasl-web" class="scasl-field"> 3372 <span id="scasl-web-label">Website</span> 3373 </div> 3374 <a href="{{web}}" target="_blank" id="scasl-web" class="scasl-field" title="{{web}}" aria-label="{{web}}">{{#if webdisplay}}{{webdisplay}}{{else}}{{niceURL web}}{{/if}}</a> 3375 </div> 3376 {{/if}} 3377 3378 </div> 3379 3380 {{#if operating_hours}} 3381 <hr style="margin: 1rem 0;"> 3382 <div class="scasl-operating-hour scasl-field"> 3383 <div class="scasl-operating-hours-icon"> 3384 <span id="scasl-operating-hours-label">Operating Hours</span> 3385 </div> 3386 <div class="minimize-oh-wrapper"> 3387 <div class="scasl-content-wrapper"> 3388 <span class="main-oh-status" style="color: {{oh_color}} !important">{{oh_main_status}}</span> 3389 <span class="end-oh-status">{{oh_end_status}}</span> 3390 <img src="{{ oh_arrow_down }}" title="Arrow Down Icon" alt="Arrow Down Icon"> 3391 </div> 3392 </div> 3393 3394 3395 3396 <div class="maximize-oh-wrapper"> 3397 <div class="maximize-oh-status"> 3398 <span class="expand-oh-status" style="color: {{oh_color}} !important">{{oh_expand_content}}</span> 3399 <img src="{{ oh_arrow_up }}" title="Arrow Up Icon" alt="Arrow Up Icon"> 3400 </div> 3401 <table> 3402 {{#each oh_data}} 3403 <tr> 3404 <td rowspan={{rowspan}} class="{{data1.class}}">{{ name }}{{#if reason}}<br>{{reason}}{{/if}}</td> 3405 <td class="{{data1.class}}">{{data1.content}}{{#if data1.timeDiffer}}<br><span class="time-different" style="color: #dd860e !important;">Hours might differ</span>{{/if}}{{#if data1.currentTimezoneText}}<br>{{data1.currentTimezoneText}}{{/if}}</td> 3406 </tr> 3407 {{#leftData}} 3408 <tr> 3409 <td class="{{class}}">{{content}}{{#if timeDiffer}}<br><span class="time-different" style="color: #dd860e !important;">Hours might differ</span>{{/if}}{{#if currentTimezoneText}}<br>{{currentTimezoneText}}{{/if}}</td> 3410 </tr> 3411 {{/leftData}} 3412 {{/each}} 3413 </table> 3414 </div> 3415 </div> 3416 {{/if}} 3417 3418</li> 3419{{/location}} 3420 3421</script>
3421 3422 3423<label id="scasl-viewmap-btn-template" type="text"> 3424 3425 <button class="scasl-view-map-btn">View Map</button> 3426 3427</label> 3428 3429 3430 3431 3432 3433 3434<!-- END app snippet --> 3435 3436
3436<script> 3437 var originMarkerImg = "https://cdn.shopify.com/extensions/01a0d217-a4a8-78a9-b1eb-a1933407237b/store-locator-4-63/assets/sca.location-origin-marker.png"; 3438 var loadingImage = "https://cdn.shopify.com/extensions/01a0d217-a4a8-78a9-b1eb-a1933407237b/store-locator-4-63/assets/sca.location-loading.png"; 3439 var arrowDownImg = "https://cdn.shopify.com/extensions/01a0d217-a4a8-78a9-b1eb-a1933407237b/store-locator-4-63/assets/sca.location-arrow-down.png"; 3440 var arrowUpImg = "https://cdn.shopify.com/extensions/01a0d217-a4a8-78a9-b1eb-a1933407237b/store-locator-4-63/assets/sca.location-arrow-up.png"; 3441 var isLocatorAppEmbed = true; 3442 </script>
3442 3443 3444 3445 3446</div>
3446<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
3446 3447<shopify-store store-domain="https://www.weeforestfolk.com" country="US" language="en"></shopify-store> 3448<shopify-chat></shopify-chat> 3449</body> 3450</html>
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.