{
  "version": 3,
  "sources": ["/cdn/shop/t/7/assets/idp-global-search-v3.js?idp=buscador-sin-asistente-20260927"],
  "sourcesContent": ["(function () {\n  'use strict';\n  var root=document.querySelector('[data-idp-global-search]');\n  var openButtons=Array.from(document.querySelectorAll('[data-idp-global-search-open]')),openButton=openButtons[0];\n  if(!root||!openButton) return;\n  var catalog=window.IDPCatalogArchitecture||{}, knowledge=window.IDPSearchKnowledge||{}, productIndex=window.IDPProductSearchIndex||{products:[]};\n  var form=root.querySelector('[data-idp-global-search-form]'),input=root.querySelector('[data-idp-global-search-input]');\n  var results=root.querySelector('[data-idp-global-search-results]'),status=root.querySelector('[data-idp-global-search-status]');\n  var entries=[],entryByKey={},answers={},remoteTimer=null,remoteRequestId=0,searchRenderTimer=null,searchRenderFrame=null,searchInputVersion=0,variantGroupsCache=null,remoteTerm='',loadPromise=null,interfaceMode='search';\n  var forbiddenBrand=['rays','ton'].join('');\n  try { window.localStorage.removeItem('idpTechnicalSearchMemoryV1'); } catch (_) {}\n  var correctionPairs = Object.keys(knowledge.corrections || {}).map(function (source) {\n    return {\n      source: normalizeCorrection(source),\n      target: normalizeCorrection(knowledge.corrections[source])\n    };\n  }).filter(function (pair) {\n    return pair.source;\n  });\n\n  var resinTerms = ['epoxi', 'epoxy', 'poliuretano', 'poliurea', 'resina', 'resinas', 'mortero', 'imprimacion', 'sellador', 'revestimiento', 'impermeabilizante', 'autonivelante', 'pavimento'].map(normalize);\n\n  (knowledge.intents || []).forEach(function (intent) {\n    intent.normalizedTerms = (intent.terms || []).map(normalize);\n  });\n  (knowledge.slots || []).forEach(function (slot) {\n    (slot.choices || []).forEach(function (choice) {\n      choice.normalizedTerms = (choice.terms || []).map(normalize);\n    });\n  });\n\n  var productKinds = [\n    { id: 'fregadoras', label: 'Fregadoras industriales', terms: ['fregadora', 'fregadoras', 'fregadora-secadora', 'lavapavimentos', 'lavadora de suelos', 'friegasuelos', 'fregasuelos'], matches: ['fregadora', 'lavapavimentos', 'fregado y secado'] },\n    { id: 'barredoras', label: 'Barredoras industriales', terms: ['barredora', 'barredoras', 'barredora aspirante', 'maquina barredora'], matches: ['barredora', 'barrido y aspiracion'] },\n    { id: 'rodillos', label: 'Rodillos', terms: ['rodillo', 'rodillos', 'mini rodillo', 'minirodillo'], matches: ['rodillo'] },\n    { id: 'brochas', label: 'Brochas y paletinas', terms: ['brocha', 'brochas', 'paletina', 'paletinas'], matches: ['brocha', 'paletina'] },\n    { id: 'pinceles', label: 'Pinceles', terms: ['pincel', 'pinceles'], matches: ['pincel'] },\n    { id: 'llanas', label: 'Llanas', terms: ['llana', 'llanas', 'talocha', 'talochas'], matches: ['llana', 'talocha'] },\n    { id: 'rasquetas', label: 'Rasquetas', terms: ['rasqueta', 'rasquetas', 'rascador', 'rascadores'], matches: ['rasqueta', 'rascador'] },\n    { id: 'cubetas', label: 'Cubetas', terms: ['cubeta', 'cubetas', 'cubo', 'cubos'], matches: ['cubeta', 'cubo'] },\n    { id: 'cintas', label: 'Cintas', terms: ['cinta', 'cintas', 'cinta de enmascarar'], matches: ['cinta'] },\n    { id: 'espatulas', label: 'Esp\u00E1tulas', terms: ['espatula', 'espatulas'], matches: ['espatula'] },\n    { id: 'abrasivos', label: 'Abrasivos', terms: ['lija', 'lijas', 'abrasivo', 'abrasivos'], matches: ['lija', 'abrasivo', 'esmeril'] },\n    { id: 'proteccion', label: 'Protecci\u00F3n', terms: ['guante', 'guantes', 'mono', 'monos', 'calzado', 'proteccion'], matches: ['guante', 'mono', 'calzado', 'proteccion'] },\n    { id: 'mezcladores', label: 'Mezcladores', terms: ['mezclador', 'mezcladores', 'batidor', 'batidores'], matches: ['mezclador', 'batidor'] }\n  ];\n\n  productKinds.forEach(function (kind) {\n    kind.normalizedTerms = kind.terms.map(normalize);\n    kind.normalizedMatches = kind.matches.map(normalize);\n  });\n\n  function productImage(handle, candidate) {\n    var mapped = window.IDPBrandAssetMap && window.IDPBrandAssetMap['product:' + handle];\n    if (mapped) return mapped;\n    var record = (productIndex.products || []).find(function (item) { return item.handle === handle; }) || {};\n    var candidates = [candidate, record.image, record.imageAsset ? assetUrl(record.imageAsset) : ''];\n    for (var i = 0; i < candidates.length; i++) {\n      if (candidates[i] && !/(?:epoxy-products(?:-branded)?|hero-idp-(?:epoxy-systems|finishes|waterproofing)(?:-branded)?)\\.(?:png|jpg)(?:[?#]|$)/i.test(candidates[i])) return candidates[i];\n    }\n    return '';\n  }\n\n  function buildEntries() {\n    addTaxonomyEntries();\n    var products = catalog.products || {};\n    Object.keys(products).forEach(function (handle) {\n      var meta = products[handle] || {};\n      var isSystem = meta.familyCode === 'F10';\n      var image = meta.replacementImage || (meta.familyCode === 'F09' ? handle + '-real.jpg' : '');\n      addEntry({\n        key: (isSystem ? 'system:' : 'product:') + handle,\n        type: isSystem ? 'system' : 'product',\n        handle: handle,\n        title: meta.title || handle.replace(/-/g, ' '),\n        commercialName: meta.commercialName || '',\n        technicalName: meta.technicalName || meta.title || '',\n        description: meta.description || '',\n        applications: meta.applications || '',\n        documentStatus: meta.documentStatus || '',\n        technicalSheet: meta.technicalSheet || '',\n        detail: meta.role || meta.subfamily || '',\n        family: meta.family || '',\n        subfamily: meta.subfamily || '',\n        familyCode: meta.familyCode || '',\n        toolGroup: meta.toolGroup || '',\n        toolType: meta.toolType || '',\n        codes: referenceCodes([handle, meta.title, meta.technicalSheet, meta.toolTypeCode]),\n        solutionCodes: meta.solutions || [],\n        solutionNames: solutionNames(meta),\n        keywords: meta.keywords || '',\n        url: entryUrl(handle, meta),\n        image: productImage(handle, assetUrl(image))\n      });\n    });\n\n    (productIndex.products || []).forEach(function (product) {\n      mergeRemoteProduct({\n        title: product.title,\n        handle: product.handle,\n        commercialName: product.commercialName,\n        technicalName: product.technicalName,\n        documentStatus: product.documentStatus,\n        technicalSheet: product.technicalSheet,\n        description: product.description,\n        applications: product.applications,\n        keywords: product.keywords,\n        product_type: product.productType,\n        tags: product.tags,\n        variants: product.variants,\n        images: product.image || product.imageAsset ? [{ src: product.image || assetUrl(product.imageAsset) }] : []\n      });\n    });\n\n    (knowledge.catalogs || []).forEach(function (item) {\n      addEntry({\n        key: 'catalog:' + item.id,\n        type: 'catalog',\n        catalogId: item.id,\n        title: item.title,\n        detail: item.detail,\n        family: 'Catalogo IDP',\n        keywords: item.keywords,\n        url: assetUrl(item.file),\n        image: assetUrl(item.image),\n        solutionCodes: [],\n        solutionNames: []\n      });\n    });\n\n    (knowledge.resources || []).forEach(function (item, index) {\n      addEntry({\n        key: 'resource:' + index,\n        type: 'resource',\n        title: item.title,\n        detail: item.detail,\n        family: 'Recurso IDP',\n        keywords: item.keywords,\n        url: item.url,\n        image: assetUrl(item.image),\n        solutionCodes: [],\n        solutionNames: []\n      });\n    });\n\n    addEntry({\n      key: 'resource:sobre-nosotros',\n      type: 'resource',\n      title: 'Sobre nosotros',\n      detail: 'IDP Ib\u00E9rica. Un universo de productos. Cero limitaciones.',\n      family: 'Empresa IDP',\n      keywords: 'sobre nosotros quienes somos qui\u00E9nes somos empresa idp iberica idp ib\u00E9rica conocer idp historia marca solucion tecnica integral pavimentos resinas epoxi poliuretano preparacion soporte limpieza mantenimiento documentacion tecnica',\n      url: '/#idp-nosotros',\n      image: 'https://cdn.shopify.com/s/files/1/1061/8748/9621/files/idp-iberica-relieve-transparente-20261030.png?v=1793337537',\n      solutionCodes: [],\n      solutionNames: []\n    });\n  }\n\n  function openSearch() {\n    root.hidden=false;root.classList.add('is-search-mode');openButtons.forEach(b=>b.setAttribute('aria-expanded','true'));\n    document.body.classList.add('idp-global-search-open');loadProducts();render();input.focus();\n  }\n\n  function closeSearch() {\n    cancelScheduledSearchRender();clearTimeout(remoteTimer);remoteRequestId++;\n    root.hidden=true;openButtons.forEach(b=>b.setAttribute('aria-expanded','false'));\n    document.body.classList.remove('idp-global-search-open');input.value='';openButton.focus();\n  }\n\n  function submitCatalogSearch() {\n    cancelScheduledSearchRender();root.classList.toggle('has-submitted-search',Boolean(input.value.trim()));\n    render();loadProducts().then(render);input.focus();\n  }\n\n  function scheduleSearchRender() {\n    cancelScheduledSearchRender();\n    var version = searchInputVersion;\n    var value = input.value.trim();\n    if (!value) {\n      results.innerHTML = '';\n      status.textContent = (productIndex.count || 0) + ' productos disponibles por nombre, c\u00F3digo o aplicaci\u00F3n';\n      return;\n    }\n    status.textContent = 'Escribiendo b\u00FAsqueda...';\n    searchRenderTimer = window.setTimeout(function () {\n      searchRenderTimer = null;\n      searchRenderFrame = window.requestAnimationFrame(function () {\n        searchRenderFrame = null;\n        if (version !== searchInputVersion || value !== input.value.trim() || interfaceMode !== 'search') return;\n        render(false);\n      });\n    }, 60);\n  }\n\n  function normalizeCorrection(value) {\n    return String(value || '')\n      .normalize('NFD')\n      .replace(/[\\u0300-\\u036f]/g, '')\n      .toLowerCase()\n      .trim();\n  }\n\n  function normalize(value) {\n    var result = String(value || '')\n      .normalize('NFD')\n      .replace(/[\\u0300-\\u036f]/g, '')\n      .toLowerCase()\n      .replace(/[^a-z0-9%+\\-./:\\s]/g, ' ')\n      .replace(/\\s+/g, ' ')\n      .trim();\n    correctionPairs.forEach(function (pair) {\n      result = result.split(pair.source).join(pair.target);\n    });\n    return result.replace(/\\s+/g, ' ').trim();\n  }\n\n  function assetUrl(fileName) {\n    if (window.IDPBrandAssetMap && Object.prototype.hasOwnProperty.call(window.IDPBrandAssetMap, fileName)) return window.IDPBrandAssetMap[fileName];\n    if (!fileName) return '';\n    if (/^(https?:)?\\/\\//.test(fileName)) return fileName;\n    var source = root.dataset.idpGlobalSearchAsset;\n    if (!source) return '';\n    var url = new URL(source, window.location.origin);\n    url.pathname = url.pathname.replace(/[^/]+$/, fileName);\n    url.search = '';\n    return url.toString();\n  }\n\n  function referenceCodes(values) {\n    var codes = [];\n    (values || []).forEach(function (value) {\n      String(value || '').split(/[^a-zA-Z0-9]+/).forEach(function (part) {\n        if (/^(?=.*\\d)[a-zA-Z0-9]{4,18}$/.test(part) && codes.indexOf(part) === -1) codes.push(part);\n      });\n    });\n    return codes.slice(0, 12);\n  }\n\n  function solutionNames(meta) {\n    return (meta.solutions || []).map(function (code) {\n      return (catalog.solutions || {})[code] || '';\n    });\n  }\n\n  function entryUrl(handle, meta) {\n    return '/products/' + encodeURIComponent(handle);\n  }\n\n  function addEntry(entry) {\n    var brandImage = window.IDPBrandAssetMap && window.IDPBrandAssetMap['product:' + entry.handle];\n    if (brandImage) entry.image = brandImage;\n    entry.title = cleanBrand(entry.title);\n    entry.commercialName = cleanBrand(entry.commercialName);\n    entry.technicalName = cleanBrand(entry.technicalName);\n    entry.description = cleanBrand(entry.description);\n    entry.applications = cleanBrand(entry.applications);\n    entry.detail = cleanBrand(entry.detail);\n    entry.keywords = cleanBrand(entry.keywords);\n    entry.searchText = normalize([\n      entry.title,\n      entry.commercialName,\n      entry.technicalName,\n      entry.description,\n      entry.applications,\n      entry.handle,\n      entry.family,\n      entry.subfamily,\n      entry.detail,\n      entry.keywords,\n      entry.toolGroup,\n      entry.toolType,\n      (entry.codes || []).join(' ')\n    ].concat(entry.solutionNames || []).join(' '));\n    refreshEntrySearchCache(entry);\n    entryByKey[entry.key] = entry;\n    entries.push(entry);\n  }\n\n  function addTaxonomyEntries() {\n    (catalog.families || []).forEach(function (family) {\n      if (!family || !family.code) return;\n      var familyProducts = Object.keys(catalog.products || {}).map(function (handle) { return catalog.products[handle]; })\n        .filter(function (meta) { return meta && meta.familyCode === family.code; });\n      addEntry({\n        key: 'family:' + family.code,\n        type: 'family',\n        title: family.name,\n        detail: familyProducts.length + (familyProducts.length === 1 ? ' producto relacionado' : ' productos relacionados'),\n        family: family.name,\n        subfamily: '',\n        familyCode: family.code,\n        toolGroup: '',\n        toolType: '',\n        codes: [family.code],\n        solutionCodes: [],\n        solutionNames: [],\n        keywords: familyProducts.slice(0, 80).map(function (meta) { return [meta.title, meta.subfamily, meta.role].join(' '); }).join(' '),\n        url: catalogFilterUrl({ family: family.code }),\n        image: family.code === 'F11' ? assetUrl('idp-fregadoras-industriales-hero-2026.jpg') : \"https://cdn.shopify.com/s/files/1/1061/8748/9621/files/idp-iberica-relieve-oficial-20261030.png?v=1793336157\"\n      });\n    });\n\n    (catalog.subfamilies || []).forEach(function (subfamily) {\n      if (!subfamily || !subfamily.code) return;\n      var parent = (catalog.families || []).find(function (family) { return family.code === subfamily.family; });\n      var subfamilyProducts = Object.keys(catalog.products || {}).map(function (handle) { return catalog.products[handle]; })\n        .filter(function (meta) { return meta && meta.subfamilyCode === subfamily.code; });\n      addEntry({\n        key: 'subfamily:' + subfamily.code,\n        type: 'subfamily',\n        title: subfamily.name,\n        detail: (parent ? parent.name + ' \u00B7 ' : '') + subfamilyProducts.length + (subfamilyProducts.length === 1 ? ' producto' : ' productos'),\n        family: parent ? parent.name : '',\n        subfamily: subfamily.name,\n        familyCode: subfamily.family,\n        subfamilyCode: subfamily.code,\n        toolGroup: '',\n        toolType: '',\n        codes: [subfamily.code],\n        solutionCodes: [],\n        solutionNames: [],\n        keywords: subfamilyProducts.slice(0, 80).map(function (meta) { return [meta.title, meta.role].join(' '); }).join(' '),\n        url: catalogFilterUrl({ family: subfamily.family, subfamily: subfamily.code }),\n        image: \"https://cdn.shopify.com/s/files/1/1061/8748/9621/files/idp-iberica-relieve-oficial-20261030.png?v=1793336157\"\n      });\n    });\n\n    Object.keys(catalog.solutions || {}).forEach(function (code) {\n      var solutionName = catalog.solutions[code];\n      var solutionProducts = Object.keys(catalog.products || {}).map(function (handle) { return catalog.products[handle]; })\n        .filter(function (meta) { return meta && (meta.solutions || []).indexOf(code) !== -1; });\n      addEntry({\n        key: 'solution:' + code,\n        type: 'solution',\n        title: solutionName,\n        detail: solutionProducts.length + (solutionProducts.length === 1 ? ' producto vinculado' : ' productos vinculados'),\n        family: 'Soluci\u00F3n IDP',\n        subfamily: '',\n        familyCode: '',\n        toolGroup: '',\n        toolType: '',\n        codes: [code],\n        solutionCodes: [code],\n        solutionNames: [solutionName],\n        keywords: solutionProducts.slice(0, 80).map(function (meta) { return [meta.title, meta.family, meta.subfamily, meta.role].join(' '); }).join(' '),\n        url: catalogFilterUrl({ solution: code }),\n        image: assetUrl('idp-catalogo-premium-industria-2026-wm.png')\n      });\n    });\n  }\n\n  function mergeRemoteProduct(rawProduct) {\n    var product = productFromJson(rawProduct);\n    var meta = (catalog.products || {})[product.handle] || {};\n    var key = (meta.familyCode === 'F10' ? 'system:' : 'product:') + product.handle;\n    var existing = entryByKey[key];\n    var body = stripHtml(product.body);\n    var variantText = (product.variants || []).map(function (variant) {\n      return [variant.sku, variant.barcode, variant.title].join(' ');\n    }).join(' ');\n    var productCodes = referenceCodes([product.handle, product.title, variantText]);\n    if (existing) {\n      existing.title = cleanBrand(meta.title || product.title || existing.title);\n      existing.commercialName = cleanBrand(meta.commercialName || product.commercialName || existing.commercialName);\n      existing.technicalName = cleanBrand(meta.technicalName || product.technicalName || existing.technicalName || existing.title);\n      existing.description = cleanBrand(meta.description || product.description || existing.description);\n      existing.applications = cleanBrand(meta.applications || product.applications || existing.applications);\n      existing.documentStatus = meta.documentStatus || product.documentStatus || existing.documentStatus || '';\n      existing.technicalSheet = meta.technicalSheet || product.technicalSheet || existing.technicalSheet || '';\n      existing.keywords = cleanBrand([existing.keywords, product.keywords, existing.commercialName, existing.technicalName, existing.description, existing.applications, body, product.type, (product.tags || []).join(' '), variantText].join(' '));\n      existing.codes = unique((existing.codes || []).concat(productCodes));\n      if (product.image) existing.image = productImage(product.handle, product.image);\n      existing.searchText = normalize([existing.searchText, existing.commercialName, existing.technicalName, existing.keywords, existing.codes.join(' ')].join(' '));\n      refreshEntrySearchCache(existing);\n      return existing;\n    }\n    var entry = {\n      key: key,\n      type: 'product',\n      handle: product.handle,\n      title: cleanBrand(product.title),\n      commercialName: cleanBrand(meta.commercialName || product.commercialName),\n      technicalName: cleanBrand(meta.technicalName || product.technicalName || product.title),\n      description: cleanBrand(meta.description || product.description),\n      applications: cleanBrand(meta.applications || product.applications),\n      documentStatus: meta.documentStatus || product.documentStatus || '',\n      technicalSheet: meta.technicalSheet || product.technicalSheet || '',\n      detail: cleanBrand(product.type || 'Producto IDP'),\n      family: cleanBrand(product.type || 'Producto IDP'),\n      subfamily: '',\n      familyCode: meta.familyCode || '',\n      toolGroup: meta.toolGroup || '',\n      toolType: meta.toolType || '',\n      codes: productCodes,\n      solutionCodes: meta.solutions || [],\n      solutionNames: solutionNames(meta),\n      keywords: cleanBrand([product.keywords, body, product.applications, (product.tags || []).join(' '), variantText].join(' ')),\n      url: entryUrl(product.handle, meta),\n      image: productImage(product.handle, product.image)\n    };\n    addEntry(entry);\n    return entry;\n  }\n\n  function loadProducts() {\n    if (loadPromise) return loadPromise;\n    if ((productIndex.products || []).length) {\n      loadPromise = Promise.resolve(productIndex.products.length);\n      return loadPromise;\n    }\n    loadPromise = fetch('/products.json?limit=250', { credentials: 'same-origin' })\n      .then(function (response) {\n        if (!response.ok) throw new Error('catalog');\n        return response.json();\n      })\n      .then(function (payload) {\n        (payload.products || []).forEach(mergeRemoteProduct);\n        render();\n      })\n      .catch(function () {\n        status.textContent = 'El cat\u00E1logo t\u00E9cnico local sigue disponible.';\n      });\n    return loadPromise;\n  }\n\n  function render() {\n    var value=input.value.trim(), analysis=detectAnalysis(value);\n    if(!analysis.normalized) { results.innerHTML=''; status.textContent=(productIndex.count||entries.length)+' productos, sistemas y recursos por nombre, c\u00F3digo o aplicaci\u00F3n'; return; }\n    var grouped=groupResults(scoredEntriesFor(value).scored,analysis);\n    results.innerHTML=grouped.html||'<p class=\"idp-global-search__empty\">No encuentro coincidencias. Prueba con el nombre o la referencia.</p>';\n    status.textContent=grouped.visible+(grouped.visible===1?' resultado relacionado':' resultados relacionados');\n    scheduleRemote(value);\n  }\n\n  function cancelScheduledSearchRender() {\n    searchInputVersion += 1;\n    window.clearTimeout(searchRenderTimer);\n    searchRenderTimer = null;\n    if (searchRenderFrame !== null) window.cancelAnimationFrame(searchRenderFrame);\n    searchRenderFrame = null;\n  }\n\n  function cleanBrand(value) {\n    return String(value == null ? '' : value).replace(new RegExp(forbiddenBrand, 'gi'), 'IDP');\n  }\n\n  function stripHtml(value) {\n    var element = document.createElement('div');\n    var content = cleanBrand(value || '');\n    for (var pass = 0; pass < 3; pass += 1) {\n      element.innerHTML = content;\n      var decoded = element.textContent || '';\n      if (decoded === content || !/[<&]/.test(decoded)) break;\n      content = decoded;\n    }\n    element.innerHTML = content;\n    return (element.textContent || '').replace(/\\s+/g, ' ').trim();\n  }\n\n  function unique(values) {\n    return values.filter(function (value, index) {\n      return value && values.indexOf(value) === index;\n    });\n  }\n\n  function catalogFilterUrl(params) {\n    if (params.family === 'F09' || params.solution === 'S16') {\n      return '/pages/herramientas' + (params.subfamily ? '?subfamily=' + encodeURIComponent(params.subfamily) : '');\n    }\n    if (params.family === 'F10') {\n      return '/pages/sistemas-constructivos' + (params.subfamily ? '?subfamily=' + encodeURIComponent(params.subfamily) : '');\n    }\n    var query = new URLSearchParams();\n    if (params.family) query.set('family', params.family);\n    if (params.subfamily) query.set('subfamily', params.subfamily);\n    if (params.solution) query.set('solution', params.solution);\n    if (params.search) query.set('q', params.search);\n    var string = query.toString();\n    return '/collections/all' + (string ? '?' + string : '');\n  }\n\n  function refreshEntrySearchCache(entry) {\n    var title = normalize(entry.title);\n    var handle = normalize(entry.handle || '');\n    entry.normalizedTitle = title;\n    entry.normalizedHandle = handle;\n    entry.normalizedFamily = normalize(entry.family || '');\n    entry.normalizedSubfamily = normalize(entry.subfamily || '');\n    entry.directAliases = unique([\n      entry.title,\n      entry.commercialName,\n      entry.technicalName,\n      entry.handle,\n      handle.replace(/-/g, ' '),\n      title.replace(/^idp\\s+/, ''),\n      title.replace(/^idp\\s+floor\\s+/, ''),\n      title.replace(/\\bsistema tecnico\\b/g, ''),\n      title.replace(/\\bpavimento\\b/g, 'suelo'),\n      title.replace(/\\bsuelo\\b/g, 'pavimento')\n    ].concat(entry.codes || []).map(normalize).filter(Boolean)).map(function (alias) {\n      return { normalized: alias, compact: alias.replace(/[^a-z0-9]+/g, '') };\n    });\n    entry.isMachineryOrTool = ['F09', 'F11'].indexOf(entry.familyCode) !== -1\n      || /herramienta|maquinaria|fregadora|barredora|rodillo|brocha|pentrilo/i.test([entry.family, entry.subfamily, entry.title, entry.keywords].join(' '));\n    var variantApi = window.IDPVariantGroups;\n    entry.variantInfo = variantApi && entry.type === 'product' ? variantApi.info(entry) : null;\n    entry.variantKey = entry.variantInfo ? variantApi.key(entry, entry.variantInfo) : '';\n    variantGroupsCache = null;\n  }\n\n  function productFromJson(product) {\n    return {\n      title: product.title,\n      handle: product.handle,\n      commercialName: product.commercialName || '',\n      technicalName: product.technicalName || '',\n      documentStatus: product.documentStatus || '',\n      technicalSheet: product.technicalSheet || '',\n      description: product.description || '',\n      applications: product.applications || '',\n      keywords: product.keywords || '',\n      body: product.body_html || product.description || '',\n      type: product.product_type || product.type || '',\n      tags: product.tags || [],\n      variants: product.variants || [],\n      image: product.images && product.images[0] ? (product.images[0].src || product.images[0]) : product.featured_image\n    };\n  }\n\n  function detectAnalysis(value) {\n    var normalized = normalize(value);\n    var intents = (knowledge.intents || []).filter(function (intent) {\n      return intent.normalizedTerms.some(function (term) {\n        return normalized.indexOf(term) !== -1;\n      });\n    });\n    var slots = {};\n    (knowledge.slots || []).forEach(function (slot) {\n      var match = (slot.choices || []).find(function (choice) {\n        return choice.normalizedTerms.some(function (term) {\n          return normalized.indexOf(term) !== -1;\n        });\n      });\n      if (match) slots[slot.id] = match;\n      if (answers[slot.id]) slots[slot.id] = answers[slot.id];\n    });\n    var expanded = [];\n    intents.forEach(function (intent) {\n      expanded = expanded.concat(intent.expansion || []);\n    });\n    Object.keys(slots).forEach(function (id) {\n      expanded.push(slots[id].value);\n    });\n    return {\n      normalized: normalized,\n      compact: normalized.replace(/[^a-z0-9]+/g, ''),\n      tokens: queryTokens(normalized),\n      expandedTokens: queryTokens(expanded.join(' ')),\n      intents: intents,\n      slots: slots,\n      productKind: detectProductKind(normalized)\n    };\n  }\n\n  function scoredEntriesFor(value) {\n    var analysis = detectAnalysis(value);\n    var queryContext = {\n      resinQuery: isResinQuery(analysis),\n      explicitMachineryOrTool: isExplicitMachineryOrToolQuery(analysis),\n      materialToken: specificMaterialToken(analysis),\n      materialTokens: analysis.tokens.filter(function (token) {\n        return ['epoxi', 'poliuretano', 'poliurea'].indexOf(token) !== -1;\n      })\n    };\n    var scored = entries.map(function (entry) {\n      return { entry: entry, score: scoreEntry(entry, analysis, queryContext) };\n    }).filter(function (item) {\n      if (item.score <= 0) return false;\n      if (queryContext.resinQuery && !queryContext.explicitMachineryOrTool && isMachineryOrTool(item.entry)) return false;\n      if (queryContext.materialToken && ![item.entry.normalizedTitle, item.entry.normalizedFamily, item.entry.normalizedSubfamily].some(function (value) { return hasWordInNormalized(value, queryContext.materialToken); })) return false;\n      if (!analysis.productKind) return true;\n      if (item.entry.type === 'system' && analysis.tokens.length > 1 && analysis.normalized.length >= 8 && item.entry.searchText.indexOf(analysis.normalized) !== -1) return true;\n      return item.entry.type === 'product' && analysis.productKind.normalizedMatches.some(function (term) {\n        return item.entry.searchText.indexOf(term) !== -1;\n      });\n    }).sort(function (left, right) {\n      return right.score - left.score || left.entry.title.localeCompare(right.entry.title, 'es');\n    });\n    return {\n      analysis: analysis,\n      scored: scored\n    };\n  }\n\n  function groupResults(scored, analysis) {\n    var limits = { family: 4, subfamily: 8, solution: 5, system: 8, product: interfaceMode === 'search' ? 20 : 12, catalog: 4, resource: 4 };\n    var hasExactSystemQuery = analysis && analysis.tokens.length > 1 && scored.some(function (item) {\n      return item.entry.type === 'system' && item.entry.searchText.indexOf(analysis.normalized) !== -1;\n    });\n    var order = analysis && analysis.productKind\n      ? (hasExactSystemQuery ? ['system', 'product'] : ['product'])\n      : (interfaceMode === 'search' ? ['system', 'product', 'catalog', 'resource', 'family', 'subfamily', 'solution'] : ['solution', 'system', 'product', 'family', 'subfamily', 'catalog', 'resource']);\n    var html = '';\n    var visible = 0;\n    var direct = scored[0] && scored[0].score >= 1500 ? scored[0] : null;\n    if (direct) {\n      html += '<h3 class=\"idp-global-search__group-title\">Resultado directo</h3>' + resultCard(direct.entry);\n      visible += 1;\n    }\n    order.forEach(function (type) {\n      var candidates = scored.filter(function (item) {\n        return item.entry.type === type && (!direct || item.entry.key !== direct.entry.key);\n      });\n      var group = (type === 'product' ? collapseVariantResults(candidates) : candidates).slice(0, limits[type]);\n      if (!group.length) return;\n      var title = type === 'system' ? 'Sistemas recomendados'\n        : type === 'product' && analysis && analysis.productKind ? analysis.productKind.label\n          : type === 'product' ? 'Productos y herramientas'\n          : type === 'catalog' ? 'Cat\u00E1logos relacionados' : 'Siguiente paso';\n      if (type === 'family') title = 'Familias';\n      else if (type === 'subfamily') title = 'Subfamilias';\n      else if (type === 'solution') title = 'Soluciones';\n      else if (type === 'system') title = 'Sistemas constructivos';\n      else if (type === 'product' && !(analysis && analysis.productKind)) title = 'Productos';\n      else if (type === 'catalog') title = 'Catalogos relacionados';\n      else if (type === 'resource') title = 'Recursos tecnicos';\n      html += '<h3 class=\"idp-global-search__group-title\">' + escapeHtml(title) + '</h3>';\n      html += group.map(function (item) { return resultCard(item.entry); }).join('');\n      visible += group.length;\n    });\n    return { html: html, visible: visible };\n  }\n\n  function scheduleRemote(term) {\n    var normalized = normalize(term);\n    if (normalized.length < 2 || normalized === remoteTerm) return;\n    window.clearTimeout(remoteTimer);\n    var requestId = ++remoteRequestId;\n    remoteTimer = window.setTimeout(function () {\n      var url = '/search/suggest.json?q=' + encodeURIComponent(term)\n        + '&resources[type]=product&resources[limit]=20&resources[options][unavailable_products]=last';\n      fetch(url, { credentials: 'same-origin' })\n        .then(function (response) { return response.ok ? response.json() : null; })\n        .then(function (payload) {\n          if (!payload || requestId !== remoteRequestId || normalized !== normalize(input.value)) return;\n          var suggested = (((payload.resources || {}).results || {}).products || []);\n          suggested.forEach(function (product) {\n            mergeRemoteProduct({\n              title: product.title,\n              handle: product.handle,\n              description: product.body,\n              type: product.type || product.product_type,\n              tags: product.tags,\n              variants: product.variants,\n              featured_image: product.image || (product.featured_image && product.featured_image.url),\n              images: product.image ? [product.image] : []\n            });\n          });\n          remoteTerm = normalized;\n          render(false);\n        })\n        .catch(function () {});\n    }, 220);\n  }\n\n  function escapeHtml(value) {\n    return cleanBrand(value)\n      .replace(/&/g, '&amp;')\n      .replace(/</g, '&lt;')\n      .replace(/>/g, '&gt;')\n      .replace(/\"/g, '&quot;')\n      .replace(/'/g, '&#039;');\n  }\n\n  function queryTokens(value) {\n    var stop = ['para', 'como', 'quiero', 'necesito', 'busco', 'tengo', 'sobre', 'desde', 'esta', 'este', 'esto', 'unos', 'unas', 'donde', 'hacer', 'producto', 'productos', 'opcion', 'opciones'];\n    return unique(normalize(value).split(' ').filter(function (token) {\n      return token.length > 1 && stop.indexOf(token) === -1;\n    }));\n  }\n\n  function isResinQuery(analysis) {\n    return resinTerms.some(function (term) {\n      return analysis.normalized.indexOf(term) !== -1 || analysis.tokens.indexOf(term) !== -1;\n    });\n  }\n\n  function specificMaterialToken(analysis) {\n    if (analysis.tokens.length !== 1) return '';\n    return ['epoxi', 'poliuretano', 'poliurea'].indexOf(analysis.tokens[0]) !== -1 ? analysis.tokens[0] : '';\n  }\n\n  function hasWordInNormalized(normalizedValue, token) {\n    return new RegExp('(^|\\\\s)' + token.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&') + '(?=\\\\s|$)').test(normalizedValue);\n  }\n\n  function isMachineryOrTool(entry) {\n    if (typeof entry.isMachineryOrTool === 'boolean') return entry.isMachineryOrTool;\n    return ['F09', 'F11'].indexOf(entry.familyCode) !== -1 || /herramienta|maquinaria|fregadora|barredora|rodillo|brocha|pentrilo/i.test([entry.family, entry.subfamily, entry.title, entry.keywords].join(' '));\n  }\n\n  function isExplicitMachineryOrToolQuery(analysis) {\n    if (analysis.productKind) return true;\n    return /\\b(?:maquinaria|maquina|maquinas|fregadora|fregadoras|barredora|barredoras|herramienta|herramientas|rodillo|rodillos|brocha|brochas|pentrilo|guante|guantes|mono|monos|buzo|buzos|mascarilla|mascarillas)\\b/.test(analysis.normalized);\n  }\n\n  function detectProductKind(normalized) {\n    if (!normalized || /\\b(?:que|cual|recomienda|necesito)\\s+sistema\\b/.test(normalized)) return null;\n    return productKinds.find(function (kind) {\n      return kind.normalizedTerms.some(function (term) {\n        return normalized.indexOf(term) !== -1;\n      });\n    }) || null;\n  }\n\n  function compact(value) {\n    return normalize(value).replace(/[^a-z0-9]+/g, '');\n  }\n\n  function scoreEntry(entry, analysis, queryContext) {\n    if (!analysis.normalized) return 0;\n    var resinQuery = queryContext.resinQuery;\n    var explicitMachineryOrTool = queryContext.explicitMachineryOrTool;\n    if (resinQuery && !explicitMachineryOrTool && isMachineryOrTool(entry)) return 0;\n    var score = memoryBoost(entry);\n    var title = entry.normalizedTitle;\n    var originalTokens = analysis.tokens;\n    var isTaxonomyEntry = ['family', 'subfamily', 'solution'].indexOf(entry.type) !== -1;\n    if (isTaxonomyEntry && !originalTokens.some(function (token) { return title.indexOf(token) !== -1; })) return 0;\n    var materialToken = queryContext.materialToken;\n    var materialTokens = queryContext.materialTokens;\n    if (materialToken && entry.type === 'system' && !hasWordInNormalized(title, materialToken)) return 0;\n    if (materialToken && entry.type === 'product') {\n      var directProductMaterial = [entry.normalizedTitle, entry.normalizedFamily, entry.normalizedSubfamily].some(function (value) {\n        return hasWordInNormalized(value, materialToken);\n      });\n      if (!directProductMaterial) return 0;\n    }\n    score += taxonomyScoreBoost(entry, analysis);\n    if (analysis.productKind && entry.type === 'product') {\n      var kindMatch = analysis.productKind.normalizedMatches.some(function (term) {\n        return entry.searchText.indexOf(term) !== -1;\n      });\n      if (kindMatch) score += 320;\n    }\n    score += directMatchBoost(entry, analysis);\n    if (title === analysis.normalized) score += 240;\n    if (title.indexOf(analysis.normalized) !== -1) score += 120;\n    if (entry.searchText.indexOf(analysis.normalized) !== -1) score += 70;\n    (analysis.normalized.match(/\\b\\d+(?:[.,]\\d+)?\\s*(?:mm|cm)\\b/g) || []).forEach(function (measure) {\n      if (title.indexOf(measure) !== -1) score += 700;\n      else if (entry.searchText.indexOf(measure) !== -1) score += 90;\n    });\n    originalTokens.forEach(function (token) {\n      if (title.indexOf(token) !== -1) score += 36;\n      else if (entry.searchText.indexOf(token) !== -1) score += 10;\n    });\n    (analysis.normalized.match(/\\b\\d[\\d.,]*\\b/g) || []).forEach(function (number) {\n      var significantDigits = number.replace(/\\D/g, '');\n      if (significantDigits.length >= 4 && entry.searchText.indexOf(number) !== -1) score += 180;\n    });\n    analysis.expandedTokens.forEach(function (token) {\n      if (title.indexOf(token) !== -1) score += 8;\n      else if (entry.searchText.indexOf(token) !== -1) score += 3;\n    });\n    analysis.intents.forEach(function (intent) {\n      if ((intent.families || []).indexOf(entry.familyCode) !== -1) score += 28;\n      if ((entry.solutionCodes || []).some(function (code) { return (intent.solutions || []).indexOf(code) !== -1; })) score += 58;\n      if (entry.type === 'catalog' && (intent.catalogIds || []).indexOf(entry.catalogId) !== -1) score += 95;\n    });\n    if (resinQuery && ['F01', 'F02', 'F03', 'F04', 'F05', 'F06', 'F07', 'F08', 'F10'].indexOf(entry.familyCode) !== -1) {\n      var titleHasQueryToken = originalTokens.some(function (token) { return hasWordInNormalized(title, token); });\n      score += ['family', 'subfamily'].indexOf(entry.type) !== -1 && !titleHasQueryToken\n        ? 0\n        : entry.type === 'subfamily' ? 85 : entry.type === 'family' ? 65 : isProductEntry(entry) ? 42 : 12;\n    }\n    if (resinQuery && entry.type === 'system') score += 36;\n    if (entry.type === 'family' && originalTokens.length === 1 && title.indexOf(originalTokens[0]) !== -1) score += 120;\n    if (entry.type === 'subfamily' && originalTokens.length === 1 && title.indexOf(originalTokens[0]) !== -1) score += 160;\n    if (entry.type === 'system' && analysis.intents.length) score += 18;\n    if (entry.type === 'resource' && analysis.intents.length) score += 5;\n    return score;\n  }\n\n  function resultCard(entry) {\n    var resultImage = (entry.type === 'product' || entry.type === 'system') ? productImage(entry.handle, entry.image) : entry.image;\n    var target = entry.type === 'catalog' ? ' target=\"_blank\" rel=\"noopener noreferrer\"' : '';\n    var displayTitle = entry.commercialName || entry.title;\n    var technicalLine = entry.technicalName && normalize(entry.technicalName) !== normalize(displayTitle)\n      ? '<span class=\"idp-global-search-result__technical\">' + escapeHtml(entry.technicalName) + '</span>'\n      : '';\n    var supportingText = stripHtml(entry.description || entry.detail);\n    if (supportingText.length > 180) {\n      supportingText = supportingText.slice(0, 177).replace(/\\s+\\S*$/, '') + '...';\n    }\n    var reference = entry.type === 'product' && entry.variantOptions && entry.variantOptions.length\n      ? ' | ' + entry.variantOptions.length + ' variantes'\n      : (entry.type === 'product' && (entry.codes || []).length\n        ? ' | Ref. ' + entry.codes.slice(0, 3).join(' / ')\n        : '');\n    return [\n      '<a class=\"idp-global-search-result idp-global-search-result--', escapeHtml(entry.type), '\" href=\"', escapeHtml(entry.url), '\" data-idp-result-key=\"', escapeHtml(entry.key), '\"', target, '>',\n      '<span class=\"idp-global-search-result__media\">', resultImage ? '<img src=\"' + escapeHtml(resultImage) + '\" alt=\"' + escapeHtml(displayTitle) + '\" width=\"160\" height=\"120\" loading=\"lazy\">' : '', '</span>',\n      '<span class=\"idp-global-search-result__content\"><small>', escapeHtml(resultLabel(entry) + reference), '</small><strong>', escapeHtml(displayTitle), '</strong>', technicalLine, '<span>', escapeHtml(supportingText), '</span></span>',\n      '<span class=\"idp-global-search-result__arrow\" aria-hidden=\"true\">&rarr;</span></a>'\n    ].join('');\n  }\n\n  function collapseVariantResults(scored) {\n    var variantApi = window.IDPVariantGroups;\n    if (!variantApi) return scored;\n    if (!variantGroupsCache) {\n      variantGroupsCache = {};\n      entries.forEach(function (entry) {\n        if (entry.type !== 'product') return;\n        var info = entry.variantInfo || variantApi.info(entry);\n        var key = entry.variantKey || (info && variantApi.key(entry, info));\n        if (!key) return;\n        if (!variantGroupsCache[key]) variantGroupsCache[key] = [];\n        variantGroupsCache[key].push({ entry: entry, info: info });\n      });\n      Object.keys(variantGroupsCache).forEach(function (key) {\n        variantGroupsCache[key].sort(function (a, b) {\n          return (a.info.sort - b.info.sort) || a.info.label.localeCompare(b.info.label, 'es', { numeric: true });\n        });\n      });\n    }\n\n    var seen = {};\n    return scored.map(function (item) {\n      var info = item.entry.variantInfo || variantApi.info(item.entry);\n      var key = item.entry.variantKey || (info && variantApi.key(item.entry, info));\n      var siblings = key && variantGroupsCache[key];\n      if (!siblings || siblings.length < 2) return item;\n      if (seen[key]) return null;\n      seen[key] = true;\n      var groupedEntry = Object.assign({}, item.entry, {\n        title: info.baseTitle,\n        variantOptions: siblings.map(function (sibling) {\n          return {\n            handle: sibling.entry.handle,\n            label: sibling.info.label,\n            title: sibling.entry.title,\n            url: sibling.entry.url\n          };\n        }),\n        detail: siblings.length + ' variantes: ' + siblings.map(function (sibling) { return sibling.info.label; }).join(', ')\n      });\n      return { entry: groupedEntry, score: item.score };\n    }).filter(Boolean);\n  }\n\n  function isProductEntry(entry) {\n    return entry.type === 'product' || entry.type === 'system';\n  }\n\n  function taxonomyScoreBoost(entry, analysis) {\n    if (['family', 'subfamily', 'solution'].indexOf(entry.type) === -1) return 0;\n    var score = 0;\n    var title = entry.normalizedTitle;\n    var titleHasToken = analysis.tokens.some(function (token) { return title.indexOf(token) !== -1; });\n    if (title === analysis.normalized) score += 420;\n    if (title.indexOf(analysis.normalized) !== -1) score += 220;\n    if (analysis.tokens.length > 1 && entry.searchText.indexOf(analysis.normalized) !== -1) score += 90;\n    analysis.tokens.forEach(function (token) {\n      if (title.indexOf(token) !== -1) score += 72;\n      else if (analysis.tokens.length > 1 && entry.searchText.indexOf(token) !== -1) score += 12;\n    });\n    if (!score && !titleHasToken) return 0;\n    if (entry.type === 'family') score += 18;\n    if (entry.type === 'subfamily') score += 30;\n    if (entry.type === 'solution') score += 24;\n    return score;\n  }\n\n  function directMatchBoost(entry, analysis) {\n    var normalized = analysis.normalized;\n    if (!normalized) return 0;\n    var title = entry.normalizedTitle;\n    var handle = entry.normalizedHandle;\n    var score = 0;\n    entry.directAliases.forEach(function (alias) {\n      var value = alias.normalized;\n      if (value === normalized) score = Math.max(score, 5200);\n      if (alias.compact && alias.compact === analysis.compact) score = Math.max(score, 5000);\n      if (value.indexOf(normalized) === 0) score = Math.max(score, 2100);\n      if (value.indexOf(normalized) !== -1) score = Math.max(score, 1300);\n      if (normalized.indexOf(value) !== -1 && value.length >= 5) score = Math.max(score, 900);\n    });\n    if (normalized.length >= 5 && analysis.tokens.length > 1 && entry.searchText.indexOf(normalized) !== -1) {\n      score = Math.max(score, 1500);\n    }\n    if (analysis.tokens.length > 1 && analysis.tokens.every(function (token) {\n      return title.indexOf(token) !== -1 || handle.indexOf(token) !== -1 || entry.searchText.indexOf(token) !== -1;\n    })) {\n      score = Math.max(score, 620);\n    }\n    if (entry.type === 'system' && score) score += 180;\n    if (entry.type === 'product' && score) score += 120;\n    return score;\n  }\n\n  function memoryBoost() { return 0; }\n\n  function resultLabel(entry) {\n    if (entry.type === 'family') return 'Familia de productos';\n    if (entry.type === 'subfamily') return 'Subfamilia';\n    if (entry.type === 'solution') return 'Solucion';\n    if (entry.type === 'system') return 'Sistema constructivo';\n    if (entry.type === 'catalog') return 'Cat\u00E1logo y gu\u00EDa';\n    if (entry.type === 'resource') return 'Recurso t\u00E9cnico';\n    return entry.family || 'Producto IDP';\n  }\n  buildEntries();\n  openButtons.forEach(b=>b.addEventListener('click',openSearch));\n  root.querySelectorAll('[data-idp-global-search-close]').forEach(b=>b.addEventListener('click',closeSearch));\n  form.addEventListener('submit',e=>{e.preventDefault();submitCatalogSearch();});\n  input.addEventListener('input',()=>{answers={};root.classList.remove('has-submitted-search');clearTimeout(remoteTimer);remoteRequestId++;scheduleSearchRender();});\n  document.addEventListener('keydown',e=>{if(e.key==='Escape'&&!root.hidden)closeSearch();});\n})();\n"],
  "mappings": "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",
  "names": ["value"]
}
