"use strict";(()=>{(()=>{let w="https://api.feedspring.co",p=document.currentScript,g=e=>new Date(e),R=e=>new Date(e).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"}),y=e=>{let t=new Map;for(let n of e)t.set(n.id,n);return[...t.values()]},h=e=>[...e].sort((t,n)=>g(n.createdAt).getTime()-g(t.createdAt).getTime());async function T(e,t){let n=await fetch(`${w}/${encodeURIComponent(e)}`,{signal:t});if(!n.ok)throw new Error(`Feed ${e} ${n.status}`);return await n.json()}let v=(e,t)=>{let n=document.querySelectorAll('[data-element="rating"]'),a=document.querySelectorAll('[data-element="rating-count"]');for(let r of n)r.textContent=`${e.toFixed(1)}`;for(let r of a)r.textContent=`${t}`};function A(e){return e.length?e.reduce((n,a)=>n+a,0)/e.length:0}function E(e){return e.reduce((t,n)=>t+(n.data.extra.total||0),0)}function x(e){try{let t=localStorage.getItem(e);if(!t)return null;let{at:n,ttl:a,payload:r}=JSON.parse(t);return a&&Date.now()-n>a*1e3?null:r}catch{return null}}function F(e,t,n){try{localStorage.setItem(e,JSON.stringify({at:Date.now(),ttl:n,payload:t}))}catch{}}function L(e,t){let n=e.querySelector('[feed-field="review"]'),a=e.querySelector('[feed-field="name"]'),r=e.querySelector('[feed-field="timestamp"]');if(n){n.textContent="";let u=(t.comment||"").split(` `).filter(o=>o.trim()!=="");if(u.length>1)u.forEach(o=>{let d=document.createElement("p");d.textContent=o,n.appendChild(d)});else{let o=document.createElement("p");o.textContent=t.comment||"",n.appendChild(o)}}a&&(a.textContent=t.author?.name||"Customer"),r&&(r.textContent=R(t.createdAt));let c=e.querySelector('img[feed-field="avatar"]');return c&&(c.src=t.author?.photoUrl||"",c.alt=t.author?.name?`${t.author.name} avatar`:"Reviewer avatar"),e.removeAttribute("id"),e instanceof HTMLElement&&e.style.removeProperty("display"),e}function S(e,t,n,a){let r=t.content.firstChild,c=typeof a=="number"&&a>0?n.slice(0,a):n,u=document.createDocumentFragment();for(let o of c){let d=r.cloneNode(!0);u.appendChild(L(d,o))}[...e.children].forEach(o=>{o!==t&&o.remove()}),e.appendChild(u)}async function C(){let e=document.querySelector('[data-element="feed"]'),t=document.getElementById("review-template"),a=(p?.getAttribute("data-feeds")??e?.getAttribute("data-feeds")??"").trim().split(",").map(s=>s.trim()).filter(Boolean);if(!a.length)return;let r=(p?.getAttribute("data-limit")??e?.getAttribute("data-limit")??"").trim(),c=r===""?void 0:Number(r),u=(p?.getAttribute("data-cache-ttl")??e?.getAttribute("data-cache-ttl")??"").trim(),o=u===""?0:Number(u),d=`feedspring:${a.sort().join("|")}`,f=x(d);if(f){let s=h(y(f.flatMap(l=>l.status==="fulfilled"&&Array.isArray(l.value.data.media)?l.value.data.media:[]))),m=f.map(l=>l.status==="fulfilled"&&Array.isArray(l.value.data.media)?l.value.data.extra.averageRating:[]);v(A(m),E(f.map(l=>l.value))),e&&t&&S(e,t,s,c)}let b=new AbortController,M=setTimeout(()=>b.abort(),15e3);try{let s=await Promise.allSettled(a.map(i=>T(i,b.signal)));console.log(s.length);let m=h(y(s.flatMap(i=>i.status==="fulfilled"&&Array.isArray(i.value.data.media)?i.value.data.media:[])));F(d,s,o||0);let l=s.map(i=>i.status==="fulfilled"&&Array.isArray(i.value.data.media)?i.value.data.extra.averageRating:[]);l&&v(A(l),E(s.map(i=>i.value))),e&&t&&S(e,t,m,c)}catch(s){if(!f&&e){let m=document.createElement("div");m.textContent="Unable to load reviews right now.",e.appendChild(m)}console.error(s)}finally{clearTimeout(M)}}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",C):C()})();})();