PageSourceSearch

https://horze.eu/cdn/shop/t/676/assets/star-rating-summary.element-k2YvC3Is.js

js horze.eu collected 2026-09-24 11:36:28 UTC 3,901 bytes, 74 lines download raw bytes

1import{i as l,n as g,a as p,t as h}from"./vendor-lit-reactive-element-Cjcwuima.js";import{x as i}from"./vendor-lit-html-nFsY_NSA.js";import{r as f}from"./vendor-lit-element-CtcYdrtK.js";import{reviewsDataStore as c}from"./reviews-data.store-CQyUfp3R.js";import"./stars-reviews.element-CrVv3X2A.js";import"./average-rating.element-D02hK_QV.js";import"./number-of-reviews.element-Cvog8DlT.js";var v=Object.defineProperty,m=Object.getOwnPropertyDescriptor,u=(t,a,e,n)=>{for(var r=n>1?void 0:n?m(a,e):a,o=t.length-1,d;o>=0;o--)(d=t[o])&&(r=(n?d(a,e,r):d(r))||r);return n&&r&&v(a,e,r),r};let s=class extends f{constructor(){super(...arguments),this.showSkuCount=!1,this.dataState=c.getState()}connectedCallback(){super.connectedCallback(),this.unsubscribe=c.subscribe(t=>{this.dataState=t,this.requestUpdate()}),this.requestUpdate(),!this.hasRatingData()&&!this.dataState.loading&&setTimeout(()=>{this.hasRatingData()||this.requestUpdate()},100)}disconnectedCallback(){var t;super.disconnectedCallback(),(t=this.unsubscribe)==null||t.call(this)}getSyndicatedData(){const t=this.dataState.originalSyndicatedStats;return t?{averageRating:t.average_rating,reviewCount:t.review_count,isValid:!0}:{averageRating:this.dataState.averageRating,reviewCount:this.dataState.reviewCount,isValid:!1}}getSkuInfo(){const t=this.dataState.filters.sku;if(!t)return{skus:[],count:0};const a=t.split(";").map(e=>e.trim()).filter(e=>e.length>0);return{skus:a,count:a.length}}renderSkuIndicator(){if(!this.showSkuCount)return"";const{count:t}=this.getSkuInfo();return t<=1?"":i`
2            <span class="sku-indicator">${t} variants</span>
3        `}hasRatingData(){const{averageRating:t}=this.getSyndicatedData();return!!t}render(){const{averageRating:t}=this.getSyndicatedData(),a=this.hasRatingData();if(this.dataState.error)return i`
4                <div class="error-state">
5                    Error loading reviews:
6                    ${this.dataState.error}
7                </div>
8            `;if(a)this.classList.remove("hidden");else return i``;const e=parseFloat(t);return isNaN(e)||e<0||e>5?i`
9                <div class="error-state">
10                    Invalid rating data
11                </div>
12            `:i`
13            <slot>
14                <stars-reviews></stars-reviews>
15                <average-rating></average-rating>
16                <div class="divider"></div>
17                <number-of-reviews></number-of-reviews>
18                ${this.renderSkuIndicator()}
19                <star-distribution></star-distribution>
20            </slot>
21        `}};s.styles=l`
22        :host {
23            display: flex;
24            align-items: center;
25            gap: 0.5rem;
26            flex-wrap: wrap;
27            background-color: #f6f6f6;
28            padding: 20px 16px;
29        }
30
31        .divider {
32            width: 1px;
33            height: 1rem;
34            background-color: #e5e5e5;
35        }
36
37        .sku-indicator {
38            font-size: 0.75rem;
39            color: #666;
40            background-color: #e9ecef;
41            padding: 0.25rem 0.5rem;
42            border-radius: 0.25rem;
43            margin-left: 0.5rem;
44        }
45
46        .loading-placeholder {
47            color: #666;
48            font-style: italic;
49            opacity: 0.5;
50        }
51
52        .error-state {
53            color: #dc3545;
54            font-size: 0.875rem;
55        }
56
57        .star-rating {
58            display: inline-flex;
59            align-items: center;
60            gap: 0.125rem;
61        }
62
63        .star {
64            position: relative;
65            display: inline-block;
66            cursor: default;
67        }
68
69        .star svg {
70            display: block;
71            width: 20px;
72            height: 20px;
73        }
74    `;u([g({type:Boolean,attribute:"show-sku-count"})],s.prototype,"showSkuCount",2);u([p()],s.prototype,"dataState",2);s=u([h("star-rating-summary")],s);export{s as StarRatingSummary};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.