!function i(s,a,o){function n(t,e){if(!a[t]){if(!s[t]){var r="function"==typeof require&&require;if(!e&&r)return r(t,!0);if(l)return l(t,!0);throw(r=new Error("Cannot find module '"+t+"'")).code="MODULE_NOT_FOUND",r}r=a[t]={exports:{}},s[t][0].call(r.exports,function(e){return n(s[t][1][e]||e)},r,r.exports,i,s,a,o)}return a[t].exports}for(var l="function"==typeof require&&require,e=0;e{if(e){const r=e.getAttribute("class"),i=r?r.split(" "):"";return-1!==i.indexOf(t)}return!1};s;r.addClass=(e,t)=>{if(e){const i=e.getAttribute("class");var r=i?i.split(" "):[];s(e,t)||(t=[...r,t].join(" "),e.setAttribute("class",t))}};r.removeClass=(e,t)=>{if(e){const r=e.className.split(" ");e.className=r.filter(e=>e!==t).join(" ")}};r.populateElements=e=>{e.forEach(({element:e,string:t,substitutions:r={}})=>{t?(0,i.setHtmlContent)(e,(0,i.makeTranslations)(r,t),!1):(0,i.removeElement)(e)})}},{"./utils":57}],37:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.attachImpressionHandler=void 0;const u=e("./queryString"),c=e("./rootUri"),i=e("./utils"),s=e("./xhr");function a(e,{session:t,testId:r,sessionExpiry:i}){var{group:s,businessunitId:a}=(0,u.getAsObject)();s&&i&&function(e,t,r){const i="path=/",s=`domain=${window.location.hostname.replace(/^.*\.([^.]+\.[^.]+)/,"$1")}`,a="samesite=none",o="secure";document.cookie=[`${e}=${t}`,i,r,s,a,o].join("; "),document.cookie=[`${e}-legacy=${t}`,i,r,s].join("; ")}(`TrustboxSplitTest_${a}`,encodeURIComponent(JSON.stringify({group:s,session:t,testId:r})),i)}function o(e,t){a(0,t);t=function(e,t){const{anonymousId:r,sessionExpiry:i,...s}=t,{businessunitId:a,templateId:o,...n}=(0,u.getAsObject)(),l={...n,...s,...n.group&&r?{userId:r}:{nosettings:1},businessUnitId:a,widgetId:o};return t=Object.keys(l).map(e=>`${e}=${encodeURIComponent(l[e])}`).join("&"),`${(0,c.getWidgetRootUri)()}/stats/${e}?${t}`}(e,t);try{(0,s.xhr)({url:t})}catch(e){}}let n;r.attachImpressionHandler=function(){(0,i.addEventListener)(window,"message",function(t){if("string"==typeof t.data){let e;try{e={data:JSON.parse(t.data)}}catch(e){return}if("setId"===e.data.command)return n=e.data.widgetId,void window.parent.postMessage(JSON.stringify({command:"impression",widgetId:n}),"*");"impression-received"===e.data.command&&(delete e.data.command,o("TrustboxImpression",e.data)),"trustbox-in-viewport"===e.data.command&&(delete e.data.command,o("TrustboxView",e.data))}})}},{"./queryString":39,"./rootUri":40,"./utils":57,"./xhr":58}],39:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.getAsObject=a;const i=e("./fn");function s(e){const t=["?","#"];const r=(0,i.compose)(i.pairsToObject,e=>e.split("&").filter(Boolean).map(e=>{var[t,e]=e.split("=");try{return[decodeURIComponent(t),decodeURIComponent(e)]}catch(e){return}}).filter(Boolean),e=>-1!==t.indexOf(e[0])?e.substring(1):e);return r(e)}function a(e=window.location){var t=s(e.search),e=s(e.hash);return{...t,...e}}},{"./fn":36}],47:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.init=void 0;const i=e("../communication"),s=e("./templates/errorFallback");r.init=e=>{let t=!1;(0,i.onPong)(()=>{t=!0,"function"==typeof e&&e()}),(0,i.ping)(),setTimeout(()=>{t||(0,s.errorFallback)()},500)}},{"../communication":33,"./templates/errorFallback":48}],57:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.showTrustBox=r.setTextColor=r.setFont=r.setHtmlLanguage=r.sanitizeHtmlProp=r.sanitizeColor=r.addUtmParams=void 0,r.addEventListener=i,r.getOnPageReady=function(){return new Promise(function(e){const t=function(){setTimeout(function(){e()},0)};"complete"===document.readyState?t():i(window,"load",function(){t()})})},r.insertNumberSeparator=function(t,e){try{t.toLocaleString()}catch(e){return t}return t.toLocaleString(e||"en-US")},r.makeTranslatedLinkAccessibleNames=function(e,t,r,i,s){if(!e||!t||!r)return"";e=(0,o.getFrameworkTranslation)(e,i,{}),s=(0,o.getFrameworkTranslation)(t,i,s),i=(0,o.getFrameworkTranslation)(r,i,{});return{ariaLabel:e,ariaDescription:s,ariaInstruction:i}},r.makeTranslations=function(r,e){return e?Object.keys(r).reduce((e,t)=>e.split(t).join(r[t]),e):(void 0,"")},r.removeElement=function(e){if(e&&e.parentNode)return e.parentNode.removeChild(e)},r.setHtmlContent=function(e,t,r=!0){e&&(e.innerHTML=r?n(t):t)},r.setTextContent=function(e,t){e&&("innerText"in e?e.innerText=t:e.textContent=t)};const s=e("./dom"),a=(e("./models/styleAlignmentPositions"),e("./rootUri")),o=e("./translations");function i(t,e,r){t&&(t.addEventListener?t.addEventListener(e,r):t.attachEvent(`on${e}`,function(e){(e=e||window.event).preventDefault=e.preventDefault||function(){e.returnValue=!1},e.stopPropagation=e.stopPropagation||function(){e.cancelBubble=!0},r.call(t,e)}))}r.sanitizeHtmlProp=e=>e="string"==typeof e?(e=(e=e.replaceAll(">","")).replaceAll("<","")).replaceAll('"',""):e;const n=e=>"string"!=typeof e?e:e.replace(/(<\/?(?:p|b|i|li|ul|a|strong)\/?>)|(?:<\/?.*?\/?>)/gi,"$1");n;r.showTrustBox=(e,t)=>{var r=document.getElementsByTagName("body")[0],i=document.getElementById("tp-widget-wrapper");(0,s.addClass)(r,e),(0,s.addClass)(i,"visible"),t||(0,s.addClass)(r,"first-reviewer")};const l=t=>e=>`${(e=>`${e}${-1===e.indexOf("?")?"?":"&"}`)(e)}utm_medium=trustbox&utm_source=${t}`;r.addUtmParams=l;const u=(e,t=1)=>{e="#"===e[0]?parseInt(e.slice(1),16):parseInt(e,16);return`rgba(${e>>16},${e>>8&255},${255&e},${t})`};r.setTextColor=e=>{const t=document.createElement("style");t.appendChild(document.createTextNode(` * { color: inherit !important; } body { color: ${e} !important; } .bold-underline { border-bottom-color: ${e} !important; } .bold-underline:hover { border-color: ${((e,t)=>{var r=e=>255>16)+t;a=r(a);let o=(s>>8&255)+t;o=r(o);let n=(255&s)+t;return n=r(n),[a,o,n]=[a,o,n].map(e=>e<=15?`0${e.toString(16)}`:e.toString(16)),(i?"#":"")+a+o+n})(e,-30)} !important; } .secondary-text { color: ${u(e,.6)} !important; } .secondary-text-arrow { border-color: ${u(e,.6)} transparent transparent transparent !important; } .read-more { color: ${e} !important; } `)),document.head.appendChild(t)};r.setFont=e=>{var t=(0,a.getWidgetRootUri)(),r=e.replace(/\s/g,"-").toLowerCase();const i=document.createElement("link");i.rel="stylesheet",i.href=`${t}/fonts/${r}.css`,document.head.appendChild(i);e=e.replace(/\+/g," ");const s=document.createElement("style");s.appendChild(document.createTextNode(` * { font-family: inherit !important; } body { font-family: "${e}", sans-serif !important; } `)),document.head.appendChild(s)};r.setHtmlLanguage=e=>{document.documentElement.setAttribute("lang",e)};r.sanitizeColor=e=>{return"string"==typeof e&&/^#(?:[\da-fA-F]{3}){1,2}$/.test(e)?e:null}},{"./dom":35,"./models/styleAlignmentPositions":38,"./rootUri":40,"./translations":56}],50:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.populateLogo=void 0;const i=e("../../dom"),s=e("../assets/logo"),a=e("../templating"),o=()=>(0,a.mkElemWithSvg)(s.logo);o;r.populateLogo=(e="tp-widget-logo")=>{e="string"==typeof e?document.getElementById(e):e;(0,i.populateElements)([{element:e,string:o()}])}},{"../../dom":35,"../assets/logo":45,"../templating":52}],34:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.ReviewDisclaimer=void 0;const i=e("../support"),s=e("../templating"),a=e("../translations");r.ReviewDisclaimer=class{constructor(e,t="en-US",r=""){if(!e)throw new Error("Root element is required for ReviewDisclaimer");this.root=e,this.locale=t,this.className=r}get reviewDisclaimerText(){var e=(0,a.formatLocale)(this.locale);return(0,a.getFrameworkTranslation)("reviewDisclaimer.body",e)}get reviewDisclaimerLink(){var e=(0,a.formatLocale)(this.locale);return(0,i.getReviewDisclaimerLink)(e)}get reviewDisclaimerDescription(){var e=(0,a.formatLocale)(this.locale);return(0,a.getFrameworkTranslation)("reviewDisclaimer.description",e)}render(){var e="tp-widget-review-disclaimer__description",t=(0,s.a)({href:this.reviewDisclaimerLink,target:"_blank",rel:"noopener noreferrer nofollow",class:this.className?`tp-widget-review-disclaimer__link ${this.className}`:"tp-widget-review-disclaimer__link",textContent:this.reviewDisclaimerText,"aria-describedby":e},[this.reviewDisclaimerText]),e=(0,s.span)({class:"visually-hidden",id:e,textContent:this.reviewDisclaimerDescription},[this.reviewDisclaimerDescription]);this.root.classList.add("active"),this.root.innerHTML=`${t} ${e}`,this.mounted=!0}}},{"../support":54,"../templating":55,"../translations":56}],51:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.populateStars=void 0;const n=e("../../dom"),l=e("../../utils"),u=e("../assets/stars"),c=e("../templating"),d=e("../translations"),v=({num:e,trustScore:t=null,wrapperClass:r="",color:i,locale:s,translations:a})=>{var o=Math.floor(e),n=e===o?"":` tp-stars--${o}--half`,i=(0,l.sanitizeColor)(i);return(0,c.div)({class:r},(0,c.mkElemWithSvg)(u.stars,`${i?"tp-stars-custom-color":`tp-stars tp-stars--${o}${n}`}`,{rating:e,trustScore:t||e,color:i,locale:s,translations:a}))};v;r.populateStars=({businessEntity:{stars:e,trustScore:t,numberOfReviews:{total:r}},translations:i},s="tp-widget-stars",a,o=d.defaultLocale)=>{a=(0,l.sanitizeColor)(a),s="string"==typeof s?document.getElementById(s):s,e=r?e:0;(0,n.populateElements)([{element:s,string:v({num:e,trustScore:t,color:a,locale:o,translations:i})}])}},{"../../dom":35,"../../utils":57,"../assets/stars":46,"../templating":52,"../translations":53}],42:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.fetchServiceReviewData=void 0;const s=e("./fetchData");Object.defineProperty(r,"constructTrustBoxAndComplete",{enumerable:!0,get:function(){return s.constructTrustBoxAndComplete}});const i=e("./productReviews");Object.defineProperty(r,"fetchProductData",{enumerable:!0,get:function(){return i.fetchProductData}}),Object.defineProperty(r,"fetchProductReview",{enumerable:!0,get:function(){return i.fetchProductReview}});r.fetchServiceReviewData=i=>(e,t,r)=>{(0,s.fetchData)(`/trustbox-data/${i}`)(e,t,r,s.hasServiceReviews)}},{"./fetchData":41,"./productReviews":43}],2:[function(e,t,r){t.exports={reviews:{singular:"anmeldelse",plural:"anmeldelser",collectedVia:"Indsamlet via [source]",verifiedVia:"Verificeret – indsamlet via [source]",serviceReviewTypeLabels:{verifiedReview:{label:"Verificeret",infoTitle:"Verificeret anmeldelse",info:"[LINK-BEGIN]Læs mere[LINK-END] om de forskellige typer anmeldelser"},invitedReview:{label:"Inviteret",infoTitle:"Inviteret anmeldelse",infoTrustpilot:"Anmeldelser af Trustpilot, der er markeret som [BOLD-BEGIN]Inviteret[BOLD-END], blev skrevet via et direkte link til vores anmeldelsesformular.",info:"[LINK-BEGIN]Læs mere[LINK-END] om de forskellige typer anmeldelser"},redirectedReview:{label:"Omdirigeret",infoTitle:"Omdirigeret anmeldelse",info:"[LINK-BEGIN]Læs mere[LINK-END] om de forskellige typer anmeldelser"}}},monthNames:{january:"januar",february:"februar",march:"marts",april:"april",may:"maj",june:"juni",july:"juli",august:"august",september:"september",october:"oktober",november:"november",december:"december"},timeAgo:{days:{singular:"For [count] dag siden",plural:"For [count] dage siden"},hours:{singular:"For [count] time siden",plural:"For [count] timer siden"},minutes:{singular:"For [count] minut siden",plural:"For [count] minutter siden"},seconds:{singular:"For [count] sekund siden",plural:"For [count] sekunder siden"}},reviewFilters:{byStars1:"Viser vores [star1]-stjernede anmeldelser",byStars2:"Viser vores [star1]- og [star2]-stjernede anmeldelser",byStars3:"Viser vores [star1]-, [star2]- og [star3]-stjernede anmeldelser",byStars4:"Viser vores [star1]-, [star2]-, [star3]- og [star4]-stjernede anmeldelser",byLatest:"Viser vores seneste anmeldelser",byFavoriteOrTag:"Viser vores yndlingsanmeldelser"},notRated:"Ikke bedømt",starRating:"Stjernebedømmelse på [ratingStars] ud af [totalStars] på Trustpilot",starReview:"Anmeldelse med [reviewStars] stjerner",reviewDisclaimer:{body:"Trustpilot udfører kontrol af anmeldelser",description:"Klik for at få mere at vide"},widgetLabel:"Trustpilot-anmeldelser",businessRatingTextWithReviewCount:"Vurdering på [trustScore] ud af [totalScore]. [reviewCount] anmeldelser på Trustpilot",businessRatingTextWithTrustScoreRating:"Vurdering på [trustScoreRating]. [trustScore] ud af [totalScore] på Trustpilot",businessRatingTextWithTSRatingAndReviewCount:"Vurdering på [trustScoreRating]. [trustScore] ud af [totalScore]. [reviewCount] anmeldelser på Trustpilot",clickProfileLink:"Klik for at se virksomhedens Trustpilot-profil",productRatingTextWithStars:"[reviewCount] anmeldelser med [stars] stjerner",productRatingTextWith1Star:"[reviewCount] anmeldelser med [star] stjerne"}},{}],3:[function(e,t,r){t.exports={reviews:{singular:"Bewertung",plural:"Bewertungen",collectedVia:"Gesammelt über [source]",verifiedVia:"Verifiziert, gesammelt über [source]",serviceReviewTypeLabels:{verifiedReview:{label:"Verifiziert",infoTitle:"Verifizierte Bewertung",info:"[LINK-BEGIN]Erfahren Sie mehr[LINK-END] über verschiedene Arten von Bewertungen"},invitedReview:{label:"Auf Einladung",infoTitle:"Bewertung auf Einladung",infoTrustpilot:"Bewertungen zu Trustpilot, die mit dem Hinweis [BOLD-BEGIN]Auf Einladung[BOLD-END] versehen sind, wurden über einen direkten Link zu unserem Bewertungsformular abgegeben.",info:"[LINK-BEGIN]Erfahren Sie mehr[LINK-END] über verschiedene Arten von Bewertungen"},redirectedReview:{label:"Weitergeleitet",infoTitle:"Weitergeleitete Bewertung",info:"[LINK-BEGIN]Erfahren Sie mehr[LINK-END] über verschiedene Arten von Bewertungen"}}},monthNames:{january:"Januar",february:"Februar",march:"März",april:"April",may:"Mai",june:"Juni",july:"Juli",august:"August",september:"September",october:"Oktober",november:"November",december:"Dezember"},timeAgo:{days:{singular:"vor [count] Tag",plural:"vor [count] Tagen"},hours:{singular:"vor [count] Stunde",plural:"vor [count] Stunden"},minutes:{singular:"vor [count] Minute",plural:"vor [count] Minuten"},seconds:{singular:"vor [count] Sekunde",plural:"vor [count] Sekunden"}},reviewFilters:{byStars1:"Einige unserer [star1]-Sterne-Bewertungen",byStars2:"Einige unserer [star1]- & [star2]-Sterne-Bewertungen",byStars3:"Einige unserer [star1]-, [star2]- & [star3]-Sterne-Bewertungen",byStars4:"Einige unserer [star1]-, [star2]-, [star3]- & [star4]-Sterne-Bewertungen",byLatest:"Unsere neuesten Bewertungen",byFavoriteOrTag:"Unsere Lieblingsbewertungen"},notRated:"Nicht bewertet",starRating:"[ratingStars] von [totalStars] Sternen auf Trustpilot",starReview:"[reviewStars]-Stern(e)-Bewertung",reviewDisclaimer:{body:"Trustpilot prüft Bewertungen",description:"Click to learn more"},widgetLabel:"Trustpilot reviews",businessRatingTextWithReviewCount:"Rated [trustScore] out of [totalScore]. [reviewCount] reviews on Trustpilot",businessRatingTextWithTrustScoreRating:"Rated [trustScoreRating]. [trustScore] out of [totalScore] on Trustpilot",businessRatingTextWithTSRatingAndReviewCount:"Rated [trustScoreRating]. [trustScore] out of [totalScore]. [reviewCount] reviews on Trustpilot",clickProfileLink:"Click to view the company's Trustpilot profile",productRatingTextWithStars:"[reviewCount] reviews with [stars] stars",productRatingTextWith1Star:"[reviewCount] reviews with [star] star"}},{}],4:[function(e,t,r){arguments[4][3][0].apply(r,arguments)},{dup:3}],5:[function(e,t,r){t.exports={reviews:{singular:"Bewertung",plural:"Bewertungen",collectedVia:"Gesammelt über [source]",verifiedVia:"Verifiziert, gesammelt über [source]",serviceReviewTypeLabels:{verifiedReview:{label:"Verifiziert",infoTitle:"Verifizierte Bewertung",info:"[LINK-BEGIN]Erfahren Sie mehr[LINK-END] über verschiedene Arten von Bewertungen"},invitedReview:{label:"Auf Einladung",infoTitle:"Bewertung auf Einladung",infoTrustpilot:"Bewertungen zu Trustpilot, die mit dem Hinweis [BOLD-BEGIN]Auf Einladung[BOLD-END] versehen sind, wurden über einen direkten Link zu unserem Bewertungsformular abgegeben.",info:"[LINK-BEGIN]Erfahren Sie mehr[LINK-END] über verschiedene Arten von Bewertungen"},redirectedReview:{label:"Weitergeleitet",infoTitle:"Weitergeleitete Bewertung",info:"[LINK-BEGIN]Erfahren Sie mehr[LINK-END] über verschiedene Arten von Bewertungen"}}},monthNames:{january:"Januar",february:"Februar",march:"März",april:"April",may:"Mai",june:"Juni",july:"Juli",august:"August",september:"September",october:"Oktober",november:"November",december:"Dezember"},timeAgo:{days:{singular:"vor [count] Tag",plural:"vor [count] Tagen"},hours:{singular:"vor [count] Stunde",plural:"vor [count] Stunden"},minutes:{singular:"vor [count] Minute",plural:"vor [count] Minuten"},seconds:{singular:"vor [count] Sekunde",plural:"vor [count] Sekunden"}},reviewFilters:{byStars1:"Einige unserer [star1]-Sterne-Bewertungen",byStars2:"Einige unserer [star1]- & [star2]-Sterne-Bewertungen",byStars3:"Einige unserer [star1]-, [star2]- & [star3]-Sterne-Bewertungen",byStars4:"Einige unserer [star1]-, [star2]-, [star3]- & [star4]-Sterne-Bewertungen",byLatest:"Unsere neuesten Bewertungen",byFavoriteOrTag:"Unsere Lieblingsbewertungen"},notRated:"Nicht bewertet",starRating:"[ratingStars] von [totalStars] Sternen auf Trustpilot",starReview:"[reviewStars]-Stern(e)-Bewertung",reviewDisclaimer:{body:"Trustpilot prüft Bewertungen",description:"Klicken Sie, um mehr zu erfahren"},widgetLabel:"Trustpilot-Bewertungen",businessRatingTextWithReviewCount:"Bewertet mit [trustScore] von [totalScore]. [reviewCount] Bewertungen auf Trustpilot",businessRatingTextWithTrustScoreRating:"Bewertet als [trustScoreRating]. [trustScore] von [totalScore] auf Trustpilot",businessRatingTextWithTSRatingAndReviewCount:"Bewertet als [trustScoreRating]. [trustScore] von [totalScore]. [reviewCount] Bewertungen auf Trustpilot",clickProfileLink:"Klicken Sie hier, um das Trustpilot-Profil des Unternehmens anzuzeigen",productRatingTextWithStars:"[reviewCount] Bewertungen mit [stars] Sternen",productRatingTextWith1Star:"[reviewCount] Bewertungen mit [star] Stern"}},{}],6:[function(e,t,r){t.exports={reviews:{singular:"review",plural:"reviews",collectedVia:"Collected via [source]",verifiedVia:"Verified, collected via [source]",serviceReviewTypeLabels:{verifiedReview:{label:"Verified",infoTitle:"Verified review",info:"[LINK-BEGIN]Learn more[LINK-END] about review types"},invitedReview:{label:"Invited",infoTitle:"Invited review",infoTrustpilot:"Reviews for Trustpilot that are labeled [BOLD-BEGIN]Invited[BOLD-END] were written via a link leading directly to our review form.",info:"[LINK-BEGIN]Learn more[LINK-END] about review types"},redirectedReview:{label:"Redirected",infoTitle:"Redirected review",info:"[LINK-BEGIN]Learn more[LINK-END] about review types"}}},monthNames:{january:"January",february:"February",march:"March",april:"April",may:"May",june:"June",july:"July",august:"August",september:"September",october:"October",november:"November",december:"December"},timeAgo:{days:{singular:"[count] day ago",plural:"[count] days ago"},hours:{singular:"[count] hour ago",plural:"[count] hours ago"},minutes:{singular:"[count] minute ago",plural:"[count] minutes ago"},seconds:{singular:"[count] second ago",plural:"[count] seconds ago"}},reviewFilters:{byStars1:"Showing our [star1] star reviews",byStars2:"Showing our [star1] & [star2] star reviews",byStars3:"Showing our [star1], [star2] & [star3] star reviews",byStars4:"Showing our [star1], [star2], [star3] & [star4] star reviews",byLatest:"Showing our latest reviews",byFavoriteOrTag:"Showing our favourite reviews"},notRated:"Not rated",starRating:"[ratingStars] out of [totalStars] star rating on Trustpilot",starReview:"[reviewStars] star review",reviewDisclaimer:{body:"Trustpilot checks reviews",description:"Click to learn more"},widgetLabel:"Trustpilot reviews",businessRatingTextWithReviewCount:"Rated [trustScore] out of [totalScore]. [reviewCount] reviews on Trustpilot",businessRatingTextWithTrustScoreRating:"Rated [trustScoreRating]. [trustScore] out of [totalScore] on Trustpilot",businessRatingTextWithTSRatingAndReviewCount:"Rated [trustScoreRating]. [trustScore] out of [totalScore]. [reviewCount] reviews on Trustpilot",clickProfileLink:"Click to view the company's Trustpilot profile",productRatingTextWithStars:"[reviewCount] reviews with [stars] stars",productRatingTextWith1Star:"[reviewCount] reviews with [star] star"}},{}],7:[function(e,t,r){arguments[4][6][0].apply(r,arguments)},{dup:6}],8:[function(e,t,r){arguments[4][6][0].apply(r,arguments)},{dup:6}],9:[function(e,t,r){arguments[4][6][0].apply(r,arguments)},{dup:6}],10:[function(e,t,r){arguments[4][6][0].apply(r,arguments)},{dup:6}],11:[function(e,t,r){t.exports={reviews:{singular:"review",plural:"reviews",collectedVia:"Collected via [source]",verifiedVia:"Verified, collected via [source]",serviceReviewTypeLabels:{verifiedReview:{label:"Verified",infoTitle:"Verified review",info:"[LINK-BEGIN]Learn more[LINK-END] about review types"},invitedReview:{label:"Invited",infoTitle:"Invited review",infoTrustpilot:"Reviews for Trustpilot that are labeled [BOLD-BEGIN]Invited[BOLD-END] were written via a link leading directly to our review form.",info:"[LINK-BEGIN]Learn more[LINK-END] about review types"},redirectedReview:{label:"Redirected",infoTitle:"Redirected review",info:"[LINK-BEGIN]Learn more[LINK-END] about review types"}}},monthNames:{january:"January",february:"February",march:"March",april:"April",may:"May",june:"June",july:"July",august:"August",september:"September",october:"October",november:"November",december:"December"},timeAgo:{days:{singular:"[count] day ago",plural:"[count] days ago"},hours:{singular:"[count] hour ago",plural:"[count] hours ago"},minutes:{singular:"[count] minute ago",plural:"[count] minutes ago"},seconds:{singular:"[count] second ago",plural:"[count] seconds ago"}},reviewFilters:{byStars1:"Showing our [star1] star reviews",byStars2:"Showing our [star1] & [star2] star reviews",byStars3:"Showing our [star1], [star2] & [star3] star reviews",byStars4:"Showing our [star1], [star2], [star3] & [star4] star reviews",byLatest:"Showing our latest reviews",byFavoriteOrTag:"Showing our favorite reviews"},notRated:"Not rated",starRating:"[ratingStars] out of [totalStars] star rating on Trustpilot",starReview:"[reviewStars] star review",reviewDisclaimer:{body:"Trustpilot checks reviews",description:"Click to learn more"},widgetLabel:"Trustpilot reviews",businessRatingTextWithReviewCount:"Rated [trustScore] out of [totalScore]. [reviewCount] reviews on Trustpilot",businessRatingTextWithTrustScoreRating:"Rated [trustScoreRating]. [trustScore] out of [totalScore] on Trustpilot",businessRatingTextWithTSRatingAndReviewCount:"Rated [trustScoreRating]. [trustScore] out of [totalScore]. [reviewCount] reviews on Trustpilot",clickProfileLink:"Click to view the company's Trustpilot profile",productRatingTextWithStars:"[reviewCount] reviews with [stars] stars",productRatingTextWith1Star:"[reviewCount] reviews with [star] star"}},{}],12:[function(e,t,r){t.exports={reviews:{singular:"opinión",plural:"opiniones",collectedVia:"Fuente: [source]",verifiedVia:"Verificada, recopilada vía [source]",serviceReviewTypeLabels:{verifiedReview:{label:"Verificada",infoTitle:"Opinión verificada",info:"[LINK-BEGIN]Más información[LINK-END] sobre los tipos de opinión"},invitedReview:{label:"Por invitación",infoTitle:"Opinión por invitación",infoTrustpilot:"Las opiniones de Trustpilot con la etiqueta [BOLD-BEGIN]Por invitación[BOLD-END] se escribieron a través de un enlace que dirige directamente a nuestro formulario para opinar.",info:"[LINK-BEGIN]Más información[LINK-END] sobre los tipos de opinión"},redirectedReview:{label:"Redirigida",infoTitle:"Opinión redirigida",info:"[LINK-BEGIN]Más información[LINK-END] sobre los tipos de opinión"}}},monthNames:{january:"enero",february:"febrero",march:"marzo",april:"abril",may:"mayo",june:"junio",july:"julio",august:"agosto",september:"septiembre",october:"octubre",november:"noviembre",december:"diciembre"},timeAgo:{days:{singular:"Hace [count] día",plural:"Hace [count] días"},hours:{singular:"Hace [count] hora",plural:"Hace [count] horas"},minutes:{singular:"Hace [count] minuto",plural:"Hace [count] minutos"},seconds:{singular:"Hace [count] segundo",plural:"Hace [count] segundos"}},reviewFilters:{byStars1:"Nuestras opiniones de [star1] estrellas",byStars2:"Nuestras opiniones de [star1] y [star2] estrellas",byStars3:"Nuestras opiniones de [star1], [star2] y [star3] estrellas",byStars4:"Nuestras opiniones de [star1], [star2], [star3] y [star4] estrellas",byLatest:"Nuestras opiniones más recientes",byFavoriteOrTag:"Nuestras opiniones preferidas"},notRated:"Sin valorar",starRating:"[ratingStars] estrella(s) de [totalStars] en Trustpilot",starReview:"Opinión de [reviewStars] estrella(s)",reviewDisclaimer:{body:"Trustpilot verifica las opiniones",description:"Haz clic para más información"},widgetLabel:"Opiniones de Trustpilot",businessRatingTextWithReviewCount:"Valoración [trustScore] sobre [totalScore]. [reviewCount] opiniones en Trustpilot",businessRatingTextWithTrustScoreRating:"Valoración [trustScoreRating]. [trustScore] sobre [totalScore] en Trustpilot",businessRatingTextWithTSRatingAndReviewCount:"Valoración [trustScoreRating]. [trustScore] sobre [totalScore]. [reviewCount] opiniones en Trustpilot",clickProfileLink:"Haz clic para ver el perfil de la empresa en Trustpilot",productRatingTextWithStars:"[reviewCount] opiniones con [stars] estrellas",productRatingTextWith1Star:"[reviewCount] opiniones con [star] estrella"}},{}],13:[function(e,t,r){t.exports={reviews:{singular:"arvostelu",plural:"arvostelua",collectedVia:"Arvostelun lähde: [source]",verifiedVia:"Varmennettu, lähde: [source]",serviceReviewTypeLabels:{verifiedReview:{label:"Varmennettu",infoTitle:"Varmennettu arvostelu",info:"[LINK-BEGIN]Lue lisää[LINK-END] eri arvostelutyypeistä"},invitedReview:{label:"Kutsuttu",infoTitle:"Kutsuttu arvostelu",infoTrustpilot:"Trustpilotin arvostelut, joissa on merkintä [BOLD-BEGIN]Kutsuttu[BOLD-END], kirjoitettiin linkin kautta, joka johtaa suoraan arvostelulomakkeeseemme.",info:"[LINK-BEGIN]Lue lisää[LINK-END] eri arvostelutyypeistä"},redirectedReview:{label:"Uudelleenohjattu",infoTitle:"Uudelleenohjattu arvostelu",info:"[LINK-BEGIN]Lue lisää[LINK-END] eri arvostelutyypeistä"}}},monthNames:{january:"tammikuuta",february:"helmikuuta",march:"maaliskuuta",april:"huhtikuuta",may:"toukokuuta",june:"kesäkuuta",july:"heinäkuuta",august:"elokuuta",september:"syyskuuta",october:"lokakuuta",november:"marraskuuta",december:"joulukuuta"},timeAgo:{days:{singular:"[count] päivää sitten",plural:"[count] päivää sitten"},hours:{singular:"[count] tuntia sitten",plural:"[count] tuntia sitten"},minutes:{singular:"[count] minuuttia sitten",plural:"[count] minuuttia sitten"},seconds:{singular:"[count] sekuntia sitten",plural:"[count] sekuntia sitten"}},reviewFilters:{byStars1:"Näytetään [star1] tähden arvostelumme",byStars2:"Näytetään [star1] & [star2] tähden arvostelumme",byStars3:"Näytetään [star1], [star2] & [star3] tähden arvostelumme",byStars4:"Näytetään [star1], [star2], [star3] & [star4] tähden arvostelumme",byLatest:"Näytetään viimeisimmät arvostelumme",byFavoriteOrTag:"Näytetään suosikkiarvostelumme"},notRated:"Ei arvioitu",starRating:"[ratingStars]/[totalStars] tähtiluokitus Trustpilotissa",starReview:"[reviewStars] tähden arvostelu",reviewDisclaimer:{body:"Trustpilot suorittaa arvostelujen tarkastuksia",description:"Napauta ja lue lisää"},widgetLabel:"Trustpilot-arvostelut",businessRatingTextWithReviewCount:"Arvio [trustScore] kautta [totalScore]. [reviewCount] arvostelua Trustpilotissa",businessRatingTextWithTrustScoreRating:"Arvio [trustScoreRating]. [trustScore] kautta [totalScore] Trustpilotissa",businessRatingTextWithTSRatingAndReviewCount:"Arvio [trustScoreRating]. [trustScore] kautta [totalScore]. [reviewCount] arvostelua Trustpilotissa",clickProfileLink:"Katso yrityksen Trustpilot-profiili napauttamalla",productRatingTextWithStars:"[reviewCount] arvostelua, joissa [stars] tähteä",productRatingTextWith1Star:"[reviewCount] arvostelua, joissa [star] tähti"}},{}],14:[function(e,t,r){t.exports={reviews:{singular:"avis",plural:"avis",collectedVia:"Collecté via [source]",verifiedVia:"Vérifié, collecté via [source]",serviceReviewTypeLabels:{verifiedReview:{label:"Vérifié",infoTitle:"Avis vérifié",info:"[LINK-BEGIN]En savoir plus[LINK-END] sur les types d'avis"},invitedReview:{label:"Sur invitation",infoTitle:"Avis sur invitation",infoTrustpilot:"Les avis au sujet de Trustpilot accompagnés du statut [BOLD-BEGIN]Sur invitation[BOLD-END] ont été écrits via un lien direct vers notre formulaire d'évaluation.",info:"[LINK-BEGIN]En savoir plus[LINK-END] sur les types d'avis"},redirectedReview:{label:"Redirigé",infoTitle:"Avis redirigé",info:"[LINK-BEGIN]En savoir plus[LINK-END] sur les types d'avis"}}},monthNames:{january:"janvier",february:"février",march:"mars",april:"avril",may:"mai",june:"juin",july:"juillet",august:"août",september:"septembre",october:"octobre",november:"novembre",december:"décembre"},timeAgo:{days:{singular:"ll y a [count] jour",plural:"Il y a [count] jours"},hours:{singular:"Il y a [count] heure",plural:"Il y a [count] heures"},minutes:{singular:"Il y a [count] minute",plural:"Il y a [count] minutes"},seconds:{singular:"Il y a [count] seconde",plural:"Il y a [count] secondes"}},reviewFilters:{byStars1:"Nos avis [star1] étoiles",byStars2:"Nos avis [star1] et [star2] étoiles",byStars3:"Nos avis [star1], [star2] et [star3] étoiles",byStars4:"Nos avis [star1], [star2], [star3] et [star4] étoiles",byLatest:"Nos derniers avis",byFavoriteOrTag:"Nos avis préférés"},notRated:"Non évalué",starRating:"[ratingStars] sur [totalStars] étoiles sur Trustpilot",starReview:"Avis [reviewStars] étoile",reviewDisclaimer:{body:"Trustpilot vérifie les avis",description:"Click to learn more"},widgetLabel:"Trustpilot reviews",businessRatingTextWithReviewCount:"Rated [trustScore] out of [totalScore]. [reviewCount] reviews on Trustpilot",businessRatingTextWithTrustScoreRating:"Rated [trustScoreRating]. [trustScore] out of [totalScore] on Trustpilot",businessRatingTextWithTSRatingAndReviewCount:"Rated [trustScoreRating]. [trustScore] out of [totalScore]. [reviewCount] reviews on Trustpilot",clickProfileLink:"Click to view the company's Trustpilot profile",productRatingTextWithStars:"[reviewCount] reviews with [stars] stars",productRatingTextWith1Star:"[reviewCount] reviews with [star] star"}},{}],15:[function(e,t,r){t.exports={reviews:{singular:"avis",plural:"avis",collectedVia:"Collecté via [source]",verifiedVia:"Vérifié, collecté via [source]",serviceReviewTypeLabels:{verifiedReview:{label:"Vérifié",infoTitle:"Avis vérifié",info:"[LINK-BEGIN]En savoir plus[LINK-END] sur les types d'avis"},invitedReview:{label:"Sur invitation",infoTitle:"Avis sur invitation",infoTrustpilot:"Les avis au sujet de Trustpilot accompagnés du statut [BOLD-BEGIN]Sur invitation[BOLD-END] ont été écrits via un lien direct vers notre formulaire d'évaluation.",info:"[LINK-BEGIN]En savoir plus[LINK-END] sur les types d'avis"},redirectedReview:{label:"Redirigé",infoTitle:"Avis redirigé",info:"[LINK-BEGIN]En savoir plus[LINK-END] sur les types d'avis"}}},monthNames:{january:"janvier",february:"février",march:"mars",april:"avril",may:"mai",june:"juin",july:"juillet",august:"août",september:"septembre",october:"octobre",november:"novembre",december:"décembre"},timeAgo:{days:{singular:"ll y a [count] jour",plural:"Il y a [count] jours"},hours:{singular:"Il y a [count] heure",plural:"Il y a [count] heures"},minutes:{singular:"Il y a [count] minute",plural:"Il y a [count] minutes"},seconds:{singular:"Il y a [count] seconde",plural:"Il y a [count] secondes"}},reviewFilters:{byStars1:"Nos avis [star1] étoiles",byStars2:"Nos avis [star1] et [star2] étoiles",byStars3:"Nos avis [star1], [star2] et [star3] étoiles",byStars4:"Nos avis [star1], [star2], [star3] et [star4] étoiles",byLatest:"Nos derniers avis",byFavoriteOrTag:"Nos avis préférés"},notRated:"Non évalué",starRating:"[ratingStars] sur [totalStars] étoiles sur Trustpilot",starReview:"Avis [reviewStars] étoile",reviewDisclaimer:{body:"Trustpilot vérifie les avis",description:"Cliquez pour en savoir plus"},widgetLabel:"Avis Trustpilot",businessRatingTextWithReviewCount:"Noté [trustScore] sur [totalScore]. [reviewCount] avis sur Trustpilot",businessRatingTextWithTrustScoreRating:"Score : [trustScoreRating]. [trustScore] sur [totalScore] surTrustpilot",businessRatingTextWithTSRatingAndReviewCount:"Score : [trustScoreRating]. [trustScore] sur [totalScore]. [reviewCount] avis sur Trustpilot",clickProfileLink:"Cliquez ici pour voir le profil de l'entreprise sur Trustpilot",productRatingTextWithStars:"[reviewCount] avis avec [stars] étoiles",productRatingTextWith1Star:"[reviewCount] avis avec [star] étoile"}},{}],16:[function(e,t,r){"use strict";var s,a=this&&this.__createBinding||(Object.create?function(e,t,r,i){void 0===i&&(i=r);var s=Object.getOwnPropertyDescriptor(t,r);s&&("get"in s?t.__esModule:!s.writable&&!s.configurable)||(s={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,i,s)}:function(e,t,r,i){e[i=void 0===i?r:i]=t[r]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||(s=function(e){return(s=Object.getOwnPropertyNames||function(e){var t,r=[];for(t in e)Object.prototype.hasOwnProperty.call(e,t)&&(r[r.length]=t);return r})(e)},function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r=s(e),i=0;inew Promise((e,t)=>{let r,i;var s;if(0===a.indexOf("/")&&(r=o||{},{token:s}=(0,n.getAsObject)(),s&&(r.random=(t=>{let r="";var i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";for(let e=0;e{var e="https://widget.trustpilot.com";return 0===e.indexOf("#")?"https://widget.tp-staging.com":e}},{}],58:[function(e,t,r){"use strict";function i(){const e=navigator.userAgent.toLowerCase();return-1!==e.indexOf("msie")&&parseInt(e.split("msie")[1])}function s(t){try{return JSON.parse(t.responseText)}catch(e){return t.responseText}}function a(){}Object.defineProperty(r,"__esModule",{value:!0}),r.xhr=function(e){const t={type:e.type||"GET",error:e.error||a,success:e.success||a,data:e.data,url:e.url||""};"GET"===t.type&&t.data&&(t.url=`${t.url}?${function(e){const t=[];for(const r in e)e.hasOwnProperty(r)&&t.push(`${encodeURIComponent(r)}=${encodeURIComponent(e[r])}`);return t.join("&")}(t.data)}`,delete t.data);(i()&&i()<=9?function(e){const t=new window.XDomainRequest,r=window.location.protocol;e.url=e.url.replace(/https?:/,r),t.open(e.type,e.url),t.onload=function(){e.success(s(t))},t.onerror=function(){e.error(s(t))},setTimeout(function(){t.send(e.data)},0)}:function(e){const t=window.XMLHttpRequest||ActiveXObject,r=new t("MSXML2.XMLHTTP.3.0");r.open(e.type,e.url,!0),r.setRequestHeader("Content-type","application/x-www-form-urlencoded"),r.onreadystatechange=function(){4===r.readyState&&(200<=r.status&&r.status<300?e.success(s(r)):e.error(s(r)))},r.send(e.data)})(t)}},{}],29:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.ReviewFetcher=void 0;const a=e("../../fn"),i=e("../call"),s=e("./responseProcessor"),o=e("./util"),n="No reviews available";r.ReviewFetcher=class{constructor({reviewsPerPage:e,includeImportedReviews:t,baseData:r,...i}){const s=(0,o.getNextPageLinks)(e=>(0,a.pipeMaybe)((0,a.prop)(e),(0,a.prop)("links"),(0,a.prop)("nextPage")));this.reviewsPerPage=e,this.includeImportedReviews=t,this.baseData=r,this.nextPage=s(r,t),this.wrapArgs=i,this.reviews=this._makeResponseProcessor(r).getReviews()}consumeReviews(t){return()=>this.produceReviews().then(e=>t({...this.wrapArgs,baseData:this.baseData,reviews:e,hasMoreReviews:this.hasMoreReviews,loadMoreReviews:this.consumeReviews.bind(this)})).catch(e=>{if(e===n)return t({...this.wrapArgs,baseData:this.baseData,reviews:[],hasMoreReviews:!1,loadMoreReviews:this.consumeReviews.bind(this)});throw e})}produceReviews(){return 0===this.reviews.length?Promise.reject(n):this.reviewsPerPage>=this.reviews.length?this._fetchReviews().then(e=>{const t=this._makeResponseProcessor(e);return this.nextPage=t.getNextPageLinks(),this.reviews.push(...t.getReviews()),this._takeReviews()}):Promise.resolve(this._takeReviews())}get hasMoreReviews(){return 0e=>e.filter(t);i;r.map=t=>e=>e.map(t);r.mapObject=(r,i)=>Object.keys(i).reduce((e,t)=>({...e,[t]:r(i[t])}),{});r.promiseAllObject=t=>{const i=Object.keys(t);var e=i.map(e=>t[e]);return Promise.all(e).then(e=>e.reduce((e,t,r)=>({...e,[i[r]]:t}),{}))};r.pairsToObject=e=>e.reduce((e,[t,r])=>({...e,[t]:r}),{});const s=e=>null==e;r.rejectNullaryValues=r=>Object.keys(r).reduce((e,t)=>({...e,...s(r[t])?{}:{[t]:r[t]}}),{});r.compose=(...t)=>e=>t.reduceRight((e,t)=>t(e),e);const a=(...t)=>e=>t.reduce((e,t)=>s(e)?e:t(e),e);r.pipeMaybe=a;const o=([e])=>e;o;r.find=e=>a(i(e),o);r.prop=t=>(e={})=>e[t];r.propMaybe=t=>(e={})=>e[t]||e;r.guard=t=>e=>(e=>s(e)||!1===e)(t)?null:e},{}],31:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.getNextPageLinks=void 0;const s=e("../../fn");r.getNextPageLinks=i=>(e,t=!1)=>{var r=i("productReviews")(e),e=(0,s.pipeMaybe)((0,s.guard)(t),i("importedProductReviews"))(e);return(0,s.rejectNullaryValues)({productReviews:r,importedProductReviews:e})}},{"../../fn":36}],30:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.ReviewResponseProcessor=void 0;const i=e("../../fn"),s=e("./util");r.ReviewResponseProcessor=class{constructor(e,{includeImportedReviews:t,displayName:r}){this.response=e,this.includeImportedReviews=t,this.displayName=r}getReviews(){var{productReviews:e,importedProductReviews:t}=this.response,e=(0,i.pipeMaybe)((0,i.propMaybe)("productReviews"),(0,i.propMaybe)("reviews"))(e)||[],t=(0,i.pipeMaybe)((0,i.guard)(this.includeImportedReviews),(0,i.propMaybe)("importedProductReviews"),(0,i.propMaybe)("productReviews"),(0,i.map)(e=>({...e,verifiedBy:"External"===e.type&&e.source?e.source.name:this.displayName})))(t)||[];return[...e,...t].sort(({createdAt:e},{createdAt:t})=>new Date(t)-new Date(e))}getNextPageLinks(){const e=(0,s.getNextPageLinks)(e=>(0,i.pipeMaybe)((0,i.prop)(e),(0,i.prop)("links"),(0,i.find)(e=>"next-page"===e.rel),(0,i.prop)("href"))),t=(0,s.getNextPageLinks)(e=>(0,i.pipeMaybe)((0,i.prop)(e),(0,i.prop)(e),(0,i.prop)("links"),(0,i.prop)("nextPage")));var r=t(this.response,this.includeImportedReviews);return{...e(this.response,this.includeImportedReviews),...r}}}},{"../../fn":36,"./util":31}],32:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.svgMap=void 0;const o=e("../translations"),s=e("../utils"),n='style="position: absolute; height: 100%; width: 100%; left: 0; top: 0;"',i=(e,t,r={})=>{var i=Object.keys(r).reduce((e,t)=>(e[t]=(0,s.sanitizeHtmlProp)(r[t]),"color"===t&&(e[t]=(0,s.sanitizeColor)(e[t])),e),{});return`
${t(e,i)}
`};const l={"80x15":{dimensions:{width:80,height:15},lines:[{x1:80,y1:7.5,x2:0,y2:7.5},{x1:.5,y1:3.5,x2:.5,y2:11.5},{x1:20.5,y1:6,x2:20.5,y2:9},{x1:40.5,y1:6,x2:40.5,y2:9},{x1:60.5,y1:6,x2:60.5,y2:9},{x1:80,y1:3.5,x2:80,y2:11.5}],stars:[{x:1.5,w:14,h:14,p:''},{x:13.5,w:14,h:14,p:''},{x:13.5,w:14,h:14,p:''},{x:33.5,w:14,h:14,p:''},{x:64.5,w:14,h:14,p:''}]},"90x16":{dimensions:{width:90,height:16},lines:[{x1:90,y1:8.5,x2:0,y2:8.5},{x1:.5,y1:5,x2:.5,y2:12},{x1:23.2185,y1:7,x2:23.2185,y2:10},{x1:45.5,y1:7,x2:45.5,y2:10},{x1:67.7815,y1:7,x2:67.7815,y2:10},{x1:90,y1:5,x2:90,y2:12}],stars:[{x:1.5,w:15,h:15,p:''},{x:15.5,w:15,h:15,p:''},{x:37.5,w:15,h:15,p:''},{x:60.5,w:15,h:15,p:''},{x:73.5,w:15,h:15,p:''}]},"105x19":{dimensions:{width:105,height:19},lines:[{x1:105,y1:10,x2:0,y2:10},{x1:.5,y1:6,x2:.5,y2:14.3125},{x1:26.5,y1:8,x2:26.5,y2:12},{x1:52.5,y1:8,x2:52.5,y2:12},{x1:78.5,y1:8,x2:78.5,y2:12},{x1:105,y1:6,x2:105,y2:14.3125}],stars:[{x:1.5,w:18,h:19,p:''},{x:17.5682,w:18,h:18,p:''},{x:43.5,w:18,h:18,p:''},{x:69.7046,w:18,h:18,p:''},{x:85.7727,w:18,h:18,p:''}]}},a=(e,{dimensionId:t,color:r,rating:i})=>` ${((e,a)=>l[e].lines.reduce((e,{x1:t,y1:r,x2:i,y2:s})=>`${e}`,""))(t,r)} ${((e,t,r)=>{if(0===t)return"";var{x:i,w:s,h:e,p:t}=l[e].stars[t-1];return` ${t} `})(t,i,r)} `,u="#dcdce6",c=(e,{rating:t,trustScore:r,color:i,locale:s=o.defaultLocale})=>{var a=`starRating-${Math.random().toString(36).substring(2)}`,r={"[ratingStars]":r,"[totalStars]":5},r=(0,o.getFrameworkTranslation)("starRating",s,r),s=(0,o.formatLocale)(s);return` ${r} `},d=e=>{var t=`trustpilotLogo-${Math.random().toString(36).substring(2)}`;return` Trustpilot `},v=e=>` `,p=e=>` `,m=(e,{elementColor:t})=>` `,g=e=>` `,w=e=>` `,h=e=>` `,f=e=>` `,b={width:251,height:46},y={width:126,height:31},L={width:24,height:24},S={width:14,height:14},R={width:12,height:9},T={width:14,height:14},N={width:14,height:14},j={width:14,height:12};r.svgMap={scale:e=>i(l[e.dimensionId].dimensions,a,e),stars:e=>i(b,c,e),logo:()=>i(y,d),arrowSlider:()=>i(L,v),arrowSliderCircle:()=>i(S,p),replyArrow:e=>i(R,m,e),verifiedReview:e=>i(T,g,e),verifiedReviewFlex:e=>i(T,w,e),invitedReview:e=>i(N,h,e),redirectedReview:e=>i(j,f,e)}},{"../translations":56,"../utils":57}],56:[function(e,t,r){"use strict";var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(r,"__esModule",{value:!0}),r.getFrameworkTranslation=r.formatLocale=r.defaultLocale=void 0;const s=i(e("../localization")),a="en-US";r.defaultLocale=a;const o={da:"DK",en:"US",ja:"JP",nb:"NO",sv:"SE"},n=e=>{if(!e)return a;var t=e.split("-"),e=t[0];let r=t[1];return r=r||(t=e,o[t]||t),e&&r?`${e}-${r.toUpperCase()}`:a};r.formatLocale=n;const l=(e,t)=>e.reduce((e,t)=>e[t],t);r.getFrameworkTranslation=(e,t=a,r={},i=[])=>{t=((e,t)=>{e=e.split(".");return l(e,t)||l(e,s.default[a])})(e,s.default[n(t)]||s.default[a]),t=Object.keys(r).reduce((e,t)=>e.replace(t,r[t]),t);return i.reduce((e,t)=>e.replace("[LINK-END]","").replace("[LINK-BEGIN]",t),t)}},{"../localization":16}],33:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.onPong=r.ping=void 0,r.setListener=c,r.isLoadedMessage=function(e){return"loaded"===e},r.sendAPIDataMessage=function(e){u("popup")("API data",e)};const i=e("./utils"),s=window.parent,a=[];let o=null;const n=[];function l(e){o?(e.widgetId=o,e=JSON.stringify(e),s.postMessage(e,"*")):a.push(e)}function u(r){return(e,t={})=>l({...t,message:e,command:"message",name:r})}function c(e){n.push(e)}r.ping=()=>l({command:"ping"});r.onPong=t=>{c(e=>{"pong"===e.data.command&&t(e)})},(0,i.addEventListener)(window,"message",function(e){if("string"==typeof e.data){let t;try{t={data:JSON.parse(e.data)}}catch(e){return}if("setId"===t.data.command)o=t.data.widgetId,function(){for(;a.length;)l(a.pop())}();else for(let e=0;e{switch(e){case"en-US":case"nl-NL":return e.replace("-","_");default:return e.split("-")[0]}};r.getReviewDisclaimerLink=e=>{return`https://help.trustpilot.com/s/article/How-do-we-make-sure-reviews-are-trustworthy?language=${(0,r.normalizeSupportLocale)(e)}`}},{}],55:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.span=r.a=void 0;e("./assets/svg");const i=e("./utils"),s=t=>Object.keys(t).map(e=>{return`${e}="${(0,i.sanitizeHtmlProp)(t[e])}"`}).join(" "),a=(e,t,...r)=>`<${e} ${s(t)}>${[].concat(...r).join("\n")}`;r.a=(e,...t)=>a("a",e,...t);const o=(e,...t)=>a("div",e,...t);o;r.span=(e,...t)=>a("span",e,...t)},{"./assets/svg":32,"./utils":57}],38:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.styleAlignmentPositions=void 0;r.styleAlignmentPositions=["left","right"]},{}],41:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.hasProductReviews=r.hasServiceReviewsMultiFetch=r.hasServiceReviews=r.constructTrustBoxAndComplete=r.multiFetchData=r.fetchData=void 0;const u=e("../../api/call"),c=e("../../communication"),d=e("../../fn"),v=e("../../utils"),p=e("../templates/errorFallback"),m=e("../templates/loader"),g="default_singleFetch_f98ac77b",i=({businessEntity:{numberOfReviews:{total:e}}})=>0{const e=Object.keys(t);return e.some(e=>i(t[e]))};r.hasProductReviews=({productReviewsSummary:e,importedProductReviewsSummary:t})=>{return 0<(e?e.numberOfReviews.total:0)+(t?t.numberOfReviews.total:0)};const w=(o,n=!1,l=i)=>({baseData:t,locale:r,theme:e,hasMoreReviews:i,loadMoreReviews:s})=>{var a=l(t);o({baseData:t,locale:r,hasMoreReviews:i,loadMoreReviews:s});n&&(0,c.setListener)(({data:e})=>{(0,c.isLoadedMessage)(e)&&(0,c.sendAPIDataMessage)({baseData:t,locale:r})}),(0,v.showTrustBox)(e,a),(0,p.removeErrorFallback)()};r.constructTrustBoxAndComplete=w;const a=l=>(e,t,r,i)=>{const{locale:s,theme:a="light"}=e[Object.keys(e)[0]];var o,n=(0,d.promiseAllObject)((0,d.mapObject)((o=l,({businessUnitId:e,locale:t,...r})=>{r=(0,d.rejectNullaryValues)({businessUnitId:e,locale:t,...r,theme:null});return(0,u.apiCall)(o,r)}),e)),e=(0,v.getOnPageReady)(),i=Promise.all([n,e]).then(([e])=>{var t;return{baseData:(t=e,e=Object.keys(t),g in t&&1===e.length?t[g]:t),locale:s,theme:a}}).then(w(t,r,i)).catch(e=>{if(e&&e.FallbackLogo)return(0,p.errorFallback)()});(0,m.withLoader)(i)};r.multiFetchData=a;r.fetchData=s=>(e,t,r,i)=>{e={default_singleFetch_f98ac77b:e};a(s)(e,t,r,i)}},{"../../api/call":28,"../../communication":33,"../../fn":36,"../../utils":57,"../templates/errorFallback":48,"../templates/loader":49}],48:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.removeErrorFallback=r.errorFallback=void 0;const i=e("../../dom"),s=e("../../utils"),a=e("../assets/logo"),o=e("../templating");r.errorFallback=(e="tp-widget-fallback")=>{e=document.getElementById(e);(0,i.populateElements)([{element:e,string:(0,o.a)({href:"https://www.trustpilot.com?utm_medium=trustboxfallback",target:"_blank",rel:"noopener noreferrer"},(0,o.mkElemWithSvg)(a.logo,"fallback-logo"))}])};r.removeErrorFallback=(e="tp-widget-fallback")=>{e=document.getElementById(e);(0,s.removeElement)(e)}},{"../../dom":35,"../../utils":57,"../assets/logo":45,"../templating":52}],49:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.withLoader=void 0;const s=e("../../dom"),a=e("../../utils"),o=e("../assets/logo"),n=e("../templating");r.withLoader=(e,{loaderElement:t="tp-widget-loader",delay:r=1e3}={})=>{const i=setTimeout(()=>(e=>{e=document.getElementById(e);(0,s.populateElements)([{element:e,string:(0,n.mkElemWithSvg)(o.logo)}])})(t),r);return e.finally(()=>{clearTimeout(i),(e=>{const t=document.getElementById(e);e=`${e}--loaded`;(0,s.addClass)(t,e),t&&(t.addEventListener("animationend",()=>(0,a.removeElement)(t)),t.addEventListener("webkitAnimationEnd",()=>(0,a.removeElement)(t)),t.addEventListener("oanimationend",()=>(0,a.removeElement)(t)))})(t)})}},{"../../dom":35,"../../utils":57,"../assets/logo":45,"../templating":52}],43:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.fetchProductReview=r.fetchProductData=void 0;const i=e("../../api/call"),n=e("../../api/reviewFetcher"),l=e("./fetchData");r.fetchProductData=r=>(s,a,e=!1,o=!1)=>{var t=0{const i=new n.ReviewFetcher({baseData:e,includeImportedReviews:o,reviewsPerPage:parseInt(s.reviewsPerPage),locale:t,...r});return i.consumeReviews(a)()}:a;(0,l.fetchData)(`/trustbox-data/${r}`)(s,t,e,l.hasProductReviews)};r.fetchProductReview=(e,t,r)=>{(0,i.apiCall)(`/product-reviews/${e}`,{locale:t}).then(r)}},{"../../api/call":28,"../../api/reviewFetcher":29,"./fetchData":41}],44:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.svgStarStyle=r.wrapSvg=void 0;const s=e("../../utils");r.wrapSvg=(e,t,r={})=>{var i=Object.keys(r).reduce((e,t)=>(e[t]=(0,s.sanitizeHtmlProp)(r[t]),"color"===t&&(e[t]=(0,s.sanitizeColor)(e[t])),e),{});return`
${t(e,i)}
`};r.svgStarStyle='style="position: absolute; height: 100%; width: 100%; left: 0; top: 0;"'},{"../../utils":57}],45:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.logo=void 0;const i=e("./helpers"),s=e=>{var t=`trustpilotLogo-${Math.random().toString(36).substring(2)}`;return` Trustpilot `},a={width:126,height:31};r.logo=()=>(0,i.wrapSvg)(a,s)},{"./helpers":44}],46:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.stars=void 0;const n=e("../translations"),l=e("./helpers"),u="#dcdce6",i=(e,{rating:t,trustScore:r,color:i,translations:s,locale:a=n.defaultLocale})=>{var o=`starRating-${Math.random().toString(36).substring(2)}`,r={"[ratingStars]":r,"[totalStars]":5},r=(0,n.getFrameworkTranslation)("starRating",s,r),a=(0,n.formatLocale)(a);return` ${r} `},s={width:251,height:46};r.stars=e=>(0,l.wrapSvg)(s,i,e)},{"../translations":53,"./helpers":44}],53:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.getFrameworkTranslation=r.formatLocale=r.defaultLocale=void 0;const i="en-US";r.defaultLocale=i;const s={da:"DK",en:"US",ja:"JP",nb:"NO",sv:"SE"};r.formatLocale=e=>{if(!e)return i;var t=e.split("-"),e=t[0];let r=t[1];return r=r||(t=e,s[t]||t),e&&r?`${e}-${r.toUpperCase()}`:i};r.getFrameworkTranslation=(e,t,r={},i=[])=>{t=((e,t)=>{e=e.split(".");return t=t,e.reduce((e,t)=>e&&e[t]?e[t]:"",t||{})})(e,t),t=Object.keys(r).reduce((e,t)=>e.replace(t,r[t]),t);return i.reduce((e,t)=>e.replace("[LINK-END]","").replace("[LINK-BEGIN]",t),t)}},{}],52:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.mkElemWithSvg=r.div=r.a=void 0;const i=e("../utils"),s=t=>Object.keys(t).map(e=>{return`${e}="${(0,i.sanitizeHtmlProp)(t[e])}"`}).join(" "),a=(e,t,...r)=>`<${e} ${s(t)}>${[].concat(...r).join("\n")}`;r.a=(e,...t)=>a("a",e,...t);const o=(e,...t)=>a("div",e,...t);r.div=o;r.mkElemWithSvg=(e,t="",r={})=>{const{ariaHideSvg:i,...s}=r;r=i?{"aria-hidden":"true"}:{};return o({class:t,...r},e(s))}},{"../utils":57}]},{},[1]); //# sourceMappingURL=main.js.map