{
  "version": 3,
  "sources": ["/cdn/shop/t/14/assets/custom.js?locale_v=20260817_1322"],
  "sourcesContent": ["/* ============================================================\n   SO & RO \u2014 Custom JS \u2014 CRO Optimized\n   ============================================================ */\n\n\n/* ===== 1. CART DRAWER \u2014 Auto-open on add-to-cart ===== */\n(function() {\n  document.addEventListener('DOMContentLoaded', function() {\n    // Ensure cart drawer opens automatically when item is added\n    var cartDrawer = document.querySelector('cart-drawer-component');\n    if (cartDrawer && !cartDrawer.hasAttribute('auto-open')) {\n      cartDrawer.setAttribute('auto-open', 'true');\n    }\n\n    // Intercept add-to-cart form submissions to open drawer\n    document.addEventListener('submit', function(e) {\n      var form = e.target;\n      if (!form) return;\n      if (form.action && form.action.includes('/cart/add')) {\n        setTimeout(function() {\n          var drawer = document.querySelector('cart-drawer-component');\n          if (drawer && typeof drawer.open === 'function') {\n            drawer.open();\n          } else if (drawer && typeof drawer.showDialog === 'function') {\n            drawer.showDialog();\n          }\n        }, 400);\n      }\n    });\n  });\n})();\n\n\n/* ===== 2. STICKY ADD-TO-CART BAR \u2014 Mobile product pages ===== */\n(function() {\n  if (!window.location.pathname.includes('/products/')) return;\n  if (window.innerWidth > 749) return;\n\n  document.addEventListener('DOMContentLoaded', function() {\n    var addToCartBtn = document.querySelector('button[name=\"add\"], .product-form__submit, [data-block-type=\"add-to-cart\"] button');\n    if (!addToCartBtn) return;\n\n    var stickyBar = document.createElement('div');\n    stickyBar.id = 'soandro-sticky-atc';\n    stickyBar.innerHTML = '<button id=\"soandro-sticky-atc-btn\">In winkelwagen \u2192</button>';\n    stickyBar.style.cssText = 'position:fixed;bottom:0;left:0;right:0;z-index:9999;background:#fff;padding:10px 16px 18px;box-shadow:0 -2px 16px rgba(0,0,0,0.12);display:none;';\n    document.body.appendChild(stickyBar);\n\n    document.getElementById('soandro-sticky-atc-btn').style.cssText =\n      'width:100%;padding:14px;background:#1a1a1a;color:#fff;border:none;font-size:0.9rem;font-weight:600;letter-spacing:0.08em;text-transform:uppercase;border-radius:2px;cursor:pointer;';\n\n    document.getElementById('soandro-sticky-atc-btn').addEventListener('click', function() {\n      addToCartBtn.click();\n    });\n\n    // Show sticky bar when original button scrolls out of view\n    var observer = new IntersectionObserver(function(entries) {\n      entries.forEach(function(entry) {\n        stickyBar.style.display = entry.isIntersecting ? 'none' : 'block';\n      });\n    }, { threshold: 0 });\n\n    observer.observe(addToCartBtn);\n  });\n})();\n\n\n/* ===== 3. REVIEW NUDGE \u2014 Post-purchase thank you page ===== */\n(function() {\n  if (!window.location.pathname.includes('/thank_you') &&\n      !window.location.pathname.includes('/orders/')) return;\n\n  var nudge = document.createElement('div');\n  nudge.style.cssText = 'background:#fdf8ee;border:1px solid #c9a84c;padding:20px 24px;margin:20px 0;text-align:center;border-radius:4px;';\n  nudge.innerHTML =\n    '<p style=\"margin:0 0 8px;font-size:0.9rem;font-weight:600;color:#1a1a1a;\">Bedankt voor je bestelling bij So &amp; Ro! \uD83C\uDF89</p>' +\n    '<p style=\"margin:0 0 12px;font-size:0.82rem;color:#555;\">Zou je een review willen achterlaten? Het helpt andere klanten enorm!</p>' +\n    '<a href=\"https://www.soandro-shoesandmore.com\" style=\"display:inline-block;padding:10px 20px;background:#1a1a1a;color:#fff;text-decoration:none;font-size:0.78rem;letter-spacing:0.08em;text-transform:uppercase;border-radius:2px;\">Schrijf een review</a>';\n\n  document.addEventListener('DOMContentLoaded', function() {\n    var main = document.querySelector('main, .main-content, #main-content');\n    if (main) main.insertAdjacentElement('afterbegin', nudge);\n  });\n})();\n\n\n/* ===== 4. IMAGE LAZY LOADING \u2014 Apply to all product images ===== */\n(function() {\n  document.addEventListener('DOMContentLoaded', function() {\n    var imgs = document.querySelectorAll('img:not([loading])');\n    imgs.forEach(function(img, i) {\n      // First 3 images are likely above-fold \u2014 eager load them\n      if (i < 3) {\n        img.setAttribute('loading', 'eager');\n        img.setAttribute('fetchpriority', 'high');\n      } else {\n        img.setAttribute('loading', 'lazy');\n      }\n    });\n  });\n})();\n\n\n/* SOANDRO_SPANISH_UI_V1 */\n(() => {\n  if (!/^\\/es(?:\\/|$)/.test(window.location.pathname)) return;\n  const ui = {\n    'Home':'Inicio','Shop':'Tienda','About us':'Sobre nosotros','Contact':'Contacto',\n    'Hakken':'Tacones','HAKKEN':'TACONES','Laarzen':'Botas','LAARZEN':'BOTAS','Chique Choices':'Selecci\u00F3n elegante',\n    'Festival Favorites':'Favoritos del festival','FESTIVAL FAVORITES':'FAVORITOS DEL FESTIVAL',\n    'Cowboy Boots':'Botas cowboy','COWBOY BOOTS':'BOTAS COWBOY','Sale':'Rebajas','Verzenden':'Env\u00EDo',\n    'Retourneren':'Devoluciones','Winkel Eindhoven':'Tienda Eindhoven','Ons Verhaal':'Nuestra historia',\n    'Privacybeleid':'Pol\u00EDtica de privacidad','Algemene Voorwaarden':'T\u00E9rminos y condiciones',\n    'Cookiebeleid':'Pol\u00EDtica de cookies','Retourbeleid':'Pol\u00EDtica de devoluciones',\n    'Shop New In \u203A':'VER NOVEDADES \u203A','SHOP NEW IN \u203A':'VER NOVEDADES \u203A',\n    '@soandroshoesandmore op Instagram':'@soandroshoesandmore en Instagram',\n    '@soandroshoesandmore op TikTok':'@soandroshoesandmore en TikTok',\n    '\u2728 CHIQUE CHOICES \u2014 Hakken vanaf \u20AC29 | Geldig t/m 31 augustus':'\u2728 SELECCI\u00D3N ELEGANTE \u2014 TACONES DESDE \u20AC29 | V\u00C1LIDO HASTA EL 31 DE AGOSTO',\n    '\uD83E\uDD7E FESTIVAL FAVORITES \u2014 LAARZEN VANAF \u20AC45 | GELDIG T/M 31 AUGUSTUS':'\uD83E\uDD7E FAVORITOS DEL FESTIVAL \u2014 BOTAS DESDE \u20AC45 | V\u00C1LIDO HASTA EL 31 DE AGOSTO',\n    '\u2B50 SALE STARS \u2014 50% korting | Geldig t/m 31 augustus':'\u2B50 REBAJAS \u2014 50% DE DESCUENTO | V\u00C1LIDO HASTA EL 31 DE AGOSTO',\n    '\uD83C\uDF89 HEEL AUGUSTUS: GRATIS VERZENDING & GRATIS RETOUR \u2014 GEEN MINIMUMBEDRAG':'\uD83C\uDF89 TODO AGOSTO: ENV\u00CDO GRATIS Y DEVOLUCI\u00D3N GRATIS \u2014 SIN IMPORTE M\u00CDNIMO',\n    'KLANTENSERVICE':'ATENCI\u00D3N AL CLIENTE','OVER SO & RO':'SOBRE SO & RO','JURIDISCH':'LEGAL',\n    'De Soof Familie':'La familia Soof','Nuestras botas signature':'Nuestras botas ic\u00F3nicas',\n    'VOLG ONS OP INSTAGRAM':'S\u00CDGUENOS EN INSTAGRAM','Lederlook':'Efecto piel',\n    'Betaal achteraf met':'Paga despu\u00E9s con','Gespreide betaling via':'Pago a plazos con','Betaal in 3 termijnen met':'Paga en 3 cuotas con'\n  };\n  const partial = {\n    '4 beoordelingen':'4 opiniones','Geverifieerde koper':'Compra verificada',\n    'GEVERIFIEERDE KOPER':'COMPRA VERIFICADA','Klant':'Cliente','KLANT':'CLIENTE'\n  };\n  function localize() {\n    const nodes = [], walker = document.createTreeWalker(document.body, NodeFilter.SHOW_TEXT);\n    while (walker.nextNode()) nodes.push(walker.currentNode);\n    nodes.forEach((node) => {\n      const original = node.nodeValue;\n      if (!original || !original.trim()) return;\n      const leading = original.match(/^\\s*/)[0], trailing = original.match(/\\s*$/)[0];\n      const exact = original.trim();\n      if (Object.prototype.hasOwnProperty.call(ui, exact)) node.nodeValue = leading + ui[exact] + trailing;\n      else {\n        let next = original;\n        Object.entries(partial).forEach(([from, to]) => { next = next.split(from).join(to); });\n        if (next !== original) node.nodeValue = next;\n      }\n    });\n  }\n  let passes = 0;\n  const timer = setInterval(() => { localize(); if (++passes === 50) clearInterval(timer); }, 200);\n  document.addEventListener('DOMContentLoaded', localize);\n})();\n/* SO & RO PRODUCT CARD V2 \u2014 START\n   Some storefront code adds full-width inline !important styles to quick-add buttons\n   after render. Product-card quick add should use the compact theme control instead. */\n(function () {\n  'use strict';\n\n  var selector = 'product-card .quick-add__button[style]';\n\n  function normalizeQuickAdd(root) {\n    if (!root) return;\n    if (root.matches && root.matches(selector)) {\n      root.removeAttribute('style');\n    }\n    if (root.querySelectorAll) {\n      root.querySelectorAll(selector).forEach(function (button) {\n        button.removeAttribute('style');\n      });\n    }\n  }\n\n  function startProductCardObserver() {\n    normalizeQuickAdd(document);\n    var observer = new MutationObserver(function (mutations) {\n      mutations.forEach(function (mutation) {\n        if (mutation.type === 'attributes') {\n          normalizeQuickAdd(mutation.target);\n        }\n        mutation.addedNodes.forEach(function (node) {\n          if (node.nodeType === 1) normalizeQuickAdd(node);\n        });\n      });\n    });\n    observer.observe(document.documentElement, {\n      subtree: true,\n      childList: true,\n      attributes: true,\n      attributeFilter: ['style']\n    });\n  }\n\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', startProductCardObserver, { once: true });\n  } else {\n    startProductCardObserver();\n  }\n})();\n/* SO & RO PRODUCT CARD V2 \u2014 END */\n\n"],
  "mappings": "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",
  "names": []
}
