(()=>{"use strict";var t={35:(t,e,a)=>{a.d(e,{A:()=>o});var i=a(601),n=a.n(i),s=a(314),r=a.n(s)()(n());r.push([t.id,".bs-stamped-container{align-self:center;padding-top:10px}@media screen and (max-width: 576px){.bs-stamped-container{align-self:center;padding-top:20px}}",""]);const o=r},56:(t,e,a)=>{t.exports=function(t){var e=a.nc;e&&t.setAttribute("nonce",e)}},72:t=>{var e=[];function a(t){for(var a=-1,i=0;i{t.exports=function(t,e){if(e.styleSheet)e.styleSheet.cssText=t;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(t))}}},314:t=>{t.exports=function(t){var e=[];return e.toString=function(){return this.map((function(e){var a="",i=void 0!==e[5];return e[4]&&(a+="@supports (".concat(e[4],") {")),e[2]&&(a+="@media ".concat(e[2]," {")),i&&(a+="@layer".concat(e[5].length>0?" ".concat(e[5]):""," {")),a+=t(e),i&&(a+="}"),e[2]&&(a+="}"),e[4]&&(a+="}"),a})).join("")},e.i=function(t,a,i,n,s){"string"==typeof t&&(t=[[null,t,void 0]]);var r={};if(i)for(var o=0;o0?" ".concat(l[5]):""," {").concat(l[1],"}")),l[5]=s),a&&(l[2]?(l[1]="@media ".concat(l[2]," {").concat(l[1],"}"),l[2]=a):l[2]=a),n&&(l[4]?(l[1]="@supports (".concat(l[4],") {").concat(l[1],"}"),l[4]=n):l[4]="".concat(n)),e.push(l))}},e}},540:t=>{t.exports=function(t){var e=document.createElement("style");return t.setAttributes(e,t.attributes),t.insert(e,t.options),e}},601:t=>{t.exports=function(t){return t[1]}},659:t=>{var e={};t.exports=function(t,a){var i=function(t){if(void 0===e[t]){var a=document.querySelector(t);if(window.HTMLIFrameElement&&a instanceof window.HTMLIFrameElement)try{a=a.contentDocument.head}catch(t){a=null}e[t]=a}return e[t]}(t);if(!i)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");i.appendChild(a)}},825:t=>{t.exports=function(t){if("undefined"==typeof document)return{update:function(){},remove:function(){}};var e=t.insertStyleElement(t);return{update:function(a){!function(t,e,a){var i="";a.supports&&(i+="@supports (".concat(a.supports,") {")),a.media&&(i+="@media ".concat(a.media," {"));var n=void 0!==a.layer;n&&(i+="@layer".concat(a.layer.length>0?" ".concat(a.layer):""," {")),i+=a.css,n&&(i+="}"),a.media&&(i+="}"),a.supports&&(i+="}");var s=a.sourceMap;s&&"undefined"!=typeof btoa&&(i+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(s))))," */")),e.styleTagTransform(i,t,e.options)}(e,t,a)},remove:function(){!function(t){if(null===t.parentNode)return!1;t.parentNode.removeChild(t)}(e)}}}}},e={};function a(i){var n=e[i];if(void 0!==n)return n.exports;var s=e[i]={id:i,exports:{}};return t[i](s,s.exports,a),s.exports}a.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return a.d(e,{a:e}),e},a.d=(t,e)=>{for(var i in e)a.o(e,i)&&!a.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},a.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),a.nc=void 0;class i{static async testCredentials(t,e){const a=`https://stamped.io/api/widget/reviews?storeUrl=${t}&apiKey=${e}`;return'"not found"'!=(await(await fetch(a)).text()).toLowerCase()}static async createApi(t){return await this.testCredentials(t.storeUrl,t.apiKeyPublic)?new i(t):await this.testCredentials(t.storeHash,t.apiKeyPublic)?(t.storeUrl=t.storeHash,new i(t)):null}constructor(t){this.apiKeyPublic=t.apiKeyPublic,this.storeUrl=t.storeUrl,this.storeHash=t.storeHash,null!=this.storeUrl&&(this.storeUrl.startsWith("https://")||this.storeUrl.startsWith("http://"))&&(this.storeUrl=this.storeUrl.replace("https://","").replace("http://",""),this.storeUrl.endsWith("/")&&(this.storeUrl=this.storeUrl.substring(0,this.storeUrl.length-1))),this.hideZeroReviews=null!=t.hideZeroReviews&&t.hideZeroReviews}async initialize(){await this.#t(),await this.#e()}#a(t,e){e.name&&t.setAttribute("data-name",e.name),e.url&&t.setAttribute("data-url",e.url),e.image&&t.setAttribute("data-image-url",e.image),e.description&&t.setAttribute("data-description",e.description),e.sku&&t.setAttribute("data-product-sku",e.sku)}async mountProductReviews(t,e,a=null){this.mainWidgetLocation=t,this.mainWidget=document.createElement("div"),this.mainWidget.setAttribute("id","stamped-main-widget"),this.mainWidget.setAttribute("style","width:100%;"),this.mainWidget.setAttribute("data-product-id",`${e}`),a&&this.#a(this.mainWidget,a),this.mainWidgetLocation.appendChild(this.mainWidget),this.triggered=!0,await window.StampedFn.init({apiKey:this.apiKeyPublic,storeUrl:this.storeUrl});const i=()=>{const t=document.querySelector(".stamped-product-reviews-badge.stamped-main-badge .stamped-badge .stamped-badge-caption");t&&(t.innerText=`${t.dataset.rating} (${t.dataset.reviews})`,t.dataset.reviews<1&&(document.querySelector(".stamped-product-reviews-badge.stamped-main-badge").style=`display:${this.hideZeroReviews?"none":"block"};`)),document.removeEventListener("stamped:badges:loaded",i)};document.addEventListener("stamped:badges:loaded",i)}#i=null;async updateProductReviews(t,e,a=null){this.mainWidget.setAttribute("id","stamped-main-widget-old"),this.loadDiv.setAttribute("id","stamped-main-widget"),this.loadDiv.setAttribute("data-product-id",`${e}`),a&&(this.#a(this.loadDiv,a),this.#a(this.mainWidget,a)),this.#i||(this.#i=t=>{if(!this.triggered)return;this.triggered=!1,this.mainWidget.innerHTML=this.loadDiv.innerHTML,this.loadDiv.innerHTML="",this.mainWidget.setAttribute("id","stamped-main-widget");const e=this.loadDiv.getAttribute("data-product-id");this.mainWidget.setAttribute("data-product-id",`${e}`),this.loadDiv.setAttribute("id","stamped-main-widget-loader")},document.addEventListener("stamped:reviews:loaded",this.#i)),this.triggered=!0,await window.StampedFn.init()}async mountProductsRatings(t){const e=Object.keys(t),a={};e.forEach((e=>{a[e]=[],t[e].forEach(((t,i)=>{a[e].push(this.#n()),t.appendChild(a[e][i])}))}));const i=await this.#s(e);e.forEach((e=>{t[e].forEach(((t,n)=>{t.replaceChild(i[e].cloneNode(!0),a[e][n])}))}))}async mountRatingsSchema(t,e){const a=this.#r([e],!1),i=this.#o(e),[n,s]=await Promise.all([a,i]);let r=null;s&&s.length>0&&(r=s.map((t=>({"@type":"Review",reviewRating:{"@type":"Rating",ratingValue:t.reviewRating.toFixed(1)},author:{"@type":"Person",name:`${t.author}`}})))),n.forEach((a=>{const i=a.rating,n=a.count;t.forEach((t=>{if(parseInt(i)>0){const a={"@context":"http://schema.org","@type":"Product","@id":`${e}_${t.id}`};a.aggregateRating={"@type":"AggregateRating",ratingValue:i.toFixed(1),reviewCount:n},r&&(a.review=r);const s=document.createElement("script");s.type="application/ld+json",s.innerHTML=JSON.stringify(a),document.head.appendChild(s)}}))}))}async#s(t){const e=await this.#r(t),a={};return e.forEach((t=>{const e=document.createElement("div");e.classList.add("bs-stamped-container"),e.innerHTML=t.badge;const i=e.querySelector(".stamped-badge-caption"),n=i.dataset.reviews,s=document.createElement("span");s.innerText=`(${n})`,i.parentNode.replaceChild(s,i),a[t.productId]=e})),a}async#r(t,e=!0){t=t.map((t=>({productId:t})));const a=`https://stamped.io/api/widget/badges?isincludehtml=${e.toString()}`;return await this.#d(a,{productIds:t},"POST")}async#d(t,e={},a="GET"){const i={method:a};if("GET"!=a.toUpperCase()){e.apiKey=this.apiKeyPublic,e.storeUrl=this.storeUrl;const t=JSON.stringify(e);i.body=t}const n=new Headers;n.append("Content-Type","application/json"),i.headers=n;const s=await fetch(t,i);return await s.json()}#n(){const t=document.createElement("div");return t.classList.add("bs-stamped-container"),t.innerHTML='\n \n \n ',t}async#e(){const t=`\n .stamped-badge[data-rating="0"], .stamped-badge[data-rating="0,0"], .stamped-badge[data-rating="0.0"] {\n display: block !important;\n visibility:${this.hideZeroReviews?"hidden":"visible"};\n }`,e=document.createElement("style");e.innerHTML=t,document.head.appendChild(e)}async#t(){const t=document.createElement("script");return t.setAttribute("type","text/javascript"),t.setAttribute("src","https://cdn1.stamped.io/files/widget.min.js"),document.head.appendChild(t),await new Promise((e=>{t.addEventListener("load",(()=>{e()}))}))}async mountMainRatings(t,e){const a=document.createElement("span");a.classList.add("stamped-product-reviews-badge"),a.classList.add("stamped-main-badge"),a.setAttribute("data-id",t),e.appendChild(a)}async#o(t,e=3){const a=`https://stamped.io/api/widget/reviews?productId=${t}&take=${e}&storeUrl=${this.storeUrl}&apiKey=${this.apiKeyPublic}&sortReviews=highest-rating`;return(await this.#d(a)).data}}var n=a(72),s=a.n(n),r=a(825),o=a.n(r),d=a(659),c=a.n(d),l=a(56),u=a.n(l),p=a(540),m=a.n(p),h=a(113),g=a.n(h),v=a(35),f={};f.styleTagTransform=g(),f.setAttributes=u(),f.insert=c().bind(null,"head"),f.domAPI=o(),f.insertStyleElement=m();s()(v.A,f);v.A&&v.A.locals&&v.A.locals;const w=document.currentScript,y={};try{const t=w.getAttribute("settings");if(t){const e=JSON.parse(t);e.apiKeyPublic&&(y.apiKeyPublic=e.apiKeyPublic),e.storeUrl&&(y.storeUrl=e.storeUrl),e.storeHash&&(y.storeHash=e.storeHash),null!=e.showRelated&&(y.showRelated=e.showRelated??!0),null!=e.hideZeroReviews&&(y.hideZeroReviews=e.hideZeroReviews??!1),y.ratingsMountClass=e.ratingsMountClass??"review-plugin-product-rating",y.mainRatingMountClass=e.mainRatingMountClass??"review-plugin-main-rating",y.mainReviewsMountClass=e.mainReviewsMountClass??"review-plugin-main-reviews"}}catch{}(function(t){return!!t&&(!!t.storeUrl&&(!!t.storeHash&&!!t.apiKeyPublic))})(y)&&async function(){const t=await i.createApi(y);if(!t)return;await t.initialize();const e=window.location.pathname.split("/")[1];let a=[];if("product"==e){const e=window.Bsale.products[0];t.mountRatingsSchema(e.variants,e.id);let i=document.querySelector(`.${y.mainRatingMountClass}`);if(!i){i=document.createElement("div");let t=null;for(let e=1;e<=6&&(t=document.querySelector(`[data-bs='product.detail'] h${e}`),!t);e++);t&&(t.nextElementSibling?t.parentElement.insertBefore(i,t.nextElementSibling):t.parentElement.append(i))}const n=document.querySelector(".container.bs-product")||document.querySelector(".bs-product > .container")||document.querySelector("div[class*='container'].bs-product");let s=document.querySelector(`.${y.mainReviewsMountClass}`);s||(s=document.createElement("div"),s.classList.add("row"),n?.appendChild(s));let r=e.id,o={name:e.title,url:window.location.href,image:e.defaultImage,description:e.description};await t.mountMainRatings(r,i),await t.mountProductReviews(s,r,o),y.showRelated&&window.Bsale.products[0]&&(a=[...a,...window.Bsale.products[0].related.items])}else"search"!=e&&"collection"!=e&&""!=e||window.Bsale.collections.forEach((t=>{a=[...a,...t.items]}));let n=document.querySelectorAll(`.${y.ratingsMountClass}`);if(0==n.length&&(n=document.querySelectorAll("[data-bs='product']")),0==n.length)return;const s={};n.forEach((t=>{const e=parseInt(t.dataset.info);s[e]||(s[e]=[]),s[e].push(t)})),await t.mountProductsRatings(s)}()})();