{
  "version": 3,
  "sources": ["/cdn/shop/t/18/assets/artlines-recommendations-v3.js?al_media=2"],
  "sourcesContent": ["(function () {\n  var INDEX_GLOBAL = 'ARTLINES_VEHICLE_FINDER_INDEX';\n  var PRODUCT_TYPE_ORDER = ['Sticker', 'Mug', 'Poster', 'T-shirt', 'Hoodie'];\n  var CUSTOM_FALLBACK_HANDLE = 'custom-t-shirt';\n  var ANY_DESIGN_FALLBACKS = [\n    { handle: 'artlines-sticker', type: 'Sticker' },\n    { handle: 'artlines-mug', type: 'Mug' },\n    { handle: 'artlines-poster', type: 'Poster' },\n    { handle: 'artlines-hoodie', type: 'Hoodie' },\n  ];\n  var productCache = {};\n  var indexPromise = null;\n\n  function normalize(value) {\n    return String(value || '').trim().toLowerCase();\n  }\n\n  function handleList(value) {\n    return Array.from(new Set(String(value || '').split(',').map(function (handle) {\n      return normalize(handle);\n    }).filter(Boolean)));\n  }\n\n  function productTypeRank(product) {\n    var index = PRODUCT_TYPE_ORDER.indexOf(product.type);\n    return index === -1 ? PRODUCT_TYPE_ORDER.length : index;\n  }\n\n  function productCategory(product) {\n    var type = normalize(product && product.type);\n    if (type === 't-shirt' || type === 'shirt' || type === 'hoodie') return 'apparel';\n    if (type === 'sticker') return 'sticker';\n    if (type === 'mug') return 'mug';\n    if (type === 'poster') return 'poster';\n    return type || normalize(product && product.handle);\n  }\n\n  function productSort(a, b) {\n    return productTypeRank(a) - productTypeRank(b) || a.title.localeCompare(b.title);\n  }\n\n  function typeList(value) {\n    return Array.from(new Set(String(value || '').split(',').map(function (type) {\n      return normalize(type);\n    }).filter(Boolean)));\n  }\n\n  function productMatchesDesiredTypes(product, desiredTypes) {\n    return !desiredTypes.length || desiredTypes.indexOf(normalize(product.type)) !== -1;\n  }\n\n  function productUrl(handle) {\n    var root = window.Shopify && window.Shopify.routes ? window.Shopify.routes.root : '/';\n    return root + 'products/' + encodeURIComponent(handle);\n  }\n\n  function productJsonUrl(handle) {\n    return productUrl(handle) + '.js';\n  }\n\n  function sourceHandle(element) {\n    return handleList(element.dataset.sourceHandles || element.dataset.currentHandle)[0] || '';\n  }\n\n  function surfaceName(element) {\n    return element.dataset.surface || (element.closest('cart-drawer') ? 'cart_drawer' : 'product_page');\n  }\n\n  function loadIndex(src) {\n    if (window[INDEX_GLOBAL] && Array.isArray(window[INDEX_GLOBAL].vehicles)) {\n      return Promise.resolve(window[INDEX_GLOBAL]);\n    }\n\n    if (indexPromise) return indexPromise;\n    if (!src) return Promise.reject(new Error('Missing recommendation index source'));\n\n    indexPromise = new Promise(function (resolve, reject) {\n      var script = document.createElement('script');\n      script.src = src;\n      script.defer = true;\n      script.onload = function () {\n        if (window[INDEX_GLOBAL] && Array.isArray(window[INDEX_GLOBAL].vehicles)) {\n          resolve(window[INDEX_GLOBAL]);\n        } else {\n          reject(new Error('Recommendation index did not initialize'));\n        }\n      };\n      script.onerror = reject;\n      document.head.appendChild(script);\n    });\n\n    return indexPromise;\n  }\n\n  function fetchProduct(handle) {\n    if (!handle) return Promise.resolve(null);\n    if (productCache[handle]) return productCache[handle];\n\n    productCache[handle] = fetch(productJsonUrl(handle))\n      .then(function (response) {\n        if (!response.ok) throw new Error(response.status);\n        return response.json();\n      })\n      .catch(function () {\n        return null;\n      });\n\n    return productCache[handle];\n  }\n\n  function makeProductRecord(product, vehicle, reason) {\n    return {\n      kind: 'product',\n      reason: reason,\n      make: vehicle ? vehicle.make : '',\n      modelFamily: vehicle ? vehicle.modelFamily : '',\n      vehicleLabel: vehicle ? vehicle.label : '',\n      title: product.title,\n      handle: normalize(product.handle),\n      url: product.url || productUrl(product.handle),\n      type: product.type || '',\n      image: product.image || '',\n      hoverImage: product.hoverImage || '',\n      price: product.price || '',\n      multiVersion: Boolean(product.multiVersion),\n    };\n  }\n\n  function addCandidate(state, product, vehicle, reason, options) {\n    var handle = normalize(product && product.handle);\n    if (!handle || state.excluded.indexOf(handle) !== -1 || state.seen.indexOf(handle) !== -1) return;\n    var category = productCategory(product);\n    if (options && options.uniqueCategories && category && state.seenCategories.indexOf(category) !== -1) return;\n    state.seen.push(handle);\n    if (category && state.seenCategories.indexOf(category) === -1) state.seenCategories.push(category);\n    state.results.push(makeProductRecord(product, vehicle, reason));\n  }\n\n  function productTypesForVehicles(vehicles) {\n    return Array.from(new Set(vehicles.reduce(function (types, vehicle) {\n      (vehicle.products || []).forEach(function (product) {\n        if (product.type) types.push(product.type);\n      });\n      return types;\n    }, [])));\n  }\n\n  function addVehicleProducts(state, vehicles, reason) {\n    var candidates = vehicles.reduce(function (products, vehicle) {\n      var sorted = (vehicle.products || []).slice().sort(productSort);\n      sorted.forEach(function (product) {\n        products.push({ product: product, vehicle: vehicle });\n      });\n      return products;\n    }, []);\n\n    if (state.uniqueCategories) {\n      candidates.forEach(function (candidate) {\n        if (state.results.length >= state.limit) return;\n        addCandidate(state, candidate.product, candidate.vehicle, reason, { uniqueCategories: true });\n      });\n    }\n\n    candidates.forEach(function (candidate) {\n      if (state.results.length >= state.limit) return;\n      addCandidate(state, candidate.product, candidate.vehicle, reason);\n    });\n  }\n\n  function findSourceVehicles(vehicles, sourceHandles) {\n    return vehicles.filter(function (vehicle) {\n      return (vehicle.products || []).some(function (product) {\n        return sourceHandles.indexOf(normalize(product.handle)) !== -1;\n      });\n    });\n  }\n\n  function fallbackRecord(handle) {\n    return fetchProduct(handle).then(function (product) {\n      if (!product) return null;\n      var image = product.featured_image || (product.images || [])[0] || '';\n      var variant = (product.variants || []).find(function (item) { return item.available; }) || (product.variants || [])[0];\n      return {\n        kind: 'product',\n        reason: 'fallback',\n        make: '',\n        modelFamily: '',\n        vehicleLabel: '',\n        title: product.title,\n        handle: normalize(product.handle || handle),\n        url: product.url || productUrl(handle),\n        type: product.type || '',\n        image: image,\n        hoverImage: '',\n        price: variant ? String(Number(variant.price) / 100) : '',\n        multiVersion: (product.variants || []).length > 1,\n      };\n    });\n  }\n\n  function formatPrice(price) {\n    if (price === '' || price === null || price === undefined) return '';\n    var amount = Number(price);\n    if (!Number.isFinite(amount)) return '';\n    return new Intl.NumberFormat(Shopify.locale || 'en', {\n      style: 'currency',\n      currency: Shopify.currency && Shopify.currency.active ? Shopify.currency.active : 'USD',\n    }).format(amount);\n  }\n\n  function recommendationImageUrl(src) {\n    if (!src) return '';\n    var separator = src.indexOf('?') === -1 ? '?' : '&';\n    return src + separator + 'width=360&height=360&crop=center';\n  }\n\n  function attributionPayload(element, product) {\n    return {\n      surface: surfaceName(element),\n      source: sourceHandle(element),\n      product: product.handle,\n      reason: product.reason || '',\n      vehicle: product.vehicleLabel || '',\n    };\n  }\n\n  function attributionProperties(payload) {\n    return {\n      _al_rec_surface: payload.surface,\n      _al_rec_source: payload.source,\n      _al_rec_product: payload.product,\n      _al_rec_reason: payload.reason,\n      _al_rec_vehicle: payload.vehicle,\n    };\n  }\n\n  function bundleProperties(element) {\n    var type = element.dataset.bundleType || '';\n    var tier = element.dataset.bundleTier || '';\n    var source = element.dataset.bundleSource || surfaceName(element);\n    var vehicle = element.dataset.bundleVehicle || '';\n\n    if (!type && !tier && !source && !vehicle) return {};\n\n    return {\n      _al_bundle_source: source,\n      _al_bundle_type: type,\n      _al_bundle_tier: tier,\n      _al_bundle_vehicle: vehicle,\n    };\n  }\n\n  function attributionUrl(url, payload) {\n    var destination = new URL(url, window.location.origin);\n    destination.searchParams.set('al_rec_surface', payload.surface);\n    destination.searchParams.set('al_rec_source', payload.source);\n    destination.searchParams.set('al_rec_product', payload.product);\n    destination.searchParams.set('al_rec_reason', payload.reason);\n    if (payload.vehicle) destination.searchParams.set('al_rec_vehicle', payload.vehicle);\n    return destination.pathname + destination.search + destination.hash;\n  }\n\n  function pushAnalytics(eventName, payload, items) {\n    if (!Array.isArray(window.dataLayer)) return;\n    window.dataLayer.push({\n      event: eventName,\n      al_rec_surface: payload.surface,\n      al_rec_source: payload.source,\n      al_rec_product: payload.product,\n      al_rec_reason: payload.reason,\n      al_rec_vehicle: payload.vehicle,\n      al_rec_items: items || undefined,\n    });\n  }\n\n  function escapeHtml(value) {\n    return String(value || '')\n      .replace(/&/g, '&amp;')\n      .replace(/</g, '&lt;')\n      .replace(/>/g, '&gt;')\n      .replace(/\"/g, '&quot;')\n      .replace(/'/g, '&#039;');\n  }\n\n  class ArtlinesRecommendations extends HTMLElement {\n    connectedCallback() {\n      if (this.dataset.loaded === 'true') return;\n      this.dataset.loaded = 'true';\n      this.render();\n    }\n\n    async render() {\n      var sourceHandles = handleList(this.dataset.sourceHandles || this.dataset.currentHandle);\n      var excluded = handleList(this.dataset.excludeHandles || this.dataset.currentHandle);\n      var grid = this.querySelector('[data-artlines-recommendations-grid]');\n      var limit = Number(this.dataset.limit || 4);\n      var fallbackHandles = handleList(this.dataset.fallbackHandles);\n      var desiredTypes = typeList(this.dataset.desiredTypes);\n      var uniqueCategories = this.dataset.uniqueCategories === 'true';\n\n      if (!grid || !sourceHandles.length || !limit) {\n        this.hidden = true;\n        return;\n      }\n\n      try {\n        var index = await loadIndex(this.dataset.indexSrc);\n        var recommendations = await this.buildRecommendations(index.vehicles, sourceHandles, excluded, fallbackHandles, limit, desiredTypes, uniqueCategories);\n\n        if (!recommendations.length) {\n          this.hidden = true;\n          return;\n        }\n\n        grid.innerHTML = recommendations.map(this.renderCard.bind(this)).join('');\n        this.hydrateActions(recommendations);\n        this.bindAddButtons();\n        pushAnalytics('al_recommendations_view', {\n          surface: surfaceName(this),\n          source: sourceHandle(this),\n          product: '',\n          reason: '',\n          vehicle: '',\n        }, recommendations.map(function (product) {\n          return {\n            handle: product.handle,\n            reason: product.reason,\n            vehicle: product.vehicleLabel,\n            type: product.type,\n          };\n        }));\n      } catch (error) {\n        this.hidden = true;\n      }\n    }\n\n    async buildRecommendations(vehicles, sourceHandles, excluded, fallbackHandles, limit, desiredTypes, uniqueCategories) {\n      var state = {\n        excluded: excluded,\n        limit: limit,\n        seen: [],\n        seenCategories: [],\n        results: [],\n        uniqueCategories: uniqueCategories,\n      };\n      var sourceVehicles = findSourceVehicles(vehicles, sourceHandles);\n      var exactProductTypes = productTypesForVehicles(sourceVehicles);\n      // Ranking intentionally mirrors the vehicle finder's hierarchy:\n      // exact vehicle group only, with type-aware Any Design products filling open slots.\n      // Nearby model-family or same-make matching is intentionally avoided because\n      // Artlines customers are shopping for a very specific vehicle.\n      addVehicleProducts(\n        state,\n        sourceVehicles.map(function (vehicle) {\n          return {\n            ...vehicle,\n            products: (vehicle.products || []).filter(function (product) {\n              return productMatchesDesiredTypes(product, desiredTypes);\n            }),\n          };\n        }),\n        'exact_vehicle'\n      );\n\n      if (state.results.length < limit) {\n        var fallbackPool = fallbackHandles.length\n          ? fallbackHandles.map(function (handle) { return { handle: handle, type: '' }; })\n          : ANY_DESIGN_FALLBACKS.filter(function (fallback) {\n            return exactProductTypes.indexOf(fallback.type) === -1 && productMatchesDesiredTypes(fallback, desiredTypes);\n          });\n\n        if (!sourceVehicles.length) fallbackPool.unshift({ handle: CUSTOM_FALLBACK_HANDLE, type: '' });\n\n        for (var i = 0; i < fallbackPool.length && state.results.length < limit; i += 1) {\n          var fallback = await fallbackRecord(fallbackPool[i].handle);\n          if (fallback && !productMatchesDesiredTypes(fallback, desiredTypes)) fallback = null;\n          if (fallback) addCandidate(state, fallback, null, 'fallback', { uniqueCategories: state.uniqueCategories });\n        }\n      }\n\n      return state.results.slice(0, limit);\n    }\n\n    renderCard(product) {\n      var attribution = attributionPayload(this, product);\n      var url = attributionUrl(product.url, attribution);\n      var imageUrl = recommendationImageUrl(product.image);\n      var image = product.image\n        ? '<span class=\"artlines-recommendations__media\"><img class=\"artlines-recommendations__image\" src=\"' + escapeHtml(imageUrl) + '\" alt=\"' + escapeHtml(product.title) + '\" loading=\"lazy\" width=\"180\" height=\"180\"></span>'\n        : '<div class=\"artlines-recommendations__image\"></div>';\n      var meta = [product.type, formatPrice(product.price)].filter(Boolean).join(' \u00B7 ');\n\n      return [\n        '<article class=\"artlines-recommendations__item\" data-recommendation-handle=\"' + escapeHtml(product.handle) + '\" data-recommendation-attribution=\"' + escapeHtml(JSON.stringify(attribution)) + '\">',\n          '<a class=\"artlines-recommendations__card\" href=\"' + escapeHtml(url) + '\" data-recommendation-click>',\n            image,\n            '<div class=\"artlines-recommendations__content\">',\n              '<p class=\"artlines-recommendations__title\">' + escapeHtml(product.title) + '</p>',\n              meta ? '<p class=\"artlines-recommendations__meta\">' + escapeHtml(meta) + '</p>' : '',\n            '</div>',\n          '</a>',\n          '<div class=\"artlines-recommendations__actions\" data-recommendation-actions></div>',\n        '</article>',\n      ].join('');\n    }\n\n    hydrateActions(recommendations) {\n      recommendations.forEach(function (recommendation) {\n        fetchProduct(recommendation.handle).then(function (product) {\n          var escapedHandle = window.CSS && CSS.escape ? CSS.escape(recommendation.handle) : recommendation.handle.replace(/\"/g, '\\\\\"');\n          var item = this.querySelector('[data-recommendation-handle=\"' + escapedHandle + '\"]');\n          var actions = item && item.querySelector('[data-recommendation-actions]');\n          if (!actions || !product) return;\n\n          var variants = product.variants || [];\n          var availableVariants = variants.filter(function (variant) { return variant.available; });\n          if (availableVariants.length === 1 && variants.length === 1) {\n            actions.innerHTML = '<button type=\"button\" class=\"artlines-recommendations__button button\" data-recommendation-add=\"' + availableVariants[0].id + '\">Add</button>';\n          } else {\n            var attribution = attributionPayload(this, recommendation);\n            actions.innerHTML = '<a class=\"artlines-recommendations__button button\" href=\"' + escapeHtml(attributionUrl(product.url || productUrl(recommendation.handle), attribution)) + '\" data-recommendation-click>Choose options</a>';\n          }\n        }.bind(this));\n      }.bind(this));\n    }\n\n    bindAddButtons() {\n      this.addEventListener('click', async function (event) {\n        var button = event.target.closest('[data-recommendation-add]');\n        var clickedRecommendation = event.target.closest('[data-recommendation-click]');\n        var item = event.target.closest('[data-recommendation-attribution]');\n        var attribution = item ? JSON.parse(item.dataset.recommendationAttribution || '{}') : {};\n\n        if (clickedRecommendation && attribution.product) {\n          pushAnalytics('al_recommendation_click', attribution);\n        }\n\n        if (!button) return;\n\n        button.setAttribute('aria-disabled', true);\n        button.classList.add('loading');\n\n        var cartDrawer = this.closest('cart-drawer') || document.querySelector('cart-drawer');\n        var sections = cartDrawer ? cartDrawer.getSectionsToRender().map(function (section) { return section.id; }) : ['cart-icon-bubble'];\n        var body = JSON.stringify({\n          id: Number(button.dataset.recommendationAdd),\n          quantity: 1,\n          properties: {\n            ...attributionProperties(attribution),\n            ...bundleProperties(this),\n          },\n          sections: sections,\n          sections_url: window.location.pathname,\n        });\n\n        try {\n          var response = await fetch(routes.cart_add_url + '.js', {\n            method: 'POST',\n            headers: { 'Content-Type': 'application/json', Accept: 'application/javascript' },\n            body: body,\n          });\n          var parsedState = await response.json();\n          if (!response.ok || parsedState.status) throw parsedState;\n          pushAnalytics('al_recommendation_add_to_cart', attribution);\n\n          if (cartDrawer && parsedState.sections) {\n            cartDrawer.renderContents(parsedState);\n          } else if (parsedState.sections && parsedState.sections['cart-icon-bubble']) {\n            var cartIcon = document.getElementById('cart-icon-bubble');\n            if (cartIcon) cartIcon.innerHTML = new DOMParser().parseFromString(parsedState.sections['cart-icon-bubble'], 'text/html').querySelector('.shopify-section').innerHTML;\n          }\n        } catch (error) {\n          button.removeAttribute('aria-disabled');\n          button.classList.remove('loading');\n        }\n      }.bind(this));\n    }\n  }\n\n  if (!customElements.get('artlines-recommendations')) {\n    customElements.define('artlines-recommendations', ArtlinesRecommendations);\n  }\n})();\n"],
  "mappings": "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",
  "names": ["fallback"]
}
