\n `,i};let c=!1;const u=()=>{c=!0,window.__ts__.colorSetting=document.getElementById("trustshop-widget_box_color_customize")&&document.getElementById("trustshop-widget_box_color_customize").value?{...r,...JSON.parse(document.getElementById("trustshop-widget_box_color_customize").value)}:r,window.__ts__.colorVariable(r,window.__ts__.colorSetting)};(async()=>{try{const e=await fetch("https://ipinfo.io/json"),t=await e.json();window.__ts__.userCountryCode=t.country?.toLocaleLowerCase()}catch(e){console.error("Error fetching country code:",e),window.__ts__.userCountryCode="gb"}})();(async()=>{const t="trustshop-user-language-code",o=window.localStorage?.getItem(t);if(o)window.__ts__.userLanguageCode=decodeURIComponent(o);else try{const o=await fetch(`${e}/current-language`),i=await o.json();if("string"!=typeof i||!i)return void(window.__ts__.userLanguageCode="en");window.__ts__.userLanguageCode=i,window.localStorage.setItem(t,encodeURIComponent(i))}catch(e){console.error("Error fetching country code:",e),window.__ts__.userLanguageCode="en"}})(),window.__ts__.fetchTranslation=async(t,o,i,n)=>{try{const[r,s]=await Promise.all([fetch(`${e}/translated`,{headers:{"Content-Type":"application/json"},body:JSON.stringify({text:t,source_lang:i,target_lang:n}),method:"POST"}).then((e=>e.json())),fetch(`${e}/translated`,{headers:{"Content-Type":"application/json"},body:JSON.stringify({text:o.replaceAll(/\n/g,""),source_lang:i,target_lang:n}),method:"POST"}).then((e=>e.json()))]);return{title:r.error?t:r,content:s.error?o:s}}catch(e){return console.error("Error fetching data:",e),{title:null,content:null}}},window.__ts__.handleTranslate=async(e,t,o,i,n)=>{if(JSON.parse(e.getAttribute("translate"))){const o=e.getAttribute("data-origin-review--title"),r=e.getAttribute("data-origin-review--content");e.querySelector(`#review-title--${t}`).innerHTML=o,e.querySelector(`#review-content--${t}`).innerHTML=r,e.setAttribute("translate","false"),i.innerHTML=window.__ts__.label_content[n].see_translation}else{const r=e.getAttribute("translation--title"),s=e.getAttribute("translation--content");if(r||s)e.querySelector(`#review-title--${t}`).innerHTML=r,e.querySelector(`#review-content--${t}`).innerHTML=s;else{i.classList.add("translating");let n=await window.__ts__.fetchTranslation(o.title,o.content,o.language_code?o.language_code?.toLocaleLowerCase():"en",window.__ts__.userLanguageCode);i.classList.remove("translating"),e.setAttribute("translation--title",n.title),e.setAttribute("translation--content",n.content),e.setAttribute("data-origin-review--title",o.title),e.setAttribute("data-origin-review--content",o.content),e.querySelector(`#review-title--${t}`).innerHTML=n.title,e.querySelector(`#review-content--${t}`).innerHTML=n.content}e.setAttribute("translate","true"),i.innerHTML=window.__ts__.label_content[n].show_original}},window.__ts__.translateReviewBtn=(e,t,o,i,n)=>{const r=document.createElement("span");return r.classList.add("trustshop-translate-review--btn"),r.innerHTML=window.__ts__.label_content[n].see_translation,r.addEventListener("click",(async()=>{await window.__ts__.handleTranslate(e,t,o,r,n),i&&i()})),r},window.__ts__.popover=(e,t,o,i)=>{const n=()=>{const e=o.getBoundingClientRect(),t=e.top,n=e.bottom,r=e.left,s=window.innerHeight;i.style.left=r+"px",s-n<200?(i.style.bottom=s-t+"px",i.style.top="unset"):(i.style.top=n+"px",i.style.bottom="unset")};if(e){document.addEventListener("scroll",n),window.addEventListener("resize",n);const e=o.getBoundingClientRect(),r=e.top,s=e.bottom,a=e.left,l=window.innerHeight;i.style.width=e.width+"px",i.style.left=a+"px",l-s<200?(i.style.bottom=l-r+"px",i.style.top="unset"):(i.style.top=s+"px",i.style.bottom="unset"),t.classList.add("show")}else t.classList.remove("show"),document.removeEventListener("scroll",n),window.removeEventListener("resize",n)},window.__ts__.createCheckBoxInput=(e,t=void 0,o=1)=>{const i=window.__ts__.uniqueID.generateUniqueId("trustshop-checkbox-svg"),n=document.createElement("div");n.className="trustshop-checkbox";const r=document.createElement("span");r.className="checkbox";const s=document.createElement("input");s.type="checkbox",s.name=e,s.id=e,t?.(s);const a=document.createElementNS("http://www.w3.org/2000/svg","svg"),l=document.createElementNS("http://www.w3.org/2000/svg","use");l.setAttributeNS("http://www.w3.org/1999/xlink","href",`#${i}`),l.classList.add("checkbox"),a.appendChild(l),r.append(s,a);const d=document.createElementNS("http://www.w3.org/2000/svg","svg");d.setAttribute("xmlns","http://www.w3.org/2000/svg"),d.style.display="none";const _=document.createElementNS("http://www.w3.org/2000/svg","symbol");_.id=i,_.setAttribute("viewBox","0 0 22 22");const c=document.createElementNS("http://www.w3.org/2000/svg","path");return c.setAttribute("fill","none"),c.setAttribute("stroke","currentColor"),c.setAttribute("d","M5.5,11.3L9,14.8L20.2,3.3l0,0c-0.5-1-1.5-1.8-2.7-1.8h-13c-1.7,0-3,1.3-3,3v13c0,1.7,1.3,3,3,3h13 c1.7,0,3-1.3,3-3v-13c0-0.4-0.1-0.8-0.3-1.2"),_.appendChild(c),d.appendChild(_),n.append(r,d),n},window.__ts__.sentry={captureException:e=>Sentry&&"function"==typeof Sentry.captureException?Sentry.captureException(e):window.Sentry&&"function"==typeof window.Sentry.captureException?window.Sentry.captureException(e):void console.error("Sentry is not initialized or captureException is not a function."),testTriggerError:()=>{throw new Error("This is a test error for Sentry.")},testTriggerException:()=>{functionThatDoesNotExist()},testCaptureException:()=>{try{functionThatDoesNotExistWithCapture()}catch(e){window.__ts__.sentry.captureException(e)}}};const p={product_reviews:{text_customer_reviews:"Customer Reviews",text_reviews:"Reviews",text_review:"Review",text_based_on:"Based on",text_out_of:"out of",text_review_this_product:"Review this product",text_share_your_thoughts:"Share your thoughts with other customers",btn_write_a_review:"Write a review",all_photos:"All photos",text_images_from_reviews:"Images from reviews",label_filter_all:"All",label_filter_all_ratings:"All ratings",label_filter_most_helpful:"Most helpful",label_filter_highest_rating:"Highest rating",label_filter_lowest_rating:"Lowest rating",label_filter_oldest:"Oldest",label_filter_newest:"Newest",label_filter_media_first:"Photo/Video first",label_filter_review_with_videos:"Review with videos",label_filter_review_with_photos:"Review with photos",text_review_on:"Reviewed on",text_people_found_helpful:"people found this helpful",text_helpful:"Helpful",text_report:"Report",text_reply_from:"Reply from",anonymous:"Anonymous",name_display_tooltip:"If you choose anonymous, your name will be hidden from everyone",name_preview_help_text:"Your name will appear as",btn_load_more_review:"Load more reviews",no_review_text_no_review:"No reviews yet. Any feedback? Let us know",no_review_btn_write_first_review:"Write review",modal_write_title:"Ratings and Reviews",modal_write_text_reviews:"Reviews",modal_review_text_click_to_rate:"Click to rate",modal_review_add_photo_or_video:"Add photo or video",name_display_format:"Name display",option_name_display_format_1:"John Smith",option_name_display_format_2:"John S.",option_name_display_format_3:"J.S.",option_name_display_format_4:"Anonymous",modal_review_label_customer_name:"Your Name",modal_review_placeholder_customer_name:"Type your name here",modal_review_label_customer_email:"Your Email",modal_review_placeholder_customer_email:"Your email is private and is used to send you discount vouchers",modal_review_label_review_title:"Review Title",modal_review_placeholder_review_title:"Example: Easy to use",modal_review_label_review_content:"Write your review",modal_review_placeholder_review_content:"Tell other customers what you think about this product",modal_review_label_characters_remaining:"characters remaining",modal_review_label_review_media:"Upload media",modal_review_placeholder_click_here:"click here",modal_review_placeholder_upload_photo:"Click to upload photo or drag and drop",modal_review_placeholder_upload_video:"Click to upload video or drag and drop",modal_review_placeholder_upload_media:"Click to upload or drag and drop",modal_review_btn_back:"Back",modal_review_btn_submit_review:"Submit Review",modal_pending_review_title:"Pending Review",modal_pending_review_subtitle:"Your review has been sent successfully and will be reviewed to ensure it meets our guidelines and standards. Please allow us some time to thoroughly assess your review.",modal_pending_review_button:"Continue shopping",modal_success_review_title:"Review submitted successfully!",modal_success_review_subtitle:"Thank you for spending time sharing your experience and leaving feedback, it will be very beneficial for other customers.",modal_success_review_button:"Continue shopping",modal_report_title:"Report this review",modal_report_subtitle:"Thank you for taking the time to help {{ shopname }}.Your report is anonymous.",modal_report_option_1:"Review contains private information.",modal_report_option_2:"Review contains objectionable language.",modal_report_option_3:"Review contains advertising or spam.",modal_report_option_4:"Review contains violent and disgusting content.",modal_report_option_5:"Other violations.",modal_report_btn:"Report this review",modal_view_image_text_all_media:"All photos",text_medias_gallery:"Reviews gallery",text_all:"All",text_image:"Images",text_video:"Videos",no_media:"No medias uploaded yet!",no_image:"No images uploaded yet!",no_video:"No videos uploaded yet!",purchased_item:"Purchased item",view_product:"View product",required_input:"*Please fill out this field",required_email:"*Please enter a valid email address!",media_rule_size:"*Media size must be smaller than 50MB",photo_rule_size:"*Photo size must be smaller than 10MB",video_rule_size:"*Video size must be smaller than 50MB",media_rule_type:"*Image type must be .bmp, .jpeg or .png. Video type must be .mp4, .mov",media_upload_fail:"*Unable to upload the image. Please try again later",media_upload_duplicate:"*You have already uploaded this image",modal_review_btn_add_photo_subtitle:"Max file size: 10MB",modal_review_btn_add_video_subtitle:"Max file size: 50MB",modal_image_review_for:"Review for",modal_image_from_this_review:"Image from this review",see_translation:"See translation",show_original:"Show original",sort_by:"Sort by",max_file_size:"Max file size: 50MB",modal_confirm_discard_review_title:"Are you sure you want to discard this review?",modal_confirm_discard_review_content:"All content in this review form will be lost. This action cannot be undone. Do you want to proceed?",modal_confirm_discard_review_cancel_btn:"Cancel",modal_confirm_discard_review_discard_btn:"Discard",name_override_notice:"Your name will be hidden by the “{{name_display}}” setting.",modal_name_override_notice:"Your name will be hidden by the “{{name_display}}” setting.",modal_view_media_add_to_cart:"Add to cart",modal_view_media_atc_unavailable:"Unavailable",modal_view_media_atc_choose_options:"Choose options",modal_view_media_atc_toast_success:"Added to cart",modal_view_media_atc_toast_failure:"Can't add to cart",modal_view_media_atc_toast_sold_out:"Out of stock",modal_view_media_atc_toast_unavailable:"Item unavailable"},onepage_reviews:{header_title:"Ours customers love us",header_subtitle:"See what the community is saying about us",text_customer_reviews:"Customer Reviews",text_reviews:"Reviews",text_review:"Review",text_based_on:"Based on",text_out_of:"out of",text_review_this_product:"Review this product",text_share_your_thoughts:"Share your thoughts with other customers",btn_write_a_review:"Write a review",text_images_from_reviews:"Images from reviews",all_photos:"All photos",label_filter_all:"All",label_filter_most_helpful:"Most helpful",label_filter_highest_rating:"Highest rating",label_filter_lowest_rating:"Lowest rating",label_filter_oldest:"Oldest",label_filter_newest:"Newest",label_filter_media_first:"Photo/Video first",label_filter_review_with_videos:"Review with videos",label_filter_review_with_photos:"Review with photos",label_filter_stars_filter:"Star filter(1-5)",label_filter_all_ratings:"All ratings",text_review_on:"Review on",text_people_found_helpful:"people found this helpful",text_helpful:"Helpful",text_report:"Report",text_reply_from:"Reply from",anonymous:"Anonymous",btn_load_more_review:"Load more reviews",modal_view_image_text_all_media:"All photos",modal_all_media_title:"Reviews gallery",text_all:"All",text_image:"Images",text_video:"Videos",no_media:"No medias uploaded yet!",no_image:"No images uploaded yet!",no_video:"No videos uploaded yet!",purchased_item:"Purchased item",view_product:"View product",modal_report_title:"Report this review",modal_report_subtitle:"Thank you for taking the time to help {{ shopname }}.Your report is anonymous.",modal_report_option_1:"Review contains private information.",modal_report_option_2:"Review contains objectionable language.",modal_report_option_3:"Review contains advertising or spam.",modal_report_option_4:"Review contains violent and disgusting content.",modal_report_option_5:"Other violations.",modal_report_btn:"Report this review",modal_image_review_for:"Review for",modal_image_from_this_review:"Image from this review",modal_view_media_add_to_cart:"Add to cart",modal_view_media_atc_unavailable:"Unavailable",modal_view_media_atc_choose_options:"Choose options",modal_view_media_atc_toast_success:"Added to cart",modal_view_media_atc_toast_failure:"Can't add to cart",modal_view_media_atc_toast_sold_out:"Out of stock",modal_view_media_atc_toast_unavailable:"Item unavailable",see_translation:"See translation",show_original:"show original",text_medias_gallery:"Medias gallery",sort_by:"Sort by"},testimonial:{header_title:"Our customer loves us",header_subtitle:"Real feedback from our valued customers"},carousel:{header_title:"Feedback from our clients",header_subtitle:"See what the community is saying about us"},product_rating:{rating:"review",ratings:"reviews"}};window.__ts__.addToCart=async function(e,t,o,i=(()=>{})){this.review=t,this.cart=null,this.product=null,this.toastId=`trustshop-toast-${"function"==typeof crypto?.randomUUID?crypto.randomUUID():Math.random()}`,this.toastTimeout=null,this.labelElement=e.querySelector(".add-to-cart__label"),this.variantOptions=new Map([]);const n=e=>o?.[e]||p[e];return this.getButtonStyle=function(){return`\n --bg-color: ${window.__ts__.colorSetting.modal_detail_add_to_cart_button||r.modal_detail_add_to_cart_button};\n --text-color: ${window.__ts__.colorSetting.modal_detail_add_to_cart_text||r.modal_detail_add_to_cart_text};\n `},this.toast=(t,o="success")=>{const i={success:'',error:''};if(!e)return;if(!e.querySelector(`#${this.toastId}`)){let t=document.createElement("div");t.id=this.toastId,t.className="trustshop-modal-media__add-to-cart--toast",e?.appendChild(t)}const n=e.querySelector(`#${this.toastId}`);n&&(n.innerHTML=`