1"use strict";(globalThis.webpackChunktesa_2016=globalThis.webpackChunktesa_2016||[]).push([[5470],{2684:(e,t,r)=>{r.d(t,{D:()=>i});var a=r(5166),u=r(9043),s=r(6148);function i(e){const t=(0,s.dK)(),r=(0,a.Fl)(()=>t.getRatingDataByReviewProductNumber(e.reviewProductNumber)),i=(0,a.Fl)(()=>{var t;return null!==(t=r.value)&&void 0!==t&&t.reviews?e.filterOutForeignLanguagesReviews?r.value.reviews.filter(e=>{var t;return(null===(t=e.locale)||void 0===t?void 0:t.slice(0,2))===u.MV.slice(0,2)}):r.value.reviews:[]}),o=(0,a.Fl)(()=>{var e;return null===(e=r.value)||void 0===e?void 0:e.averageRating});return(0,a.wF)(()=>{u.Nv.enabled&&e.reviewProductNumber&&t.fetchRatingData({reviewProductNumbers:[e.reviewProductNumber]})}),{ratingAverage:o,ratingData:r,reviews:i}}},6148:(e,t,r)=>{r.d(t,{dK:()=>g});var a=r(9669),u=r.n(a),s=r(1223),i=r(9043);const o={"sw-access-key":i.Nv.accessKey},l={...o,"sw-inheritance":1},n="pending",v="resolved",c=["reviewProductNumbers","forceUpdate"],d=()=>({ratingsByReviewProductNumber:{},reviewProductsByReviewProductNumber:{},ratingRequestStatusByReviewProductNumber:{},reviewProductRequestStatusByReviewProductNumber:{}}),w=e=>{if("string"!=typeof e&&"number"!=typeof e)throw new TypeError("Review product numbers must be strings or numbers.");return String(e).trim()},b=e=>{if(!e||"object"!=typeof e||Array.isArray(e))throw new TypeError("Shopware review request payload must be an object.");const t=Object.keys(e).find(e=>!c.includes(e));if(t)throw new TypeError(`Unsupported Shopware review parameter "${t}".`);if(!Array.isArray(e.reviewProductNumbers))throw new TypeError('Shopware review parameter "reviewProductNumbers" must be an array.');if(Object.prototype.hasOwnProperty.call(e,"forceUpdate")&&"boolean"!=typeof e.forceUpdate)throw new TypeError('Shopware review parameter "forceUpdate" must be a boolean.');return{reviewProductNumbers:[...new Set(e.reviewProductNumbers.map(w).filter(Boolean))],forceUpdate:e.forceUpdate||!1}},m=e=>{let{state:t,statusProperty:r,pendingRequests:a,reviewProductNumbers:u,forceUpdate:s}=e;const i=new Set,o=[];return u.forEach(e=>{(s||t[r][e]!==v)&&(s||t[r][e]!==n||!a.has(e)?o.push(e):i.add(a.get(e)))}),{requestsToWaitFor:i,newReviewProductNumbers:o}},p={getRatingDataByReviewProductNumber:e=>t=>e.ratingsByReviewProductNumber[String(t)]||null,reviewProductByReviewProductNumber:e=>t=>e.reviewProductsByReviewProductNumber[String(t)]||null},g=function(){let{httpClient:e=u(),apiUrl:t=i.Nv.apiUrl}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const r=new Map,a=new Map;return(0,s.Q_)("shopware/rating",{state:d,getters:p,actions:{setRatingData(e){this.ratingsByReviewProductNumber={...this.ratingsByReviewProductNumber,...e}},setReviewProductData(e){this.reviewProductsByReviewProductNumber=(e.elements||[]).reduce((e,t)=>(t.productNumber&&(e[t.productNumber]=t),e),{...this.reviewProductsByReviewProductNumber})},setRequestStatus(e){let{statusProperty:t,reviewProductNumbers:r,status:a}=e;const u={...this[t]};r.forEach(e=>{u[e]=a}),this[t]=u},removeRequestStatus(e){let{statusProperty:t,reviewProductNumbers:r}=e;const a={...this[t]};r.forEach(e=>{delete a[e]}),this[t]=a},async fetchRatingData(a){const{reviewProductNumbers:u,forceUpdate:s}=b(a);if(!u.length)return;const{requestsToWaitFor:i,newReviewProductNumbers:l}=m({state:this,statusProperty:"ratingRequestStatusByReviewProductNumber",pendingRequests:r,reviewProductNumbers:u,forceUpdate:s});if(l.length){this.setRequestStatus({statusProperty:"ratingRequestStatusByReviewProductNumber",reviewProductNumbers:l,status:n});const a=e.post(`${t}plana/products/reviews`,{productNumbers:l},{headers:o}).then(e=>{let{data:t}=e;t.productReviews&&this.setRatingData(t.productReviews),this.setRequestStatus({statusProperty:"ratingRequestStatusByReviewProductNumber",reviewProductNumbers:l,status:v})}).catch(e=>{throw this.removeRequestStatus({statusProperty:"ratingRequestStatusByReviewProductNumber",reviewProductNumbers:l}),console.warn("shopware/rating::fetchRatingData failed",e),e}).finally(()=>{l.forEach(e=>r.delete(e))});l.forEach(e=>r.set(e,a)),i.add(a)}await Promise.all(i)},async fetchReviewProducts(r){const{reviewProductNumbers:u,forceUpdate:s}=b(r);if(!u.length)return;const{requestsToWaitFor:i,newReviewProductNumbers:o}=m({state:this,statusProperty:"reviewProductRequestStatusByReviewProductNumber",pendingRequests:a,reviewProductNumbers:u,forceUpdate:s});if(o.length){this.setRequestStatus({statusProperty:"reviewProductRequestStatusByReviewProductNumber",reviewProductNumbers:o,status:n});const r=e.post(`${t}product`,{filter:[{type:"multi",operator:"OR",queries:o.map(e=>({type:"equals",field:"productNumber",value:e}))}],includes:{product:["id","productNumber"]}},{headers:l}).then(e=>{let{data:t}=e;this.setReviewProductData(t),this.setRequestStatus({statusProperty:"reviewProductRequestStatusByReviewProductNumber",reviewProductNumbers:o,status:v})}).catch(e=>{throw this.removeRequestStatus({statusProperty:"reviewProductRequestStatusByReviewProductNumber",reviewProductNumbers:o}),console.warn("shopware/rating::fetchReviewProducts failed",e),e}).finally(()=>
1{o.forEach(e=>a.delete(e))});o.forEach(e=>a.set(e,r)),i.add(r)}await Promise.all(i)}}})}()},3635:(e,t,r)=>{r.d(t,{Z:()=>v});var a=r(5166),u=r(7105);const s=["role","aria-label","onKeydown"],i=["onClick","onKeydown"],o={key:0,class:"rating-stars__ratings-count copy copy--large t--semibold"},l=["textContent"],n={key:1},v=Object.assign({name:"RatingStars"},{__name:"RatingStars",props:{rateable:{type:Boolean,default:!0},rating:{type:Number,required:!0},ratingsCount:{type:Number},showRatingText:{type:Boolean,default:!0},suffix:{type:String,default:null}},emits:["rated"],setup(e,t){let{emit:r}=t;const v=(0,a.iH)(null),c=e,d=r,{labelStore:w}=(0,u.b)({labelsRequired:["global"]}),b=(0,a.iH)(!1),m=(0,a.iH)(c.rating),p=(0,a.iH)(null),g=(0,a.Fl)(()=>c.rateable?w.value["global.rate"]:w.value["global.rating"]),f=(0,a.Fl)(()=>{var e;let t=null===(e=m.value)||void 0===e?void 0:e.toFixed(1);return p.value&&(t=p.value.format(t)),t}),h=(0,a.Fl)(()=>[0,1,2,3,4].map(e=>({width:100*((32-21.47)/2/32+21.47*Math.max(0,Math.min(m.value-e,1))/32)+"%"}))),y=(0,a.Fl)(()=>0!=m.value?Math.ceil(m.value)-1:0);function P(){var e,t,r,a,u;c.rateable&&(0!=y.value?(m.value=Math.ceil(m.value)-1,null===(e=v.value)||void 0===e||null===(t=e[y.value])||void 0===t||t.focus()):(m.value=null===(r=h.value)||void 0===r?void 0:r.length,null===(a=v.value)||void 0===a||null===(u=a[y.value])||void 0===u||u.focus()))}function R(){var e,t,r,a,u;c.rateable&&(y.value!=(null===(e=h.value)||void 0===e?void 0:e.length)-1?(m.value=Math.ceil(m.value)+1,null===(t=v.value)||void 0===t||null===(r=t[y.value])||void 0===r||r.focus()):(m.value=1,null===(a=v.value)||void 0===a||null===(u=a[y.value])||void 0===u||u.focus()))}function N(){c.rateable&&(m.value=0!=m.value?m.value:1)}function q(e){c.rateable&&(d("rated",e),m.value=e)}return(0,a.bv)(()=>{const e=document.querySelector("html").dataset.locale;e&&null!==Intl&&void 0!==Intl&&Intl.NumberFormat&&(p.value=new Intl.NumberFormat(e,{minimumFractionDigits:1})),b.value=!0}),(0,a.YP)(()=>c.rating,e=>{m.value=e}),(t,r)=>{var u,c;const d=(0,a.up)("icon");return b.value?((0,a.wg)(),(0,a.iD)("div",{key:0,class:(0,a.C_)(["rating-stars",{"rating-stars--rateable":e.rateable}])},[(0,a._)("div",(0,a.dG)({...!e.rateable&&{"aria-valuetext":`${null===(u=m.value)||void 0===u?void 0:u.toFixed(1)}`,"aria-valuenow":`${null===(c=m.value)||void 0===c?void 0:c.toFixed(1)}`,"aria-valuemin":"0","aria-valuemax":"5"}},{class:"rating-stars__stars",role:e.rateable?"radiogroup":"meter","aria-label":g.value,onFocusin:N,onKeydown:[(0,a.D2)(P,["left"]),(0,a.D2)(R,["right"]),(0,a.D2)((0,a.iM)(R,["prevent"]),["down"]),(0,a.D2)((0,a.iM)(P,["prevent"]),["up"])]}),[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(h.value,(t,u)=>((0,a.wg)(),(0,a.iD)("div",(0,a.dG)({ref_for:!0},{...e.rateable&&{role:"radio","aria-checked":`${y.value==u}`,tabindex:y.value==u?0:-1,"aria-label":`${u+1} ${0==u?(0,a.SU)(w)["global.star"]:(0,a.SU)(w)["global.stars"]}`}},{class:"rating-stars__star",key:u,ref_for:!0,ref_key:"radioButton",ref:v,onClick:e=>q(u+1),onKeydown:(0,a.D2)((0,a.iM)(e=>q(u+1),["prevent"]),["space"])}),[(0,a.Wm)(d,{class:"rating-stars__star-back",name:"star"}),r[0]||(r[0]=(0,a.Uk)()),(0,a._)("div",{class:"rating-stars__front-mask",style:(0,a.j5)({width:t.width})},[(0,a.Wm)(d,{class:"rating-stars__star-front",name:"star"})],4)],16,i))),128))],16,s),r[1]||(r[1]=(0,a.Uk)()),e.showRatingText?((0,a.wg)(),(0,a.iD)("div",o,[(0,a.WI)(t.$slots,"default",{computedRating:f.value,ratingsCount:e.ratingsCount},()=>[(0,a.Uk)((0,a.zw)(f.value),1),e.suffix?((0,a.wg)(),(0,a.iD)("span",{key:0,textContent:(0,a.zw)(" "+e.suffix)},null,8,l)):(0,a.kq)("v-if",!0),e.ratingsCount?((0,a.wg)(),(0,a.iD)("span",n," ("+(0,a.zw)(e.ratingsCount)+")",1)):(0,a.kq)("v-if",!0)])])):(0,a.kq)("v-if",!0)],2)):(0,a.kq)("v-if",!0)}}})}}]);
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.