{
  "version": 3,
  "sources": ["/cdn/shop/t/4/assets/orion-discount-config.js?orion=20260825-04"],
  "sourcesContent": ["(function () {\n  if (window.OrionDiscountConfig) return;\n\n  var ENDPOINT = '/apps/pricing-preview/discount-config';\n  var requestPromise = null;\n  var memoryConfig = null;\n\n  function emptyConfig() {\n    return { ok: false, products: {}, fees: {} };\n  }\n\n  function isValid(payload) {\n    return !!(\n      payload && payload.ok === true &&\n      payload.products && typeof payload.products === 'object' &&\n      payload.fees && typeof payload.fees === 'object'\n    );\n  }\n\n  function load() {\n    if (memoryConfig) return Promise.resolve(memoryConfig);\n    if (requestPromise) return requestPromise;\n    requestPromise = fetch(ENDPOINT, {\n      credentials: 'same-origin',\n      headers: { Accept: 'application/json' }\n    }).then(function (response) {\n      if (!response.ok) throw new Error('HTTP ' + response.status);\n      return response.json();\n    }).then(function (payload) {\n      if (!isValid(payload)) throw new Error('Invalid discount configuration');\n      memoryConfig = payload;\n      return payload;\n    }).catch(function (error) {\n      requestPromise = null;\n      if (/localhost|127\\.0\\.0\\.1/.test(window.location.hostname) && window.console) {\n        console.error('[Orion pricing] App Proxy unavailable', error);\n      }\n      return emptyConfig();\n    });\n    return requestPromise;\n  }\n\n  function values(collection) {\n    if (!collection || typeof collection !== 'object') return [];\n    return Object.keys(collection).map(function (key) {\n      var value = collection[key];\n      return value && typeof value === 'object' ? Object.assign({ portableId: key }, value) : null;\n    }).filter(Boolean);\n  }\n\n  function sameId(left, right) {\n    if (left == null || right == null || String(left) === '' || String(right) === '') return false;\n    var a = String(left).replace(/^gid:\\/\\/shopify\\/(?:ProductVariant|Product)\\//, '');\n    var b = String(right).replace(/^gid:\\/\\/shopify\\/(?:ProductVariant|Product)\\//, '');\n    return a === b;\n  }\n\n  function resolveProduct(config, identity) {\n    var products = config && config.ok ? config.products : {};\n    var wanted = identity || {};\n    var directKeys = [wanted.handle, wanted.productHandle, wanted.id, wanted.productId].filter(Boolean);\n    for (var index = 0; index < directKeys.length; index += 1) {\n      if (products[directKeys[index]]) return products[directKeys[index]];\n      if (products[String(directKeys[index])]) return products[String(directKeys[index])];\n    }\n    return values(products).find(function (entry) {\n      var wantedHandle = String(wanted.handle || wanted.productHandle || '');\n      var wantedPortableId = String(wanted.portableId || '');\n      return sameId(entry.productId || entry.shopifyProductId || entry.id, wanted.id || wanted.productId) ||\n        (wantedHandle && String(entry.handle || entry.productHandle || '') === wantedHandle) ||\n        (wantedPortableId && String(entry.portableId || entry.portable_id || '') === wantedPortableId);\n    }) || null;\n  }\n\n  function resolveFee(config, identity) {\n    var fees = config && config.ok ? config.fees : {};\n    var wanted = identity || {};\n    var composite = String(wanted.productHandle || wanted.handle || '') + '::' + String(wanted.variantSku || wanted.sku || '');\n    if (fees[composite]) return fees[composite];\n    var directSku = String(wanted.variantSku || wanted.sku || '');\n    if (directSku && fees[directSku]) return fees[directSku];\n    return values(fees).find(function (entry) {\n      var wantedHandle = String(wanted.productHandle || wanted.handle || '');\n      var wantedSku = String(wanted.variantSku || wanted.sku || '');\n      var wantedPortableId = String(wanted.portableId || '');\n      return sameId(entry.variantId || entry.variant_id || entry.shopifyVariantId, wanted.variantId) ||\n        (wantedHandle && wantedSku && String(entry.productHandle || entry.product_handle || entry.handle || '') === wantedHandle &&\n          String(entry.variantSku || entry.variant_sku || entry.sku || '') === wantedSku) ||\n        (wantedPortableId && String(entry.portableId || entry.portable_id || '') === wantedPortableId);\n    }) || null;\n  }\n\n  function tierDiscount(tier) {\n    if (!tier) return 0;\n    if (tier.discountPercent != null || tier.discount_percent != null) {\n      return Math.max(0, Number(tier.discountPercent != null ? tier.discountPercent : tier.discount_percent) || 0);\n    }\n    var multiplier = tier.multiplier != null ? tier.multiplier : (tier.coefficient != null ? tier.coefficient : tier.coef);\n    return Number.isFinite(Number(multiplier)) ? Math.max(0, (1 - Number(multiplier)) * 100) : 0;\n  }\n\n  function lowestPriceCents(baseCents, nativeCents, tiers) {\n    var base = Math.max(0, Number(baseCents) || 0);\n    var native = Math.max(0, Number(nativeCents) || base);\n    var lowestMultiplier = (Array.isArray(tiers) ? tiers : []).reduce(function (current, tier) {\n      return Math.min(current, Math.max(0, 1 - tierDiscount(tier) / 100));\n    }, 1);\n    return Math.min(native || base, Math.round(base * lowestMultiplier));\n  }\n\n  function hydratePrices(root) {\n    var scope = root && root.querySelectorAll ? root : document;\n    var nodes = Array.prototype.slice.call(scope.querySelectorAll('[data-orion-proxy-from-price]'));\n    if (!nodes.length) return;\n    load().then(function (config) {\n      nodes.forEach(function (node) {\n        var nativeCents = Math.max(0, Number(node.dataset.nativeLowestCents) || 0);\n        var baseCents = Math.max(0, Number(node.dataset.basePriceCents) || nativeCents);\n        var product = resolveProduct(config, { id: node.dataset.productId, handle: node.dataset.productHandle });\n        var tiers = product && Array.isArray(product.tiers) ? product.tiers : [];\n        var cents = lowestPriceCents(baseCents, nativeCents, tiers);\n        var currency = node.dataset.currency || 'EUR';\n        var suffix = node.dataset.priceSuffix || '';\n        node.dataset.orionPriceHtCents = String(cents);\n        try {\n          node.textContent = new Intl.NumberFormat(document.documentElement.lang || 'fr-FR', {\n            style: 'currency', currency: currency\n          }).format(cents / 100) + suffix;\n        } catch (error) {\n          node.textContent = (cents / 100).toFixed(2).replace('.', ',') + ' \u20AC' + suffix;\n        }\n        node.removeAttribute('data-orion-price-pending');\n        var priceContainer = node.closest('.orion-main-price');\n        if (priceContainer && !priceContainer.querySelector('[data-orion-price-pending]')) {\n          priceContainer.classList.remove('orion-main-price--pending');\n        }\n      });\n\n      if (window.OrionPriceDisplay && typeof window.OrionPriceDisplay.refresh === 'function') {\n        window.OrionPriceDisplay.refresh(document);\n      }\n      document.dispatchEvent(new CustomEvent('orion:discount-prices-hydrated'));\n    });\n  }\n\n  function observeDynamicPrices() {\n    if (!document.body || window.__orionDiscountPriceObserver) return;\n    var queued = false;\n    window.__orionDiscountPriceObserver = new MutationObserver(function (mutations) {\n      var hasPriceNodes = mutations.some(function (mutation) {\n        return Array.prototype.some.call(mutation.addedNodes || [], function (node) {\n          return node && node.nodeType === 1 &&\n            ((node.matches && node.matches('[data-orion-proxy-from-price]')) ||\n              (node.querySelector && node.querySelector('[data-orion-proxy-from-price]')));\n        });\n      });\n      if (!hasPriceNodes || queued) return;\n      queued = true;\n      window.requestAnimationFrame(function () {\n        queued = false;\n        hydratePrices(document);\n      });\n    });\n    window.__orionDiscountPriceObserver.observe(document.body, { childList: true, subtree: true });\n  }\n\n  window.OrionDiscountConfig = {\n    endpoint: ENDPOINT,\n    load: load,\n    resolveProduct: resolveProduct,\n    resolveFee: resolveFee,\n    lowestPriceCents: lowestPriceCents,\n    hydratePrices: hydratePrices,\n    clearCache: function () {\n      memoryConfig = null;\n      requestPromise = null;\n    }\n  };\n  if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', function () {\n    hydratePrices(document);\n    observeDynamicPrices();\n  });\n  else {\n    hydratePrices(document);\n    observeDynamicPrices();\n  }\n  document.addEventListener('shopify:section:load', function (event) { hydratePrices(event.target); });\n})();\n"],
  "mappings": "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",
  "names": []
}
