{
  "version": 3,
  "sources": ["/cdn/shop/t/29/assets/fcc-vehicle-memory.js?x=1794625681972"],
  "sourcesContent": ["/* FCC vehicle memory (Jesse, 13 Nov 2026): \"if someone enters their make, model and year on one page's configurator ...\n   their vehicle information saves and auto enters on the next page's configurator so they do not need to re type it.\"\n   - Saves: a vehicle finished in any configurator (its last field picked, or typed in by hand where the page allows it)\n     is kept for this visit only (Jesse, 13 Nov: \"It should only save per session. Not if someone exits and comes back\n     later\"): sessionStorage \"fcc_vehicle\", which the browser drops when the tab is closed, and which is also dropped after\n     30 minutes without a page view (Shopify's own session length), so a tab left open overnight starts fresh too.\n   - Fills: on the next configurator page, an untouched vehicle form is filled with it. A form the visitor has already\n     started is never changed, and a vehicle the page's list does not have is left out whole (never half filled).\n   The forms: the OG and colour pages' Step 1 (Year, Make, Model; snippets/car-configurator-master), the OG v2 build page\n   and the designer (Make, Model, Year; fcc-og-configurator.js, fcc-designer.js), OG v3 (fcc-og-v3.js). Their own scripts\n   are not changed: this one picks the options the way a visitor does, so each page reacts exactly as to a real pick.\n   Source: Desktop/Dev/FCC Vehicle Memory. */\n(function () {\n  'use strict';\n  if (window.__fccVehicleMemory) return;\n  window.__fccVehicleMemory = true;\n\n  var KEY = 'fcc_vehicle';\n  var IDLE_MS = 30 * 60 * 1000;\n  var YEAR = /^(19|20)\\d\\d$/;\n  // The first live version (13 Nov 2026, from 9:06 PM CT) kept the vehicle across visits in localStorage; clear it.\n  try { localStorage.removeItem(KEY); } catch (e) {}\n  var byId = function (id) { return document.getElementById(id); };\n  var one = function (sel) { return document.querySelector(sel); };\n  var all = function (sel) { return Array.prototype.slice.call(document.querySelectorAll(sel)); };\n  var norm = function (s) { return String(s == null ? '' : s).toLowerCase().replace(/[^a-z0-9]/g, ''); };\n  // The colour pages show the dashboard's make names as they are; the other pages tidy a few (\"Mercedes\" -> \"Mercedes-Benz\").\n  var SAME_MAKE = { mercedes: 'mercedesbenz', smartcar: 'smart', dodgeram: 'ram' };\n  var normMake = function (s) { var n = norm(s); return SAME_MAKE[n] || n; };\n\n  /* ---------- the saved vehicle ---------- */\n  function write(v) { try { sessionStorage.setItem(KEY, JSON.stringify(v)); } catch (e) {} }\n  function read() {\n    try {\n      var v = JSON.parse(sessionStorage.getItem(KEY) || 'null');\n      if (!v || !v.make || !v.model || !YEAR.test(String(v.year))) return null;\n      if (!(Date.now() - (v.seen || 0) < IDLE_MS)) { sessionStorage.removeItem(KEY); return null; } // the visit has ended\n      return v;\n    } catch (e) { return null; }\n  }\n  // Each page view keeps the visit going.\n  function touch(v) { v.seen = Date.now(); write(v); }\n  function save(year, make, model, typed) {\n    var v = { year: String(year || '').trim(), make: String(make || '').trim(), model: String(model || '').trim() };\n    if (!v.make || !v.model || !YEAR.test(v.year)) return;\n    v.typed = !!typed; v.listed = !typed; v.at = v.seen = Date.now();\n    var old = read();\n    if (old && String(old.year) === v.year && normMake(old.make) === normMake(v.make) && norm(old.model) === norm(v.model) && !!old.typed === v.typed) { touch(old); return; }\n    write(v);\n  }\n\n  /* ---------- picking options the way a visitor does ---------- */\n  var filling = false;\n  // Exact names only (letters and digits compared, case ignored), so the fill never guesses between similar models.\n  function optionFor(sel, text, isMake) {\n    if (!sel) return null;\n    var want = isMake ? normMake(text) : norm(text);\n    var opts = Array.prototype.filter.call(sel.options, function (o) { return o.value && o.value !== '__other' && !o.disabled; });\n    for (var i = 0; i < opts.length; i++) if ((isMake ? normMake(opts[i].value) : norm(opts[i].value)) === want) return opts[i];\n    return null;\n  }\n  function choose(sel, value) {\n    sel.value = value;\n    sel.dispatchEvent(new Event('change', { bubbles: true }));\n  }\n  function pick(sel, text, isMake) {\n    var o = sel && !sel.disabled && optionFor(sel, text, isMake);\n    if (!o) return false;\n    choose(sel, o.value);\n    return true;\n  }\n  function type(input, value) {\n    input.value = value;\n    input.dispatchEvent(new Event('input', { bubbles: true }));\n    input.dispatchEvent(new Event('change', { bubbles: true }));\n  }\n  function waitFor(test, ms) {\n    return new Promise(function (done) {\n      var t0 = Date.now();\n      (function tick() {\n        var r = null;\n        try { r = test(Date.now() - t0); } catch (e) {}\n        if (r || Date.now() - t0 > ms) done(r || null); else setTimeout(tick, 150);\n      })();\n    });\n  }\n  // OG v3 moves the page down to the next step when a vehicle is chosen; a fill on arrival keeps the page where it is.\n  function stayPut(fn) {\n    var x = window.scrollX, y = window.scrollY, real = window.scrollTo;\n    window.scrollTo = function () {};\n    try { fn(); } finally { window.scrollTo = real; }\n    if (window.scrollY !== y) window.scrollTo(x, y);\n  }\n\n  /* ---------- 1. The OG and colour pages: Step 1, Year then Make then Model ---------- */\n  // The page shows a stored list first and swaps in the dashboard's live list when it arrives (isVercelLoaded); the fill\n  // waits for the live list, up to 12 seconds, so the names match the other pages.\n  function liveListLoaded() { try { return isVercelLoaded === true; } catch (e) { return false; } } // eslint-disable-line no-undef\n  // Every form tries the page's list first (a vehicle typed in by hand on one page may be listed on another), and only a\n  // typed vehicle the list does not have goes into typed fields, where the page has them.\n  function fillStep1(v) {\n    var yr = byId('configurator-year');\n    if (!yr) return;\n    waitFor(function (t) {\n      if (yr.value) return 'started';\n      return (liveListLoaded() || t > 12000) && optionFor(yr, v.year) ? 'go' : null;\n    }, 20000).then(function (r) {\n      if (r !== 'go') return;\n      var mk = byId('configurator-brand'), md = byId('configurator-model');\n      if (!mk || !md || mk.value || md.value) return;\n      filling = true;\n      try {\n        var ok = pick(yr, v.year) && pick(mk, v.make, true) && pick(md, v.model);\n        if (!ok) choose(yr, ''); // the page's own reset clears Make and Model with it\n      } finally { filling = false; }\n    });\n  }\n\n  /* ---------- 2. The OG v2 build page and the designer: Make then Model then Year ---------- */\n  // Each pick redraws the form, so every field is found again after the one before it. The designer draws the form twice\n  // (computer and phone layouts) from one set of answers; a typed vehicle is typed into both. While its vehicle list is\n  // still loading, the designer shows empty typed fields: that is not a shopper's start, so the fill waits for the list.\n  function fillBuild(v) {\n    if (!byId('fcc-ogc') && !byId('fcc-designer')) return;\n    var sel = function (f) { return one('[data-select=\"' + f + '\"]'); };\n    var typedIn = function () { return all('[data-field=\"make\"], [data-field=\"model\"], [data-field=\"year\"]').some(function (i) { return i.value.trim(); }); };\n    waitFor(function () {\n      var mk = sel('make');\n      if ((mk && mk.value) || typedIn()) return 'started';\n      if (!mk) return one('[data-vehicle-back]') ? 'started' : null; // typed fields the shopper opened with \"isn't listed\"\n      return !mk.disabled && mk.options.length > 2 ? 'go' : null;\n    }, 25000).then(function (r) {\n      if (r !== 'go') return;\n      filling = true;\n      try {\n        if (pick(sel('make'), v.make, true) && pick(sel('model'), v.model) && pick(sel('year'), v.year)) return;\n        if (sel('make') && sel('make').value) choose(sel('make'), '');\n        if (!v.typed || !sel('make')) return;\n        choose(sel('make'), '__other');\n        ['make', 'model', 'year'].forEach(function (f) { all('[data-field=\"' + f + '\"]').forEach(function (i) { type(i, v[f]); }); });\n      } finally { filling = false; }\n    });\n  }\n\n  /* ---------- 3. OG v3: Make then Model then Year, which opens the seat sets ---------- */\n  function fillV3(v) {\n    var mk = byId('v3-make'), md = byId('v3-model'), yr = byId('v3-year'), manual = byId('v3-manual'), step1 = byId('v3-step1');\n    if (!mk || !md || !yr || !manual) return;\n    waitFor(function () {\n      if (mk.value || !manual.hidden || (step1 && step1.hidden)) return 'started';\n      return !mk.disabled && mk.options.length > 2 ? 'go' : null;\n    }, 25000).then(function (r) {\n      if (r !== 'go') return;\n      filling = true;\n      try {\n        if (pick(mk, v.make, true) && pick(md, v.model) && optionFor(yr, v.year)) { stayPut(function () { pick(yr, v.year); }); return; }\n        if (mk.value) choose(mk, '');\n        if (!v.typed) return;\n        choose(mk, '__other');\n        var f = { make: byId('v3-mmake'), model: byId('v3-mmodel'), year: byId('v3-myear') }, go = byId('v3-mgo');\n        if (!f.make || !f.model || !f.year || !go) return;\n        type(f.make, v.make); type(f.model, v.model); type(f.year, v.year);\n        stayPut(function () { go.click(); });\n      } finally { filling = false; }\n    });\n  }\n\n  /* ---------- saving: a vehicle finished in any of the forms ---------- */\n  // Capture phase, so the three answers are read before a page redraws its form.\n  document.addEventListener('change', function (e) {\n    var t = e.target;\n    if (filling || !t || !t.matches || !t.value) return;\n    if (t.id === 'configurator-model') {\n      var y = byId('configurator-year'), b = byId('configurator-brand');\n      if (y && b) save(y.value, b.value, t.value, false);\n    } else if (t.matches('[data-select=\"year\"]')) {\n      var box = t.closest('[data-body]') || document;\n      var m1 = box.querySelector('[data-select=\"make\"]'), m2 = box.querySelector('[data-select=\"model\"]');\n      if (m1 && m2) save(t.value, m1.value, m2.value, false);\n    } else if (t.id === 'v3-year') {\n      var a = byId('v3-make'), c = byId('v3-model');\n      if (a && c) save(t.value, a.value, c.value, false);\n    }\n  }, true);\n  // Typed in by hand (\"My vehicle isn't listed\"), saved once all three are in.\n  function onTyped(e) {\n    var t = e.target;\n    if (filling || !t || !t.matches) return;\n    if (t.matches('[data-field=\"make\"], [data-field=\"model\"], [data-field=\"year\"]')) {\n      var box = t.closest('[data-body]') || document;\n      var g = function (f) { var i = box.querySelector('[data-field=\"' + f + '\"]'); return i ? i.value : ''; };\n      save(g('year'), g('make'), g('model'), true);\n    } else if (/^v3-m(make|model|year)$/.test(t.id)) {\n      var h = function (id) { var i = byId(id); return i ? i.value : ''; };\n      save(h('v3-myear'), h('v3-mmake'), h('v3-mmodel'), true);\n    }\n  }\n  document.addEventListener('input', onTyped, true);\n  document.addEventListener('change', onTyped, true);\n\n  /* ---------- start ---------- */\n  function start() {\n    var v = read();\n    if (!v) return;\n    touch(v);\n    fillStep1(v);\n    fillBuild(v);\n    fillV3(v);\n  }\n  if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', start); else start();\n  // Back and forward restore a page as it was left; fill it only if its form is still empty.\n  window.addEventListener('pageshow', function (e) { if (e.persisted) start(); });\n})();\n"],
  "mappings": "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",
  "names": []
}
