{
  "version": 3,
  "sources": ["/cdn/shop/t/2/assets/roadspec-tools.js?qa=1786944481526327000"],
  "sourcesContent": ["(() => {\n  if (window.__roadSpecToolsLoaded) return;\n  window.__roadSpecToolsLoaded = true;\n\n  const track = (eventName, payload = {}) => {\n    try {\n      window.Shopify?.analytics?.publish(eventName, payload);\n    } catch (_) {}\n  };\n\n  const clean = (value) => String(value || '').replace(/[\"\\\\]/g, '').replace(/\\s+/g, ' ').trim();\n  const makeTag = (prefix, value) => {\n    const normalized = clean(value);\n    return normalized ? `tag:${prefix}${normalized}` : '';\n  };\n\n  document.querySelectorAll('[data-rsp-oem-form]').forEach((form) => {\n    form.addEventListener('submit', (event) => {\n      event.preventDefault();\n      const number = clean(form.querySelector('[data-rsp-oem-number]')?.value);\n      const make = clean(form.querySelector('[data-rsp-oem-make]')?.value);\n      const model = clean(form.querySelector('[data-rsp-oem-model]')?.value);\n      const year = clean(form.querySelector('[data-rsp-oem-year]')?.value);\n      const category = clean(form.querySelector('[data-rsp-oem-category]')?.value);\n      const status = form.querySelector('[data-rsp-oem-status]');\n\n      if (!number && !make && !model && !year && !category) {\n        if (status) status.textContent = 'Enter an OEM/reference number or at least one vehicle detail.';\n        form.querySelector('[data-rsp-oem-number]')?.focus();\n        return;\n      }\n\n      // An identifier stays standalone to prevent broad words from creating a noisy result set.\n      const query = number || [makeTag('Make:', make), makeTag('Year:', year), makeTag('Category:', category), model]\n        .filter(Boolean)\n        .join(' ');\n      const url = new URL(form.action, window.location.origin);\n      url.searchParams.set('q', query);\n      url.searchParams.set('type', 'product');\n      url.searchParams.set('options[prefix]', 'last');\n      url.searchParams.delete('page');\n      url.searchParams.delete('sort_by');\n      track('roadspec_oem_lookup_submitted', { has_reference: Boolean(number), has_vehicle_detail: Boolean(make || model || year) });\n      window.location.assign(url.toString());\n    });\n  });\n\n  // Keep the tool CTA usable while the storefront edge cache rotates the\n  // global conversion asset. The current conversion script also handles this\n  // trigger; opening an already-open dialog is safely ignored there.\n  document.querySelectorAll('[data-rsp-open-lead]').forEach((trigger) => {\n    trigger.addEventListener('click', () => {\n      const dialog = document.querySelector('[data-rsp-lead-dialog]');\n      if (dialog?.showModal && !dialog.open) dialog.showModal();\n      else if (!dialog?.open) document.querySelector('[data-rsp-lead-trigger]')?.click();\n    });\n  });\n\n  const checklist = document.querySelector('[data-rsp-connector-tool]');\n  if (!checklist) return;\n\n  const storageKey = 'roadspec_connector_checklist_v1';\n  const inputs = [...checklist.querySelectorAll('[data-rsp-check-input]')];\n  const notes = [...checklist.querySelectorAll('[data-rsp-check-note]')];\n  const progress = checklist.querySelector('[data-rsp-check-progress]');\n  const status = checklist.querySelector('[data-rsp-check-status]');\n  const supportLink = checklist.querySelector('[data-rsp-support-link]');\n\n  const read = () => {\n    try {\n      const data = JSON.parse(window.localStorage.getItem(storageKey) || '{}');\n      inputs.forEach((input) => { input.checked = data.checks?.[input.dataset.rspCheckInput] === true; });\n      notes.forEach((note) => { note.value = data.notes?.[note.dataset.rspCheckNote] || ''; });\n    } catch (_) {}\n  };\n\n  const save = () => {\n    const data = { checks: {}, notes: {} };\n    inputs.forEach((input) => { data.checks[input.dataset.rspCheckInput] = input.checked; });\n    notes.forEach((note) => { data.notes[note.dataset.rspCheckNote] = note.value.trim(); });\n    try { window.localStorage.setItem(storageKey, JSON.stringify(data)); } catch (_) {}\n    return data;\n  };\n\n  const update = (message = '') => {\n    const completed = inputs.filter((input) => input.checked).length;\n    if (progress) progress.textContent = `${completed} of ${inputs.length} checks recorded in this browser.`;\n    if (message && status) status.textContent = message;\n    if (supportLink) {\n      const lines = notes\n        .map((note) => `${note.dataset.rspCheckNote}: ${note.value.trim() || 'Not recorded'}`)\n        .join('\\n');\n      supportLink.href = `mailto:support@roadspecparts.com?subject=${encodeURIComponent('RoadSpec part identification question')}&body=${encodeURIComponent(`I need help identifying a part.\\n\\n${lines}\\n\\nI understand the checklist is not a fitment guarantee.`)}`;\n    }\n  };\n\n  read();\n  update();\n  [...inputs, ...notes].forEach((field) => field.addEventListener('input', () => { save(); update(); }));\n  checklist.querySelector('[data-rsp-check-save]')?.addEventListener('click', () => {\n    save();\n    update('Saved in this browser. Your notes are not sent to RoadSpec.');\n    track('roadspec_connector_checklist_saved');\n  });\n  checklist.querySelector('[data-rsp-check-clear]')?.addEventListener('click', () => {\n    try { window.localStorage.removeItem(storageKey); } catch (_) {}\n    inputs.forEach((input) => { input.checked = false; });\n    notes.forEach((note) => { note.value = ''; });\n    update('Checklist cleared.');\n  });\n  checklist.querySelector('[data-rsp-check-print]')?.addEventListener('click', () => {\n    track('roadspec_connector_checklist_printed');\n    window.print();\n  });\n  checklist.querySelector('[data-rsp-support-link]')?.addEventListener('click', () => track('roadspec_connector_support_opened'));\n})();\n"],
  "mappings": "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",
  "names": ["status"]
}
