let e="center-back",t="Bold Serif",n="#000000",a="Playfair Display",o=15,i={};let l=7.5,s=5.25,r=110,d=72,c="$6",p="",m="",f='\n \n Center back\n \n';function u(e){return e.toLowerCase().replace(/\W+/g,"-")}const h=()=>{const e=document.getElementById("personalization-data-container").dataset;let{colors:t,fonts:n,placements:a,personalizationPlacement:o}=e;const{admin:i}=e;t=JSON.parse(t),n=JSON.parse(n),a=JSON.parse(a),o=JSON.parse(o);const l=(s=".personalization-font-size",Array.from(document.querySelectorAll(s)).map((({dataset:{maxSize:e,minSize:t,font:n,placement:a}})=>({maxSize:e,minSize:t,font:JSON.parse(n),placement:JSON.parse(a)}))));var s;const r=o.title,d=a.find((e=>e.title===r)),c=t,p=((e,t,n)=>{const a=n.toLowerCase().replace(/\W+/g,"-");return e.map((e=>{const o=t.find((t=>{const a=t.font.find((t=>t.title===e.title)),o=t.placement.find((e=>e.title===n));return a&&o}));if(o){const t={...e.font_sizes,[a]:{min:o.minSize,max:o.maxSize}};return{...e,font_sizes:t}}return e}))})(n,l,r);return{isAdmin:i,options:{type:{options:["Embroidery"],lineProperty:"CustomizationType",fieldName:"Personalization Type",charRule:"Chars",charlimit:10},placement:{options:[d.title],lineProperty:"CustomizationPlacement",fieldName:"Placement",placements:[d]},color:{options:c,lineProperty:"CustomizationColor",fieldName:"Embroidery"},font:{options:p,lineProperty:"CustomizationFont",fieldName:"Font"}},personalizationPlacement:o,fontOptionsArray:p}},y=e=>{const t=e.currentTarget.value;document.querySelectorAll(".personalization-text").forEach((e=>{const n=t.length>0?t:e.dataset.placeholder;e.textContent=n,document.getElementById("svg-tester").textContent=n}))},x=e=>{const t=document.querySelector("#svg-tester"),n=document.querySelector(".active-placement"),{impwidth:a,impheight:o,max:i}=t.dataset,l=96*a,s=96*o;if(t.style.fontSize=`${e}px`,t.getBBox().width>l||t.getBBox().height>s)x(e-1);else{const a=Math.floor(3*e/4),{basemax:o,basefont:l}=n.dataset,s=l*(e/(4*i/3))*(i/o)+"px";t.dataset.current=a,t.style.fontSize=4*a/3+"px",n.style.fontSize=s,document.querySelectorAll(".personalizer-font").forEach((e=>{e.checked&&(e.dataset.currentsize=`${a}pt`)}))}},z=()=>{const{fontOptionsArray:e}=h(),t=document.getElementById("live-preview-svg").parentNode.offsetWidth,n=document.getElementById("svg-tester"),a=n.dataset.font,o=e.find((e=>e.font===a))?.width_adjustment||1,i=parseFloat(n.dataset.impwidth),l=parseFloat(n.dataset.impheight);n.style.fontSize=4*n.dataset.max/3+"px";const s=n.getBBox().width/96*o,c=n.getBBox().height/96;n.style.fontSize=4*n.dataset.min/3+"px";const p=n.getBBox().width/96*o,m=n.getBBox().height/96,f=document.querySelector(".active-placement"),u=parseFloat(f.dataset.basefont),y=parseFloat(f.dataset.basemax);r=parseFloat(n.dataset.max),d=parseFloat(n.dataset.min);const z=()=>{const e=f.getComputedTextLength(),n=(f.getBBox().width-e)*t/1e3*-1;f.setAttribute("x",n)},g=()=>{const e=document.getElementById("personalization-atc");e.removeEventListener("click",window.atcClick),e.addEventListener("click",window.atcClick),e.innerText="Add to Bag"};if(s{e.checked&&(e.dataset.currentsize=`${r}pt`)})),document.getElementById("personalizer-input").setAttribute("maxlength",f.dataset.maxlength),f.classList.contains("anchor-middle")&&z();else if(m>l&&p>i)(()=>{const e=Math.floor(4*d/3)/(4*r/3);f.style.fontSize=u*e*(r/y)+"px",document.getElementById("personalizer-input").classList.add("check-validity"),document.getElementById("personalization-text-errors").classList.remove("hidden"),document.getElementById("personalization-text-subcopy").classList.add("hidden"),document.getElementById("personalizer-input").setAttribute("maxlength",document.getElementById("personalizer-input").value.length)})(),f.classList.contains("anchor-middle")&&z();else{g(),document.getElementById("personalizer-input").setAttribute("maxlength",f.dataset.maxlength);const e=i/s,t=l/c,a=Math.min(e,t,1),o=Math.floor(4*r/3*a),d=o/(4*r/3);if(n.style.fontSize=`${o}px`,document.getElementById("personalizer-input").classList.remove("check-validity"),document.getElementById("personalization-text-errors").classList.add("hidden"),document.getElementById("personalization-text-subcopy").classList.remove("hidden"),n.getBBox().width>96*i)x(o-1);else{const e=Math.floor(3*o/4);n.dataset.current=e,f.style.fontSize=u*d*(r/y)+"px",document.querySelectorAll(".personalizer-font").forEach((t=>{t.checked&&(t.dataset.currentsize=`${e}pt`)})),f.classList.contains("anchor-middle")&&z()}}},g=e=>{const{hex:t,color:n}=e.currentTarget.dataset;document.querySelectorAll(".personalization-text").forEach((e=>{e.style.fill=t})),document.getElementById("personalization-color").innerText=n},b=n=>{const o=n.currentTarget,{cssname:i,title:l,placementsizes:s}=o.dataset;a=i,document.querySelectorAll(".personalization-text").forEach((e=>{e.style.fontFamily=i}));const r=document.getElementById("svg-tester");if(r.style.fontFamily=i,r.dataset.font=i,document.getElementById("personalization-font").innerText=l,s){const t=JSON.parse(s);if(t[u(e)]){const{max:n,min:a}=t[e];r.dataset.max=n,r.dataset.min=a}}t=o.id},$=t=>{const n=u(t.currentTarget.dataset.placement);e=n;const a=document.getElementById("svg-tester");document.querySelectorAll(".personalization-text").forEach((e=>{const t=e.id===`text-placement-${n}`;if(e.classList.toggle("hidden",!t),e.classList.toggle("active-placement",t),t){const{impwidth:t,impheight:o}=e.dataset;if(a.dataset.impwidth=t,a.dataset.impheight=o,i[n]){const{max:e,min:t}=i[n];a.dataset.max=e,a.dataset.min=t}}})),z()},v=x=>{x.preventDefault();const{options:v,is_admin:E}=h();let w="",S="",B="",k="",I=0;v.placement&&v.placement.placements&&v.placement.placements.length>1&&(I+=1);let P="";if(v.type){const e=v.type;e.options&&e.options.forEach((e=>{w=`\n \n `}))}if(v.color){const e=v.color;let t="";e.options.forEach(((a,o)=>{const i=`background-color: ${a.code.includes("#fff")?"#eee":a.code}`;let l="";const s=u(a.title);0===o&&(l="checked",n=a.code),t+=`\n \n \n \n `}));let a="";e.options.length<=1?a="hidden":I+=1,B=`\n
\n \n \n \n ${I}\n \n ${e.fieldName}:\n \n ${e.options[0].title}\n \n
\n ${t}\n
\n
\n `}if(v.font){const e=v.font,n=0,o=e.options.find((e=>!0!==e.enabled));let l="";e.options.forEach(((o,s)=>{let r="",d="";s===n&&(d="checked",t=o.font_handle,a=o.font,i=o.font_sizes),P+=`\n \n TEST FONT\n \n `,o.font_sizes&&(r=`data-placementsizes='${JSON.stringify(o.font_sizes)}'`);let c="";c=E?!0!==o.enabled?"border-brand-darkerMocha bg-brand-info/25":"":!0!==o.enabled?"!hidden":"",l+=`\n \n \n ${o.title}\n \n `}));let s="";e.options.length<=1?s="hidden":I+=1,k=`\n
\n \n \n \n ${I}\n \n ${v.font.fieldName}:\n \n Sans Serif\n \n
\n
\n

Admin View

\n

\n Disabled fonts will appear in a light blue button.\n

\n
\n\n ${l}\n
\n
\n `}const L=v.font.options.findIndex((e=>e.font===a));if(v.placement){let t="";const i=v.placement;i.placements&&i.placements.length<=1&&(t="hidden");let d="";i.placements?(f="",i.placements.forEach(((t,c)=>{let p="",m="hidden",h="";0===c&&(p="checked",m="",h="active-placement",e=u(t.title),o=t.max_char,l=t.max_width,s=t.max_height),r=v.font.options[L].font_sizes[e].max,f+=`\n \n \n ${t.placeholder}\n \n \n `,d+=`\n \n \n `}))):i.options.forEach(((t,n)=>{let a="";0===n&&(a="checked",e=u(t)),d+=`\n \n \n `})),S=`\n
\n 1 ${i.fieldName}\n
\n ${d}\n
\n
\n `}I+=1;const T=`\n ${w}\n ${S}\n ${B}\n ${k}\n ${I}\n \n
\n \n
\n
\n We use exactly what you type here, so please double-check the spelling!\n Note: Personalized items take an additional ${window.timelines.personalization.timeline} business days and are non-returnable.\n
\n \n `;document.querySelector(".personalized").innerText&&(c=document.querySelector(".personalized").innerText.split("("),c=c.length>1?`(${c[1].replaceAll(")","")})`:""),document.getElementById("personalization-image")&&(p=document.getElementById("personalization-image").dataset.image,m=document.getElementById("personalization-image").dataset.altText);const A=`\n
\n \n
\n

Personalization

\n

${v.type.options[0]} ${c}

\n
\n
\n
\n
\n
\n \n
\n \n
\n
\n ${T}\n
\n \n
\n
\n
\n
\n `;window.buildModal(A),r=v.font.options[L].font_sizes[e].max,d=v.font.options[L].font_sizes[e].min;const C=document.getElementById("svg-tester");C.dataset.current=110,C.dataset.font=t,C.dataset.impwidth=l,C.dataset.impheight=s,C.dataset.max=r,C.dataset.min=d,C.dataset.fontFamily=a,C.dataset.font=t,C.style.fontSize=4*r/3+"px",C.style.fontFamily=t,C.style.fontFamily=a,document.getElementById("personalizer-input").addEventListener("input",y),document.getElementById("personalizer-input").addEventListener("input",z),document.getElementById("personalizer-input").addEventListener("change",window.cleanInput),document.getElementById("personalizer-input").addEventListener("input",window.cleanInput),document.querySelectorAll(".personalization-font-radio").forEach((e=>{e.addEventListener("input",b),e.addEventListener("change",b),e.addEventListener("input",z),e.addEventListener("change",z)})),document.querySelectorAll(".personalization-color-radio").forEach((e=>{e.addEventListener("input",g),e.addEventListener("change",g)})),document.querySelectorAll(".personalization-placement-radio").forEach((e=>{e.addEventListener("input",$),e.addEventListener("change",$)})),document.getElementById("personalization-atc").addEventListener("click",window.atcClick),i[`${e}`]&&document.querySelectorAll(".personalizer-font").forEach((t=>{t.checked&&(t.dataset.currentsize=`${i[e].max}pt`)}))},E=document.querySelector(".preview-modal-btn.admin-only");E&&E.addEventListener("click",v),window.testFontSize=z,window.renderPersonalizationModal=v;export{v as renderPersonalizationModal,g as setColor,b as setFont,$ as setPlacement,z as testFontSize,x as trySmallerFontSize,y as updateText}; //# sourceMappingURL=product--live-preview.min.js.map