PageSourceSearch

https://www.roastar.com/_nuxt/CB1BZUko.js

js roastar.com collected 2026-09-26 03:00:27 UTC 18,370 bytes, 2 lines download raw bytes

1import{_ as pt}from"./D8N2DAGO.js";import{M as ut,d as J,f as at,a as Q,g as nt,e as it,k as mt,l as gt,m as ft,o as yt,p as bt,q as vt,r as jt,t as _t,n as wt,v as xt,w as lt,h as ht,i as kt,b as Et,_ as Lt,x as Ct}from"./zRKRMFEZ.js";import{D as Tt,u as Dt}from"./BYKfhalt.js";import{m as N,C as i,D as L,Z as G,G as y,j as $,r as Y,u as t,M as v,P as E,a0 as r,a9 as c,b as B,ac as P,a5 as Vt,a7 as D,a1 as Rt,p as S,H as qt,a8 as At,N as It,v as Pt,l as St,q as $t,x as Bt}from"./DUCOj2lJ.js";import{p as Nt}from"./DUh3mpbN.js";import{T as ct,V as dt}from"./CX_xbVJk.js";import{P as Mt}from"./BDgpJ_wt.js";import{D as Ut,g as Ot}from"./IdF2Y72P.js";import{c as Z}from"./sx2limVi.js";import{C as ot}from"./Qo6AXHDw.js";import{T as Ft}from"./D-sWZS3c.js";import{u as zt}from"./BYC0Fba0.js";import{l as Ht}from"./BELiJyaB.js";import"./H33gXZ13.js";import"./BU9HvBVY.js";import"./BXNC9538.js";import"./B363qPeK.js";import"./BM6Mdc2_.js";import"./CH5njUTC.js";import"./DUudcvDl.js";import"./BmdeIy2R.js";const Wt=N({__name:"DesignLabReviewViewer.client",props:{canvas:{},selections:{},project:{}},setup(d){return(w,x)=>(i(),L(Tt,{canvas:d.canvas,selections:d.selections,project:d.project,"is-review":!0},null,8,["canvas","selections","project"]))}}
1),Qt=Object.assign(Wt,{__name:"DesignLabComponentsDesignLabReviewViewer"}),Gt=N({__name:"DesignLabEmailProjectModal",props:{project:{}},setup(d,{expose:w}){const x=$(null),o=d,a={email:"",submitting:!1,formErrors:{},success:!1},p=Y({...a}),V=()=>{p.formErrors=a.formErrors,p.submitting=!0,Q().apiRequest("POST","design-lab/email-project",{email:p.email,quote:o.project.quoteId}).then(()=>{p.success=!0}).catch(m=>{p.formErrors=nt(m.data)}).finally(()=>{p.submitting=!1})},b=()=>{var m;Object.assign(p,a),(m=x.value)==null||m.open()},{email:j,submitting:g,formErrors:h,success:C}=G(p);return w({open:b}),(m,s)=>{const u=J,e=at;return i(),L(ut,{ref_key:"modal",ref:x,"show-action-buttons":!1},{title:y(()=>[...s[1]||(s[1]=[v("Email project",-1)])]),default:y(()=>[t(C)?(i(),L(u,{key:0,type:"success",class:"mt-9"},{default:y(()=>[...s[2]||(s[2]=[v(" Success! Your project email has been sent. ",-1)])]),_:1})):(i(),E(Vt,{key:1},[s[3]||(s[3]=r("p",{class:"mb-8"}," We've stored this project. Send a copy of your project and pick it back up at anytime. ",-1)),c(dt,{ref:"form","form-errors":t(h),onSubmit:V},{default:y(()=>[c(ct,{modelValue:t(j),"onUpdate:modelValue":s[0]||(s[0]=f=>B(j)?j.value=f:null),name:"email",type:"email",label:"Email Address *","form-errors":t(h),submitting:t(g),required:""},null,8,["modelValue","form-errors","submitting"]),c(e,{type:"submit",loading:t(g),class:"btn-primary mt-8 w-full"},{default:y(()=>[v(" Email this "+P(d.project.product.productTypeShortLabel)+" project ",1)]),_:1},8,["loading"])]),_:1},8,["form-errors"])],64))]),_:1},512)}}}),Yt=Object.assign(Gt,{__name:"DesignLabComponentsReviewDesignLabEmailProjectModal"}),Zt={key:0},Jt=["innerHTML"],Kt={class:"rounded-lg px-6 py-5 shadow-card"},Xt={class:"mt-10"},eo={class:"mt-10 grid gap-4 md:grid-cols-2"},to={key:0,class:"inline-flex items-center justify-center gap-2"},oo={key:1,class:"inline-flex items-center justify-center gap-2"},so={class:"mt-10 text-center"},ro=N({__name:"DesignLabAddToCartView",props:{project:{},specialEffectsNotes:{}},setup(d){const w=ht(),x=$(null),o=d,a=Y({name:o.project.name,quantity:o.project.quantity,addingToCart:!1,addToCartError:{heading:"",message:""},formErrors:{}}),p=S(()=>o.project.projectId?`/roastar-design-lab#project=${o.project.projectId}`:`/roastar-design-lab#quote=${o.project.quoteId}`),V=async()=>{var e,f,T,l,n,R,M,H,K,X,ee,te,oe,se,re,ae,ne,ie,le,ce,de,pe,ue,me,ge,fe,ye,be,ve,je,_e,we,xe,he,ke,Ee,Le,Ce,Te,De,Ve,Re,qe,Ae,Ie,Pe,Se,$e,Be,Ne,Me,Ue;a.formErrors={},a.addToCartError={heading:"",message:""},a.addingToCart=!0;try{!(((f=(e=o.project)==null?void 0:e.canvas)==null?void 0:f.objects)??[]).some(k=>["i-text","textbox","image"].includes(k.type)&&k.name!=="theme"&&k.name!=="whiteCoat")&&mt().notify(new Error("Blank canvas added to cart"),k=>{var q,A,U,O,F;k.severity="warning",k.context="design-lab/add-to-cart",k.addMetadata("addToCart",{productId:((A=(q=o.project)==null?void 0:q.product)==null?void 0:A.id)??null,category:((F=(O=(U=o.project)==null?void 0:U.product)==null?void 0:O.selections)==null?void 0:F.category)??null,quantity:a.quantity})})}catch{}gt("design_lab_added_to_cart",((n=(l=(T=o.project)==null?void 0:T.product)==null?void 0:l.selections)==null?void 0:n.category)=="can"?((H=(M=(R=o.project)==null?void 0:R.product)==null?void 0:M.selections)==null?void 0:H.can_type)+" "+((ee=(X=(K=o.project)==null?void 0:K.product)==null?void 0:X.selections)==null?void 0:ee.category):((se=(oe=(te=o.project)==null?void 0:te.product)==null?void 0:oe.selections)==null?void 0:se.style)+" "+((ne=(ae=(re=o.project)==null?void 0:re.product)==null?void 0:ae.selections)==null?void 0:ne.category),ft((ie=o.project)==null?void 0:ie.canvas),((pe=(de=(ce=(le=o.project)==null?void 0:le.product)==null?void 0:ce.selections)==null?void 0:de.size)==null?void 0:pe.toString())??"",((ge=(me=(ue=o.project)==null?void 0:ue.product)==null?void 0:me.selections)==null?void 0:ge.category)=="can"?((ve=(be=(ye=(fe=o.project)==null?void 0:fe.product)==null?void 0:ye.selections)==null?void 0:be.finish)==null?void 0:ve.toString())??"":((we=(_e=(je=o.project)==null?void 0:je.product)==null?void 0:_e.
1selections)==null?void 0:we.material)+" "+((ke=(he=(xe=o.project)==null?void 0:xe.product)==null?void 0:he.selections)==null?void 0:ke.color)+" "+((Ce=(Le=(Ee=o.project)==null?void 0:Ee.product)==null?void 0:Le.selections)==null?void 0:Ce.finish));let m=null;const s=Nt[(De=(Te=o.project)==null?void 0:Te.product)==null?void 0:De.id];if(!(((Re=(Ve=o.project)==null?void 0:Ve.canvas)==null?void 0:Re.creationMode)==="upload")&&s&&(w.public.generateLocalPdf==="true"||w.public.generateLocalPdfCoffeeBagLabels==="true"&&(((Ae=(qe=o.project)==null?void 0:qe.product)==null?void 0:Ae.id)==yt||((Pe=(Ie=o.project)==null?void 0:Ie.product)==null?void 0:Pe.id)==bt||(($e=(Se=o.project)==null?void 0:Se.product)==null?void 0:$e.id)==vt||((Ne=(Be=o.project)==null?void 0:Be.product)==null?void 0:Ne.id)==jt)))try{const _=(Ue=(Me=o.project)==null?void 0:Me.canvas)==null?void 0:Ue.svg;_&&(m=await(await(s==null?void 0:s.generatePDF(_))).output("datauristring"),m=m.replace("data:application/pdf;filename=generated.pdf;base64,",""))}catch{m=null}Q().apiRequest("POST",`design-lab/${o.project.quoteId}/add-to-cart`,{project:o.project.projectId,name:a.name,quantity:a.quantity,pdf:m,...o.specialEffectsNotes!==void 0?{designEffects:o.specialEffectsNotes}:{}}).then(()=>{var _,I,k,q,A,U,O,F,Oe,Fe,ze,He,We,Qe,Ge,Ye,Ze,Je,Ke,Xe,et;if(o.project.product){const tt=[],z=Ot(a.quantity,o.project.product.pricingTiers);tt.push({item_id:(I=(_=o.project)==null?void 0:_.product)==null?void 0:I.id,item_name:(q=(k=o.project)==null?void 0:k.product)==null?void 0:q.name,index:0,item_category:"Design Lab",item_category2:(U=(A=o.project)==null?void 0:A.product)==null?void 0:U.productTypeShortLabelPlural,item_category3:(Oe=(F=(O=o.project)==null?void 0:O.product)==null?void 0:F.selections)==null?void 0:Oe.material,item_category5:"Custom Printed Product",item_list_name:"Design Lab",price:z==null?void 0:z.price,quantity:a.quantity,is_sample:!1,color:(He=(ze=(Fe=o.project)==null?void 0:Fe.product)==null?void 0:ze.selections)==null?void 0:He.color,material:(Ge=(Qe=(We=o.project)==null?void 0:We.product)==null?void 0:Qe.selections)==null?void 0:Ge.material,finish:(Je=(Ze=(Ye=o.project)==null?void 0:Ye.product)==null?void 0:Ze.selections)==null?void 0:Je.finish,size:(et=(Xe=(Ke=o.project)==null?void 0:Ke.product)==null?void 0:Xe.selections)==null?void 0:et.size}),_t("add_to_cart","Design Lab",{currency:"USD",value:z?a.quantity*z.price:0,items:tt})}wt("/cart")}).catch(_=>{var I,k,q,A;a.addingToCart=!1,a.addToCartError={heading:((k=(I=_==null?void 0:_.data)==null?void 0:I.data)==null?void 0:k.heading)??"",message:((A=(q=_==null?void 0:_.data)==null?void 0:q.data)==null?void 0:A.message)??""},a.formErrors=a.addToCartError.message?{}:nt(_.data)})},{name:b,quantity:j,addingToCart:g,addToCartError:h,formErrors:C}=G(a);return(m,s)=>{const u=J,e=lt,f=at,T=it;return i(),E("div",null,[t(h).message?(i(),L(u,{key:0,type:"error","slot-class":"wysiwyg-content wysiwyg-compact",class:"mb-8","data-cy":"design-lab-add-to-cart-error"},{default:y(()=>[t(h).heading?(i(),E("p",Zt,P(t(h).heading),1)):D("",!0),r("div",{innerHTML:("sanitizeHtml"in m?m.sanitizeHtml:t(xt))(t(h).message)},null,8,Jt)]),_:1})):D("",!0),r("div",Kt,[s[3]||(s[3]=r("h3",{class:"mb-3 border-b border-grind pb-3"},"Product Details",-1)),c(Mt,{product:d.project.product},null,8,["product"])]),r("div",Xt,[s[4]||(s[4]=r("h3",null,"Select Quantity",-1)),c(Ut,{modelValue:t(j),"onUpdate:modelValue":s[0]||(s[0]=l=>B(j)?j.value=l:null),class:"mt-8","pricing-tiers":d.project.product.pricingTiers,"minimum-qty":d.project.product.minimumQty,"quantity-step":d.project.product.quantityStep,"product-type-short-label":d.project.product.productTypeShortLabel,"product-type-short-label-plural":d.project.product.productTypeShortLabelPlural},null,8,["modelValue","pricing-tiers","minimum-qty","quantity-step","product-type-short-label","product-type-short-label-plural"])]),c(dt,{"form-errors":t(C),onSubmit:V},{default:y(()=>[c(ct,{modelValue:t(b),"onUpdate:modelValue":s[1]||(s[1]=l=>B(b)?b.value=l:null),label:"Name your project *",name:"name","container-class":"mt-5","form-errors":t(C),maxlength:"40",required:""},null,8,["modelValue","form-errors"])]),_:1},8,["form-errors"]),r("div",eo,[c(f,{loading:t(g),class:"btn-primary md:order-2",onClick:V},{default:y(()=>[d.project.inCart?(i(),E("span",to,[s[5]||(s[5]=v(" Update Cart ",-1)),c(e,{name:"order-arrow",class:"text-[19px]"})])):(i(),E("span",oo,[s[6]||(s[6]=v(" Add to cart ",-1)),c(e,{name:"order-arrow",class:"text-[19px]"})]))]),_:1},8,["loading"]),c(T,{to:t(p),class:"btn-secondary md:order-1"},{default:y(()=>[...s[7]||(s[7]=[v(" Edit project ",-1)])]),_:1},8,["to"])]),r("div",so,[r("a",{href:"#",class:"font-semibold text-grind",onClick:s[2]||(s[2]=Rt((...l)=>{var n,R;return((n=t(x))==null?void 0:n.open)&&((R=t(x))==null?void 0:R.open(...l))},["prevent"]))}
1,"Email this project")]),c(Yt,{ref_key:"emailProjectModal",ref:x,project:d.project},null,8,["project"])])}}}),st=Object.assign(ro,{__name:"DesignLabComponentsReviewDesignLabAddToCartView"}),ao={class:"flex items-start gap-3"},no={class:"text-[25px]"},io=N({__name:"DesignLabDesignReviewListItem",props:{number:{}},setup(d){return(w,x)=>(i(),E("div",ao,[r("strong",no,P(d.number),1),r("p",null,[qt(w.$slots,"default")])]))}}),W=Object.assign(io,{__name:"DesignLabComponentsReviewDesignLabDesignReviewListItem"}),lo={class:"flex flex-col gap-5"},co={class:"grid gap-4 md:grid-cols-2"},po=N({__name:"DesignLabDesignReviewView",props:{project:{},specialEffectsNotes:{}},emits:["continue","update:specialEffectsNotes"],setup(d,{emit:w}){const{checkObjectAlerts:x}=Dt(),o=w,a=d,p=Y({designApproved:!1,termsAccepted:!1,formErrors:{}}),V=S(()=>a.project.projectId?`/roastar-design-lab#project=${a.project.projectId}`:`/roastar-design-lab#quote=${a.project.quoteId}`),b=S(()=>{let u=!1;return a.project.canvas.objects.forEach(e=>{x(e),e.showingScaleWarning&&(u=!0)}),u}),j=S(()=>{var e,f;const u=(f=(e=a.project)==null?void 0:e.product)==null?void 0:f.selections;return(u==null?void 0:u.material)===Z.materials.metallic.value||(u==null?void 0:u.material)===Z.materials.recyclable.value&&(u==null?void 0:u.color)===Z.colors.customClear.value}),g=S({get:()=>a.specialEffectsNotes??"",set:u=>o("update:specialEffectsNotes",u)}),h=()=>{p.formErrors={},p.designApproved||(p.formErrors.designApproved=["Please select the checkbox before continuing."]),p.termsAccepted||(p.formErrors.termsAccepted=["Please select the checkbox before continuing."]),!Object.keys(p.formErrors).length&&o("continue")},{designApproved:C,termsAccepted:m,formErrors:s}=G(p);return(u,e)=>{const f=J,T=lt,l=it;return i(),E("div",lo,[e[12]||(e[12]=r("p",null," Before we send your design to the printers, let’s double check a few things. ",-1)),c(W,{number:1},{default:y(()=>[...e[3]||(e[3]=[r("strong",null,"Text -",-1),v(" Any spelling errors? Is all the text legible? ",-1)])]),_:1}),c(W,{number:2},{default:y(()=>[...e[4]||(e[4]=[r("strong",null,"Images -",-1),v(" Any blurry images? Are any images only partially visible? ",-1)])]),_:1}),t(b)?(i(),L(f,{key:0,type:"warning"},{default:y(()=>[...e[5]||(e[5]=[v(' Your design contains low resolution image(s) which may look pixelated/blurry when printed. To make edits to the image(s), please click "edit project" below. ',-1)])]),_:1})):D("",!0),c(W,{number:3},{default:y(()=>[...e[6]||(e[6]=[r("strong",null,"Design -",-1),v(" Are logos, text, and graphics aligned and placed correctly? Are important text and images clear and visible? ",-1)])]),_:1}),d.project.product.isCan?(i(),L(W,{key:1,number:4},{default:y(()=>[...e[7]||(e[7]=[r("strong",null,"Seam -",-1),v(" The back of your can will print with a seam. Make sure you don’t have any important information near the seam. ",-1)])]),_:1})):D("",!0),t(j)?(i(),L(Ft,{key:2,modelValue:t(g),"onUpdate:modelValue":e[0]||(e[0]=n=>B(g)?g.value=n:null),name:"specialEffectsNotes",type:"text",label:"",submitting:!1,"form-errors":[],"container-class":"w-full","input-class":"floating-label-white",placeholder:"Enter notes for special effects"},null,8,["modelValue"])):D("",!0),c(f,{type:"info",class:"my-1"},{default:y(()=>[...e[8]||(e[8]=[v(" Color may differ slightly from how it appears on your screen. ",-1)])]),_:1}),c(ot,{modelValue:t(C),"onUpdate:modelValue":e[1]||(e[1]=n=>B(C)?C.value=n:null),theme:"new",name:"designApproved",label:"I have fully reviewed and approve my design.","container-class":"mt-2","form-errors":t(s)},null,8,["modelValue","form-errors"]),c(ot,{modelValue:t(m),"onUpdate:modelValue":e[2]||(e[2]=n=>B(m)?m.value=n:null),theme:"new",name:"termsAccepted","container-class":"mb-2","form-errors":t(s)},{label:y(()=>[...e[9]||(e[9]=[v(" I have reviewed and agree to Roastar’s ",-1),r("a",{href:"/terms-and-conditions",target:"_blank"},"Terms and Conditions",-1),v(". ",-1)])]),_:1},8,["modelValue","form-errors"]),r("div",co,[r("button",{class:"btn-primary inline-flex items-center justify-center gap-2 md:order-2",onClick:h},[e[10]||(e[10]=v(" Continue ",-1)),c(T,{name:"order-arrow",class:"text-[19px]"})]),c(l,{to:t(V),class:"btn-secondary md:order-1"},{default:y(()=>[...e[11]||(e[11]=[v(" Edit project ",-1)])]),_:1},8,["to"])])])}}}),rt=Object.assign(po,{__name:"DesignLabComponentsReviewDesignLabDesignReviewView"}),uo=["data-cy-expivi-loading"],mo={key:0,class:"flex justify-center py-40"},go={class:"mb-5 lg:hidden"},fo={class:"sticky top-4 flex aspect-square overflow-hidden rounded-lg shadow-card"},yo={class:"mb-5 hidden lg:block"},bo={key:2},vo={class:"mb-5 hidden lg:block"},jo={key:3,class:"container py-20"},_o={class:"text-right text-xl font-bold leading-snug"},wo=N({__name:"review",async setup(d){let w,x;const{getViewerUrl:o}=zt(),a=$(null);Bt("subtotalFormatted",a);const p=$(null),V=$(null),b=$(null),j=()=>
1{if(!p.value||!V.value||!b.value)return;const l=p.value.getBoundingClientRect(),n=b.value.getBoundingClientRect().height,R=window.innerHeight;l.bottom>R-n?(b.value.style.position="fixed",b.value.style.bottom="0",b.value.style.zIndex="100000"):(b.value.style.position="relative",b.value.style.bottom="",b.value.style.zIndex="")};kt({title:"Design Lab Review | Roastar",script:[{src:([w,x]=At(()=>o()),w=await w,x(),w),defer:!0}]});const g=Y({loading:!0,expiviLoading:!0,project:null,currentView:"designReview",specialEffectsNotes:""}),h=S(()=>g.currentView==="designReview"?"Design Review":"Final Review"),C=S(()=>{var l,n;return((l=g.project)==null?void 0:l.projectId)&&((n=g.project)==null?void 0:n.isApproved)}),m=()=>{var l;f.value="addToCart",(l=g.project)!=null&&l.projectId&&Q().apiRequest("POST","design-lab/approve",{project_id:g.project.projectId}).catch(()=>{})};It(()=>{document.body.classList.add("design-lab-review");const l=Object.fromEntries(new URLSearchParams(Et().hash.replace("#","")));Q().apiRequest("GET","design-lab/review",l).then(n=>{g.project=n.data.project}).finally(()=>{g.loading=!1}),Ht(),Pt(()=>{j(),window.addEventListener("scroll",j),window.addEventListener("resize",j)})}),St(()=>{document.body.classList.remove("design-lab-review"),window.removeEventListener("scroll",j),window.removeEventListener("resize",j)}),$t(C,l=>{l&&(g.currentView="addToCart")});const{loading:s,expiviLoading:u,project:e,currentView:f,specialEffectsNotes:T}=G(g);return(l,n)=>{const R=pt,M=Lt;return i(),E("div",null,[r("div",{"data-cy-expivi-loading":t(u)},[t(s)?(i(),E("div",mo,[c(R,{class:"text-6xl"})])):t(e)?(i(),E("div",{key:1,ref_key:"contentContainer",ref:p,class:"container grid gap-6 pb-16 pt-5 lg:grid-cols-2 lg:gap-16 lg:py-16"},[r("div",null,[r("h1",go,P(t(h)),1),r("div",fo,[c(M,null,{default:y(()=>[c(Qt,{canvas:t(e).canvas,selections:t(e).product.selections,project:t(e)},null,8,["canvas","selections","project"])]),_:1})])]),r("div",null,[r("h1",yo,P(t(h)),1),t(f)==="designReview"?(i(),L(rt,{key:0,project:t(e),onContinue:m},null,8,["project"])):D("",!0),t(f)==="addToCart"?(i(),L(st,{key:1,class:"mt-8",project:t(e)},null,8,["project"])):D("",!0)])],512)):t(e)?(i(),E("div",bo,[r("h1",vo,P(t(h)),1),t(f)==="designReview"?(i(),L(rt,{key:0,project:t(e),"special-effects-notes":t(T),"onUpdate:specialEffectsNotes":n[0]||(n[0]=H=>T.value=H),onContinue:m},null,8,["project","special-effects-notes"])):D("",!0),t(f)==="addToCart"?(i(),L(st,{key:1,class:"mt-8",project:t(e),"special-effects-notes":t(T)},null,8,["project","special-effects-notes"])):D("",!0)])):(i(),E("div",jo,[...n[1]||(n[1]=[r("h1",null,"Error",-1),r("p",{class:"mt-3"}," There was an error loading your design lab project. Please contact support. ",-1)])]))],8,uo),t(a)?(i(),E("div",{key:0,ref_key:"stickyWrapper",ref:V,class:"relative w-full sm:hidden"},[r("div",{ref_key:"stickyBlock",ref:b,class:"flex h-[80px] w-full items-center border-t bg-white px-6 shadow-[0_-4px_6px_-1px_rgba(0,0,0,0.15)]"},[n[2]||(n[2]=r("div",{class:"flex-grow"},"Subtotal",-1)),r("div",_o,P(t(a)),1)],512)],512)):D("",!0)])}}}),Fo=Ct(wo,[["__scopeId","data-v-8fccea3b"]]);export{Fo as default};
2//# sourceMappingURL=CB1BZUko.js.map

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.