{
  "version": 3,
  "sources": ["/cdn/shop/t/351/assets/touch-up-aerosol-gallery.js?tuap-rev=2"],
  "sourcesContent": ["(function () {\n  'use strict';\n\n  function bootGallery(gallery) {\n    if (!gallery || gallery.__tuapGalleryBooted) return;\n    gallery.__tuapGalleryBooted = true;\n    gallery.setAttribute('data-tuap-gallery-ready', 'true');\n\n    let slides = Array.prototype.slice.call(gallery.querySelectorAll('[data-gallery-figure]'));\n    let previous = gallery.querySelector('[data-tuap-gallery-prev]');\n    let next = gallery.querySelector('[data-tuap-gallery-next]');\n    let count = gallery.querySelector('[data-tuap-gallery-count]');\n    let product = gallery.closest('[data-touch-up-aerosol-product]') || document;\n    let preview = product.querySelector('[data-tuap-gallery-preview]');\n    let previewContent = preview && preview.querySelector('[data-tuap-gallery-preview-content]');\n    let current = Math.max(0, slides.findIndex(function (slide) {\n      return slide.getAttribute('data-gallery-selected') === 'true';\n    }));\n    let pointerStart = null;\n\n    function renderPreview(index) {\n      if (!preview || !previewContent || slides.length < 2) {\n        if (preview) preview.hidden = true;\n        return;\n      }\n\n      let sourceSlide = slides[index];\n      let sourceImage = sourceSlide && sourceSlide.querySelector('img');\n      if (!sourceImage) {\n        preview.hidden = true;\n        return;\n      }\n\n      let previewImage = document.createElement('img');\n      previewImage.src = sourceImage.currentSrc || sourceImage.getAttribute('src');\n      previewImage.alt = '';\n      previewImage.loading = 'eager';\n      previewImage.width = 4096;\n      previewImage.height = 4096;\n      previewImage.setAttribute('aria-hidden', 'true');\n      previewContent.replaceChildren(previewImage);\n      preview.hidden = false;\n      preview.setAttribute('data-preview-index', String(index));\n      preview.setAttribute('aria-label', 'View aerosol product image ' + (index + 1) + ' of ' + slides.length);\n    }\n\n    function select(index) {\n      if (!slides.length) return;\n      current = (index + slides.length) % slides.length;\n      slides.forEach(function (slide, slideIndex) {\n        let selected = slideIndex === current;\n        slide.setAttribute('data-gallery-selected', String(selected));\n        slide.setAttribute('aria-hidden', String(!selected));\n        slide.setAttribute('tabindex', selected ? '0' : '-1');\n      });\n      if (count) count.textContent = (current + 1) + ' / ' + slides.length;\n      renderPreview((current + 1) % slides.length);\n    }\n\n    gallery.__tuapGalleryNext = function () { select(current + 1); };\n    gallery.__tuapGalleryPrevious = function () { select(current - 1); };\n\n    if (previous) previous.addEventListener('click', function (event) {\n      event.stopPropagation();\n      select(current - 1);\n    });\n    if (next) next.addEventListener('click', function (event) {\n      event.stopPropagation();\n      select(current + 1);\n    });\n    if (preview) preview.addEventListener('click', function () { select(current + 1); });\n\n    gallery.addEventListener('keydown', function (event) {\n      if (event.key === 'ArrowLeft') {\n        event.preventDefault();\n        select(current - 1);\n      }\n      if (event.key === 'ArrowRight') {\n        event.preventDefault();\n        select(current + 1);\n      }\n    });\n\n    gallery.addEventListener('pointerdown', function (event) {\n      if (event.target && event.target.closest('button')) return;\n      pointerStart = { x: event.clientX, y: event.clientY };\n    });\n    gallery.addEventListener('pointerup', function (event) {\n      if (!pointerStart) return;\n      if (event.target && event.target.closest('button')) {\n        pointerStart = null;\n        return;\n      }\n      let x = event.clientX - pointerStart.x;\n      let y = event.clientY - pointerStart.y;\n      pointerStart = null;\n      if (Math.abs(x) < 48 || Math.abs(x) < Math.abs(y)) return;\n      select(x < 0 ? current + 1 : current - 1);\n    });\n    gallery.addEventListener('pointercancel', function () { pointerStart = null; });\n\n    select(current);\n  }\n\n  function boot() {\n    Array.prototype.slice.call(document.querySelectorAll('[data-tuap-gallery]')).forEach(bootGallery);\n  }\n\n  function start() {\n    boot();\n    if (!document.__tuapGalleryDelegation) {\n      document.__tuapGalleryDelegation = true;\n      document.addEventListener('click', function (event) {\n        let control = event.target && event.target.closest('[data-tuap-gallery-next], [data-tuap-gallery-prev], [data-tuap-gallery-preview]');\n        if (!control) return;\n        let product = control.closest('[data-touch-up-aerosol-product]') || document;\n        let gallery = control.closest('[data-tuap-gallery]') || product.querySelector('[data-tuap-gallery]');\n        if (!gallery || gallery.__tuapGalleryBooted) return;\n        bootGallery(gallery);\n        if (control.matches('[data-tuap-gallery-prev]')) gallery.__tuapGalleryPrevious();\n        else gallery.__tuapGalleryNext();\n      });\n      document.addEventListener('keydown', function (event) {\n        if (event.key !== 'ArrowLeft' && event.key !== 'ArrowRight') return;\n        let gallery = event.target && event.target.closest('[data-tuap-gallery]');\n        if (!gallery || gallery.__tuapGalleryBooted) return;\n        bootGallery(gallery);\n        event.preventDefault();\n        if (event.key === 'ArrowLeft') gallery.__tuapGalleryPrevious();\n        else gallery.__tuapGalleryNext();\n      });\n    }\n    if (document.__tuapGalleryObserver) return;\n    document.__tuapGalleryObserver = new MutationObserver(function () {\n      boot();\n    });\n    document.__tuapGalleryObserver.observe(document.documentElement, {\n      childList: true,\n      subtree: true\n    });\n  }\n\n  if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', start);\n  else start();\n  document.addEventListener('shopify:section:load', boot);\n})();\n\n"],
  "mappings": "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",
  "names": []
}
