{
  "version": 3,
  "sources": ["/cdn/shop/t/6/assets/media-gallery-sku-scoped.js?cb=20260606g"],
  "sourcesContent": ["if (!customElements.get('media-gallery')) {\n  customElements.define(\n    'media-gallery',\n    class MediaGallery extends HTMLElement {\n      constructor() {\n        super();\n        this.elements = {\n          liveRegion: this.querySelector('[id^=\"GalleryStatus\"]'),\n          viewer: this.querySelector('[id^=\"GalleryViewer\"]'),\n          thumbnails: this.querySelector('[id^=\"GalleryThumbnails\"]'),\n        };\n        this.mql = window.matchMedia('(min-width: 750px)');\n        if (!this.elements.thumbnails) return;\n\n        this.elements.viewer.addEventListener('slideChanged', debounce(this.onSlideChanged.bind(this), 500));\n        this.elements.thumbnails.querySelectorAll('[data-target]').forEach((mediaToSwitch) => {\n          mediaToSwitch\n            .querySelector('button')\n            .addEventListener('click', this.setActiveMedia.bind(this, mediaToSwitch.dataset.target, false));\n        });\n        if (this.dataset.desktopLayout.includes('thumbnail') && this.mql.matches) this.removeListSemantic();\n        window.setTimeout(() => this.filterByVariantSku(this.getSelectedVariantSkuFromPage()), 0);\n        window.setTimeout(() => this.filterByVariantSku(this.getSelectedVariantSkuFromPage()), 500);\n      }\n\n      onSlideChanged(event) {\n        const thumbnail = this.elements.thumbnails.querySelector(\n          `[data-target=\"${event.detail.currentElement.dataset.mediaId}\"]`\n        );\n        this.setActiveThumbnail(thumbnail);\n      }\n\n      setActiveMedia(mediaId, prepend) {\n        const activeMedia =\n          this.elements.viewer.querySelector(`[data-media-id=\"${mediaId}\"]`) ||\n          this.elements.viewer.querySelector('[data-media-id]');\n        if (!activeMedia) {\n          return;\n        }\n        this.elements.viewer.querySelectorAll('[data-media-id]').forEach((element) => {\n          element.classList.remove('is-active');\n        });\n        activeMedia?.classList?.add('is-active');\n\n        if (prepend) {\n          activeMedia.parentElement.firstChild !== activeMedia && activeMedia.parentElement.prepend(activeMedia);\n\n          if (this.elements.thumbnails) {\n            const activeThumbnail = this.elements.thumbnails.querySelector(`[data-target=\"${mediaId}\"]`);\n            activeThumbnail.parentElement.firstChild !== activeThumbnail && activeThumbnail.parentElement.prepend(activeThumbnail);\n          }\n\n          if (this.elements.viewer.slider) this.elements.viewer.resetPages();\n        }\n\n        this.preventStickyHeader();\n        window.setTimeout(() => {\n          if (!this.mql.matches || this.elements.thumbnails) {\n            activeMedia.parentElement.scrollTo({ left: activeMedia.offsetLeft });\n          }\n          const activeMediaRect = activeMedia.getBoundingClientRect();\n          // Don't scroll if the image is already in view\n          if (activeMediaRect.top > -0.5) return;\n          const top = activeMediaRect.top + window.scrollY;\n          window.scrollTo({ top: top, behavior: 'smooth' });\n        });\n        this.playActiveMedia(activeMedia);\n\n        if (!this.elements.thumbnails) return;\n        const activeThumbnail = this.elements.thumbnails.querySelector(`[data-target=\"${mediaId}\"]`);\n        this.setActiveThumbnail(activeThumbnail);\n        this.announceLiveRegion(activeMedia, activeThumbnail.dataset.mediaPosition);\n      }\n\n      setActiveThumbnail(thumbnail) {\n        if (!this.elements.thumbnails || !thumbnail) return;\n\n        this.elements.thumbnails\n          .querySelectorAll('button')\n          .forEach((element) => element.removeAttribute('aria-current'));\n        thumbnail.querySelector('button').setAttribute('aria-current', true);\n        if (this.elements.thumbnails.isSlideVisible(thumbnail, 10)) return;\n\n        this.elements.thumbnails.slider.scrollTo({ left: thumbnail.offsetLeft });\n      }\n\n      announceLiveRegion(activeItem, position) {\n        const image = activeItem.querySelector('.product__modal-opener--image img');\n        if (!image) return;\n        image.onload = () => {\n          this.elements.liveRegion.setAttribute('aria-hidden', false);\n          this.elements.liveRegion.innerHTML = window.accessibilityStrings.imageAvailable.replace('[index]', position);\n          setTimeout(() => {\n            this.elements.liveRegion.setAttribute('aria-hidden', true);\n          }, 2000);\n        };\n        image.src = image.src;\n      }\n\n      playActiveMedia(activeItem) {\n        window.pauseAllMedia();\n        const deferredMedia = activeItem.querySelector('.deferred-media');\n        if (deferredMedia) deferredMedia.loadContent(false);\n      }\n      getSelectedVariantSkuFromPage() {\n        const selectedVariantJson = document.querySelector('variant-selects [data-selected-variant]')?.textContent;\n        if (!selectedVariantJson) return '';\n        try {\n          return JSON.parse(selectedVariantJson)?.sku || '';\n        } catch (error) {\n          return '';\n        }\n      }\n\n      getSkuFromMediaItem(item) {\n        const altText = item?.querySelector('img[alt]')?.getAttribute('alt') || '';\n        const match = altText.match(/^([^|]+?)\\s*\\|\\s*.+$/);\n        return match ? match[1].trim() : '';\n      }\n\n      getSkuMediaRoleOrder(item) {\n        const altText = item?.querySelector('img[alt]')?.getAttribute('alt') || '';\n        const role = altText.split('|').slice(1).join('|').trim();\n        if (role === 'main') return 0;\n        if (role === 'dimension') return 1;\n        if (role === 'package') return 2;\n        if (role === 'table-detail') return 3;\n        const chairDetailMatch = role.match(/^chair-detail-(\\d+)$/);\n        if (chairDetailMatch) return 10 + Number(chairDetailMatch[1]);\n        return 99;\n      }\n\n      reorderSkuScopedMedia(viewerItems) {\n        const visibleViewerItems = viewerItems\n          .filter((item) => !item.hidden)\n          .sort((a, b) => this.getSkuMediaRoleOrder(a) - this.getSkuMediaRoleOrder(b));\n        const viewerParent = visibleViewerItems[0]?.parentElement;\n        visibleViewerItems.forEach((item) => viewerParent?.appendChild(item));\n\n        if (!this.elements.thumbnails) return visibleViewerItems;\n\n        const thumbnailsByTarget = new Map(\n          Array.from(this.elements.thumbnails.querySelectorAll('[data-target]')).map((thumbnail) => [\n            thumbnail.dataset.target,\n            thumbnail,\n          ])\n        );\n        const visibleThumbnails = visibleViewerItems\n          .map((item) => thumbnailsByTarget.get(item.dataset.mediaId))\n          .filter(Boolean);\n        const thumbnailParent = visibleThumbnails[0]?.parentElement;\n        visibleThumbnails.forEach((thumbnail) => thumbnailParent?.appendChild(thumbnail));\n\n        return visibleViewerItems;\n      }\n\n      filterByVariantSku(variantSku) {\n        if (!variantSku || !this.elements.viewer) return;\n\n        const viewerItems = Array.from(this.elements.viewer.querySelectorAll('li[data-media-id]'));\n        const mediaSkuById = new Map(\n          viewerItems.map((item) => [item.dataset.mediaId, this.getSkuFromMediaItem(item)])\n        );\n        const hasSkuScopedMedia = Array.from(mediaSkuById.values()).some(Boolean);\n        if (!hasSkuScopedMedia) return;\n\n        viewerItems.forEach((item) => {\n          const mediaSku = mediaSkuById.get(item.dataset.mediaId);\n          item.hidden = mediaSku !== variantSku;\n          item.classList.toggle('sumdeal-sku-media-hidden', item.hidden);\n          if (item.hidden) item.classList.remove('is-active');\n        });\n\n        if (this.elements.thumbnails) {\n          this.elements.thumbnails.querySelectorAll('[data-target]').forEach((thumbnail) => {\n            const mediaSku = mediaSkuById.get(thumbnail.dataset.target);\n            thumbnail.hidden = mediaSku !== variantSku;\n            thumbnail.classList.toggle('sumdeal-sku-media-hidden', thumbnail.hidden);\n            if (thumbnail.hidden) thumbnail.querySelector('button')?.removeAttribute('aria-current');\n          });\n        }\n\n        const visibleViewerItems = this.reorderSkuScopedMedia(viewerItems);\n        const mainVisibleItem = visibleViewerItems.find((item) => {\n          const imageAlt = item.querySelector('img[alt]')?.getAttribute('alt') || '';\n          return !item.hidden && imageAlt.trim() === `${variantSku} | main`;\n        });\n        const activeVisibleItem = visibleViewerItems.find((item) => item.classList.contains('is-active') && !item.hidden);\n        const firstVisibleItem = visibleViewerItems[0];\n        if (mainVisibleItem) {\n          this.setActiveMedia(mainVisibleItem.dataset.mediaId, false);\n        } else if (!activeVisibleItem && firstVisibleItem) {\n          this.setActiveMedia(firstVisibleItem.dataset.mediaId, false);\n        }\n\n        if (this.elements.viewer.slider) this.elements.viewer.resetPages();\n        if (this.elements.thumbnails?.slider) this.elements.thumbnails.slider.resetPages?.();\n      }\n\n      preventStickyHeader() {\n        this.stickyHeader = this.stickyHeader || document.querySelector('sticky-header');\n        if (!this.stickyHeader) return;\n        this.stickyHeader.dispatchEvent(new Event('preventHeaderReveal'));\n      }\n\n      removeListSemantic() {\n        if (!this.elements.viewer.slider) return;\n        this.elements.viewer.slider.setAttribute('role', 'presentation');\n        this.elements.viewer.sliderItems.forEach((slide) => slide.setAttribute('role', 'presentation'));\n      }\n    }\n  );\n}\n\r\n"],
  "mappings": "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",
  "names": ["activeThumbnail"]
}
