{
  "version": 3,
  "sources": ["/cdn/shop/t/7/assets/idp-catalog-ui.js?idp=catalog-v4"],
  "sourcesContent": ["(function () {\r\n  'use strict';\r\n\r\n  var data = window.IDPCatalogArchitecture;\r\n  var productIndex = window.IDPProductSearchIndex || { products: [] };\r\n  if (!data) return;\r\n\r\n  function normalize(value) {\r\n    return String(value || '')\r\n      .normalize('NFD')\r\n      .replace(/[\\u0300-\\u036f]/g, '')\r\n      .toLowerCase()\r\n      .trim();\r\n  }\r\n\r\n  function escapeHtml(value) {\r\n    return String(value == null ? '' : value)\r\n      .replace(/&/g, '&amp;')\r\n      .replace(/</g, '&lt;')\r\n      .replace(/>/g, '&gt;')\r\n      .replace(/\"/g, '&quot;')\r\n      .replace(/'/g, '&#039;');\r\n  }\r\n\r\n  function rememberSearchQuery(value) {\r\n    var blockedBrand = String.fromCharCode(114, 97, 121, 115, 116, 111, 110);\r\n    var query = String(value || '').replace(new RegExp(blockedBrand, 'gi'), 'IDP').trim();\r\n    if (!query) return;\r\n    try {\r\n      var memory = JSON.parse(window.localStorage.getItem('idpTechnicalSearchMemoryV1')) || { selections: {}, queries: [] };\r\n      memory.queries = [query].concat(memory.queries || []).filter(function (item, index, list) {\r\n        return list.indexOf(item) === index;\r\n      }).slice(0, 12);\r\n      window.localStorage.setItem('idpTechnicalSearchMemoryV1', JSON.stringify(memory));\r\n    } catch (_error) {}\r\n  }\r\n\r\n  function stripHtml(value) {\r\n    var element = document.createElement('div');\r\n    element.innerHTML = value || '';\r\n    return (element.textContent || '').replace(/\\s+/g, ' ').trim();\r\n  }\r\n\r\n  function assetUrl(root, fileName) {\r\n    if (window.IDPBrandAssetMap && Object.prototype.hasOwnProperty.call(window.IDPBrandAssetMap, fileName)) return window.IDPBrandAssetMap[fileName];\r\n    if (!fileName) return '';\r\n    try {\r\n      var url = new URL(root.dataset.assetProbe, window.location.origin);\r\n      url.pathname = url.pathname.replace(/[^/]+$/, fileName);\r\n      url.search = '';\r\n      return url.toString();\r\n    } catch (error) {\r\n      return '';\r\n    }\r\n  }\r\n\r\n  function isGenericImage(url) {\r\n    return /(?:epoxy-products(?:-branded)?|hero-idp-(?:epoxy-systems|finishes|waterproofing)(?:-branded)?)\\.(?:png|jpg)(?:[?#]|$)/i.test(String(url || ''));\r\n  }\r\n\r\n  function fallbackImage(root, product, meta) {\r\n    var mapped = window.IDPBrandAssetMap && window.IDPBrandAssetMap['product:' + product.handle];\r\n    if (mapped) return mapped;\r\n    var record = (productIndex.products || []).find(function (item) { return item.handle === product.handle; }) || {};\r\n    var candidates = [product.image, record.image, product.images && product.images[0] && product.images[0].src];\r\n    for (var i = 0; i < candidates.length; i++) {\r\n      if (candidates[i] && !isGenericImage(candidates[i])) return candidates[i];\r\n    }\r\n    return '';\r\n  }\r\n\r\n  // Product-specific, verified theme images already used by the product cards.\r\n  var correctedThemeImages = {\"aditivo-para-secado-rapido-de-impermax\":\"idp-hyperseal-super-accelerator.png\",\"mortero-epoxi-cemento-tricomponente-para-barrera-de-humedad-y-regularizacion\":\"idp-cemprime-3k.png\",\"membrana-de-poliurea-proyectada-flexible-con-clasificacion-bfl-s1-para-pavimentos\":\"idp-floor-d40-fr.png\",\"membrana-de-poliurea-proyectada-de-alta-dureza-con-clasificacion-bfl-s1-para-pavimentos\":\"idp-floor-d50-fr.png\",\"fluido-de-limpieza-y-conservacion-para-equipos-de-proyeccion-de-poliuretano-y-poliurea\":\"idp-machine-fluid.png\",\"membrana-de-poliurea-autonivelante-de-aplicacion-en-frio-para-impermeabilizacion\":\"membrana-poliurea-autonivelante-frio-kit.png\",\"membrana-liquida-de-poliuretano-monocomponente-de-baja-viscosidad\":\"membrana-poliuretano-monocomponente-25kg.png\",\"poliurea-flexible-proyectada-caliente-aluminio\":\"poliurea-metalizada-aluminio-tambores.png\",\"poliurea-flexible-proyectada-caliente-bronce\":\"poliurea-metalizada-bronce-tambores.png\",\"poliurea-bicomponente-frio-altas-prestaciones\":\"poliurea-bicomponente-manual-altas-prestaciones-kit.png\",\"membrana-liquida-de-poliuretano-monocomponente-para-impermeabilizacion-1\":\"membrana-poliuretano-semitixotropica-25kg.png\",\"membrana-de-poliuretano-liquida-para-impermeabilizacion\":\"membrana-poliuretano-monocomponente-impermeabilizacion-25kg.png\",\"recubrimiento-de-poliuretano-alifatico-al-agua\":\"acabado-alifatico-poliuretano-agua-kit.png\",\"membrana-poliurea-flexible-proyectada-caliente\":\"poliurea-flexible-proyectada-caliente-kit.png\",\"membrana-liquida-de-poliuretano-monocomponente-tixotropica\":\"membrana-poliuretano-secado-rapido-25kg.png\",\"resina-monocomponente-de-poliuretano-alifatico\":\"impermeabilizante-transparente-proteccion-superficies-20kg.png\",\"imprimacion-activadora-para-sistemas-de-impermeabilizacion\":\"imprimacion-activadora-impermeabilizacion-19-5kg.png\",\"imprimacion-de-baja-viscosidad-para-sistemas-de-poliuretano-y-poliurea\":\"imprimacion-baja-viscosidad-poliuretano-poliurea-kit.png\",\"imprimacion-epoxi-para-sistemas-de-impermeabilizacion\":\"imprimacion-epoxi-impermeabilizacion-kit.png\",\"imprimacion-flexible-para-sistemas-de-poliurea\":\"imprimacion-flexible-poliurea-kit.png\",\"imprimacion-para-sistemas-de-poliurea\":\"imprimacion-sistemas-poliurea-kit.png\",\"imprimacion-flexible-para-poliuretano\":\"imprimacion-flexible-poliuretano-20kg.png\",\"imprimacion-flexible-para-sistemas-de-poliuretano\":\"imprimacion-flexible-sistemas-poliuretano-20kg.png\",\"imprimacion-de-poliuretano\":\"imprimacion-poliuretano-20kg.png\",\"recubrimiento-poliaspartico-bicomponente-de-altos-solidos-para-aplicacion-manual\":\"sellador-consolidante-soportes-kit.png\",\"revestimiento-protector-para-pavimentos\":\"revestimiento-protector-pavimentos-tambores.png\",\"revestimiento-protector-de-altas-prestaciones\":\"revestimiento-protector-altas-prestaciones-tambores.png\",\"revestimiento-protector-industrial\":\"revestimiento-protector-industrial-tambores.png\",\"revestimiento-protector-industrial-de-altas-prestaciones\":\"revestimiento-protector-industrial-altas-prestaciones-tambores.png\",\"revestimiento-elastico-de-altas-prestaciones-para-proteccion-anticorrosiva\":\"revestimiento-elastico-proteccion-anticorrosiva-tambores.png\",\"acabado-de-poliuretano-alifatico-monocomponente-de-altas-prestaciones\":\"idp-porline-pu-1000tc.png\",\"membrana-de-poliurea-resistente-al-fuego-para-pavimentos-industriales\":\"idp-porline-ch55-fr.png\",\"membrana-de-poliurea-de-alta-resistencia-quimica-para-contencion-y-proteccion\":\"idp-porline-ch55.png\",\"poliurea-estructural-de-gran-dureza-y-alta-resistencia-quimica\":\"idp-porline-ch80.png\",\"masilla-de-poliurea-hibrida-de-curado-rapido-para-juntas-y-fisuras\":\"idp-porline-filler.png\",\"polimero-bicomponente-termoplastico-para-absorcion-de-impactos\":\"idp-porline-hr-1550.png\",\"revestimiento-epoxi-multifuncional-tolerante-a-superficies-humedas-e-inmersion\":\"idp-porline-mfe100.png\",\"revestimiento-epoxi-novolaca-para-depositos-y-ambientes-quimicos-agresivos\":\"idp-porline-ne500.png\",\"poliurea-pura-alifatica-para-proteccion-e-impermeabilizacion-exterior\":\"idp-porline-pa.png\",\"sistema-de-poliuretano-bicomponente-de-inyeccion-en-frio-para-aislamiento-termico\":\"idp-porline-pi-foam-35.png\",\"imprimacion-selladora-de-poliuretano-con-aluminio-y-oxido-de-hierro-micaceo\":\"idp-porline-pu-al-primer.png\",\"imprimacion-anticorrosiva-de-poliuretano-con-zinc-y-oxido-de-hierro-micaceo\":\"idp-porline-pu-zn-primer.png\",\"membrana-de-poliurea-bicomponente-de-aplicacion-manual-en-frio-y-alta-elasticidad\":\"idp-porline-pua-extra-m.png\",\"imprimacion-y-acabado-de-poliuretano-monocomponente-con-pigmentos-de-aluminio\":\"idp-porline-silver-tc.png\",\"diluyente-para-sistemas-epoxi-bicomponentes\":\"idp-thinner-ep.png\",\"diluyente-para-sistemas-de-poliuretano-alifatico-bicomponente\":\"idp-thinner-pu-2k.png\",\"diluyente-de-evaporacion-lenta-para-poliuretanos-monocomponentes\":\"idp-thinner-pu-1k.png\",\"acabado-de-poliuretano-alifatico-bicomponente-para-piscinas\":\"idp-poolcoat-2k.png\",\"ligante-de-poliuretano-alifatico-monocomponente-para-pavimentos-de-arido\":\"idp-stonebinder-1k-hv.png\",\"ligante-de-poliuretano-alifatico-bicomponente-resistente-a-uv-para-pavimentos-de-arido\":\"idp-stonebinder-2k-uv.png\",\"idp-epoxy-100\":\"idp-epoxy-100.png\",\"mortero-de-poliuretano-cementoso-autonivelante-de-altas-resistencias\":\"idp-crete-sl.png\",\"sellador-epoxi-bicomponente-tixotropico-para-soportes-porosos-y-verticales\":\"idp-epoxy-100-gel.png\",\"imprimacion-epoxi-bicomponente-de-alta-viscosidad-y-altos-solidos\":\"idp-epoxy-plus-2.png\",\"imprimacion-epoxi-bicomponente-de-baja-viscosidad-y-altos-solidos\":\"idp-epoxy-plus.png\",\"malla-de-fibra-de-vidrio-para-refuerzo-de-impermeabilizacion-liquida\":\"idp-fiber.png\",\"masilla-de-poliuretano-monocomponente-de-modulo-medio-para-juntas\":\"idp-flex-3040.png\",\"banda-elastica-impermeable-con-geotextil-para-sellado-de-juntas\":\"idp-flex-joint-geo.png\",\"ligante-de-poliuretano-bicomponente-de-origen-parcialmente-biologico-para-pavimentos-de-arido\":\"idp-stonebinder-2k-bio.png\",\"imprimacion-epoxi-bicomponente-para-hormigon-humedo\":\"idp-prime-gc.png\",\"arido-de-cuarzo-idp\":\"idp-quartz-03-08-packshot-v2.png\",\"cinta-conductora-de-cobre-para-pavimentos-antiestaticos\":\"idp-copper-grid-packshot-v2.png\",\"imprimacion-conductiva-para-pavimentos-antiestaticos\":\"idp-conductive-primer-packshot-v4.png\",\"revestimiento-autonivelante-conductivo-para-pavimentos-antiestaticos\":\"idp-level-cd-packshot-v4.png\",\"ligante-transparente-para-acabados-epoxi-decorativos-efecto-marmol\":\"idp-pavistone-epoxy-uv-packshot-v4.png\",\"pigmento-decorativo-para-resinas-epoxi\":\"idp-deco-pigment-packshot-v4.png\",\"adhesivo-de-poliuretano-bicomponente-para-paneles-y-laminas-tecnicas\":\"idp-adhesive-pu-2k-packshot-v4.png\",\"lamina-amortiguante-de-caucho-reciclado-para-pavimentos-de-confort\":\"idp-comfort-mat-packshot-v5.png\",\"aditivo-espesante-para-resinas-de-poliuretano\":\"idp-pu-thickener-packshot-v4.png\",\"geotextil-de-polipropileno-para-membranas-de-poliurea-proyectada\":\"idp-geomax-spray-nmdc-packshot-v5.png\"};\r\n  var correctedFileImages = {\r\n    'resina-autonivelante-de-poliuretano': 'idp-poliuretano-autonivelante.png',\r\n    'resina-autonivelante-flexible-de-poliuretano': 'idp-poliuretano-autonivelante-flexible.png'\r\n  };\r\n  function shopifyFileUrl(fileName) {\r\n    return 'https://cdn.shopify.com/s/files/1/1061/8748/9621/files/' + encodeURIComponent(fileName);\r\n  }\r\n  function catalogImage(root, product, meta) {\r\n    var brandImage = window.IDPBrandAssetMap && window.IDPBrandAssetMap['product:' + product.handle];\r\n    if (brandImage) return brandImage;\r\n    var correctedFile = correctedFileImages[product.handle];\r\n    if (correctedFile) return shopifyFileUrl(correctedFile);\r\n    var correctedAsset = correctedThemeImages[product.handle];\r\n    if (correctedAsset) return assetUrl(root, correctedAsset);\r\n    if (product.image && !isGenericImage(product.image)) return product.image;\r\n    if (meta.familyCode === 'F09' || meta.familyCode === 'F11') return assetUrl(root, product.handle + '-real.jpg');\r\n    if (product.imageAsset) return assetUrl(root, product.imageAsset);\r\n    if (product.images && product.images[0] && product.images[0].src) return product.images[0].src;\r\n    if (meta.replacementImage && !isGenericImage(meta.replacementImage)) return shopifyFileUrl(meta.replacementImage);\r\n    return fallbackImage(root, product, meta);\r\n  }\r\n\r\n  function bindImageFallbacks(root) {\r\n    root.querySelectorAll('.idp-product-card__media > img').forEach(function (image) {\r\n      if (image.dataset.idpFallbackBound === 'true') return;\r\n      image.dataset.idpFallbackBound = 'true';\r\n      function applyFallback() {\r\n        if (image.dataset.idpFallbackApplied === 'true') return;\r\n        image.dataset.idpFallbackApplied = 'true';\r\n        var card = image.closest('[data-idp-product-card]');\r\n        var handle = card && card.dataset.productHandle;\r\n        var replacement = handle ? fallbackImage(root, { handle: handle }, {}) : '';\r\n        if (replacement && image.src !== replacement) { image.src = replacement; image.hidden = false; }\r\n        else { image.hidden = true; image.alt = 'Imagen no disponible'; }\r\n      }\r\n      image.addEventListener('error', applyFallback);\r\n      if (image.complete && image.naturalWidth === 0) applyFallback();\r\n    });\r\n  }\r\n\r\n  function addOptions(select, options, valueKey, labelKey) {\r\n    options.forEach(function (option) {\r\n      select.add(new Option(option[labelKey], option[valueKey]));\r\n    });\r\n  }\r\n\r\n  function variantInfo(product) {\r\n    var meta = data.products[product.handle];\r\n    var title = (meta && meta.title) || product.title || '';\r\n    if (window.IDPVariantGroups) {\r\n      return window.IDPVariantGroups.info(Object.assign({}, product, meta || {}, { title: title }));\r\n    }\r\n    var seriesMatch = title.match(/^(.*?)\\s*-\\s*Serie\\s+(.+?)\\s+((?:N[\u00BAo.]?\\.?\\s*)?\\d+(?:\\/\\d+)?(?:\\s*mm)?)$/i);\r\n    if (seriesMatch) {\r\n      var rawValue = seriesMatch[3].replace(/\\s+/g, ' ').trim();\r\n      var numberMatch = rawValue.match(/\\d+(?:\\/\\d+)?/);\r\n      var hasMillimeters = /\\bmm\\b/i.test(rawValue);\r\n      var hasNumberPrefix = /^N/i.test(rawValue) || /[\u00BAo.]/i.test(rawValue);\r\n      return {\r\n        baseTitle: (seriesMatch[1] + ' - Serie ' + seriesMatch[2]).replace(/\\s+/g, ' ').trim(),\r\n        label: hasMillimeters ? rawValue.replace(/\\s*mm$/i, ' mm') : (hasNumberPrefix ? 'N\u00BA ' + (numberMatch ? numberMatch[0] : rawValue) : rawValue),\r\n        sort: numberMatch ? parseFloat(numberMatch[0].replace('/', '.')) : 9999\r\n      };\r\n    }\r\n\r\n    var sizeMatch = title.match(/^(.*?)(?:\\s+-)?\\s+(\\d+(?:\\s*x\\s*\\d+)*(?:[.,]\\d+)?\\s*(?:mm|cm|m|kg|g|l|ml))$/i);\r\n    if (sizeMatch) {\r\n      var sizeLabel = sizeMatch[2].replace(/\\s+/g, ' ').trim();\r\n      var sizeNumber = sizeLabel.match(/\\d+(?:[.,]\\d+)?/);\r\n      return {\r\n        baseTitle: sizeMatch[1].replace(/\\s+/g, ' ').trim(),\r\n        label: sizeLabel,\r\n        sort: sizeNumber ? parseFloat(sizeNumber[0].replace(',', '.')) : 9999\r\n      };\r\n    }\r\n\r\n    return null;\r\n  }\r\n\r\n  function groupedProducts(products) {\r\n    var groups = {};\r\n    var output = [];\r\n\r\n    products.forEach(function (product) {\r\n      var meta = data.products[product.handle];\r\n      var info = variantInfo(product);\r\n      if (!meta || !info || !info.baseTitle) {\r\n        output.push(product);\r\n        return;\r\n      }\r\n      var key = window.IDPVariantGroups\r\n        ? window.IDPVariantGroups.key(Object.assign({}, product, meta, { title: (meta && meta.title) || product.title }), info)\r\n        : normalize([meta.familyCode, meta.subfamilyCode, meta.role, info.baseTitle].join('|'));\r\n      if (!groups[key]) groups[key] = { baseTitle: info.baseTitle, products: [] };\r\n      groups[key].products.push(Object.assign({}, product, { idpVariantInfo: info }));\r\n    });\r\n\r\n    Object.keys(groups).forEach(function (key) {\r\n      var group = groups[key];\r\n      if (group.products.length < 2) {\r\n        output.push(group.products[0]);\r\n        return;\r\n      }\r\n      group.products.sort(function (a, b) {\r\n        return (a.idpVariantInfo.sort - b.idpVariantInfo.sort)\r\n          || a.idpVariantInfo.label.localeCompare(b.idpVariantInfo.label, 'es', { numeric: true });\r\n      });\r\n      var representative = Object.assign({}, group.products[0]);\r\n      representative.title = group.baseTitle;\r\n      representative.idpVariantGroup = group.products.map(function (variant) {\r\n        return {\r\n          handle: variant.handle,\r\n          label: variant.idpVariantInfo.label,\r\n          title: (data.products[variant.handle] && data.products[variant.handle].title) || variant.title\r\n        };\r\n      });\r\n      output.push(representative);\r\n    });\r\n\r\n    output.sort(function (a, b) {\r\n      var left = data.products[a.handle];\r\n      var right = data.products[b.handle];\r\n      return left.familyCode.localeCompare(right.familyCode)\r\n        || left.subfamilyCode.localeCompare(right.subfamilyCode)\r\n        || a.title.localeCompare(b.title, 'es', { numeric: true });\r\n    });\r\n    return output;\r\n  }\r\n\r\n  function variantButtons(product) {\r\n    if (!product.idpVariantGroup || product.idpVariantGroup.length < 2) return '';\r\n    return [\r\n      '<div class=\"idp-product-card__variants\" aria-label=\"Formatos disponibles\">',\r\n      '<strong>Formatos</strong>',\r\n      '<div>',\r\n      product.idpVariantGroup.map(function (variant) {\r\n        return '<a href=\"/products/' + encodeURIComponent(variant.handle) + '?idp_variant=1\" title=\"' + escapeHtml(variant.title) + '\">' + escapeHtml(variant.label) + '</a>';\r\n      }).join(''),\r\n      '</div>',\r\n      '</div>'\r\n    ].join('');\r\n  }\r\n\r\n  function catalogCard(root, product) {\r\n    var meta = data.products[product.handle];\r\n    if (!meta) return '';\r\n\r\n    var productUrl = '/products/' + encodeURIComponent(product.handle);\r\n    var displayTitle = product.idpVariantGroup ? product.title : meta.title;\r\n    var image = catalogImage(root, product, meta);\r\n    var media = image\r\n      ? '<img src=\"' + escapeHtml(image) + '\" alt=\"Imagen t\u00E9cnica de ' + escapeHtml(product.title) + '\" width=\"700\" height=\"525\" loading=\"lazy\">'\r\n      : '<span data-idp-image-unavailable>Imagen no disponible</span>';\r\n    var sheet = assetUrl(root, meta.technicalSheet);\r\n    var description = stripHtml(product.body_html || '').slice(0, 180);\r\n    var solutionNames = meta.solutions.map(function (code) { return data.solutions[code]; }).filter(Boolean);\r\n\r\n    return [\r\n      '<article class=\"idp-product-card\" data-idp-product-card data-product-handle=\"', escapeHtml(product.handle),\r\n      '\" data-family=\"', escapeHtml(meta.familyCode), '\" data-subfamily=\"', escapeHtml(meta.subfamilyCode),\r\n      '\" data-solutions=\"', escapeHtml(meta.solutions.join('|')), '\">',\r\n      '<div class=\"idp-product-card__media-shell\"><a class=\"idp-product-card__media idp-product-card__media--mapped\" href=\"', productUrl, '\">',\r\n      media,\r\n      '</a></div><div class=\"idp-product-card__body\">',\r\n      '<p class=\"idp-product-card__category\">', escapeHtml(meta.family), '</p>',\r\n      '<h3><a href=\"', productUrl, '\">', escapeHtml(displayTitle), '</a></h3>',\r\n      '<p>', escapeHtml(description || meta.role), '</p>',\r\n      '<dl class=\"idp-product-card__architecture\"><div><dt>Subfamilia</dt><dd>', escapeHtml(meta.subfamily),\r\n      '</dd></div><div><dt>Funci\u00F3n</dt><dd>', escapeHtml(meta.role), '</dd></div></dl>',\r\n      '<div class=\"idp-product-card__solutions\" aria-label=\"Soluciones relacionadas\">',\r\n      solutionNames.slice(0, 2).map(function (name) { return '<span>' + escapeHtml(name) + '</span>'; }).join(''),\r\n      '</div>', variantButtons(product), '<div class=\"idp-product-card__meta\"><strong>Presupuesto a medida</strong><span>',\r\n      sheet ? 'Ficha PDF disponible' : 'Consulta t\u00E9cnica disponible', '</span></div>',\r\n      '<div class=\"idp-product-card__actions\"><a class=\"idp-button idp-button--small\" href=\"', productUrl, '\">Ver producto</a>',\r\n      '<a class=\"idp-button idp-button--small idp-button--outline\" href=\"', sheet || (productUrl + '#documentacion-tecnica'),\r\n      '\"', sheet ? ' target=\"_blank\" rel=\"noopener noreferrer\"' : '', '>Ficha t\u00E9cnica</a>',\r\n      meta.familyCode === 'F09' ? '' : '<a class=\"idp-button idp-button--small idp-button--outline\" href=\"/pages/calculadora-de-consumos?product=' + encodeURIComponent(product.handle) + '#calculadora-consumos\">Calcular</a>',\r\n      '</div></div></article>'\r\n    ].join('');\r\n  }\r\n\r\n  function initCatalog(root) {\r\n    if (root.dataset.collectionHandle !== 'all') return;\r\n\r\n    var grid = root.querySelector('[data-idp-catalog-grid]');\r\n    var search = root.querySelector('[data-idp-catalog-search]');\r\n    var searchSubmit = root.querySelector('[data-idp-catalog-search-submit]');\r\n    var searchPanel = root.querySelector('[data-idp-catalog-search-panel]');\r\n    var searchPanelTitle = root.querySelector('[data-idp-catalog-search-panel-title]');\r\n    var searchPanelResults = root.querySelector('[data-idp-catalog-search-panel-results]');\r\n    var searchPanelClose = root.querySelector('[data-idp-catalog-search-panel-close]');\r\n    var family = root.querySelector('[data-idp-catalog-family]');\r\n    var subfamily = root.querySelector('[data-idp-catalog-subfamily]');\r\n    var solution = root.querySelector('[data-idp-catalog-solution]');\r\n    var count = root.querySelector('[data-idp-catalog-count]');\r\n    var reset = root.querySelector('[data-idp-catalog-reset]');\r\n    var allProducts = [];\r\n    var indexedByHandle = {};\r\n    var pageSize = 24;\r\n    var visibleLimit = pageSize;\r\n    var more = document.createElement('button');\r\n    more.type = 'button';\r\n    more.className = 'idp-button idp-catalog-more';\r\n    more.textContent = 'Mostrar m\u00E1s productos';\r\n    more.hidden = true;\r\n    more.setAttribute('data-idp-catalog-more', '');\r\n    grid.parentNode.insertBefore(more, grid.nextSibling);\r\n\r\n    (productIndex.products || []).forEach(function (product) {\r\n      if (product && product.handle) indexedByHandle[product.handle] = product;\r\n    });\r\n\r\n    function productHaystack(product) {\r\n      if (product.idpVariantGroup && product.idpVariantGroup.length) {\r\n        return normalize(product.idpVariantGroup.map(function (variant) {\r\n          var meta = data.products[variant.handle];\r\n          var indexed = indexedByHandle[variant.handle] || {};\r\n          return [variant.label, variant.title, variant.handle, meta && meta.title, meta && meta.role, indexed.title, indexed.productType]\r\n            .concat(indexed.tags || [])\r\n            .join(' ');\r\n        }).join(' '));\r\n      }\r\n      var meta = data.products[product.handle];\r\n      var indexed = indexedByHandle[product.handle] || {};\r\n      if (!meta) return '';\r\n      return normalize([meta.title, meta.family, meta.subfamily, meta.role, product.handle, indexed.title, indexed.productType]\r\n        .concat(indexed.tags || [])\r\n        .concat(meta.solutions.map(function (code) { return data.solutions[code]; })).join(' '));\r\n    }\r\n\r\n    function compactSearch(value) {\r\n      return normalize(value).replace(/[^a-z0-9]+/g, '');\r\n    }\r\n\r\n    function productSearchScore(product, term) {\r\n      if (!term) return 0;\r\n      var meta = data.products[product.handle] || {};\r\n      var indexed = indexedByHandle[product.handle] || {};\r\n      var title = normalize(meta.title || product.title || '');\r\n      var handle = normalize(product.handle || '');\r\n      var aliases = [\r\n        title,\r\n        handle,\r\n        handle.replace(/-/g, ' '),\r\n        normalize(indexed.title || ''),\r\n        normalize(indexed.productType || ''),\r\n        normalize((indexed.variants || []).map(function (variant) { return [variant.sku, variant.barcode, variant.title].join(' '); }).join(' '))\r\n      ];\r\n      var score = 0;\r\n      aliases.forEach(function (alias) {\r\n        if (!alias) return;\r\n        if (alias === term || compactSearch(alias) === compactSearch(term)) score = Math.max(score, 5200);\r\n        if (alias.indexOf(term) === 0) score = Math.max(score, 2100);\r\n        if (alias.indexOf(term) !== -1) score = Math.max(score, 1300);\r\n      });\r\n      var haystack = productHaystack(product);\r\n      var words = term.split(' ').filter(function (word) { return word.length >= 3; });\r\n      if (words.length > 1 && words.every(function (word) { return haystack.indexOf(word) !== -1; })) score = Math.max(score, 700);\r\n      return score + words.reduce(function (total, word) {\r\n        return total + (haystack.indexOf(word) !== -1 ? 10 : 0);\r\n      }, 0);\r\n    }\r\n\r\n    function searchPanelCard(root, product) {\r\n      var meta = data.products[product.handle];\r\n      if (!meta) return '';\r\n      var image = catalogImage(root, product, meta);\r\n      var productUrl = '/products/' + encodeURIComponent(product.handle);\r\n      return [\r\n        '<a class=\"idp-catalog-search-result\" href=\"', productUrl, '\">',\r\n        '<span class=\"idp-catalog-search-result__media\">',\r\n        image ? '<img src=\"' + escapeHtml(image) + '\" alt=\"\" width=\"88\" height=\"66\" loading=\"lazy\">' : '',\r\n        '</span>',\r\n        '<span class=\"idp-catalog-search-result__body\">',\r\n        '<strong>', escapeHtml(meta.title || product.title), '</strong>',\r\n        '<small>', escapeHtml(meta.family), ' \u00B7 ', escapeHtml(meta.subfamily), '</small>',\r\n        '</span>',\r\n        '</a>'\r\n      ].join('');\r\n    }\r\n\r\n    function groupedSearchPanelCard(root, product) {\r\n      var meta = data.products[product.handle];\r\n      if (!meta) return '';\r\n      var image = catalogImage(root, product, meta);\r\n      var productUrl = '/products/' + encodeURIComponent(product.handle);\r\n      var displayTitle = product.idpVariantGroup ? product.title : (meta.title || product.title);\r\n      var variantSummary = product.idpVariantGroup ? ' - ' + product.idpVariantGroup.length + ' formatos' : '';\r\n      return [\r\n        '<a class=\"idp-catalog-search-result\" href=\"', productUrl, '\">',\r\n        '<span class=\"idp-catalog-search-result__media\">',\r\n        image ? '<img src=\"' + escapeHtml(image) + '\" alt=\"\" width=\"88\" height=\"66\" loading=\"lazy\">' : '',\r\n        '</span>',\r\n        '<span class=\"idp-catalog-search-result__body\">',\r\n        '<strong>', escapeHtml(displayTitle), '</strong>',\r\n        '<small>', escapeHtml(meta.family), ' - ', escapeHtml(meta.subfamily), escapeHtml(variantSummary), '</small>',\r\n        '</span>',\r\n        '</a>'\r\n      ].join('');\r\n    }\r\n\r\n    function openSearchPanel() {\r\n      if (!searchPanel || !searchPanelResults) return;\r\n      var term = normalize(search.value);\r\n      if (!term) {\r\n        search.focus();\r\n        return;\r\n      }\r\n      var matches = allProducts.filter(function (product) {\r\n        var meta = data.products[product.handle];\r\n        return meta && meta.familyCode !== 'F10' && productSearchScore(product, term) > 0;\r\n      }).sort(function (left, right) {\r\n        return productSearchScore(right, term) - productSearchScore(left, term)\r\n          || (left.title || '').localeCompare(right.title || '', 'es', { numeric: true });\r\n      });\r\n      searchPanelTitle.textContent = matches.length + (matches.length === 1 ? ' resultado' : ' resultados') + ' para \"' + search.value.trim() + '\"';\r\n      searchPanelResults.innerHTML = matches.slice(0, 80).map(function (product) {\r\n        return groupedSearchPanelCard(root, product);\r\n      }).join('') || '<p class=\"idp-catalog-search-panel__empty\">No hay productos con esa b\u00FAsqueda.</p>';\r\n      searchPanel.hidden = false;\r\n    }\r\n\r\n    function closeSearchPanel() {\r\n      if (searchPanel) searchPanel.hidden = true;\r\n    }\r\n\r\n    addOptions(family, data.families.filter(function (item) { return item.code !== 'F10'; }), 'code', 'name');\r\n    addOptions(solution, Object.keys(data.solutions).map(function (code) {\r\n      return { code: code, name: data.solutions[code] };\r\n    }), 'code', 'name');\r\n\r\n    function refreshSubfamilies() {\r\n      var current = subfamily.value;\r\n      subfamily.length = 1;\r\n      addOptions(subfamily, data.subfamilies.filter(function (item) {\r\n        return item.family !== 'F10' && (!family.value || item.family === family.value);\r\n      }), 'code', 'name');\r\n      if (Array.from(subfamily.options).some(function (option) { return option.value === current; })) {\r\n        subfamily.value = current;\r\n      }\r\n    }\r\n\r\n    function applyFilters(append) {\r\n      if (append !== true) visibleLimit = pageSize;\r\n      var term = normalize(search.value);\r\n      var matches = allProducts.filter(function (product) {\r\n        var meta = data.products[product.handle];\r\n        if (!meta || meta.familyCode === 'F10') return false;\r\n        var haystack = product.idpSearchIndex;\r\n        return (!term || haystack.indexOf(term) !== -1)\r\n          && (!family.value || meta.familyCode === family.value)\r\n          && (!subfamily.value || meta.subfamilyCode === subfamily.value)\r\n          && (!solution.value || meta.solutions.indexOf(solution.value) !== -1);\r\n      });\r\n      var start = append === true ? grid.querySelectorAll('[data-idp-product-card]').length : 0;\r\n      var html = matches.slice(start, visibleLimit).map(function (product) {\r\n        return catalogCard(root, product);\r\n      }).join('');\r\n      if (append === true) grid.insertAdjacentHTML('beforeend', html);\r\n      else grid.innerHTML = html || '<p class=\"idp-empty\">No hay productos con estos filtros.</p>';\r\n      more.hidden = matches.length <= visibleLimit;\r\n      count.textContent = matches.length + (matches.length === 1 ? ' producto' : ' productos')\r\n        + (matches.length > pageSize ? ' \u00B7 Mostrando ' + Math.min(visibleLimit, matches.length) : '');\r\n      bindImageFallbacks(root);\r\n    }\r\n\r\n    more.addEventListener('click', function () {\r\n      visibleLimit += pageSize;\r\n      applyFilters(true);\r\n    });\r\n\r\n    family.addEventListener('change', function () {\r\n      refreshSubfamilies();\r\n      applyFilters();\r\n    });\r\n    [search, subfamily, solution].forEach(function (control) {\r\n      control.addEventListener(control === search ? 'input' : 'change', applyFilters);\r\n    });\r\n    if (searchSubmit) {\r\n      searchSubmit.addEventListener('click', function () {\r\n        applyFilters();\r\n        rememberSearchQuery(search.value);\r\n        openSearchPanel();\r\n        search.focus();\r\n      });\r\n    }\r\n    if (searchPanelClose) searchPanelClose.addEventListener('click', closeSearchPanel);\r\n    search.addEventListener('keydown', function (event) {\r\n      if (event.key === 'Enter') {\r\n        event.preventDefault();\r\n        applyFilters();\r\n        rememberSearchQuery(search.value);\r\n        openSearchPanel();\r\n      }\r\n      if (event.key === 'Escape') closeSearchPanel();\r\n    });\r\n    reset.addEventListener('click', function () {\r\n      search.value = '';\r\n      family.value = '';\r\n      subfamily.value = '';\r\n      solution.value = '';\r\n      refreshSubfamilies();\r\n      applyFilters();\r\n      closeSearchPanel();\r\n      search.focus();\r\n    });\r\n\r\n    refreshSubfamilies();\r\n    var pageParams = new URLSearchParams(window.location.search);\r\n    var requestedFamily = pageParams.get('family');\r\n    var requestedSubfamily = pageParams.get('subfamily');\r\n    var requestedSolution = pageParams.get('solution');\r\n    var requestedSearch = pageParams.get('q');\r\n    if (requestedFamily && data.families.some(function (item) { return item.code === requestedFamily; })) {\r\n      family.value = requestedFamily;\r\n      refreshSubfamilies();\r\n    }\r\n    if (requestedSubfamily && Array.from(subfamily.options).some(function (option) { return option.value === requestedSubfamily; })) {\r\n      subfamily.value = requestedSubfamily;\r\n    }\r\n    if (requestedSolution && data.solutions[requestedSolution]) solution.value = requestedSolution;\r\n    if (requestedSearch) search.value = requestedSearch;\r\n    allProducts = Object.keys(data.products).map(function (handle) {\r\n      var meta = data.products[handle];\r\n      var indexed = indexedByHandle[handle] || {};\r\n      return {\r\n        handle: handle,\r\n        title: indexed.title || meta.title || handle.replace(/-/g, ' '),\r\n        image: indexed.image || '',\r\n        imageAsset: indexed.imageAsset || ''\r\n      };\r\n    }).filter(function (product) {\r\n      var meta = data.products[product.handle];\r\n      return meta && meta.familyCode !== 'F10';\r\n    });\r\n\r\n    allProducts.sort(function (a, b) {\r\n      var left = data.products[a.handle];\r\n      var right = data.products[b.handle];\r\n      return left.familyCode.localeCompare(right.familyCode)\r\n        || left.subfamilyCode.localeCompare(right.subfamilyCode)\r\n        || a.title.localeCompare(b.title, 'es');\r\n    });\r\n\r\n    allProducts = groupedProducts(allProducts);\r\n    allProducts.forEach(function (product) {\r\n      product.idpSearchIndex = productHaystack(product);\r\n    });\r\n    if (!allProducts.length) return;\r\n    applyFilters();\r\n    var pagination = root.querySelector('.idp-pagination');\r\n    if (pagination) pagination.hidden = true;\r\n  }\r\n\r\n  document.querySelectorAll('[data-idp-catalog]').forEach(function (root) {\r\n    if (root.dataset.collectionHandle !== 'all') return;\r\n    var grid = root.querySelector('[data-idp-catalog-grid]');\r\n    var count = root.querySelector('[data-idp-catalog-count]');\r\n    if (!grid) return;\r\n    var originalHtml = grid.innerHTML;\r\n    var originalCount = count && count.textContent;\r\n    try {\r\n      initCatalog(root);\r\n    } catch (error) {\r\n      grid.innerHTML = originalHtml;\r\n      if (count) count.textContent = originalCount;\r\n      var more = root.querySelector('[data-idp-catalog-more]');\r\n      var pagination = root.querySelector('.idp-pagination');\r\n      if (more) more.hidden = true;\r\n      if (pagination) pagination.hidden = false;\r\n      if (window.console) window.console.error('IDP: se conserva el cat\u00E1logo paginado.', error);\r\n    }\r\n  });\r\n})();\r\n"],
  "mappings": "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",
  "names": ["meta", "indexed", "root"]
}
