{
  "version": 3,
  "sources": ["/cdn/shop/t/35/assets/product-comparison-grid.js?cg=4"],
  "sourcesContent": ["if (!customElements.get('product-comparison-grid')) {\n  class ProductComparisonGrid extends HTMLElement {\n    constructor() {\n      super();\n      this.grid = this.querySelector('.product-comparison-grid');\n      this.rows = this.grid.querySelectorAll('tr');\n      this.gridContainer = this.querySelector('.product-comparison-container');\n      this.showAllButton = this.querySelector('.js-show-all');\n      this.slider = this.querySelector('.product-comparison-slider');\n      this.nav = this.querySelector('.product-comparison-nav');\n\n      if (this.showAllButton) {\n        this.showAllButton.addEventListener('click', this.handleShowAllClick.bind(this));\n      }\n\n      if (this.slider && this.nav) {\n        this.prevButton = this.nav.querySelector('button[name=\"prev\"]');\n        this.nextButton = this.nav.querySelector('button[name=\"next\"]');\n        this.nav.addEventListener('click', this.handleNavClick.bind(this));\n        this.slider.addEventListener('scroll', this.updateNavState.bind(this));\n        window.addEventListener('on:debounced-resize', this.updateNavState.bind(this));\n        this.updateNavState();\n\n        if (window.matchMedia('(pointer: fine)').matches) {\n          this.slider.classList.add('is-grabbable');\n          this.slider.addEventListener('mousedown', this.handleMousedown.bind(this));\n          this.slider.addEventListener('mousemove', this.handleMousemove.bind(this));\n          this.slider.addEventListener('mouseup', this.handleMouseup.bind(this));\n          this.slider.addEventListener('mouseleave', this.handleMouseup.bind(this));\n          this.slider.addEventListener('click', this.handleClickAfterDrag.bind(this), true);\n        }\n      }\n    }\n\n    get columnWidth() {\n      const productColumn = this.grid.querySelector('thead th:not(.product-comparison-grid__th--left)') || this.grid.querySelector('tbody td');\n      return productColumn ? productColumn.getBoundingClientRect().width : this.slider.clientWidth;\n    }\n\n    get labelColumnWidth() {\n      const labelColumn = this.grid.querySelector('th.product-comparison-grid__th--left');\n      return labelColumn ? labelColumn.getBoundingClientRect().width : 0;\n    }\n\n    scrollToColumn(index) {\n      const reduceMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n      this.slider.scrollTo({ left: index * this.columnWidth, behavior: reduceMotion ? 'auto' : 'smooth' });\n    }\n\n    updateNavState() {\n      const maxScroll = this.slider.scrollWidth - this.slider.clientWidth;\n      this.nav.style.display = maxScroll < 2 ? 'none' : '';\n      this.prevButton.disabled = this.slider.scrollLeft < 2;\n      this.nextButton.disabled = this.slider.scrollLeft > maxScroll - 2;\n    }\n\n    handleNavClick(evt) {\n      const button = evt.target.closest('button');\n      if (!button) return;\n      const direction = button.name === 'prev' ? -1 : 1;\n      const visibleWidth = this.slider.clientWidth - this.labelColumnWidth;\n      this.scrollToColumn(Math.round((this.slider.scrollLeft + direction * visibleWidth) / this.columnWidth));\n    }\n\n    handleMousedown(evt) {\n      this.dragStartX = evt.pageX;\n      this.dragStartScroll = this.slider.scrollLeft;\n      this.dragging = true;\n      this.dragged = false;\n      this.slider.classList.add('is-grabbing');\n    }\n\n    handleMousemove(evt) {\n      if (!this.dragging) return;\n      evt.preventDefault();\n      const distance = evt.pageX - this.dragStartX;\n      if (Math.abs(distance) > 5) this.dragged = true;\n      this.slider.scrollLeft = this.dragStartScroll - distance;\n    }\n\n    handleMouseup() {\n      if (!this.dragging) return;\n      this.dragging = false;\n      this.slider.classList.remove('is-grabbing');\n      if (this.dragged) this.scrollToColumn(Math.round(this.slider.scrollLeft / this.columnWidth));\n    }\n\n    handleClickAfterDrag(evt) {\n      if (!this.dragged) return;\n      evt.preventDefault();\n      evt.stopPropagation();\n      this.dragged = false;\n    }\n\n    /**\n     * Handles 'click' events on the show all rows button\n     * @param {object} evt - Event object.\n     */\n    handleShowAllClick(evt) {\n      // Toggle the button text\n      const buttonText = evt.target.textContent;\n      evt.target.textContent = evt.target.dataset.toggleText;\n      evt.target.dataset.toggleText = buttonText;\n\n      // Set the initial max height to transition from\n      const gridHeight = this.grid.clientHeight;\n      this.gridContainer.style.maxHeight = `${gridHeight}px`;\n      this.gridContainer.style.overflow = 'hidden';\n      this.gridContainer.classList.add('is-transitioning');\n\n      // Show/hide the relevant rows\n      let heightReduction = 0;\n      this.rows.forEach((row) => {\n        if (row.classList.contains('js-hidden')) {\n          row.classList.remove('js-hidden');\n          row.dataset.wasHidden = 'true';\n        } else if (row.dataset.wasHidden) {\n          heightReduction += row.clientHeight;\n        }\n      });\n\n      this.gridContainer.style.maxHeight = `${heightReduction > 0 ? gridHeight - heightReduction : this.grid.clientHeight}px`;\n\n      // End of max height transition\n      setTimeout(() => {\n        if (heightReduction > 0) {\n          // Hide the rows\n          this.rows.forEach((row) => {\n            if (row.dataset.wasHidden === 'true') {\n              row.classList.add('js-hidden');\n              row.removeAttribute('was-hidden');\n            }\n          });\n        }\n\n        // Reset the height back to auto\n        this.gridContainer.style.maxHeight = '';\n        this.gridContainer.style.overflow = '';\n        this.gridContainer.classList.remove('is-transitioning');\n      }, (parseFloat(window.getComputedStyle(this.gridContainer).transitionDuration) * 1000));\n    }\n  }\n\n  customElements.define('product-comparison-grid', ProductComparisonGrid);\n}\n"],
  "mappings": "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",
  "names": []
}
