{
  "version": 3,
  "sources": ["/cdn/shop/t/23/assets/kph-oem.js?check=fast"],
  "sourcesContent": ["const catalog = document.querySelector('[data-kph-oem]');\nif (catalog) {\n  const results = catalog.querySelector('[data-kph-results]');\n  const endpoint = new URL('/apps/oem-lookup/', location.origin);\n  const pages = new Map();\n  const pending = new Map();\n  function getPage(search) {\n    if (pages.has(search)) return Promise.resolve(pages.get(search));\n    if (pending.has(search)) return pending.get(search);\n    const url = new URL(endpoint);\n    url.search = search;\n    const response = fetch(url).then(async response => {\n      if (!response.ok) throw new Error('Catalog unavailable');\n      const html = await response.text();\n      if (pages.size >= 20) pages.delete(pages.keys().next().value);\n      pages.set(search, html);\n      return html;\n    }).finally(() => pending.delete(search));\n    pending.set(search, response);\n    return response;\n  }\n  let request = 0;\n  async function load(search) {\n    const current = ++request;\n    try {\n      const html = await getPage(search);\n      if (current !== request) return;\n      const doc = new DOMParser().parseFromString(html, 'text/html');\n      const content = doc.querySelector('[data-oem-content]');\n      if (!content) throw new Error('Catalog unavailable');\n      for (const img of content.querySelectorAll('img[src]')) img.src = new URL(img.getAttribute('src'), endpoint);\n      for (const link of content.querySelectorAll('a[href=\"./\"]')) link.setAttribute('href', '?');\n      results.replaceChildren(content);\n      const inquiryForm = content.querySelector('form.inquiry');\n      if (inquiryForm) {\n        const heading = content.querySelector('h2') || inquiryForm;\n        heading.tabIndex = -1;\n        requestAnimationFrame(() => {\n          if (current !== request || !heading.isConnected) return;\n          const header = document.querySelector('.section-header');\n          const headerBottom = header?.getBoundingClientRect().bottom ?? 0;\n          const offset = Math.max(24, Math.min(headerBottom + 24, 180));\n          heading.focus({preventScroll: true});\n          window.scrollTo({\n            top: window.scrollY + heading.getBoundingClientRect().top - offset,\n            behavior: 'instant',\n          });\n        });\n      }\n    } catch (error) {\n      if (current === request) results.textContent = 'The catalog is temporarily unavailable. Please try again.';\n    }\n  }\n  function navigate(search) {\n    history.pushState(null, '', location.pathname + search);\n    load(search);\n  }\n  catalog.addEventListener('pointerover', event => {\n    const link = event.target.closest('a[href^=\"?\"]');\n    if (link && !pending.size && !navigator.connection?.saveData) {\n      getPage(link.getAttribute('href')).catch(() => {});\n    }\n  });\n  catalog.addEventListener('click', event => {\n    const link = event.target.closest('a[href^=\"?\"]');\n    if (link && !event.ctrlKey && !event.metaKey && !event.shiftKey && !event.altKey) {\n      event.preventDefault();\n      navigate(link.getAttribute('href'));\n    }\n    const button = event.target.closest('button[data-pos]');\n    if (button) {\n      const position = element => element.dataset.pos.replace(/^0+(?=[0-9])/, '');\n      for (const item of catalog.querySelectorAll('button[data-pos],tr[data-pos]')) {\n        const active = position(item) === position(button);\n        item.classList.toggle('active', active);\n        if (item.tagName === 'BUTTON') item.setAttribute('aria-pressed', String(active));\n      }\n    }\n  });\n  catalog.addEventListener('submit', async event => {\n    event.preventDefault();\n    if (event.target.method === 'post') {\n      const form = event.target;\n      const button = form.querySelector('button[type=\"submit\"]');\n      if (button.disabled) return;\n      const status = document.createElement('p');\n      status.setAttribute('role', 'status');\n      form.querySelector('[role=\"status\"]')?.remove();\n      form.append(status);\n      status.textContent = 'Sending inquiry\u2026';\n      button.disabled = true;\n      try {\n        const url = new URL(endpoint);\n        url.searchParams.set('inquiry', form.elements.oem.value);\n        const response = await fetch(url, {method: 'POST', body: new URLSearchParams(new FormData(form))});\n        if (response.ok && (await response.text()).trim() === 'Your inquiry has been sent.') {\n          form.replaceWith(status);\n          status.textContent = 'Your inquiry has been sent.';\n        } else {\n          status.textContent = response.status === 429 ? 'Please wait a few seconds and try again.' : 'We could not confirm delivery. Please contact info@kpartsholland.com.';\n        }\n      } catch {\n        status.textContent = 'We could not confirm delivery. Please contact info@kpartsholland.com.';\n      } finally {\n        button.disabled = false;\n      }\n      return;\n    }\n    navigate('?' + new URLSearchParams(new FormData(event.target)));\n  });\n  catalog.addEventListener('change', event => {\n    const form = event.target.form;\n    if (form?.id !== 'filters') return;\n    const fields = ['family', 'bike', 'market', 'month'];\n    const index = fields.indexOf(event.target.name);\n    if (index >= 0 && index < 3) {\n      fields.slice(index + 1).forEach(name => form.elements[name].value = '');\n      form.requestSubmit();\n    }\n  });\n  addEventListener('popstate', () => load(location.search));\n  load(location.search);\n}\n"],
  "mappings": "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",
  "names": ["getPage", "response", "navigate"]
}
