{
  "version": 3,
  "sources": ["/cdn/shop/t/448/assets/reviews-carousel-widget.js?t=20260422-5"],
  "sourcesContent": ["import { Component } from '@theme/component';\n\nconst REVIEWS_CAROUSEL_SCRIPT_URL = 'https://widget.reviews.io/carousel-inline-iframeless/dist.js?_t=2026042214';\nconst REVIEWS_CAROUSEL_STYLESHEET_URLS = [\n  'https://assets.reviews.io/css/widgets/carousel-widget.css?_t=2026042214',\n  'https://assets.reviews.io/iconfont/reviewsio-icons/style.css?_t=2026042214',\n];\n\nlet reviewsCarouselScriptPromise;\nconst reviewsCarouselStylesheetPromises = new Map();\nconst reviewsSummaryPromises = new Map();\n\nfunction getReviewSummaryCacheKey(storeId) {\n  return `${storeId}`;\n}\n\nfunction fetchReviewSummary({ storeId }) {\n  const cacheKey = getReviewSummaryCacheKey(storeId);\n\n  if (reviewsSummaryPromises.has(cacheKey)) {\n    return reviewsSummaryPromises.get(cacheKey);\n  }\n\n  const request = fetch(\n    `https://api.reviews.io/reviews?store=${encodeURIComponent(storeId)}&type=product_review&per_page=1`\n  )\n    .then((response) => {\n      if (!response.ok) {\n        throw new Error(`Reviews.io summary request failed with status ${response.status}`);\n      }\n\n      return response.json();\n    })\n    .then((data) => ({\n      averageRating: Number.parseFloat(data?.average_rating) || 0,\n      reviewCount: Number.parseInt(data?.review_count, 10) || 0,\n    }))\n    .catch((error) => {\n      reviewsSummaryPromises.delete(cacheKey);\n      throw error;\n    });\n\n  reviewsSummaryPromises.set(cacheKey, request);\n\n  return request;\n}\n\nfunction loadReviewsCarouselStylesheet(href) {\n  if (reviewsCarouselStylesheetPromises.has(href)) {\n    return reviewsCarouselStylesheetPromises.get(href);\n  }\n\n  const promise = new Promise((resolve, reject) => {\n    const existingLink = document.querySelector(`link[rel=\"stylesheet\"][href=\"${href}\"]`);\n\n    if (existingLink instanceof HTMLLinkElement) {\n      if (existingLink.dataset.loaded === 'true') {\n        resolve();\n        return;\n      }\n\n      existingLink.addEventListener(\n        'load',\n        () => {\n          existingLink.dataset.loaded = 'true';\n          resolve();\n        },\n        { once: true }\n      );\n      existingLink.addEventListener('error', reject, { once: true });\n      return;\n    }\n\n    const link = document.createElement('link');\n    link.rel = 'stylesheet';\n    link.href = href;\n    link.addEventListener(\n      'load',\n      () => {\n        link.dataset.loaded = 'true';\n        resolve();\n      },\n      { once: true }\n    );\n    link.addEventListener('error', reject, { once: true });\n    document.head.append(link);\n  });\n\n  reviewsCarouselStylesheetPromises.set(href, promise);\n\n  return promise;\n}\n\nfunction loadReviewsCarouselScript() {\n  if (window.carouselInlineWidget) {\n    return Promise.resolve(window.carouselInlineWidget);\n  }\n\n  if (reviewsCarouselScriptPromise) {\n    return reviewsCarouselScriptPromise;\n  }\n\n  reviewsCarouselScriptPromise = new Promise((resolve, reject) => {\n    const existingScript = document.querySelector(`script[src=\"${REVIEWS_CAROUSEL_SCRIPT_URL}\"]`);\n\n    if (existingScript instanceof HTMLScriptElement) {\n      existingScript.addEventListener('load', () => resolve(window.carouselInlineWidget), { once: true });\n      existingScript.addEventListener('error', reject, { once: true });\n      return;\n    }\n\n    const script = document.createElement('script');\n    script.src = REVIEWS_CAROUSEL_SCRIPT_URL;\n    script.async = true;\n    script.addEventListener('load', () => resolve(window.carouselInlineWidget), { once: true });\n    script.addEventListener('error', reject, { once: true });\n    document.head.append(script);\n  });\n\n  return reviewsCarouselScriptPromise;\n}\n\nfunction buildWidgetConfig({ storeId, language, reviewTags }) {\n  return {\n    store: storeId,\n    sku: '',\n    lang: language,\n    carousel_type: 'topHeader',\n    styles_carousel: 'CarouselWidget--topHeader--withcards',\n    options: {\n      general: {\n        review_type: 'company, product',\n        min_reviews: '1',\n        max_reviews: '20',\n        address_format: 'CITY, COUNTRY',\n        enable_auto_scroll: false,\n        enable_pause_button: false,\n        enable_sorting: false,\n      },\n      header: {\n        enable_overall_stars: true,\n        rating_decimal_places: 2,\n      },\n      reviews: {\n        enable_customer_name: true,\n        enable_customer_location: false,\n        enable_verified_badge: true,\n        enable_subscriber_badge: true,\n        enable_recommends_badge: true,\n        enable_photos: false,\n        enable_videos: false,\n        enable_review_date: true,\n        disable_same_customer: true,\n        min_review_percent: 4,\n        third_party_source: true,\n        hide_empty_reviews: true,\n        enable_product_name: true,\n        tags: reviewTags,\n        branch: '',\n        enable_branch_name: false,\n      },\n      popups: {\n        enable_review_popups: false,\n        enable_helpful_buttons: false,\n        enable_helpful_count: false,\n        enable_share_buttons: false,\n      },\n    },\n    translations: {\n      verified_customer: 'Verified Customer',\n    },\n    styles: {\n      '--base-font-size': '16px',\n      '--base-maxwidth': '100%',\n      '--reviewsio-logo-style': 'var(--logo-normal)',\n      '--common-star-color': '#0E1311',\n      '--common-star-disabled-color': 'rgba(0,0,0,0.25)',\n      '--medium-star-size': '22px',\n      '--small-star-size': '19px',\n      '--x-small-star-size': '16px',\n      '--x-small-star-display': 'inline-flex',\n      '--header-order': '1',\n      '--header-width': '160px',\n      '--header-bg-start-color': 'transparent',\n      '--header-bg-end-color': 'transparent',\n      '--header-gradient-direction': '135deg',\n      '--header-padding': '0.5em',\n      '--header-border-width': '0px',\n      '--header-border-color': 'rgba(0,0,0,0.1)',\n      '--header-border-radius': '0px',\n      '--header-shadow-size': '0px',\n      '--header-shadow-color': 'rgba(0, 0, 0, 0.1)',\n      '--header-star-color': 'inherit',\n      '--header-disabled-star-color': 'inherit',\n      '--header-heading-text-color': 'inherit',\n      '--header-heading-font-size': 'inherit',\n      '--header-heading-font-weight': 'inherit',\n      '--header-heading-line-height': 'inherit',\n      '--header-heading-text-transform': 'inherit',\n      '--header-subheading-text-color': 'inherit',\n      '--header-subheading-font-size': 'inherit',\n      '--header-subheading-font-weight': 'inherit',\n      '--header-subheading-line-height': 'inherit',\n      '--header-subheading-text-transform': 'inherit',\n      '--item-maximum-columns': '5',\n      '--item-background-start-color': 'rgba(247,247,247,0.5)',\n      '--item-background-end-color': 'rgba(247,247,247,0.5)',\n      '--item-gradient-direction': '135deg',\n      '--item-padding': '1.5rem 1.375rem',\n      '--item-border-width': '0px',\n      '--item-border-color': 'rgba(14,19,17,0.06)',\n      '--item-border-radius': '0px',\n      '--item-shadow-size': '0px',\n      '--item-shadow-color': 'rgba(14,19,17,0)',\n      '--heading-text-color': '#0E1311',\n      '--heading-text-font-weight': '600',\n      '--heading-text-font-family': 'inherit',\n      '--heading-text-line-height': '1.4',\n      '--heading-text-letter-spacing': '0',\n      '--heading-text-transform': 'none',\n      '--body-text-color': '#0E1311',\n      '--body-text-font-weight': '400',\n      '--body-text-font-family': 'inherit',\n      '--body-text-line-height': '1.4',\n      '--body-text-letter-spacing': '0',\n      '--body-text-transform': 'none',\n      '--scroll-button-icon-color': '#0E1311',\n      '--scroll-button-icon-size': '24px',\n      '--scroll-button-bg-color': 'transparent',\n      '--scroll-button-border-width': '0px',\n      '--scroll-button-border-color': 'rgba(0,0,0,0.1)',\n      '--scroll-button-border-radius': '60px',\n      '--scroll-button-shadow-size': '0px',\n      '--scroll-button-shadow-color': 'rgba(0,0,0,0.1)',\n      '--scroll-button-horizontal-position': 'calc((var(--scroll-button-icon-size, 24px) * 2) - 5px)',\n      '--scroll-button-vertical-position': '0px',\n      '--badge-icon-color': '#0E1311',\n      '--badge-icon-font-size': '15px',\n      '--badge-text-color': '#0E1311',\n      '--badge-text-font-size': 'inherit',\n      '--badge-text-letter-spacing': 'inherit',\n      '--badge-text-transform': 'inherit',\n      '--author-font-size': 'inherit',\n      '--author-font-weight': 'inherit',\n      '--author-text-transform': 'inherit',\n      '--photo-video-thumbnail-size': '60px',\n      '--photo-video-thumbnail-border-radius': '0px',\n      '--popup-backdrop-color': 'rgba(0,0,0,0.75)',\n      '--popup-color': '#ffffff',\n      '--popup-star-color': 'inherit',\n      '--popup-disabled-star-color': 'inherit',\n      '--popup-heading-text-color': 'inherit',\n      '--popup-body-text-color': 'inherit',\n      '--popup-badge-icon-color': 'inherit',\n      '--popup-badge-icon-font-size': '19px',\n      '--popup-badge-text-color': 'inherit',\n      '--popup-badge-text-font-size': '14px',\n      '--popup-border-width': '0px',\n      '--popup-border-color': 'rgba(0,0,0,0.1)',\n      '--popup-border-radius': '0px',\n      '--popup-shadow-size': '0px',\n      '--popup-shadow-color': 'rgba(0,0,0,0.1)',\n      '--popup-icon-color': '#0E1311',\n      '--tooltip-bg-color': '#0E1311',\n      '--tooltip-text-color': '#ffffff',\n    },\n  };\n}\n\nclass ReviewsCarouselWidget extends Component {\n  connectedCallback() {\n    super.connectedCallback();\n    this.initialize();\n  }\n\n  async initialize() {\n    if (this.dataset.initialized === 'true') return;\n\n    const widgetId = this.dataset.widgetId;\n\n    if (!widgetId) {\n      return;\n    }\n\n    this.dataset.initialized = 'true';\n\n    try {\n      await Promise.all([\n        ...REVIEWS_CAROUSEL_STYLESHEET_URLS.map(loadReviewsCarouselStylesheet),\n        loadReviewsCarouselScript(),\n      ]);\n\n      if (!this.isConnected || !window.carouselInlineWidget) return;\n\n      const target = document.getElementById(widgetId);\n      if (!target) return;\n\n      target.replaceChildren();\n\n      const storeId = this.dataset.storeId || 'fayn';\n      const language = this.dataset.language || 'en';\n      const reviewTags = this.dataset.reviewTags || 'Highlight';\n\n      new window.carouselInlineWidget(widgetId, buildWidgetConfig({ storeId, language, reviewTags }));\n      await this.postProcessWidget(target);\n    } catch (error) {\n      console.error('Failed to initialize Reviews.io carousel widget', error);\n      this.dataset.initialized = 'false';\n    }\n  }\n\n  async postProcessWidget(target) {\n    const widget = await this.waitForWidget(target);\n    if (!(widget instanceof HTMLElement)) return;\n\n    const hydratedWidget = await this.waitForWidgetStructure(widget);\n    if (!(hydratedWidget instanceof HTMLElement)) return;\n\n    await this.buildSummaryBlock(hydratedWidget);\n    this.movePlaceholderBelowSummary(hydratedWidget);\n    await this.waitForReviewItems(hydratedWidget);\n    this.normalizeReviewItems(hydratedWidget);\n    this.enableDragScroll(hydratedWidget);\n  }\n\n  waitForWidget(target) {\n    const existingWidget = target.querySelector('.CarouselWidget');\n    if (existingWidget instanceof HTMLElement) {\n      return Promise.resolve(existingWidget);\n    }\n\n    return new Promise((resolve) => {\n      const observer = new MutationObserver(() => {\n        const widget = target.querySelector('.CarouselWidget');\n        if (!(widget instanceof HTMLElement)) return;\n\n        observer.disconnect();\n        resolve(widget);\n      });\n\n      observer.observe(target, { childList: true, subtree: true });\n\n      window.setTimeout(() => {\n        observer.disconnect();\n        resolve(target.querySelector('.CarouselWidget'));\n      }, 3000);\n    });\n  }\n\n  waitForWidgetStructure(widget) {\n    if (\n      widget.querySelector('.CarouselWidget__inner') &&\n      widget.querySelector('.CarouselWidget__header') &&\n      widget.querySelector('.CarouselWidget__list') &&\n      widget.querySelector('.CarouselWidget__footer')\n    ) {\n      return Promise.resolve(widget);\n    }\n\n    return new Promise((resolve) => {\n      const observer = new MutationObserver(() => {\n        if (\n          !widget.querySelector('.CarouselWidget__inner') ||\n          !widget.querySelector('.CarouselWidget__header') ||\n          !widget.querySelector('.CarouselWidget__list') ||\n          !widget.querySelector('.CarouselWidget__footer')\n        ) {\n          return;\n        }\n\n        observer.disconnect();\n        resolve(widget);\n      });\n\n      observer.observe(widget, { childList: true, subtree: true });\n\n      window.setTimeout(() => {\n        observer.disconnect();\n        resolve(widget);\n      }, 3000);\n    });\n  }\n\n  waitForReviewItems(widget) {\n    const hasReviewItems = () => widget.querySelector('.R-ReviewsList__item .item__inner');\n\n    if (hasReviewItems()) {\n      return Promise.resolve();\n    }\n\n    return new Promise((resolve) => {\n      const observer = new MutationObserver(() => {\n        if (!hasReviewItems()) return;\n\n        observer.disconnect();\n        resolve();\n      });\n\n      observer.observe(widget, { childList: true, subtree: true });\n\n      window.setTimeout(() => {\n        observer.disconnect();\n        resolve();\n      }, 3000);\n    });\n  }\n\n  async buildSummaryBlock(widget) {\n    const inner = widget.querySelector('.CarouselWidget__inner');\n    const header = widget.querySelector('.CarouselWidget__header');\n    const footer = widget.querySelector('.CarouselWidget__footer');\n    const list = widget.querySelector('.CarouselWidget__list');\n\n    if (\n      !(inner instanceof HTMLElement) ||\n      !(header instanceof HTMLElement) ||\n      !(footer instanceof HTMLElement) ||\n      !(list instanceof HTMLElement)\n    ) {\n      return;\n    }\n\n    let summary = inner.querySelector('.reviews-carousel-widget__summary');\n\n    if (!(summary instanceof HTMLElement)) {\n      summary = document.createElement('div');\n      summary.className = 'reviews-carousel-widget__summary';\n      inner.insertBefore(summary, list);\n    } else {\n      summary.replaceChildren();\n    }\n\n    const documentLanguage = document.documentElement.lang?.toLowerCase().split('-')[0] || '';\n    const language = documentLanguage || this.dataset.language || 'en';\n    const storeId = this.dataset.storeId || 'fayn';\n    const summaryLocales = {\n      de: { locale: 'de-DE', basedOn: 'basierend auf', reviewSingular: 'Bewertung', reviewPlural: 'Bewertungen' },\n      en: { locale: 'en-US', basedOn: 'Based on', reviewSingular: 'review', reviewPlural: 'reviews' },\n      es: { locale: 'es-ES', basedOn: 'Basado en', reviewSingular: 'rese\u00F1a', reviewPlural: 'rese\u00F1as' },\n      fr: { locale: 'fr-FR', basedOn: 'Bas\u00E9 sur', reviewSingular: 'avis', reviewPlural: 'avis' },\n      it: { locale: 'it-IT', basedOn: 'Basato su', reviewSingular: 'recensione', reviewPlural: 'recensioni' },\n      pl: { locale: 'pl-PL', basedOn: 'Na podstawie', reviewSingular: 'opinii', reviewPlural: 'opinii' },\n    };\n    const summaryLocale = summaryLocales[language] || summaryLocales.en;\n\n    const subheading = header.querySelector('.cssVar-header__subheading')?.textContent?.trim() || '';\n    const stars = header.querySelector('.R-RatingStars');\n    const logo = footer.querySelector('.R-ReviewsioLogo');\n    let rating = '';\n    let copy = '';\n\n    try {\n      const summaryData = await fetchReviewSummary({ storeId });\n      const { averageRating, reviewCount } = summaryData;\n\n      if (averageRating > 0) {\n        rating = new Intl.NumberFormat(summaryLocale.locale, {\n          minimumFractionDigits: 1,\n          maximumFractionDigits: 1,\n        }).format(averageRating);\n      }\n\n      if (reviewCount > 0) {\n        const formattedReviewCount = new Intl.NumberFormat(summaryLocale.locale).format(reviewCount);\n        const reviewLabel = reviewCount === 1 ? summaryLocale.reviewSingular : summaryLocale.reviewPlural;\n        copy = `${summaryLocale.basedOn} ${formattedReviewCount} ${reviewLabel}`;\n      }\n    } catch (error) {\n      console.error('Failed to load reviews carousel summary data', error);\n\n      const ratingMatch = subheading.match(/\\d+(?:[.,]\\d+)?/);\n      rating = ratingMatch?.[0] || '';\n\n      const rawCount = header.querySelector('.cssVar-subheading__number')?.textContent?.replace(/\\s+/g, ' ').trim() || '';\n      const rawCopy = subheading.replace(rating, '').replace(/\\s+/g, ' ').trim();\n      copy =\n        /\\d/.test(rawCopy)\n          ? rawCopy\n          : rawCount\n            ? `${summaryLocale.basedOn} ${rawCount}`\n            : rawCopy;\n    }\n\n    if (rating) {\n      const score = document.createElement('div');\n      score.className = 'reviews-carousel-widget__summary-score';\n\n      const ratingValue = document.createElement('span');\n      ratingValue.className = 'reviews-carousel-widget__summary-rating';\n      ratingValue.textContent = rating;\n\n      const outOf = document.createElement('span');\n      outOf.className = 'reviews-carousel-widget__summary-out-of';\n      outOf.textContent = '/ 5';\n\n      score.append(ratingValue, outOf);\n      summary.append(score);\n    }\n\n    if (copy) {\n      const copyElement = document.createElement('p');\n      copyElement.className = 'reviews-carousel-widget__summary-copy';\n      copyElement.textContent = copy;\n      summary.append(copyElement);\n    }\n\n    if (stars instanceof HTMLElement) {\n      const starsWrapper = document.createElement('div');\n      starsWrapper.className = 'reviews-carousel-widget__summary-stars';\n      starsWrapper.append(stars.cloneNode(true));\n      summary.append(starsWrapper);\n    }\n\n    if (logo instanceof HTMLElement) {\n      const logoWrapper = document.createElement('div');\n      logoWrapper.className = 'reviews-carousel-widget__summary-logo';\n      logoWrapper.append(logo.cloneNode(true));\n      summary.append(logoWrapper);\n    }\n\n    header.hidden = true;\n    footer.hidden = true;\n  }\n\n  movePlaceholderBelowSummary(widget) {\n    const inner = widget.querySelector('.CarouselWidget__inner');\n    const list = widget.querySelector('.CarouselWidget__list');\n    const placeholder = this.querySelector('.reviews-carousel-widget__placeholder');\n    const summary = inner?.querySelector('.reviews-carousel-widget__summary');\n\n    if (!(inner instanceof HTMLElement) || !(list instanceof HTMLElement) || !(placeholder instanceof HTMLElement)) {\n      return;\n    }\n\n    if (summary instanceof HTMLElement) {\n      summary.insertAdjacentElement('afterend', placeholder);\n      return;\n    }\n\n    inner.insertBefore(placeholder, list);\n  }\n\n  normalizeReviewItems(widget) {\n    for (const item of widget.querySelectorAll('.R-ReviewsList__item')) {\n      if (!(item instanceof HTMLElement)) continue;\n\n      item.classList.remove('js-open-widgetModal', 'u-cursorPointer');\n      item.removeAttribute('role');\n      item.removeAttribute('tabindex');\n      item.removeAttribute('r-popup');\n      item.removeAttribute('aria-label');\n\n      const inner = item.querySelector('.item__inner');\n      if (!(inner instanceof HTMLElement) || inner.querySelector('.reviews-carousel-widget__author-row')) {\n        continue;\n      }\n\n      const authorName = inner.querySelector('.cssVar-authorName')?.textContent?.trim();\n      const authorHeading = inner.querySelector('.R-TextHeading');\n      authorHeading?.remove();\n\n      for (const badge of inner.querySelectorAll('.R-BadgeElement, .R-LabelTag')) {\n        badge.remove();\n      }\n\n      const metaRow = inner.querySelector('.R-flex-row.R-flex-row--noMargin.R-flex-between-xxs.R-flex-bottom-xxs');\n      const dateText = metaRow?.querySelector('.R-TextBody:last-child');\n      let meta = inner.querySelector('.reviews-carousel-widget__meta');\n\n      if (!(meta instanceof HTMLElement)) {\n        meta = document.createElement('div');\n        meta.className = 'reviews-carousel-widget__meta';\n        inner.append(meta);\n      } else {\n        meta.replaceChildren();\n      }\n\n      if (dateText instanceof HTMLElement) {\n        dateText.classList.add('reviews-carousel-widget__date');\n        meta.append(dateText);\n      }\n      metaRow?.remove();\n\n      if (authorName) {\n        const authorRow = document.createElement('div');\n        authorRow.className = 'reviews-carousel-widget__author-row';\n\n        const icon = document.createElement('span');\n        icon.className = 'reviews-carousel-widget__author-icon';\n        icon.setAttribute('aria-hidden', 'true');\n\n        const name = document.createElement('span');\n        name.className = 'reviews-carousel-widget__author-text';\n        name.textContent = authorName;\n\n        authorRow.append(icon, name);\n        meta.append(authorRow);\n      }\n\n      if (!meta.childElementCount) {\n        meta.remove();\n      }\n    }\n  }\n\n  enableDragScroll(widget) {\n    const scroller = widget.querySelector('.R-ReviewsList');\n    if (!(scroller instanceof HTMLElement) || scroller.dataset.dragScrollInitialized === 'true') {\n      return;\n    }\n\n    scroller.dataset.dragScrollInitialized = 'true';\n    scroller.scrollLeft = 0;\n\n    let isPointerDown = false;\n    let isDragging = false;\n    let suppressClick = false;\n    let startX = 0;\n    let startScrollLeft = 0;\n    let activePointerId = null;\n\n    const clearState = () => {\n      if (activePointerId !== null && scroller.hasPointerCapture?.(activePointerId)) {\n        scroller.releasePointerCapture(activePointerId);\n      }\n\n      if (isDragging) {\n        suppressClick = true;\n        window.setTimeout(() => {\n          suppressClick = false;\n        }, 0);\n      }\n\n      isPointerDown = false;\n      isDragging = false;\n      activePointerId = null;\n      scroller.classList.remove('is-dragging');\n    };\n\n    scroller.addEventListener('pointerdown', (event) => {\n      if (event.pointerType === 'touch' || event.button !== 0) {\n        return;\n      }\n\n      if (event.target instanceof Element && event.target.closest('.R-ReviewsList__controlButton')) {\n        return;\n      }\n\n      isPointerDown = true;\n      startX = event.clientX;\n      startScrollLeft = scroller.scrollLeft;\n      activePointerId = event.pointerId;\n      scroller.setPointerCapture?.(event.pointerId);\n      event.preventDefault();\n    });\n\n    scroller.addEventListener('pointermove', (event) => {\n      if (!isPointerDown) {\n        return;\n      }\n\n      const deltaX = event.clientX - startX;\n\n      if (!isDragging && Math.abs(deltaX) > 4) {\n        isDragging = true;\n        scroller.classList.add('is-dragging');\n      }\n\n      if (!isDragging) {\n        return;\n      }\n\n      scroller.scrollLeft = startScrollLeft - deltaX;\n      event.preventDefault();\n    });\n\n    scroller.addEventListener('pointerup', clearState);\n    scroller.addEventListener('pointercancel', clearState);\n    scroller.addEventListener('pointerleave', () => {\n      if (isPointerDown) {\n        clearState();\n      }\n    });\n\n    scroller.addEventListener(\n      'click',\n      (event) => {\n        if (!suppressClick) {\n          return;\n        }\n\n        event.preventDefault();\n        event.stopPropagation();\n      },\n      true\n    );\n  }\n}\n\nif (!customElements.get('reviews-carousel-widget')) {\n  customElements.define('reviews-carousel-widget', ReviewsCarouselWidget);\n}\n"],
  "mappings": "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",
  "names": []
}
