{
  "version": 3,
  "sources": ["/cdn/shop/t/3/assets/ps-cart-change-selection.js?ps=cart-change-selection-20260610a"],
  "sourcesContent": ["(function(win, doc) {\n  'use strict';\n\n  var LINK_CLASS = 'ps-cart-change-selection';\n  var DEFAULT_REDIRECT = '/touch_up_paint/';\n  var FAILURE_MESSAGE = 'Unable to remove this item. Please use the trash icon or reload the cart.';\n\n  function trim(value) {\n    return value == null ? '' : String(value).replace(/^\\s+|\\s+$/g, '');\n  }\n\n  function hasClass(el, className) {\n    return el && (' ' + el.className + ' ').indexOf(' ' + className + ' ') >= 0;\n  }\n\n  function closestChangeSelection(el) {\n    while (el && el !== doc) {\n      if (hasClass(el, LINK_CLASS)) return el;\n      el = el.parentNode;\n    }\n    return null;\n  }\n\n  function escapeHtml(value) {\n    return trim(value)\n      .replace(/&/g, '&amp;')\n      .replace(/</g, '&lt;')\n      .replace(/>/g, '&gt;')\n      .replace(/\"/g, '&quot;')\n      .replace(/'/g, '&#39;');\n  }\n\n  function getLine(button) {\n    var raw = trim(button.getAttribute('data-ps-line'));\n    var line = Number(raw);\n    if (!line || line < 1 || Math.floor(line) !== line) return 0;\n    return line;\n  }\n\n  function getRedirect(button) {\n    var redirect = trim(button.getAttribute('data-ps-redirect-url'));\n    if (redirect.indexOf(DEFAULT_REDIRECT) !== 0) return DEFAULT_REDIRECT;\n    return redirect;\n  }\n\n  function setBusy(button, busy) {\n    var original = button.getAttribute('data-ps-original-text') || '';\n    if (!original) {\n      original = button.textContent || '';\n      button.setAttribute('data-ps-original-text', original);\n    }\n    if (busy) {\n      button.setAttribute('data-ps-busy', 'true');\n      button.disabled = true;\n      button.textContent = 'Removing...';\n    } else {\n      button.removeAttribute('data-ps-busy');\n      button.disabled = false;\n      button.textContent = original;\n    }\n  }\n\n  function expireCookie(name, domain) {\n    var value = name + '=; Path=/; Max-Age=0; SameSite=Lax';\n    if (win.location && win.location.protocol === 'https:') value += '; Secure';\n    if (domain) value += '; Domain=' + domain;\n    doc.cookie = value;\n  }\n\n  function clearFallbackCookie() {\n    var host = win.location && win.location.hostname ? win.location.hostname : '';\n    var parts = host.split('.');\n    expireCookie('ps_cc', '');\n    if (host) expireCookie('ps_cc', host);\n    if (parts.length > 2) expireCookie('ps_cc', '.' + parts.slice(-2).join('.'));\n  }\n\n  function clearSessionContext() {\n    var storage;\n    var keys = [];\n    var i;\n    var key;\n    try {\n      storage = win.sessionStorage;\n      if (!storage) return;\n      storage.removeItem('ps_last_color_context');\n      storage.removeItem('ps_last_vehicle_context');\n      for (i = 0; i < storage.length; i++) {\n        key = storage.key(i);\n        if (key && (key.indexOf('ps-submitted-search:') === 0 || key.indexOf('ps-edit-restore:') === 0)) {\n          keys.push(key);\n        }\n      }\n      for (i = 0; i < keys.length; i++) {\n        storage.removeItem(keys[i]);\n      }\n    } catch (e) {}\n  }\n\n  function clearColorContext(button) {\n    var make = trim(button.getAttribute('data-ps-make'));\n    var makeSlug = trim(button.getAttribute('data-ps-make-slug'));\n    if (win.PS && win.PS.cc && typeof win.PS.cc.write === 'function') {\n      win.PS.cc.write({\n        make: make,\n        make_slug: makeSlug,\n        color: '',\n        code: '',\n        hex: '',\n        color_slug: '',\n        year: '',\n        model: '',\n        factory_code: '',\n        vehicle_scope: false\n      });\n    } else {\n      clearFallbackCookie();\n    }\n    clearSessionContext();\n  }\n\n  function removeLine(line, done) {\n    var xhr = new XMLHttpRequest();\n    xhr.open('POST', '/cart/change.js', true);\n    xhr.setRequestHeader('Content-Type', 'application/json');\n    xhr.setRequestHeader('Accept', 'application/json');\n    xhr.onreadystatechange = function() {\n      if (xhr.readyState !== 4) return;\n      done(xhr.status >= 200 && xhr.status < 300);\n    };\n    xhr.onerror = function() {\n      done(false);\n    };\n    xhr.send(JSON.stringify({ line: Number(line), quantity: 0 }));\n  }\n\n  function showFailure() {\n    win.alert(FAILURE_MESSAGE);\n  }\n\n  function openConfirm(button, callback) {\n    var itemLabel = trim(button.getAttribute('data-ps-item-label')) || 'this item';\n    var bodyText = 'This will remove \"' + itemLabel + '\" from your cart so you can choose the correct vehicle or color. Other items will stay in your cart.';\n    var body = 'This will remove &quot;' + escapeHtml(itemLabel) + '&quot; from your cart so you can choose the correct vehicle or color. Other items will stay in your cart.';\n    var modal;\n    if (win.PS && win.PS.Modal && typeof win.PS.Modal.open === 'function' && typeof win.Promise === 'function') {\n      try {\n        modal = win.PS.Modal.open({\n          title: 'Change vehicle or color?',\n          contentHtml: body,\n          contentClass: 'ps-cart-change-selection-modal-copy',\n          modalClass: 'ps-modal--cart-change-selection',\n          cancelLabel: 'Keep item',\n          okLabel: 'Remove item & choose again',\n          okAriaLabel: 'Remove item and choose again',\n          focusSelector: '.psm-cancel'\n        });\n        if (modal && typeof modal.then === 'function') {\n          modal.then(function(result) {\n            callback(!!(result && result.ok));\n          });\n          return;\n        }\n      } catch (e) {\n        modal = null;\n      }\n    }\n    callback(win.confirm('Change vehicle or color?\\n\\n' + bodyText));\n  }\n\n  function onClick(event) {\n    var button = closestChangeSelection(event.target || event.srcElement);\n    var line;\n    var redirectUrl;\n    if (!button) return;\n    if (event.preventDefault) event.preventDefault();\n    event.returnValue = false;\n    if (button.getAttribute('data-ps-busy') === 'true' || button.getAttribute('data-ps-dialog-open') === 'true') return;\n\n    line = getLine(button);\n    if (!line) {\n      showFailure();\n      return;\n    }\n    redirectUrl = getRedirect(button);\n\n    button.setAttribute('data-ps-dialog-open', 'true');\n    openConfirm(button, function(confirmed) {\n      button.removeAttribute('data-ps-dialog-open');\n      if (!confirmed) return;\n      setBusy(button, true);\n      removeLine(line, function(ok) {\n        if (ok) {\n          clearColorContext(button);\n          win.location.assign(redirectUrl);\n          return;\n        }\n        setBusy(button, false);\n        showFailure();\n      });\n    });\n  }\n\n  if (doc.addEventListener) {\n    doc.addEventListener('click', onClick, false);\n  } else if (doc.attachEvent) {\n    doc.attachEvent('onclick', onClick);\n  }\n})(window, document);\n"],
  "mappings": "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",
  "names": []
}
