{
  "version": 3,
  "sources": ["/cdn/shop/t/12/assets/vf-header-ymm.js?vf-rev=4"],
  "sourcesContent": ["(() => {\n  const initialize = (form) => {\n    if (form.dataset.initialized === 'true') return;\n\n    form.dataset.initialized = 'true';\n\n  const endpoint = form.dataset.convermaxEndpoint;\n  const yearSelect = form.querySelector('[name=\"year\"]');\n  const makeSelect = form.querySelector('[name=\"make\"]');\n  const modelSelect = form.querySelector('[name=\"model\"]');\n  const submit = form.querySelector('[type=\"submit\"]');\n  const status = form.querySelector('.vf-header-ymm__status');\n\n  const baseParams = {\n    mode: 'YMM',\n    'extra.country': 'us',\n    'extra.currency': 'usd',\n    'extra.currencyrate': '1.0',\n    'extra.locale': document.documentElement.lang || 'en',\n  };\n\n  const resetSelect = (select, label) => {\n    select.replaceChildren(new Option(label, ''));\n    select.disabled = true;\n  };\n\n  const setOptions = (select, label, values) => {\n    select.replaceChildren(new Option(label, ''));\n    values.forEach(({ Value, Term }) => select.add(new Option(Value, Term || Value)));\n    select.disabled = values.length === 0;\n  };\n\n  const requestFacets = async (selections = []) => {\n    const params = new URLSearchParams(baseParams);\n    selections.forEach(({ field, selection }, index) => {\n      params.set(`facet.${index}.field`, field);\n      params.set(`facet.${index}.selection`, selection);\n    });\n    params.set('extra.vehiclevaluejustreplaced', 'true');\n\n    const response = await fetch(`${endpoint}?${params}`, { credentials: 'omit' });\n    if (!response.ok) throw new Error(`Convermax returned ${response.status}`);\n    return response.json();\n  };\n\n  const facetValues = (response, field) =>\n    response.Facets?.find((facet) => facet.FieldName === field)?.Values || [];\n\n  const setLoading = (message) => {\n    status.textContent = message;\n    form.setAttribute('aria-busy', message ? 'true' : 'false');\n  };\n\n  const syncSubmit = () => {\n    submit.disabled = !(yearSelect.value && makeSelect.value && modelSelect.value);\n  };\n\n  const initializeYears = async () => {\n    try {\n      setLoading('Loading vehicles\u2026');\n      const response = await requestFacets();\n      setOptions(yearSelect, 'Year', facetValues(response, 'Year'));\n      setLoading('');\n    } catch (error) {\n      console.error('[VF header YMM] Failed to load years', error);\n      setLoading('Vehicle search is temporarily unavailable.');\n    }\n  };\n\n  yearSelect.addEventListener('change', async () => {\n    resetSelect(makeSelect, 'Make');\n    resetSelect(modelSelect, 'Model');\n    syncSubmit();\n    if (!yearSelect.value) return;\n\n    try {\n      setLoading('Loading makes\u2026');\n      const response = await requestFacets([{ field: 'Year', selection: yearSelect.value }]);\n      setOptions(makeSelect, 'Make', facetValues(response, 'Make'));\n      setLoading('');\n    } catch (error) {\n      console.error('[VF header YMM] Failed to load makes', error);\n      setLoading('Unable to load makes. Please try again.');\n    }\n  });\n\n  makeSelect.addEventListener('change', async () => {\n    resetSelect(modelSelect, 'Model');\n    syncSubmit();\n    if (!makeSelect.value) return;\n\n    try {\n      setLoading('Loading models\u2026');\n      const response = await requestFacets([\n        { field: 'Year', selection: yearSelect.value },\n        { field: 'Make', selection: makeSelect.value },\n      ]);\n      setOptions(modelSelect, 'Model', facetValues(response, 'Model'));\n      setLoading('');\n    } catch (error) {\n      console.error('[VF header YMM] Failed to load models', error);\n      setLoading('Unable to load models. Please try again.');\n    }\n  });\n\n  modelSelect.addEventListener('change', syncSubmit);\n\n  form.addEventListener('submit', (event) => {\n    event.preventDefault();\n    if (!yearSelect.value || !makeSelect.value || !modelSelect.value) return;\n\n    const path = [\n      'Year', yearSelect.value,\n      'Make', makeSelect.value,\n      'Model', modelSelect.value,\n    ].map(encodeURIComponent).join('/');\n\n    window.location.assign(`/collections?${path}`);\n  });\n\n    initializeYears();\n  };\n\n  const boot = () => {\n    const form = document.querySelector('#convermax-header-ymm');\n    if (form) initialize(form);\n  };\n\n  boot();\n  document.addEventListener('DOMContentLoaded', boot, { once: true });\n\n  // Horizon can replace the rendered header during section hydration. Re-initialize\n  // the replacement form without duplicating listeners on the current instance.\n  new MutationObserver(boot).observe(document.documentElement, {\n    childList: true,\n    subtree: true,\n  });\n})();\n"],
  "mappings": "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",
  "names": []
}
