{
  "version": 3,
  "sources": ["/cdn/shop/t/64/assets/stackhouse-order-builder-routing.js?codex_v=20261021a"],
  "sourcesContent": ["(function initializeOrderBuilderRouting(global) {\n  'use strict';\n\n  if (!global || !global.document || global.StackhouseOrderBuilderRouting) return;\n\n  var document = global.document;\n  var routingScript = document.getElementById('StackhouseOrderBuilderRoutingScript');\n  var routingEnabled = routingScript && routingScript.getAttribute('data-order-builder-default-enabled') === 'true';\n  var sunsetEnabled = routingScript && routingScript.getAttribute('data-classic-builder-sunset-enabled') === 'true';\n\n  if (!routingEnabled && !sunsetEnabled) return;\n\n  var classicChoiceKey = 'stackhouse:order-builder-choice:v1';\n\n  function currentParameters() {\n    try {\n      return new URLSearchParams(global.location.search || '');\n    } catch (error) {\n      return new URLSearchParams();\n    }\n  }\n\n  function classicBuilderRequested() {\n    var parameters = currentParameters();\n    return parameters.get('builder') === 'classic' || (!sunsetEnabled && parameters.get('source') === 'classic_fallback');\n  }\n\n  function productContext(handle) {\n    var aliases = {'photo-prints': 'professional-photo-prints', 'loose-canvas-prints': 'rolled-canvas-prints'};\n    var families = ['giclee-fine-art-prints', 'professional-photo-prints', 'rolled-canvas-prints', 'mini-prints', 'mounted-prints', 'framed-prints', 'gallery-wrapped-canvas-prints', 'clear-bagged-prints', 'retail-ready-prints', 'matting-package-prints', 'test-print'];\n    handle = aliases[handle] || handle;\n    for (var i = 0; i < families.length; i++) {\n      if (handle === families[i]) return {product: handle, size: ''};\n      var prefix = families[i] + '-';\n      if (handle.indexOf(prefix) === 0 && /^\\d+(?:\\.\\d+)?x\\d+(?:\\.\\d+)?$/.test(handle.slice(prefix.length))) {\n        return {product: families[i], size: handle.slice(prefix.length)};\n      }\n    }\n    return null;\n  }\n\n  function legacyDestination(value, source) {\n    var url;\n    try { url = new URL(value, global.location.origin); } catch (error) { return ''; }\n    if (url.origin !== global.location.origin || url.searchParams.get('builder') === 'classic') return '';\n    var path = url.pathname.replace(/\\/+$/, '');\n    var orderPage = path.match(/^(.*)\\/pages\\/order-now$/);\n    var productPage = path.match(/^(.*)\\/products\\/([^/]+)$/);\n    if (!orderPage && (!productPage || url.searchParams.get('open_modal') !== 'true')) return '';\n    if (productPage) {\n      var context = productContext(productPage[2]);\n      if (context) {\n        url.searchParams.set('product', context.product);\n        if (context.size) url.searchParams.set('size', context.size);\n      } else {\n        url.searchParams.delete('product');\n        url.searchParams.delete('size');\n      }\n    }\n    url.pathname = (orderPage || productPage)[1] + '/pages/start-order';\n    url.searchParams.delete('builder');\n    url.searchParams.delete('open_modal');\n    url.searchParams.delete('variant');\n    if (!url.searchParams.get('source') || url.searchParams.get('source') === 'classic_fallback') {\n      url.searchParams.set('source', source || 'legacy_order_handoff');\n    }\n    return url.pathname + url.search + url.hash;\n  }\n\n  function rememberClassicChoice() {\n    if (!classicBuilderRequested()) return;\n    try {\n      global.sessionStorage.setItem(classicChoiceKey, 'classic');\n    } catch (error) {}\n  }\n\n  function replacementUrl(anchor) {\n    var url;\n\n    if (!anchor) return '';\n    if (sunsetEnabled) return legacyDestination(anchor.href, anchor.dataset.orderBuilderSource);\n    if (anchor.hasAttribute('data-order-builder-classic')) return '';\n\n    try {\n      url = new URL(anchor.href, global.location.origin);\n    } catch (error) {\n      return '';\n    }\n\n    if (url.origin !== global.location.origin || url.pathname.replace(/\\/+$/, '') !== '/pages/order-now') {\n      return '';\n    }\n\n    url.pathname = '/pages/start-order';\n    url.searchParams.delete('builder');\n    url.searchParams.set('source', anchor.dataset.orderBuilderSource || 'primary_order_entry');\n    return url.pathname + url.search + url.hash;\n  }\n\n  function routeAnchor(anchor) {\n    if (sunsetEnabled && classicBuilderRequested()) {\n      try {\n        var supportUrl = new URL(anchor.href, global.location.origin);\n        if (supportUrl.origin === global.location.origin && supportUrl.searchParams.get('open_modal') === 'true') {\n          supportUrl.searchParams.set('builder', 'classic');\n          anchor.href = supportUrl.pathname + supportUrl.search + supportUrl.hash;\n        }\n      } catch (error) {}\n      return;\n    }\n    var destination = replacementUrl(anchor);\n    if (!destination) return;\n    anchor.href = destination;\n    anchor.setAttribute('data-order-builder-routed', 'true');\n  }\n\n  function routeOrderLinks(scope) {\n    if (!sunsetEnabled && classicBuilderRequested()) return;\n    var target = scope && scope.querySelectorAll ? scope : document;\n\n    if (target.matches && target.matches('a[href]')) routeAnchor(target);\n    target.querySelectorAll('a[href]').forEach(routeAnchor);\n  }\n\n  function initialize() {\n    if (sunsetEnabled && !classicBuilderRequested()) {\n      try { global.sessionStorage.removeItem(classicChoiceKey); } catch (error) {}\n      var destination = legacyDestination(global.location.href);\n      if (destination) {\n        global.location.replace(destination);\n        return;\n      }\n    } else {\n      rememberClassicChoice();\n    }\n    routeOrderLinks(document);\n\n    if (sunsetEnabled) {\n      document.addEventListener('click', function routeLegacyProductTrigger(event) {\n        if (classicBuilderRequested() || !event.target || !event.target.closest || !event.target.closest('.open__popup')) return;\n        var url = new URL(global.location.href);\n        url.searchParams.set('open_modal', 'true');\n        var destination = legacyDestination(url.href, 'legacy_product_trigger');\n        if (!destination) return;\n        event.preventDefault();\n        event.stopImmediatePropagation();\n        global.location.assign(destination);\n      }, true);\n    }\n\n    new MutationObserver(function routeAddedLinks(mutations) {\n      mutations.forEach(function routeMutation(mutation) {\n        mutation.addedNodes.forEach(function routeNode(node) {\n          if (node && node.nodeType === 1) routeOrderLinks(node);\n        });\n      });\n    }).observe(document.documentElement, { childList: true, subtree: true });\n  }\n\n  global.StackhouseOrderBuilderRouting = {\n    initialize: initialize,\n    routeOrderLinks: routeOrderLinks,\n    classicBuilderRequested: classicBuilderRequested,\n    legacyDestination: legacyDestination\n  };\n\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', initialize, { once: true });\n  } else {\n    initialize();\n  }\n})(window);\n"],
  "mappings": "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",
  "names": ["destination"]
}
