{
  "version": 3,
  "sources": ["/cdn/shop/t/278/assets/labosch-hub-availability-20261013.js?lbxv=20261013-stock-order"],
  "sourcesContent": ["/* LBX availability ordering and supplier-orderable build 2026-10-06 */\n(function () {\n  'use strict';\n  var endpoint = 'https://hub.labosch.es/api/public/reservations/stock';\n  var phone = '34690041276';\n  var generation = 0;\n\n  function render(card, own, supplier) {\n    if (card.getAttribute('data-lbx-stock-ready') !== 'true' || card.getAttribute('data-lbx-stock-error') === 'true') return;\n    var label = card.querySelector('[data-lbx-store-availability]');\n    if (!label) return;\n    own = Math.max(0, Number(own) || 0);\n    supplier = Math.max(0, Number(supplier) || 0);\n    var scoped = card.__lbxMatchedVariants || matrix(card);\n    var live = card.__lbxLiveStock || {};\n    var incoming = scoped.some(function (variant) { return live[String(variant.id)] && live[String(variant.id)].state === 'incoming'; });\n    var assumed = scoped.some(function (variant) { return live[String(variant.id)] && live[String(variant.id)].state === 'assumed'; });\n    var arrival = scoped.map(function (variant) { return live[String(variant.id)] && live[String(variant.id)].estimatedArrival; }).filter(Boolean)[0] || '';\n    var orderable = scoped.some(function (variant) { return live[String(variant.id)] && live[String(variant.id)].state === 'supplier_orderable'; });\n    var uncertain = assumed || scoped.some(function (variant) { return live[String(variant.id)] && live[String(variant.id)].state === 'unknown'; });\n    var state = own > 0 ? 'in-stock' : supplier > 0 ? 'supplier-stock' : orderable || incoming ? 'incoming' : uncertain ? 'unknown' : 'sold-out';\n    label.classList.remove('is-sold-out', 'is-out-of-stock', 'is-available', 'is-supplier', 'is-reservation', 'is-hub-reservation');\n    label.classList.add(own > 0 ? 'is-available' : supplier > 0 ? 'is-supplier' : orderable || incoming ? 'is-hub-reservation' : 'is-sold-out');\n    var copy = label.querySelector('.lbx109-stock-copy');\n    var title = copy && copy.querySelector('b');\n    var detail = copy && copy.querySelector('small');\n    if (title) title.textContent = state === 'unknown' ? 'Consultar disponibilidad' : state === 'sold-out' ? 'Sin stock' : 'Disponible';\n    if (own > 0 && copy) {\n      if (!detail) { detail = document.createElement('small'); copy.appendChild(detail); }\n      detail.textContent = '24/48h laborables';\n    } else if (own === 0 && (supplier > 0 || incoming || orderable) && copy) {\n      if (!detail) { detail = document.createElement('small'); copy.appendChild(detail); }\n      detail.textContent = arrival || (supplier > 0 ? 'En 10 d\u00EDas laborables' : 'En 3\u20134 semanas');\n    } else if (detail) detail.remove();\n    card.setAttribute('data-lbx-product-stock-status', state);\n    card.setAttribute('data-lbx-availability', state);\n    card.classList.toggle('is-sold-out', state === 'sold-out');\n    syncStockVariantLinks(card, matrix(card), live);\n    updateWhatsapp(card, state === 'sold-out' || state === 'unknown');\n  }\n\n  function updateWhatsapp(card, show) {\n    var footer = card.querySelector('.lbx-canon-card__footer');\n    if (!footer) return;\n    var link = footer.querySelector('[data-lbx-ask-availability]');\n    if (!show) { if (link) link.remove(); return; }\n    if (!link) {\n      link = document.createElement('a');\n      link.setAttribute('data-lbx-ask-availability', '');\n      link.className = 'lbx-ask-availability';\n      link.target = '_blank';\n      link.rel = 'noopener noreferrer';\n      link.textContent = 'Preguntar por la disponibilidad';\n      footer.appendChild(link);\n    }\n    var variants = matrix(card);\n    var selected = card.__lbxSelectedVariant || (variants.length === 1 ? variants[0] : null);\n    var productUrl = (card.querySelector('.lbx-canon-card__title') || {}).href || window.location.href;\n    if (!selected) {\n      link.textContent = 'Elegir variante para preguntar';\n      link.href = productUrl;\n      link.removeAttribute('target');\n      return;\n    }\n    link.textContent = 'Preguntar por la disponibilidad';\n    link.target = '_blank';\n    var detail = Array.isArray(selected.options) ? ' \u00B7 ' + selected.options.join(' / ') : '';\n    var message = 'Hola, quiero preguntar por la disponibilidad de ' + (card.getAttribute('data-lbx-title') || 'esta bicicleta') + detail + ' (variante ' + selected.id + '). ' + productUrl;\n    link.href = 'https://wa.me/' + phone + '?text=' + encodeURIComponent(message);\n  }\n\n  function syncCardVariantMoney(card, selected) {\n    if (!Number.isSafeInteger(selected.priceCents) || selected.priceCents < 0 || typeof selected.priceLabel !== 'string' || !selected.priceLabel) return;\n    var box = card.querySelector('.lbx-canon-card__price');\n    if (!box) return;\n    var moneyKey = JSON.stringify([selected.id, selected.priceCents, selected.compareAtCents, selected.priceLabel, selected.compareAtLabel]);\n    if (card.__lbxVariantMoneyKey === moneyKey) return;\n    card.__lbxVariantMoneyKey = moneyKey;\n    var sale = Number.isSafeInteger(selected.compareAtCents) && selected.compareAtCents > selected.priceCents && typeof selected.compareAtLabel === 'string' && !!selected.compareAtLabel;\n    var amount = document.createElement('strong');\n    amount.textContent = selected.priceLabel;\n    box.replaceChildren(amount);\n    if (sale) {\n      var compare = document.createElement('s');\n      compare.textContent = selected.compareAtLabel;\n      box.appendChild(compare);\n    }\n    card.setAttribute('data-lbx-price', String(selected.priceCents / 100));\n    card.setAttribute('data-lbx-price-cents', String(selected.priceCents));\n    card.setAttribute('data-lbx-sale', String(sale));\n    card.setAttribute('data-lbx-discount-pct', String(sale ? Math.floor((selected.compareAtCents - selected.priceCents) * 100 / selected.compareAtCents) : 0));\n    card.classList.toggle('is-sale', sale);\n    var badge = card.querySelector('.lbx-canon-card__badge');\n    if (!badge && sale) {\n      var media = card.querySelector('.lbx-canon-card__media');\n      if (media) { badge = document.createElement('span'); badge.className = 'lbx-canon-card__badge'; badge.textContent = 'OFERTA'; media.appendChild(badge); }\n    }\n    if (badge && !sale) badge.remove();\n    else if (badge) badge.hidden = false;\n  }\n\n  function syncCardVariantBattery(card, selected) {\n    var capacity = Number(selected.batteryWh);\n    if (!Number.isSafeInteger(capacity) || capacity <= 0) return;\n    var row = card.querySelector('.lbx-canon-card__spec--battery');\n    if (!row) {\n      var specs = card.querySelector('.lbx-canon-card__specs');\n      if (!specs) return;\n      row = document.createElement('div'); row.className = 'lbx-canon-card__spec lbx-canon-card__spec--battery';\n      var label = document.createElement('dt'); label.textContent = 'BATER\u00CDA';\n      row.appendChild(label); row.appendChild(document.createElement('dd')); specs.appendChild(row);\n    }\n    var value = row.querySelector('dd');\n    var text = String(capacity) + ' Wh';\n    if (value && value.textContent !== text) value.textContent = text;\n  }\n\n  function lowestPricedVariant(variants) {\n    return variants.reduce(function (best, variant) {\n      if (!Number.isSafeInteger(Number(variant.id)) || Number(variant.id) <= 0 ||\n          !Number.isSafeInteger(variant.priceCents) || variant.priceCents < 0 ||\n          typeof variant.priceLabel !== 'string' || !variant.priceLabel) return best;\n      return !best || variant.priceCents < best.priceCents ? variant : best;\n    }, null);\n  }\n\n  function syncStockVariantLinks(card, variants, live) {\n    var candidates = Array.isArray(card.__lbxMatchedVariants) ? card.__lbxMatchedVariants : variants;\n    var selected = candidates.find(function (variant) {\n      var stock = live[String(variant.id)] || {};\n      return Number(stock.storeStock || 0) > 0;\n    }) || candidates.find(function (variant) {\n      var stock = live[String(variant.id)] || {};\n      return Number(stock.supplierStock || 0) > 0 || stock.state === 'supplier_orderable' || stock.state === 'incoming';\n    }) || (Array.isArray(card.__lbxMatchedVariants) ? candidates[0] : lowestPricedVariant(candidates));\n    if (!selected) return;\n    card.__lbxSelectedVariant = selected;\n    syncCardVariantMoney(card, selected);\n    syncCardVariantBattery(card, selected);\n    var image = card.querySelector('.lbx-canon-card__image');\n    if (image && selected.image) {\n      try {\n        var imageUrl = new URL(selected.image, window.location.href);\n        if (imageUrl.protocol === 'https:' || imageUrl.protocol === 'http:') {\n          image.setAttribute('src', imageUrl.href);\n          image.setAttribute('srcset', [320, 480, 680, 900, 1200].map(function (width) {\n            var sized = new URL(imageUrl.href); sized.searchParams.set('width', String(width));\n            return sized.href + ' ' + width + 'w';\n          }).join(', '));\n          image.setAttribute('alt', (card.getAttribute('data-lbx-title') || '') + (selected.options ? ' \u00B7 ' + selected.options.join(' / ') : ''));\n        }\n      } catch (_) {}\n    }\n    card.querySelectorAll('a[href*=\"/products/\"]').forEach(function (link) {\n      try {\n        var url = new URL(link.getAttribute('href'), window.location.href);\n        if (url.pathname === new URL(window.location.href).pathname) return;\n        url.searchParams.set('variant', String(selected.id));\n        link.setAttribute('href', url.pathname + url.search + url.hash);\n      } catch (_) {}\n    });\n  }\n\n  function unknown(card) {\n    // A failed/partial HUB read is not proof of zero stock. Keep the Shopify\n    // adapter quantities as a safe fallback and disclose that the live check is\n    // pending when neither local quantity is available.\n    var own = Math.max(0, Number(card.getAttribute('data-lbx-own-stock-total') || card.getAttribute('data-lbx-own-stock') || 0) || 0);\n    var supplier = Math.max(0, Number(card.getAttribute('data-lbx-supplier-stock-total') || card.getAttribute('data-lbx-supplier-stock') || 0) || 0);\n    if (own > 0 || supplier > 0) {\n      card.__lbxLiveStock = {};\n      card.setAttribute('data-lbx-stock-error', 'false');\n      card.setAttribute('data-lbx-stock-ready', 'true');\n      card.setAttribute('data-lbx-all-own-stock', String(own));\n      card.setAttribute('data-lbx-all-supplier-stock', String(supplier));\n      card.setAttribute('data-lbx-own-stock', String(own));\n      card.setAttribute('data-lbx-supplier-stock', String(supplier));\n      render(card, own, supplier);\n      return;\n    }\n    // A missing read cannot establish factory availability from model year.\n    var incomingFallback = false;\n    var fallbackState = 'unknown';\n    card.__lbxLiveStock = {};\n    card.setAttribute('data-lbx-stock-error', 'true');\n    card.setAttribute('data-lbx-stock-ready', 'true');\n    card.setAttribute('data-lbx-product-stock-status', fallbackState);\n    card.setAttribute('data-lbx-availability', fallbackState);\n    card.classList.toggle('is-sold-out', !incomingFallback);\n    var label = card.querySelector('[data-lbx-store-availability]');\n    if (label) {\n      label.classList.remove('is-available', 'is-supplier', 'is-reservation', 'is-hub-reservation', 'is-sold-out', 'is-checking');\n      label.classList.add(incomingFallback ? 'is-hub-reservation' : 'is-sold-out');\n      var copy = label.querySelector('.lbx109-stock-copy');\n      var title = copy && copy.querySelector('b');\n      var detail = copy && copy.querySelector('small');\n      if (title) title.textContent = incomingFallback ? 'Disponible' : 'Consultar disponibilidad';\n      if (incomingFallback) {\n        if (copy && !detail) { detail = document.createElement('small'); copy.appendChild(detail); }\n        if (detail) detail.textContent = 'En 3\u20134 semanas';\n      } else if (detail) detail.remove();\n    }\n    updateWhatsapp(card, !incomingFallback);\n  }\n\n  function cards() { return Array.from(document.querySelectorAll('[data-lbx-product-card]')); }\n  function matrix(card) {\n    try { return JSON.parse(card.querySelector('[data-lbx-v103-variants]').textContent).variants || []; }\n    catch (_) { return []; }\n  }\n\n  async function refresh() {\n    var current = ++generation;\n    var items = cards();\n    // Paint a deterministic state before the first network round-trip. A\n    // slow/blocked HUB request must never leave the storefront in\n    // \u00ABComprobando disponibilidad\u00BB indefinitely; the live response below\n    // replaces this fallback as soon as it arrives.\n    items.forEach(function (card) {\n      if (card.getAttribute('data-lbx-stock-ready') !== 'true') unknown(card);\n    });\n    var ids = Array.from(new Set(items.flatMap(function (card) { return matrix(card).map(function (variant) { return String(variant.id); }); })));\n    var values = {};\n    var groups = [];\n    for (var start = 0; start < ids.length; start += 30) groups.push(ids.slice(start, start + 30));\n    var nextGroup = 0;\n    var painted = new Set();\n    function paintReadyCards() {\n      if (current !== generation) return;\n      var changed = false;\n      items.forEach(function (card) {\n        if (painted.has(card)) return;\n        var variants = matrix(card);\n        if (!variants.every(function (variant) { return Object.prototype.hasOwnProperty.call(values, String(variant.id)); })) return;\n        painted.add(card);\n        changed = true;\n        var own = 0, supplier = 0, missing = false;\n        var live = {};\n        variants.forEach(function (variant) {\n          var id = String(variant.id);\n          var value = values[id];\n          var staticOwn = Math.max(0, Number(variant.ownStock || 0) || 0);\n          var staticSupplier = Math.max(0, Number(variant.supplierStock || 0) || 0);\n          // The public route reads Proveedores inventory directly. A verified\n          // zero must replace an older positive quantity on the card.\n          if (!value || value.state === 'unknown') {\n            if (staticOwn > 0 || staticSupplier > 0) {\n              value = { storeStock: staticOwn, supplierStock: staticSupplier, estimatedArrival: '', storeLocations: [], state: 'fallback', fallback: true };\n            } else { missing = true; return; }\n          } else {\n            value = Object.assign({}, value);\n\n          }\n          live[id] = value;\n          own += Number(value.storeStock || 0);\n          supplier += Number(value.supplierStock || 0);\n        });\n        card.__lbxLiveStock = live;\n        syncStockVariantLinks(card, variants, live);\n        card.removeAttribute('data-lbx-stock-error');\n        card.setAttribute('data-lbx-stock-ready', 'true');\n        card.setAttribute('data-lbx-all-own-stock', String(own));\n        card.setAttribute('data-lbx-all-supplier-stock', String(supplier));\n        card.setAttribute('data-lbx-own-stock', String(own));\n        card.setAttribute('data-lbx-supplier-stock', String(supplier));\n        if (!variants.length || missing && own <= 0 && supplier <= 0 && !Object.values(live).some(function (value) { return value.state === 'assumed' || value.state === 'incoming' || value.state === 'supplier_orderable'; })) unknown(card);\n        else render(card, own, supplier);\n      });\n      if (changed) {\n        document.dispatchEvent(new CustomEvent('lbx:hub-availability'));\n        sortCardsByAvailability();\n      }\n    }\n    async function worker() {\n      while (nextGroup < groups.length) {\n        var group = groups[nextGroup++];\n        try {\n          var response = await fetch(endpoint + '?variantIds=' + encodeURIComponent(group.join(',')), { cache: 'no-store', signal: AbortSignal.timeout(7000) });\n          if (!response.ok) throw new Error('stock');\n          var data = await response.json();\n          if (!data.ok || !data.variants) throw new Error('stock');\n          group.forEach(function (id) { values[id] = data.variants[id] || null; });\n        } catch (_) {\n          group.forEach(function (id) { values[id] = null; });\n        }\n        paintReadyCards();\n      }\n    }\n    await Promise.all(Array.from({ length: Math.min(3, groups.length) }, worker));\n    paintReadyCards();\n  }\n\n  function sortCardsByAvailability() {\n    var params;\n    try { params = new URL(window.location.href).searchParams; } catch (_) { return; }\n    // Availability is the primary storefront order for every catalog view.\n    // Shopify's selected sort remains the stable tie breaker within a tier.\n    var list = document.querySelector('[data-lbx-product-list]');\n    if (!list) return;\n    var cardsList = Array.from(list.querySelectorAll('[data-lbx-product-card]'));\n    cardsList.sort(function (a, b) {\n      var aOwn = Math.max(0, Number(a.getAttribute('data-lbx-own-stock') || a.getAttribute('data-lbx-all-own-stock') || a.getAttribute('data-lbx-own-stock-total') || 0) || 0);\n      var aSupplier = Math.max(0, Number(a.getAttribute('data-lbx-supplier-stock') || a.getAttribute('data-lbx-all-supplier-stock') || a.getAttribute('data-lbx-supplier-stock-total') || 0) || 0);\n      var bOwn = Math.max(0, Number(b.getAttribute('data-lbx-own-stock') || b.getAttribute('data-lbx-all-own-stock') || b.getAttribute('data-lbx-own-stock-total') || 0) || 0);\n      var bSupplier = Math.max(0, Number(b.getAttribute('data-lbx-supplier-stock') || b.getAttribute('data-lbx-all-supplier-stock') || b.getAttribute('data-lbx-supplier-stock-total') || 0) || 0);\n      var aTier = aOwn > 0 ? 3 : (aSupplier > 0 ? 2 : 0);\n      var bTier = bOwn > 0 ? 3 : (bSupplier > 0 ? 2 : 0);\n      if (aTier !== bTier) return bTier - aTier;\n      var selectedSort=params.get('sort_by')||'';\n      if (selectedSort === 'price-ascending' || selectedSort === 'price-descending') {\n        var aPrice = Number(a.getAttribute('data-lbx-price'));\n        var bPrice = Number(b.getAttribute('data-lbx-price'));\n        if (Number.isFinite(aPrice) && Number.isFinite(bPrice) && aPrice !== bPrice) return (aPrice - bPrice) * (selectedSort === 'price-ascending' ? 1 : -1);\n      }\n      if(selectedSort && selectedSort!=='manual' && selectedSort!=='most-relevant')return Number(a.getAttribute('data-lbx-native-order')||0)-Number(b.getAttribute('data-lbx-native-order')||0);\n      if (aTier === 3) return bOwn - aOwn;\n      if (aTier === 2) return bSupplier - aSupplier;\n      return 0;\n    });\n    cardsList.forEach(function (card) { list.appendChild(card); });\n  }\n  window.lbxHubAvailability = { render: render, refresh: refresh, sort: sortCardsByAvailability };\n  function syncAllStockLinks() {\n    cards().forEach(function (card) {\n      var variants = matrix(card), live = card.__lbxLiveStock || {};\n      if (!variants.length) return;\n      syncStockVariantLinks(card, variants, live);\n    });\n  }\n  if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', refresh, { once: true }); else refresh();\n  window.setTimeout(syncAllStockLinks, 1800);\n  window.setInterval(syncAllStockLinks, 4000);\n  ['lbx:catalog-updated', 'shopify:section:load'].forEach(function (name) { document.addEventListener(name, function () { refresh(); sortCardsByAvailability(); }); });\n  window.addEventListener('pageshow', function (event) { if (event.persisted) refresh(); });\n  window.setInterval(function () { if (!document.hidden) refresh(); }, 30000);\n})();\n"],
  "mappings": "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",
  "names": []
}
