{
  "version": 3,
  "sources": ["/cdn/shop/t/2/assets/sd-native-reviews.js?sdv=20260623-title-placement-v5"],
  "sourcesContent": ["(function () {\n  if (window.__sdNativeReviewsBooted) return;\n  window.__sdNativeReviewsBooted = true;\n\n  function qsa(root, selector) {\n    return Array.prototype.slice.call(root.querySelectorAll(selector));\n  }\n  function escapeHtml(value) {\n    return String(value == null ? \"\" : value).replace(/[&<>\"']/g, function (char) {\n      return { \"&\": \"&amp;\", \"<\": \"&lt;\", \">\": \"&gt;\", '\"': \"&quot;\", \"'\": \"&#39;\" }[char];\n    });\n  }\n  function productHandleFromPath() {\n    var match = window.location.pathname.match(/\\/products\\/([^/?#]+)/);\n    return match ? match[1] : \"\";\n  }\n  function reviewAnchorId() {\n    return \"sofa-decor-product-reviews\";\n  }\n  function isVisibleElement(element) {\n    if (!element || !element.getBoundingClientRect) return false;\n    var style = window.getComputedStyle(element);\n    var rect = element.getBoundingClientRect();\n    return style.display !== \"none\" &&\n      style.visibility !== \"hidden\" &&\n      Number(style.opacity || 1) !== 0 &&\n      rect.width > 24 &&\n      rect.height > 10;\n  }\n  function pageProductTitle() {\n    var ogTitle = document.querySelector('meta[property=\"og:title\"]');\n    if (ogTitle && ogTitle.content) return ogTitle.content.trim();\n    var title = document.title || \"\";\n    return title.replace(/\\s*[|-]\\s*Sofa Decor\\s*$/i, \"\").trim();\n  }\n  function findProductTitleElement() {\n    var details = document.querySelector('[data-testid=\"product-information-details\"]') ||\n      document.querySelector(\".product-details\") ||\n      document.querySelector(\"main\");\n    if (!details) return null;\n    var productTitle = pageProductTitle().toLowerCase();\n    var selectors = [\n      '[class*=\"product_title\"] p',\n      '[class*=\"product_title\"]',\n      \".view-product-title a\",\n      \"h1\",\n      \"h2\",\n      \".text-block p\",\n      \".text-block\"\n    ];\n    var seen = [];\n    var candidates = [];\n    selectors.forEach(function (selector) {\n      qsa(details, selector).forEach(function (item) {\n        if (seen.indexOf(item) === -1) {\n          seen.push(item);\n          candidates.push(item);\n        }\n      });\n    });\n    var match = candidates.find(function (item) {\n      var text = (item.textContent || \"\").replace(/\\s+/g, \" \").trim();\n      if (!text || /GBP|cart|stock|people viewing|reviews|sale|shipping/i.test(text)) return false;\n      if (!isVisibleElement(item)) return false;\n      var lowerText = text.toLowerCase();\n      return !productTitle || productTitle.indexOf(lowerText) !== -1 || lowerText.indexOf(productTitle) !== -1 || item.className.indexOf(\"product_title\") !== -1;\n    });\n    if (!match) return null;\n    return match.closest(\".text-block\") || match.closest(\".view-product-title\") || match;\n  }\n  function productStats(dataset, handle) {\n    if (!handle) return null;\n    var byProduct = dataset.byProduct || {};\n    var item = byProduct[handle];\n    var count = item && Number(item.count || 0);\n    var average = item && Number(item.average || 0);\n    if (count && average) return { count: count, average: average };\n    var reviews = (dataset.reviews || []).filter(function (review) {\n      return review.product && review.product.handle === handle;\n    });\n    if (!reviews.length) return null;\n    average = reviews.reduce(function (sum, review) { return sum + Number(review.rating || 0); }, 0) / reviews.length;\n    return { count: reviews.length, average: average };\n  }\n  function ensureReviewSectionAnchor() {\n    var section = document.querySelector(\".sd-native-reviews[data-reviews-json]\");\n    if (!section) return null;\n    if (!section.id) section.id = reviewAnchorId();\n    return section;\n  }\n  function initProductPageSummary(dataset) {\n    var handle = productHandleFromPath();\n    if (!handle || document.querySelector(\".sd-product-page-rating-link\")) return;\n    var stats = productStats(dataset, handle);\n    if (!stats || !stats.count || !stats.average) return;\n    var title = findProductTitleElement();\n    if (!title || !title.parentNode) return;\n    var section = ensureReviewSectionAnchor();\n    if (!section) return;\n    var reviewWord = stats.count === 1 ? \"review\" : \"reviews\";\n    var link = document.createElement(\"a\");\n    link.className = \"sd-product-page-rating-link\";\n    link.href = \"#\" + reviewAnchorId();\n    link.setAttribute(\"aria-label\", \"Read \" + stats.count + \" verified customer \" + reviewWord + \" for this product\");\n    link.innerHTML = '' +\n      '<span class=\"sd-product-page-rating-link__stars\" aria-hidden=\"true\">' + escapeHtml(starText(stats.average)) + '</span>' +\n      '<span class=\"sd-product-page-rating-link__copy\"><strong>' + escapeHtml(stats.average.toFixed(1)) + '</strong> from ' + escapeHtml(stats.count) + ' verified customer ' + escapeHtml(reviewWord) + '</span>' +\n      '<span class=\"sd-product-page-rating-link__action\">Read reviews</span>';\n    link.addEventListener(\"click\", function (event) {\n      var target = ensureReviewSectionAnchor();\n      if (!target) return;\n      event.preventDefault();\n      var offset = 84;\n      var top = target.getBoundingClientRect().top + window.pageYOffset - offset;\n      window.scrollTo({ top: top, behavior: \"smooth\" });\n      if (window.history && window.history.replaceState) {\n        window.history.replaceState(null, \"\", \"#\" + reviewAnchorId());\n      }\n    });\n    title.insertAdjacentElement(\"afterend\", link);\n  }\n  function formatDate(value) {\n    if (!value) return \"\";\n    var parts = String(value).split(\" \")[0].split(\"-\");\n    if (parts.length !== 3) return value;\n    var date = new Date(Number(parts[0]), Number(parts[1]) - 1, Number(parts[2]));\n    return date.toLocaleDateString(\"en-AU\", { month: \"short\", year: \"numeric\" });\n  }\n  function initials(name) {\n    return String(name || \"Verified customer\").trim().split(/\\s+/).slice(0, 2).map(function (part) {\n      return part.charAt(0).toUpperCase();\n    }).join(\"\") || \"SD\";\n  }\n  function starTiles(rating) {\n    var filled = Math.max(0, Math.min(5, Math.round(Number(rating) || 0)));\n    var html = \"\";\n    for (var i = 1; i <= 5; i += 1) {\n      html += '<span class=\"sd-native-review-star' + (i > filled ? ' is-empty' : '') + '\" aria-hidden=\"true\">\u2605</span>';\n    }\n    return html;\n  }\n  function starText(rating) {\n    var filled = Math.max(0, Math.min(5, Math.round(Number(rating) || 0)));\n    return \"\u2605\u2605\u2605\u2605\u2605\".slice(0, filled) + \"\u2606\u2606\u2606\u2606\u2606\".slice(0, 5 - filled);\n  }\n  function reviewHeadline(review, copy) {\n    var title = String(review.title || \"\").trim();\n    if (title) return title;\n    var sentence = String(copy || \"\").split(/[.!?]/)[0].trim();\n    if (!sentence || sentence.length < 8) return Number(review.rating || 0) >= 5 ? \"Excellent quality and fit\" : \"Customer experience\";\n    return sentence.length > 72 ? sentence.slice(0, 69).trim() + \"...\" : sentence;\n  }\n  function reviewCard(review, showProduct) {\n    var mediaItems = review.media || [];\n    var media = mediaItems.slice(0, 3).map(function (item, index) {\n      var url = item.assetUrl || item.url || item.thumbUrl || item.originalUrl;\n      if (!url) return \"\";\n      var more = index === 2 && mediaItems.length > 3\n        ? '<span class=\"sd-native-review-card__media-more\">+' + escapeHtml(mediaItems.length - 3) + '</span>'\n        : \"\";\n      return '<span class=\"sd-native-review-card__media-item\"><img loading=\"lazy\" src=\"' + escapeHtml(url) + '\" alt=\"' + escapeHtml(\"Customer photo for \" + (review.product && review.product.title || \"Sofa Decor review\")) + '\">' + more + '</span>';\n    }).join(\"\");\n    var copy = review.content || \"Rated \" + review.rating + \" out of 5 by a Sofa Decor customer.\";\n    var headline = reviewHeadline(review, copy);\n    var product = showProduct && review.product && review.product.title\n      ? '<div class=\"sd-native-review-card__product\"><a href=\"' + escapeHtml(review.product.url || \"#\") + '\">' + escapeHtml(review.product.title) + '</a></div>'\n      : \"\";\n    var proof = '' +\n      '<div class=\"sd-native-review-card__proof\">' +\n        '<span class=\"sd-native-review-card__badge\">' + (review.verified ? '\u2713 Verified purchase' : 'Customer review') + '</span>' +\n        (review.location ? '<span class=\"sd-native-review-card__badge\">' + escapeHtml(review.location) + '</span>' : '') +\n        (mediaItems.length ? '<span class=\"sd-native-review-card__badge sd-native-review-card__badge--photo\">Photo review</span>' : '') +\n      '</div>';\n    return '' +\n      '<article class=\"sd-native-review-card\" data-rating=\"' + escapeHtml(review.rating) + '\">' +\n        '<div class=\"sd-native-review-card__top\">' +\n          '<div class=\"sd-native-review-card__stars\" aria-label=\"' + escapeHtml(review.rating + ' out of 5 stars') + '\">' + starTiles(review.rating) + '</div>' +\n          '<div class=\"sd-native-review-card__date\">' + escapeHtml(formatDate(review.date)) + '</div>' +\n        '</div>' +\n        '<h3 class=\"sd-native-review-card__headline\">' + escapeHtml(headline) + '</h3>' +\n        '<p class=\"sd-native-review-card__copy\">' + escapeHtml(copy) + '</p>' +\n        (media ? '<div class=\"sd-native-review-card__media\">' + media + '</div>' : '') +\n        proof +\n        '<div class=\"sd-native-review-card__footer\">' +\n          '<div class=\"sd-native-review-card__author\">' +\n            '<div class=\"sd-native-review-card__avatar\">' + escapeHtml(initials(review.author)) + '</div>' +\n            '<div><div class=\"sd-native-review-card__name\">' + escapeHtml(review.author || \"Verified customer\") + '</div>' +\n            '<div class=\"sd-native-review-card__meta\">Sofa Decor customer</div></div>' +\n          '</div>' +\n          product +\n        '</div>' +\n        (review.itemType ? '<div class=\"sd-native-review-card__meta\">' + escapeHtml(review.itemType) + '</div>' : '') +\n      '</article>';\n  }\n  function chooseReviews(section, dataset) {\n    var mode = section.getAttribute(\"data-review-mode\") || \"auto\";\n    var currentHandle = productHandleFromPath();\n    var reviews = dataset.reviews || [];\n    if ((mode === \"product\" || mode === \"auto\") && currentHandle) {\n      var productReviews = reviews.filter(function (review) {\n        return review.product && review.product.handle === currentHandle;\n      });\n      if (productReviews.length) return { reviews: productReviews, productMode: true };\n      if (section.getAttribute(\"data-fallback\") !== \"all\") return { reviews: [], productMode: true };\n    }\n    return { reviews: reviews, productMode: false };\n  }\n  function init(section, dataset) {\n    var selected = chooseReviews(section, dataset);\n    var totalReviews = selected.reviews;\n    var reviews = totalReviews.slice();\n    var track = section.querySelector(\"[data-sd-reviews-track]\");\n    var count = section.querySelector(\"[data-sd-review-count]\");\n    var score = section.querySelector(\"[data-sd-review-score]\");\n    var stars = section.querySelector(\"[data-sd-review-stars]\");\n    if (!track || !reviews.length) {\n      section.setAttribute(\"data-empty\", \"true\");\n      return;\n    }\n    var avg = totalReviews.reduce(function (sum, review) { return sum + Number(review.rating || 0); }, 0) / totalReviews.length;\n    track.innerHTML = reviews.map(function (review) { return reviewCard(review, !selected.productMode); }).join(\"\");\n    if (count) count.textContent = String(totalReviews.length);\n    if (score) score.textContent = avg.toFixed(1);\n    if (stars) stars.innerHTML = starTiles(avg);\n    section.setAttribute(\"data-empty\", \"false\");\n    var prev = section.querySelector(\"[data-sd-review-prev]\");\n    var next = section.querySelector(\"[data-sd-review-next]\");\n    function move(direction) {\n      var card = track.querySelector(\".sd-native-review-card\");\n      var width = card ? card.getBoundingClientRect().width + 14 : 320;\n      track.scrollBy({ left: direction * width, behavior: \"smooth\" });\n    }\n    if (prev) prev.addEventListener(\"click\", function () { move(-1); });\n    if (next) next.addEventListener(\"click\", function () { move(1); });\n  }\n  function cleanBadgeText(value) {\n    return String(value || \"\").replace(/\\s+/g, \" \").trim();\n  }\n  function normaliseBadgeText(value) {\n    return cleanBadgeText(value).toLowerCase();\n  }\n  function titleTextFromBadge(badge) {\n    var title = badge.getAttribute(\"data-product-title\") || badge.getAttribute(\"data-sd-product-title\") || \"\";\n    if (title) return normaliseBadgeText(title);\n    var label = badge.getAttribute(\"aria-label\") || \"\";\n    var match = label.match(/\\bfor\\s+(.+)$/i);\n    return match ? normaliseBadgeText(match[1]) : \"\";\n  }\n  function isCardTitleCandidate(item, badge, expectedTitle) {\n    if (!item || item === badge || item.contains(badge) || badge.contains(item)) return false;\n    if (item.closest(\".sd-product-card-rating, form, product-form-component, [class*='quick-add'], [class*='QuickAdd'], button, [role='button']\")) return false;\n    var text = cleanBadgeText(item.textContent);\n    if (!text) return false;\n    if (/add to cart|quick add|select options|sold out|unavailable|people viewing|aud|\\$\\s*\\d|save|sale|off|review|rating|star|tax|shipping/i.test(text)) return false;\n    var lower = normaliseBadgeText(text);\n    if (expectedTitle && (expectedTitle.indexOf(lower) !== -1 || lower.indexOf(expectedTitle) !== -1)) return true;\n    var className = String(item.className || \"\");\n    return /product[_-]?title|view-product-title|title/i.test(className) || /^H[1-6]$/.test(item.tagName || \"\");\n  }\n  function scoreCardTitleCandidate(item, expectedTitle) {\n    var score = 0;\n    var text = normaliseBadgeText(item.textContent);\n    var className = String(item.className || \"\");\n    if (expectedTitle && (expectedTitle.indexOf(text) !== -1 || text.indexOf(expectedTitle) !== -1)) score += 100;\n    if (/product[_-]?title|view-product-title|title/i.test(className)) score += 40;\n    if (/^H[1-6]$/.test(item.tagName || \"\")) score += 25;\n    if (item.closest(\".text-block\")) score += 10;\n    if (text.length >= 8 && text.length <= 140) score += 10;\n    return score;\n  }\n  function placeBadgeNearTitle(badge) {\n    var card = badge.closest(\".product-card__link\") ||\n      badge.closest(\"product-card-link\") ||\n      badge.closest(\"product-card\") ||\n      badge.closest(\".product-grid__item\") ||\n      badge.parentElement;\n    if (!card) return;\n\n    var expectedTitle = titleTextFromBadge(badge);\n    var content = card.querySelector(\".group-block-content\") || card;\n    var selectors = [\n      \"[data-product-title]\",\n      \"[class*='product_title']\",\n      \".view-product-title\",\n      \".product-card-title\",\n      \".product-title\",\n      \"h1\",\n      \"h2\",\n      \"h3\",\n      \"h4\",\n      \"h5\",\n      \"h6\",\n      \".text-block\",\n      \"p\"\n    ];\n    var seen = [];\n    var candidates = [];\n    selectors.forEach(function (selector) {\n      qsa(content, selector).forEach(function (item) {\n        if (seen.indexOf(item) === -1 && isCardTitleCandidate(item, badge, expectedTitle)) {\n          seen.push(item);\n          candidates.push(item);\n        }\n      });\n    });\n    candidates.sort(function (a, b) {\n      return scoreCardTitleCandidate(b, expectedTitle) - scoreCardTitleCandidate(a, expectedTitle);\n    });\n\n    var targetTitle = candidates[0] || null;\n    if (!targetTitle) {\n      var details = card.querySelector(\".product-grid-view-zoom-out--details\");\n      if (details) targetTitle = details.querySelector(\"h1, h2, h3, h4, h5, h6, p, .text-block\");\n    }\n    if (!targetTitle || !targetTitle.parentNode) return;\n\n    var insertionTarget = targetTitle.closest(\"[class*='product_title']\") ||\n      targetTitle.closest(\".view-product-title\") ||\n      targetTitle.closest(\".text-block\") ||\n      targetTitle;\n    if (!insertionTarget || !insertionTarget.parentNode) return;\n    if (insertionTarget.nextElementSibling === badge) {\n      badge.setAttribute(\"data-sd-rating-placement\", \"title\");\n      return;\n    }\n    insertionTarget.insertAdjacentElement(\"afterend\", badge);\n    badge.setAttribute(\"data-sd-rating-placement\", \"title\");\n  }\n\n  \n  function handleFromElement(element) {\n    var handle = element.getAttribute(\"data-product-handle\") || \"\";\n    if (handle) return handle;\n    var link = element.closest(\"a[href*='/products/']\") ||\n      (element.closest(\"product-card, product-card-link, .product-grid__item\") || document).querySelector(\"a[href*='/products/']\");\n    if (!link) return \"\";\n    var match = String(link.getAttribute(\"href\") || \"\").match(/\\/products\\/([^/?#]+)/);\n    return match ? match[1] : \"\";\n  }\n  function productStatsForId(dataset, productId) {\n    if (!productId) return null;\n    var reviews = (dataset.reviews || []).filter(function (review) {\n      return review.product && String(review.product.id || \"\") === String(productId);\n    });\n    if (!reviews.length) return null;\n    var average = reviews.reduce(function (sum, review) { return sum + Number(review.rating || 0); }, 0) / reviews.length;\n    return {\n      count: reviews.length,\n      average: average,\n      handle: reviews[0].product && reviews[0].product.handle || \"\"\n    };\n  }\n  function productStatsForBadge(dataset, badge) {\n    var byProduct = dataset.byProduct || {};\n    var handle = handleFromElement(badge);\n    var item = handle && byProduct[handle];\n    if (item && Number(item.count || 0) && Number(item.average || 0)) {\n      if (!badge.getAttribute(\"data-product-handle\")) badge.setAttribute(\"data-product-handle\", handle);\n      return { count: Number(item.count || 0), average: Number(item.average || 0), handle: handle };\n    }\n    var card = badge.closest(\"[data-product-id]\");\n    var stats = productStatsForId(dataset, card && card.getAttribute(\"data-product-id\"));\n    if (stats && stats.handle && !badge.getAttribute(\"data-product-handle\")) badge.setAttribute(\"data-product-handle\", stats.handle);\n    return stats;\n  }\n  function initProductBadges(dataset, root) {\n    var scope = root && root.querySelectorAll ? root : document;\n    var badges = qsa(scope, \"[data-product-review-badge]\");\n    if (scope !== document && scope.matches && scope.matches(\"[data-product-review-badge]\")) badges.unshift(scope);\n    if (!badges.length) return 0;\n    var updated = 0;\n    badges.forEach(function (badge) {\n      if (badge.getAttribute(\"data-sd-rating-ready\") === \"true\") {\n        placeBadgeNearTitle(badge);\n        badge.hidden = false;\n        updated += 1;\n        return;\n      }\n      var stats = productStatsForBadge(dataset, badge);\n      var handle = stats && stats.handle || badge.getAttribute(\"data-product-handle\") || \"\";\n      var count = stats && Number(stats.count || 0);\n      var avg = stats && Number(stats.average || 0);\n      if (!count || !avg) {\n        badge.hidden = true;\n        return;\n      }\n      var stars = badge.querySelector(\"[data-sd-card-stars]\");\n      var score = badge.querySelector(\"[data-sd-card-score]\");\n      var countEl = badge.querySelector(\"[data-sd-card-count]\");\n      if (stars) stars.textContent = starText(avg);\n      if (score) score.textContent = avg.toFixed(1);\n      if (countEl) countEl.textContent = \"(\" + count + \" \" + (count === 1 ? \"review\" : \"reviews\") + \")\";\n      badge.setAttribute(\"aria-label\", avg.toFixed(1) + \" out of 5 from \" + count + \" \" + (count === 1 ? \"review\" : \"reviews\"));\n      badge.setAttribute(\"data-sd-rating-ready\", \"true\");\n      placeBadgeNearTitle(badge);\n      badge.hidden = false;\n      updated += 1;\n    });\n    return updated;\n  }\n  function relocateReadyProductBadges(root) {\n    var scope = root && root.querySelectorAll ? root : document;\n    var badges = qsa(scope, \"[data-product-review-badge]\");\n    if (scope !== document && scope.matches && scope.matches(\"[data-product-review-badge]\")) badges.unshift(scope);\n    badges.forEach(function (badge) {\n      if (badge.getAttribute(\"data-sd-rating-ready\") === \"true\") {\n        placeBadgeNearTitle(badge);\n        badge.hidden = false;\n      }\n    });\n  }\n  function watchReadyProductBadgePlacement() {\n    relocateReadyProductBadges(document);\n    [100, 400, 1200, 2600, 5000].forEach(function (delay) {\n      window.setTimeout(function () { relocateReadyProductBadges(document); }, delay);\n    });\n    if (window.__sdNativeReviewsReadyBadgeObserver || !(\"MutationObserver\" in window) || !document.body) return;\n    var timer = null;\n    var observer = new MutationObserver(function (mutations) {\n      var needsRefresh = false;\n      for (var i = 0; i < mutations.length && !needsRefresh; i += 1) {\n        var mutation = mutations[i];\n        for (var j = 0; j < mutation.addedNodes.length; j += 1) {\n          var node = mutation.addedNodes[j];\n          if (!node || node.nodeType !== 1) continue;\n          if ((node.matches && node.matches(\"[data-product-review-badge], product-card, product-card-link, .product-grid__item, .resource-list__item\")) ||\n            (node.querySelector && node.querySelector(\"[data-product-review-badge]\"))) {\n            needsRefresh = true;\n            break;\n          }\n        }\n      }\n      if (!needsRefresh) return;\n      if (timer) window.clearTimeout(timer);\n      timer = window.setTimeout(function () {\n        timer = null;\n        relocateReadyProductBadges(document);\n      }, 80);\n    });\n    observer.observe(document.body, { childList: true, subtree: true });\n    window.__sdNativeReviewsReadyBadgeObserver = observer;\n  }\n  function watchDynamicProductBadges(dataset) {\n    if (window.__sdNativeReviewsBadgeObserver) return;\n    var timer = null;\n    function refresh(root) {\n      if (timer) window.clearTimeout(timer);\n      timer = window.setTimeout(function () {\n        timer = null;\n        initProductBadges(dataset, root || document);\n      }, 80);\n    }\n    if (\"MutationObserver\" in window && document.body) {\n      var observer = new MutationObserver(function (mutations) {\n        var needsRefresh = false;\n        for (var i = 0; i < mutations.length && !needsRefresh; i += 1) {\n          var mutation = mutations[i];\n          for (var j = 0; j < mutation.addedNodes.length; j += 1) {\n            var node = mutation.addedNodes[j];\n            if (!node || node.nodeType !== 1) continue;\n            if ((node.matches && node.matches(\"[data-product-review-badge], product-card, product-card-link, .product-grid__item, .resource-list__item\")) ||\n              (node.querySelector && node.querySelector(\"[data-product-review-badge]\"))) {\n              needsRefresh = true;\n              break;\n            }\n          }\n        }\n        if (needsRefresh) refresh(document);\n      });\n      observer.observe(document.body, { childList: true, subtree: true });\n      window.__sdNativeReviewsBadgeObserver = observer;\n    }\n    [\"shopify:section:load\", \"shopify:section:reorder\", \"shopify:block:select\", \"shopify:section:select\", \"theme:collection:updated\", \"collection:updated\"].forEach(function (eventName) {\n      document.addEventListener(eventName, function (event) {\n        refresh(event.target || document);\n      });\n    });\n    window.addEventListener(\"pageshow\", function () { refresh(document); });\n    window.addEventListener(\"resize\", function () { refresh(document); });\n    refresh(document);\n  }\n  function boot() {\n    var sections = qsa(document, \".sd-native-reviews[data-reviews-json]\");\n    var badges = qsa(document, \"[data-product-review-badge]\");\n    if (!sections.length && !badges.length) return;\n    watchReadyProductBadgePlacement();\n    var source = sections[0] || badges[0];\n    var url = source.getAttribute(\"data-reviews-json\");\n    if (!url) return;\n    fetch(url, { credentials: \"same-origin\" })\n      .then(function (response) { return response.json(); })\n      .then(function (dataset) {\n        sections.forEach(function (section) { init(section, dataset); });\n        initProductBadges(dataset);\n        watchDynamicProductBadges(dataset);\n        initProductPageSummary(dataset);\n      })\n      .catch(function () {\n        sections.forEach(function (section) { section.setAttribute(\"data-empty\", \"true\"); });\n      });\n  }\n  if (document.readyState === \"loading\") document.addEventListener(\"DOMContentLoaded\", boot);\n  else boot();\n})();\n"],
  "mappings": "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",
  "names": []
}
