{
  "version": 3,
  "sources": ["/cdn/shop/t/122/assets/saunamo-heater-locale.js?smv=1777559300"],
  "sourcesContent": ["// chimney-separate-refresh-20260515-2\n(function () {\n  var params = new URLSearchParams(window.location.search || '');\n  var forced = (params.get('force_locale') || '').toLowerCase();\n  var pathLocale = (window.location.pathname.match(/^\\/(en|es|fr|it)(\\/|$)/) || [])[1] || '';\n  var htmlLocale = (document.documentElement.getAttribute('lang') || '').slice(0, 2).toLowerCase();\n  var locale = forced || pathLocale || htmlLocale;\n\n  var catalog = window.SaunamoHeaterLocaleCatalog && window.SaunamoHeaterLocaleCatalog[locale];\n\n  document.documentElement.setAttribute('lang', locale);\n  if (document.body) {\n    document.body.classList.add('saunamo-heater-locale-active', 'saunamo-heater-locale-' + locale);\n  }\n\n  function normalize(value) {\n    return String(value || '').replace(/\\s+/g, ' ').trim();\n  }\n\n  function preserveWhitespace(original, replacement) {\n    var start = (original.match(/^\\s*/) || [''])[0];\n    var end = (original.match(/\\s*$/) || [''])[0];\n    return start + replacement + end;\n  }\n\n  function skipElement(element) {\n    if (!element) return true;\n    return Boolean(\n      element.closest &&\n      element.closest('script, style, noscript, svg, [data-saunamo-locale-skip=\"true\"]')\n    );\n  }\n\n  function chimneyText(options) {\n    return options[locale] || options.en || '';\n  }\n\n  function rewriteChimneyClaim(key) {\n    if (!/(chimney|chamin[e\u00E9]|chimenea|chemin[e\u00E9]e|canna fumaria|camino)/i.test(key)) return '';\n    if (/(sold separately|vendido separadamente|vendida separadamente|se vende por separado|vendu s\u00E9par\u00E9ment|vendue s\u00E9par\u00E9ment|venduto separatamente|separately|separado|separada|separato|separata|s\u00E9par\u00E9|s\u00E9par\u00E9e|aparte|\u00E0 parte)/i.test(key)) return '';\n\n    if (/^(chamin[e\u00E9]\\s+inclu[i\u00ED]da|chimney included|chimenea incluida|chemin[e\u00E9]e incluse|canna fumaria inclusa|camino incluso)$/i.test(key)) {\n      return chimneyText({\n        en: 'Chimney set separate',\n        es: 'Chimenea aparte',\n        fr: 'Kit chemin\u00E9e s\u00E9par\u00E9',\n        it: 'Kit canna fumaria separato'\n      });\n    }\n\n    if (/(opera\u00E7\u00E3o manual a lenha|manual wood-(?:fired|burning) operation|funcionamiento manual de le\u00F1a|fonctionnement manuel au bois|funzionamento manuale a legna).*(chamin[e\u00E9]\\s+inclu[i\u00ED]da|chimney included|chimenea incluida|chemin[e\u00E9]e incluse|canna fumaria inclusa)/i.test(key)) {\n      return chimneyText({\n        en: 'Manual wood-burning operation \u00B7 chimney set sold separately',\n        es: 'Funcionamiento manual de le\u00F1a \u00B7 chimenea aparte',\n        fr: 'Fonctionnement manuel au bois \u00B7 kit chemin\u00E9e s\u00E9par\u00E9',\n        it: 'Funzionamento manuale a legna \u00B7 kit canna fumaria separato'\n      });\n    }\n\n    if (/(chamin[e\u00E9]\\s+inclu[i\u00ED]da|chimney included|chimenea incluida|chemin[e\u00E9]e incluse|canna fumaria inclusa).*(opera\u00E7\u00E3o manual|manual wood|funcionamiento manual|fonctionnement manuel|funzionamento manuale)/i.test(key)) {\n      return chimneyText({\n        en: 'Manual wood-fired operation',\n        es: 'Funcionamiento manual a le\u00F1a',\n        fr: 'Fonctionnement manuel au bois',\n        it: 'Funzionamento manuale a legna'\n      });\n    }\n\n    if (/(a chamin[e\u00E9] est[\u00E1a] inclu[i\u00ED]da\\?|is the chimney included\\?|chimenea est[\u00E1a] incluida\\?|la chemin\u00E9e est-elle incluse|canna fumaria .*inclusa\\?)/i.test(key)) {\n      return chimneyText({\n        en: 'How do I order the chimney set?',\n        es: '\u00BFC\u00F3mo pido el conjunto de chimenea?',\n        fr: 'Comment commander le kit chemin\u00E9e ?',\n        it: 'Come ordino il kit canna fumaria?'\n      });\n    }\n\n    if (/(chamin[e\u00E9]\\s+(vem|est[\u00E1a] inclu)|chimney (comes|is included)|chimenea (viene|est[\u00E1a] incluida)|chemin[e\u00E9]e (est incluse|est fournie)|canna fumaria .*inclusa|camino .*incluso|no separate purchase needed|no hace falta comprarla aparte|pas d\u2019achat s\u00E9par\u00E9 n\u00E9cessaire|non serve acquistarla separatamente)/i.test(key)) {\n      return chimneyText({\n        en: 'No. The chimney set is sold separately and should be added when you confirm the roof or wall route.',\n        es: 'No. El conjunto de chimenea se vende por separado y debe a\u00F1adirse al pedido al confirmar el recorrido por tejado o pared.',\n        fr: 'Non. Le kit chemin\u00E9e est vendu s\u00E9par\u00E9ment et doit \u00EAtre ajout\u00E9 lorsque le passage par le toit ou le mur est confirm\u00E9.',\n        it: 'No. Il kit canna fumaria \u00E8 venduto separatamente e va aggiunto quando confermi il passaggio a tetto o parete.'\n      });\n    }\n\n    return '';\n  }\n\n  function translateTextNode(node) {\n    var raw = node.nodeValue || '';\n    var key = normalize(raw);\n    if (!key) return;\n    var chimneyRewrite = rewriteChimneyClaim(key);\n    if (chimneyRewrite && chimneyRewrite !== key) {\n      node.nodeValue = preserveWhitespace(raw, chimneyRewrite);\n      return;\n    }\n    var translated = catalog[key] || translatePrefix(key);\n    if (!translated || translated === key) return;\n    node.nodeValue = preserveWhitespace(raw, translated);\n  }\n\n  function translatePrefix(key) {\n    var delimiters = [' \u2014 ', ' \u2013 ', ' - ', ' \u00B7 ', ': '];\n    for (var index = 0; index < delimiters.length; index += 1) {\n      var delimiter = delimiters[index];\n      var delimiterPosition = key.indexOf(delimiter);\n      if (delimiterPosition <= 0) continue;\n      var prefix = key.slice(0, delimiterPosition);\n      if (catalog[prefix]) return catalog[prefix] + key.slice(delimiterPosition);\n    }\n    return '';\n  }\n\n  function translateTree(root) {\n    if (!root || skipElement(root.nodeType === 1 ? root : root.parentElement)) return;\n    var walker = document.createTreeWalker(root, NodeFilter.SHOW_TEXT, {\n      acceptNode: function (node) {\n        return skipElement(node.parentElement) ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT;\n      }\n    });\n    var node;\n    while ((node = walker.nextNode())) translateTextNode(node);\n  }\n\n  function rewriteDraftLanguageLinks() {\n    var previewId = params.get('preview_theme_id') || '199512392019';\n    var domainMap = {\n      pt: 'https://saunamo.pt',\n      en: 'https://saunamo.shop',\n      es: 'https://saunamo.es',\n      fr: 'https://saunamo.fr',\n      it: 'https://saunamo.it'\n    };\n    document.querySelectorAll('.saunamo-native-language__link[hreflang]').forEach(function (link) {\n      var target = (link.getAttribute('hreflang') || '').slice(0, 2).toLowerCase();\n      if (!/^(pt|en|es|fr|it)$/.test(target)) return;\n      if (!params.has('preview_theme_id') && !params.has('force_locale') && !params.has('force_en')) {\n        var cleanHref = domainMap[target] + window.location.pathname;\n        link.href = cleanHref;\n        link.setAttribute('data-clean-url', cleanHref);\n        return;\n      }\n      var url = new URL(window.location.href);\n      url.searchParams.set('preview_theme_id', previewId);\n      url.searchParams.delete('force_en');\n      if (target === 'pt') {\n        url.searchParams.delete('force_locale');\n      } else {\n        url.searchParams.set('force_locale', target);\n        if (target === 'en') url.searchParams.set('force_en', '1');\n        else url.searchParams.set('force_en', '0');\n      }\n      link.href = url.toString();\n    });\n  }\n\n  function run() {\n    rewriteDraftLanguageLinks();\n    if (!/^(en|es|fr|it)$/.test(locale)) return;\n    if (locale === 'en' && params.get('force_en') === '0') return;\n    if (!catalog) return;\n    translateTree(document.body);\n  }\n\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', run);\n  } else {\n    run();\n  }\n\n  var observer = new MutationObserver(function (mutations) {\n    if (!/^(en|es|fr|it)$/.test(locale) || !catalog) return;\n    mutations.forEach(function (mutation) {\n      if (mutation.type === 'characterData') {\n        translateTextNode(mutation.target);\n        return;\n      }\n      mutation.addedNodes.forEach(function (node) {\n        if (node.nodeType === Node.TEXT_NODE) translateTextNode(node);\n        else if (node.nodeType === Node.ELEMENT_NODE) translateTree(node);\n      });\n    });\n  });\n  if (document.documentElement) {\n    observer.observe(document.documentElement, { childList: true, characterData: true, subtree: true });\n  }\n})();\n"],
  "mappings": "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",
  "names": ["node"]
}
