{
  "version": 3,
  "sources": ["/cdn/shop/t/38/assets/mode-switcher.js?view=wholesale"],
  "sourcesContent": ["/**\n * Mode Switcher \u2014 Simulates Retail / Wholesale customer tag from the frontend.\n * State stored in localStorage under 'cf_customer_mode'. Default: 'retail'.\n * Note: Mode switching has been transitioned to external wholesale link (https://colorfastapparelws.com/).\n */\n(function () {\n  'use strict';\n\n  var STORAGE_KEY = 'cf_customer_mode';\n  var RETAIL     = 'retail';\n  var WHOLESALE  = 'wholesale';\n\n  // \u2500\u2500 Storage / Legacy cleanup \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  try {\n    if (localStorage.getItem(STORAGE_KEY) === WHOLESALE) {\n      localStorage.removeItem(STORAGE_KEY);\n    }\n  } catch (e) {}\n\n  function getMode() {\n    return RETAIL;\n  }\n  function saveMode(mode) {\n    try { localStorage.setItem(STORAGE_KEY, mode); } catch (e) {}\n  }\n\n  function clearCart() {\n    return fetch('/cart/clear.js', {\n      method: 'POST',\n      credentials: 'same-origin',\n      headers: {\n        'Accept': 'application/json',\n        'Content-Type': 'application/json'\n      },\n      body: JSON.stringify({})\n    }).catch(function () {});\n  }\n\n  // \u2500\u2500 Page detection \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  // window.CF is injected by theme.liquid before this script loads.\n  function pageType() {\n    if (window.CF && window.CF.pageType) return window.CF.pageType;\n    // Fallback: URL-based detection (strips optional locale prefix)\n    var p = window.location.pathname.replace(/^\\/[a-z]{2}(-[a-z]{2})?(?=\\/)/, '');\n    if (p === '/' || p === '') return 'index';\n    if (p.indexOf('/products/')   !== -1) return 'product';\n    if (p.indexOf('/collections/') !== -1) return 'collection';\n    return 'other';\n  }\n\n  function templateSuffix() {\n    return (window.CF && window.CF.templateSuffix) || '';\n  }\n\n  function isOnWholesaleView() {\n    return new URLSearchParams(window.location.search).get('view') === 'wholesale'\n      || templateSuffix() === 'wholesale';\n  }\n\n  function isWholesaleHomePage() {\n    return /\\/pages\\/home$/.test(window.location.pathname);\n  }\n\n  // \u2500\u2500 Routing (runs synchronously in <head>, before DOM is built) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  // Replicates layout/theme.liquid redirect logic for simulated users.\n  function handleRouting(mode) {\n    var pt = pageType();\n\n    if (mode === WHOLESALE) {\n      if (pt === 'index') {\n        window.location.replace('/pages/home');\n        return true;\n      }\n      if ((pt === 'product' || pt === 'collection') && !isOnWholesaleView()) {\n        window.location.replace(window.location.pathname + '?view=wholesale');\n        return true;\n      }\n    } else {\n      if (isWholesaleHomePage()) {\n        window.location.replace('/');\n        return true;\n      }\n      // Check URL param only \u2014 not templateSuffix() \u2014 to avoid a loop where\n      // templateSuffix could unexpectedly be 'wholesale' without ?view= in the URL.\n      if (new URLSearchParams(window.location.search).get('view') === 'wholesale') {\n        window.location.replace(window.location.pathname);\n        return true;\n      }\n    }\n    return false;\n  }\n\n  // \u2500\u2500 Navigate on switch \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  function navigateForMode(targetMode) {\n    var pt = pageType();\n\n    if (targetMode === WHOLESALE) {\n      if (pt === 'index') {\n        window.location.replace('/pages/home');\n        return;\n      }\n      if (pt === 'product' || pt === 'collection') {\n        var base = window.location.pathname;\n        window.location.replace(base + '?view=wholesale');\n        return;\n      }\n    } else {\n      if (isWholesaleHomePage()) {\n        window.location.replace('/');\n        return;\n      }\n      if (isOnWholesaleView()) {\n        window.location.replace(window.location.pathname);\n        return;\n      }\n    }\n    window.location.reload();\n  }\n\n  // \u2500\u2500 DOM updates \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  function applyBodyClass(mode) {\n    document.body.classList.toggle('is-wholesale', mode === WHOLESALE);\n    document.body.classList.toggle('is-retail',    mode !== WHOLESALE);\n    document.body.setAttribute('data-customer-mode', mode);\n    // Keep <html> class in sync (set early for CSS, confirmed here after body exists).\n    document.documentElement.classList.toggle('is-wholesale', mode === WHOLESALE);\n    document.documentElement.classList.toggle('is-retail',    mode !== WHOLESALE);\n  }\n\n  // Sections output data-visible-for via inline scripts in sections/*.liquid.\n  // Inline style with !important overrides the Liquid-injected stylesheet rule.\n  function applySectionVisibility(mode) {\n    document.querySelectorAll('[data-visible-for]').forEach(function (el) {\n      var v = el.dataset.visibleFor;\n      if (!v || v === 'all') return;\n\n      if (mode === WHOLESALE) {\n        el.style.setProperty('display', v === 'wholesale_only' ? 'block' : 'none', 'important');\n      } else {\n        if (v === 'wholesale_only') {\n          el.style.setProperty('display', 'none', 'important');\n        } else {\n          el.style.setProperty('display', 'block', 'important');\n        }\n      }\n    });\n  }\n\n  // card-product.liquid sets data-whole server-side; mirror it client-side.\n  function applyProductCards(mode) {\n    document.querySelectorAll('[data-whole]').forEach(function (el) {\n      el.dataset.whole = String(mode === WHOLESALE);\n    });\n  }\n\n  // Logo points to /pages/home for wholesale, / for retail.\n  function applyLogoLink(mode) {\n    var header = document.querySelector('#header-component, .header');\n    if (!header) return;\n    header.querySelectorAll('a').forEach(function (a) {\n      var href = a.getAttribute('href');\n      if (mode === WHOLESALE && href === '/') {\n        a.dataset.cfOriginalHref = '/';\n        a.setAttribute('href', '/pages/home');\n      } else if (mode === RETAIL && a.dataset.cfOriginalHref) {\n        a.setAttribute('href', a.dataset.cfOriginalHref);\n        delete a.dataset.cfOriginalHref;\n      }\n    });\n  }\n\n  // \u2500\u2500 Init \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  var mode = getMode();\n\n  // Apply mode class to <html> synchronously (body doesn't exist yet in <head>).\n  // This lets the CSS rule [data-menu-for] hide the wrong menu before any paint.\n  document.documentElement.classList.toggle('is-wholesale', mode === WHOLESALE);\n  document.documentElement.classList.toggle('is-retail',    mode !== WHOLESALE);\n\n  // In the theme editor, skip all navigation redirects \u2014 just apply visual state.\n  var isDesignMode = !!(window.Shopify && window.Shopify.designMode);\n\n  // Handle routing synchronously. If a redirect fires, exit \u2014 the rest runs\n  // after navigation on the target page.\n  if (!isDesignMode && handleRouting(mode)) return;\n\n  // \u2500\u2500 DOM-dependent updates (run after HTML is parsed) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  function init() {\n    applyBodyClass(mode);\n    applySectionVisibility(mode);\n    applyProductCards(mode);\n    applyLogoLink(mode);\n  }\n\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', init);\n  } else {\n    init();\n  }\n})();\n"],
  "mappings": "CAKC,UAAY,CACX,aAEA,IAAI,YAAc,mBACd,OAAa,SACb,UAAa,YAGjB,GAAI,CACE,aAAa,QAAQ,WAAW,IAAM,WACxC,aAAa,WAAW,WAAW,CAEvC,OAAS,EAAG,CAAC,CAEb,SAAS,SAAU,CACjB,OAAO,MACT,CACA,SAAS,SAASA,MAAM,CACtB,GAAI,CAAE,aAAa,QAAQ,YAAaA,KAAI,CAAG,OAAS,EAAG,CAAC,CAC9D,CAEA,SAAS,WAAY,CACnB,OAAO,MAAM,iBAAkB,CAC7B,OAAQ,OACR,YAAa,cACb,QAAS,CACP,OAAU,mBACV,eAAgB,kBAClB,EACA,KAAM,KAAK,UAAU,CAAC,CAAC,CACzB,CAAC,EAAE,MAAM,UAAY,CAAC,CAAC,CACzB,CAIA,SAAS,UAAW,CAClB,GAAI,OAAO,IAAM,OAAO,GAAG,SAAU,OAAO,OAAO,GAAG,SAEtD,IAAI,EAAI,OAAO,SAAS,SAAS,QAAQ,gCAAiC,EAAE,EAC5E,OAAI,IAAM,KAAO,IAAM,GAAW,QAC9B,EAAE,QAAQ,YAAY,IAAQ,GAAW,UACzC,EAAE,QAAQ,eAAe,IAAM,GAAW,aACvC,OACT,CAEA,SAAS,gBAAiB,CACxB,OAAQ,OAAO,IAAM,OAAO,GAAG,gBAAmB,EACpD,CAEA,SAAS,mBAAoB,CAC3B,OAAO,IAAI,gBAAgB,OAAO,SAAS,MAAM,EAAE,IAAI,MAAM,IAAM,aAC9D,eAAe,IAAM,WAC5B,CAEA,SAAS,qBAAsB,CAC7B,MAAO,iBAAiB,KAAK,OAAO,SAAS,QAAQ,CACvD,CAIA,SAAS,cAAcA,MAAM,CAC3B,IAAI,GAAK,SAAS,EAElB,GAAIA,QAAS,UAAW,CACtB,GAAI,KAAO,QACT,cAAO,SAAS,QAAQ,aAAa,EAC9B,GAET,IAAK,KAAO,WAAa,KAAO,eAAiB,CAAC,kBAAkB,EAClE,cAAO,SAAS,QAAQ,OAAO,SAAS,SAAW,iBAAiB,EAC7D,EAEX,KAAO,CACL,GAAI,oBAAoB,EACtB,cAAO,SAAS,QAAQ,GAAG,EACpB,GAIT,GAAI,IAAI,gBAAgB,OAAO,SAAS,MAAM,EAAE,IAAI,MAAM,IAAM,YAC9D,cAAO,SAAS,QAAQ,OAAO,SAAS,QAAQ,EACzC,EAEX,CACA,MAAO,EACT,CAGA,SAAS,gBAAgB,WAAY,CACnC,IAAI,GAAK,SAAS,EAElB,GAAI,aAAe,UAAW,CAC5B,GAAI,KAAO,QAAS,CAClB,OAAO,SAAS,QAAQ,aAAa,EACrC,MACF,CACA,GAAI,KAAO,WAAa,KAAO,aAAc,CAC3C,IAAI,KAAO,OAAO,SAAS,SAC3B,OAAO,SAAS,QAAQ,KAAO,iBAAiB,EAChD,MACF,CACF,KAAO,CACL,GAAI,oBAAoB,EAAG,CACzB,OAAO,SAAS,QAAQ,GAAG,EAC3B,MACF,CACA,GAAI,kBAAkB,EAAG,CACvB,OAAO,SAAS,QAAQ,OAAO,SAAS,QAAQ,EAChD,MACF,CACF,CACA,OAAO,SAAS,OAAO,CACzB,CAGA,SAAS,eAAeA,MAAM,CAC5B,SAAS,KAAK,UAAU,OAAO,eAAgBA,QAAS,SAAS,EACjE,SAAS,KAAK,UAAU,OAAO,YAAgBA,QAAS,SAAS,EACjE,SAAS,KAAK,aAAa,qBAAsBA,KAAI,EAErD,SAAS,gBAAgB,UAAU,OAAO,eAAgBA,QAAS,SAAS,EAC5E,SAAS,gBAAgB,UAAU,OAAO,YAAgBA,QAAS,SAAS,CAC9E,CAIA,SAAS,uBAAuBA,MAAM,CACpC,SAAS,iBAAiB,oBAAoB,EAAE,QAAQ,SAAU,GAAI,CACpE,IAAI,EAAI,GAAG,QAAQ,WACf,CAAC,GAAK,IAAM,QAEZA,QAAS,UACX,GAAG,MAAM,YAAY,UAAW,IAAM,iBAAmB,QAAU,OAAQ,WAAW,EAElF,IAAM,iBACR,GAAG,MAAM,YAAY,UAAW,OAAQ,WAAW,EAEnD,GAAG,MAAM,YAAY,UAAW,QAAS,WAAW,EAG1D,CAAC,CACH,CAGA,SAAS,kBAAkBA,MAAM,CAC/B,SAAS,iBAAiB,cAAc,EAAE,QAAQ,SAAU,GAAI,CAC9D,GAAG,QAAQ,MAAQ,OAAOA,QAAS,SAAS,CAC9C,CAAC,CACH,CAGA,SAAS,cAAcA,MAAM,CAC3B,IAAI,OAAS,SAAS,cAAc,4BAA4B,EAC3D,QACL,OAAO,iBAAiB,GAAG,EAAE,QAAQ,SAAU,EAAG,CAChD,IAAI,KAAO,EAAE,aAAa,MAAM,EAC5BA,QAAS,WAAa,OAAS,KACjC,EAAE,QAAQ,eAAiB,IAC3B,EAAE,aAAa,OAAQ,aAAa,GAC3BA,QAAS,QAAU,EAAE,QAAQ,iBACtC,EAAE,aAAa,OAAQ,EAAE,QAAQ,cAAc,EAC/C,OAAO,EAAE,QAAQ,eAErB,CAAC,CACH,CAGA,IAAI,KAAO,QAAQ,EAInB,SAAS,gBAAgB,UAAU,OAAO,eAAgB,OAAS,SAAS,EAC5E,SAAS,gBAAgB,UAAU,OAAO,YAAgB,OAAS,SAAS,EAG5E,IAAI,aAAe,CAAC,EAAE,OAAO,SAAW,OAAO,QAAQ,YAIvD,GAAI,CAAC,cAAgB,cAAc,IAAI,EAAG,OAG1C,SAAS,MAAO,CACd,eAAe,IAAI,EACnB,uBAAuB,IAAI,EAC3B,kBAAkB,IAAI,EACtB,cAAc,IAAI,CACpB,CAEI,SAAS,aAAe,UAC1B,SAAS,iBAAiB,mBAAoB,IAAI,EAElD,KAAK,CAET,GAAG",
  "names": ["mode"]
}
