@heycater/qualification-funnel 1.8.0 → 1.8.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/heycater-funnel.iife.js +3 -3
- package/dist/index.cjs.js +62 -62
- package/dist/index.esm.js +104 -122
- package/package.json +1 -1
|
@@ -670,7 +670,7 @@
|
|
|
670
670
|
right: ${e=>e.theme.spacing(2)}px;
|
|
671
671
|
top: 50%;
|
|
672
672
|
transform: translateY(-50%);
|
|
673
|
-
`;function nj(e,t){if("undefined"!=typeof window){if(window.posthog)try{window.posthog.capture(e,t)}catch(n){console.error("[PostHog] Failed to send event:",n)}window.dataLayer&&window.dataLayer.push({event:e,...t})}}function rj(e,t){e.session_id||console.warn("[Tracking] trackFormSubmitted called with empty session_id",e);const n={funnel_mode:e.funnel_mode,session_id:e.session_id,total_steps:e.total_steps,...t};e.service_type&&(n.service_type=e.service_type),e.city&&(n.city=e.city),nj("
|
|
673
|
+
`;function nj(e,t){if("undefined"!=typeof window){if(window.posthog)try{window.posthog.capture(e,t)}catch(n){console.error("[PostHog] Failed to send event:",n)}window.dataLayer&&window.dataLayer.push({event:e,...t})}}function rj(e,t){e.session_id||console.warn("[Tracking] trackFormSubmitted called with empty session_id",e);const n={funnel_mode:e.funnel_mode,session_id:e.session_id,total_steps:e.total_steps,...t};e.service_type&&(n.service_type=e.service_type),e.city&&(n.city=e.city),nj("qf_v7_form_submitted",n)}function oj(e){e.session_id||console.warn("[Tracking] trackCompleted called with empty session_id",e);const t={funnel_mode:e.funnel_mode,session_id:e.session_id,total_steps:e.total_steps};e.service_type&&(t.service_type=e.service_type),e.city&&(t.city=e.city),nj("qf_v7_completed",t)}const ij=g.createContext(null);function aj({funnelContextRef:e,updateContext:t,currentStepId:n,children:r}){const{state:o}=ZO(),i=g.useCallback((r,i)=>{if(!("qualification"in o))return;const a=o.qualification;if(!("step"in a))return;const s=a.step,l=a.stepIndex,u=MO[s.id],c=(null==u?void 0:u.questions)||[],d=c.findIndex(e=>e.id===r)===c.length-1,f=`qf_v7_started_${e.current.session_id}`;if("undefined"!=typeof sessionStorage){sessionStorage.getItem(f)||(sessionStorage.setItem(f,"true"),p=e.current,h=n,nj("qf_v7_started",{funnel_mode:p.funnel_mode,session_id:p.session_id,initial_step:h}))}var p,h;if("service_type"===r){const n=i;if(n){const r=RO(n);delete e.current.city,t({service_type:n,total_steps:r.length})}}else"city"===r&&t({city:i});!function(e,t){const n={funnel_mode:e.funnel_mode,session_id:e.session_id,total_steps:e.total_steps,step_id:t.step_id,step_index:t.step_index,question_id:t.question_id,answer_value:t.answer_value,is_last_question:t.is_last_question};e.service_type&&(n.service_type=e.service_type),e.city&&(n.city=e.city),nj("qf_v7_answer_selected",n)}(e.current,{step_id:s.id,step_index:l,question_id:r,answer_value:i,is_last_question:d})},[e,n,o,t]);return C.jsx(ij.Provider,{value:{funnelContextRef:e,currentStepId:n,trackAnswer:i},children:r})}function sj(){const e=g.useContext(ij);if(!e){return{funnelContextRef:{current:{session_id:"",funnel_mode:"embedded",service_type:"",total_steps:0}},currentStepId:"",trackAnswer:()=>{}}}return e}function lj(){var e,t;const{answerOf:n,errorsOf:r,actions:o}=ZO(),{t:i}=qd(),{currentUserAccount:a}=UO(),{trackAnswer:s}=sj(),l=null==(t=null==(e=null==a?void 0:a.owner)?void 0:e.salesforceCustomer)?void 0:t.isManagedAccount,u=n(oO.peopleCount.id),c=r(oO.peopleCount.id),d=n(qE.id),f=r(qE.id),p=n(UE.id),h=r(UE.id);return C.jsxs(fj,{children:[C.jsx(Fm,{mb:3,children:C.jsx(Qm,{as:"label",htmlFor:oO.peopleCount.id,children:i("common:questions.min_order_number")})}),C.jsx(Fm,{mb:3,children:C.jsx(FM,{name:oO.peopleCount.id,id:oO.peopleCount.id,value:u||0,error:!!(null==c?void 0:c.length),onChange:e=>{o.answerQuestion(oO.peopleCount.id,e),s(oO.peopleCount.id,e)},autoFocus:!1})}),C.jsx(uj,{children:C.jsx(HM,{questionId:oO.peopleCount.id,suggestions:JL.suggestions||[],onSelect:e=>{o.answerQuestion(oO.peopleCount.id,e),s(oO.peopleCount.id,e)}})}),C.jsx(dj,{my:4}),C.jsx(Fm,{mb:2,children:C.jsx(Qm,{as:"label",htmlFor:qE.id,children:i("common:questions.budgetProPerson")})}),C.jsx(Fm,{mb:2,children:C.jsx(YM,{name:qE.id,id:qE.id,min:0,autoFocus:!1,error:!!(null==f?void 0:f.length),value:d?Math.round(d):0,onChange:e=>{o.answerQuestion(qE.id,e,{isManagedAccount:l}),s(qE.id,e)}})}),C.jsx(Fm,{mb:2,children:C.jsx(Qm,{as:"label",htmlFor:UE.id,children:i("common:questions.totalBudget")})}),C.jsx(YM,{name:UE.id,id:UE.id,min:0,autoFocus:!1,error:!!(null==h?void 0:h.length),value:p?Math.floor(p):0,onChange:e=>{o.answerQuestion(UE.id,Math.floor(e),{isManagedAccount:l}),s(UE.id,Math.floor(e))}}),C.jsx(uj,{mt:2,children:C.jsx(cj,{children:f[0]||h[0]})})]})}const uj=_p(Fm)`
|
|
674
674
|
grid-column: 1 / 3;
|
|
675
675
|
`,cj=_p.div`
|
|
676
676
|
color: #F95524;
|
|
@@ -1407,7 +1407,7 @@
|
|
|
1407
1407
|
justify-content: center;
|
|
1408
1408
|
background-size: cover;
|
|
1409
1409
|
background-position: bottom center;
|
|
1410
|
-
`;var mV=new Map,gV=new WeakMap,vV=0;function yV(e){return Object.keys(e).sort().filter(function(t){return void 0!==e[t]}).map(function(t){return t+"_"+("root"===t?(n=e.root)?(gV.has(n)||(vV+=1,gV.set(n,vV.toString())),gV.get(n)):"0":e[t]);var n}).toString()}function bV(e,t,n,r){if(void 0===n&&(n={}),void 0===r&&(r=undefined),void 0===window.IntersectionObserver&&void 0!==r){var o=e.getBoundingClientRect();return t(r,{isIntersecting:r,target:e,intersectionRatio:"number"==typeof n.threshold?n.threshold:0,time:0,boundingClientRect:o,intersectionRect:o,rootBounds:o}),function(){}}var i=function(e){var t=yV(e),n=mV.get(t);if(!n){var r,o=new Map,i=new IntersectionObserver(function(t){t.forEach(function(t){var n,i=t.isIntersecting&&r.some(function(e){return t.intersectionRatio>=e});e.trackVisibility&&void 0===t.isVisible&&(t.isVisible=i),null==(n=o.get(t.target))||n.forEach(function(e){e(i,t)})})},e);r=i.thresholds||(Array.isArray(e.threshold)?e.threshold:[e.threshold||0]),n={id:t,observer:i,elements:o},mV.set(t,n)}return n}(n),a=i.id,s=i.observer,l=i.elements,u=l.get(e)||[];return l.has(e)||l.set(e,u),u.push(t),s.observe(e),function(){u.splice(u.indexOf(t),1),0===u.length&&(l.delete(e),s.unobserve(e)),0===l.size&&(s.disconnect(),mV.delete(a))}}const wV=({children:e,height:t,isFloating:n,...r})=>C.jsxs(C.Fragment,{children:[C.jsx(Fm,{display:"flex",flexDirection:"column",flexGrow:"1",bottom:"0",left:"0",right:"0",position:n?"fixed":"relative",...r,children:e}),n&&C.jsx("div",{style:{height:`${t}px`}})]});function xV(){var e,t;const{inView:n,ref:r,entry:o}=function(e){var t=void 0===e?{}:e,n=t.threshold,r=t.delay,o=t.trackVisibility,i=t.rootMargin,a=t.root,s=t.triggerOnce,l=t.skip,u=t.initialInView,c=t.fallbackInView,d=g.useRef(),f=g.useState({inView:!!u}),p=f[0],h=f[1],m=g.useCallback(function(e){void 0!==d.current&&(d.current(),d.current=void 0),l||e&&(d.current=bV(e,function(e,t){h({inView:e,entry:t}),t.isIntersecting&&s&&d.current&&(d.current(),d.current=void 0)},{root:a,rootMargin:i,threshold:n,trackVisibility:o,delay:r},c))},[Array.isArray(n)?n.toString():n,a,i,s,l,o,c,r]);g.useEffect(function(){d.current||!p.entry||s||l||h({inView:!!u})});var v=[m,p.inView,p.entry];return v.ref=v[0],v.inView=v[1],v.entry=v[2],v}({threshold:1}),i=(null==(e=null==o?void 0:o.boundingClientRect)?void 0:e.height)||0,a=!o||(null==(t=o.boundingClientRect)?void 0:t.y)>0;return{height:i,isFloating:!n&&a,ref:r}}const CV={de:"German",en:"English"};function kV(e){const{billingAddressStreetAndNumber:t,billingAddressCity:n,billingAddressPostalCode:r,email:o,company:i,has_recurring_need:a}=e;return{billingAddressStreetAndNumber:t,billingAddressCity:n,billingAddressPostalCode:r,billingEmail:o,billingName:i,name:i,hasRecurringNeed:a}}function SV(){const{locale:e}=_E(),t=Mm();return{funnelCheckout:async n=>{try{const{data:{funnelCheckout:r}}=await((e,{client:t})=>t.mutation(EI,{attributes:e}).toPromise())({userAttributes:{email:n.email,firstName:n.first_name,lastName:n.last_name,phone:n.phone,language:CV[e]||CV.de},accountAttributes:kV(n),opportunityAttributes:CI(n)},{client:t});return r}catch(r){r instanceof Error&&UB.notify(r,e=>{e.addMetadata("funnelCheckoutArgs",n)})}}}}function EV(){const e=Mm();return{createQfLead:async t=>{try{const{company:n,comment:r,deliveryAddressCity:o,deliveryAddressCountry:i,deliveryAddressPostalCode:a,deliveryAddressStreet:s,deliveryAddressStreetNumber:l,email:u,first_name:c,last_name:d,phone:f,catering_categories:p,event_date:h,has_recurring_need:m,is_multi_day:g,number_of_carnivore:v,lead_type:y,number_of_vegans:b,number_of_vegetarians:w,price_per_person:x,service_type:C,team_size:k,delivery_frequency:S,budget_range:E}=t,_=b+w+v,{data:{createQfLead:L}}=await((e,{client:t})=>t.mutation(_I,{attributes:e}).toPromise())({email:u,firstName:c,lastName:d,phone:f,company:n,comment:r,address:`${s} ${l}, ${a} ${o}, ${i}`,cateringCategories:p,eventDate:new Date(h).toDateString(),hasRecurringNeed:m,isMultiDay:g,numberOfOmnivores:v,numberOfVegans:b,numberOfVegetarians:w,numberOfPeople:_,totalBudget:_*x,leadType:y,serviceType:C,teamSize:k,deliveryFrequency:S,budgetRange:E},{client:e});return L}catch(n){n&&UB.notify(n,e=>{e.addMetadata("createQfLead",t)})}}}}function _V(){const{state:e}=ZO(),t="qualification"in e?e.qualification:null,n=Mm(),{currentUserAccount:r}=UO(),o=_E(),{funnelCheckout:i}=SV(),{createQfLead:a}=EV(),s=e=>{var n,i,a,s;const l=`${e.deliveryAddressStreet} ${e.deliveryAddressStreetNumber}`,{street:u,postalCode:c,city:d,country:f}=(null==(i=null==(n=null==r?void 0:r.owner)?void 0:n.salesforceCustomer)?void 0:i.billingAddress)||{street:l,postalCode:e.deliveryAddressPostalCode,city:e.deliveryAddressCity,country:e.deliveryAddressCountry};if(!t)throw new Error("cannot create an opportunity outside of the qualification");const p=(null==(a=t.leadSource)?void 0:a.includes("/events"))?"events-landingpage":"Qualification Funnel";return{...t.answers,...e,phone:e.phone||"",catererSlug:null==(s=null==t?void 0:t.selectedCaterer)?void 0:s.slug,landingPageSource:t.leadSource,billingAddressStreetAndNumber:u||"",billingAddressPostalCode:c||"",billingAddressCity:d||"",billingCountry:f||"",conversion_url:window.location.href,deliveryAddressStreetAndNumber:l,deliveryCountry:e.deliveryAddressCountry,lead_language:o.locale,leadSource:p,commentByHeycaterForCaterer:e.comment}};return{submitAsNewCustomer:async e=>{var n;const r=null==(n=null==t?void 0:t.answers)?void 0:n.service_type,o="regular_employee_catering"===r||"full_service_event"===r,{deliveryAddressCountry:l}=e,u=["United Kingdom","Great Britain","UK"].includes(l);if(!o&&!u){const{signInToken:t,customerAccount:n,opportunity:r}=await i(s(e));return{signInToken:t,customerAccount:n,opportunity:r,isUkLead:!1}}try{const n=await a({...e,...null==t?void 0:t.answers});if(!n)return console.error("[HeyCater Funnel] createQfLead returned undefined/null"),{success:!1,isUkLead:u};const{success:r}=n;return void 0===r&&console.error("[HeyCater Funnel] createQfLead response missing success field:",n),{success:r,isUkLead:u}}catch(c){return console.error("[HeyCater Funnel] createQfLead failed:",c),{success:!1,isUkLead:u}}},submitAsExistingCustomer:async e=>{const t=s(e),{createOpportunity:{opportunity:r}}=await async function(e,{client:t}){const n=CI(e),{data:r}=await t.mutation(kI,{attributes:n}).toPromise();return r}(t,{client:n});return r}}}const LV="qualification-request-form",OV={},MV=/^\+?[1-9]\d{6,14}$/,jV=({isLoggedIn:e})=>US.object().shape({first_name:US.string().required(),last_name:US.string().required(),company:US.string().required(),email:US.string().required().email(),phone:e?US.string():US.string().matches(MV,"Invalid phone number").required(),deliveryAddressStreet:US.string().min(1).required(),deliveryAddressStreetNumber:US.string().min(1).required(),deliveryAddressPostalCode:US.string().min(1).required(),deliveryAddressCity:US.string().min(1).required(),deliveryAddressCountry:US.string().min(1).required(),comment:US.string()});function TV({header:e=null}){var t,n,r;const[o,i]=g.useState(!1),[a,s]=g.useState(!1),{t:l}=qd("qualification"),{submitAsNewCustomer:u,submitAsExistingCustomer:c}=_V(),d=bM({display:"all-answers"}),f=tM("xs"),{state:p}=ZO(),{ref:h,isFloating:m,height:v}=xV(),{validateAddress:y}=HB({cacheValidations:OV}),b=f&&m;"qualification"in p&&p.qualification;const{actions:w}=ZO(),{currentUserAccount:x}=UO(),k=_E(),[S,E]=g.useState(!1),{deliveryAddressStreetAndNumber:_,deliveryAddressPostalCode:L,deliveryAddressCity:O,deliveryAddressCountry:M}=(null==x?void 0:x.owner)||{},[j,T]=g.useState(""),[P,N]=g.useState(""),D=x?(({street:e,postalCode:t,city:n,country:r})=>[e,t,n,r].filter(Boolean).join(", "))({street:_,postalCode:L,city:O,country:M}):"";g.useEffect(()=>{!async function(){if(!D)return;const{streetName:e,streetNumber:t}=await y(D);T(e),N(t)}()},[D]);const{funnelContextRef:R}=sj(),A=({isFormValid:e})=>{const t=C.jsxs(Vm,{id:"request-form__submit-btn",block:"true","data-logged-in":!!x,"data-valid":e,"data-leadsource":"qualification"in p?p.qualification.leadSource:void 0,size:"lg",type:"submit",disabled:S,children:[S&&C.jsx(Fm,{mr:2,style:{alignItems:"flex-start"},children:C.jsx(rl,{style:{verticalAlign:"sub"},size:20,color:"inherit"})}),l("request.form.submit")]});return f?C.jsx(wV,{height:v,isFloating:b,children:C.jsx(AV,{py:2,px:b&&2,$floating:b,children:t})}):C.jsx(Fm,{position:"absolute",bottom:"0",left:"0",right:"0",py:2,px:2,bgcolor:"white",children:t})},I={first_name:(null==x?void 0:x.firstName)||"",last_name:(null==x?void 0:x.lastName)||"",company:(null==(t=null==x?void 0:x.owner)?void 0:t.companyName)||"",deliveryAddressStreet:j||"",deliveryAddressStreetNumber:P||"",deliveryAddressPostalCode:L||"",deliveryAddressCity:O||"",deliveryAddressCountry:M||"",email:(null==x?void 0:x.email)||"",phone:(null==(r=null==(n=null==x?void 0:x.owner)?void 0:n.salesforceCustomer)?void 0:r.phoneNumber)||""},F=!!x;return o?C.jsx(cV,{isUkLead:a}):C.jsxs(oV,{children:[e,C.jsx(iB,{initialValues:I,validationSchema:jV({isLoggedIn:F}),onSubmit:async e=>{E(!0);const{deliveryAddressCountry:t}=e,n=["United Kingdom","Great Britain","UK"].includes(t);if(n){const t=await u(e),{success:r}=t;return r?(s(n),i(!0),rj(R.current,{is_uk_lead:!0}),void oj(R.current)):(console.error("[HeyCater Funnel] UK lead submission failed. Result:",t),void E(!1))}let r="";if(x)try{const t=await c(e);if(!t||!t.id)return console.error("[HeyCater Funnel] submitAsExistingCustomer returned invalid opportunity:",t),void E(!1);r=`/account/requests/${t.id}`}catch(o){return o instanceof Error&&UB.notify(o),void E(!1)}else{const t=await u(e),{signInToken:n,opportunity:o}=t||{};if(!o||!o.id)return console.error("[HeyCater Funnel] submitAsNewCustomer returned invalid opportunity:",t),void E(!1);r=n?`/${k.locale}/account/requests/${o.id}?one_time_sign_in_token=${n}`:`/${k.locale}/account/external/requests/${o.id}`}rj(R.current,{is_logged_in:!!x}),oj(R.current),w.setRequest(e),((e="/")=>{window.location.href=`${DE().customerAppHost}${e}`})(r)},enableReinitialize:!0,children:e=>{var t,n;return C.jsxs(RV,{id:LV,name:LV,children:[C.jsxs(PV,{children:[C.jsx(NV,{$half:!0,children:C.jsx(fB,{required:!0,name:"first_name",label:l("request.form.firstName"),placeholder:l("request.form.firstName"),component:sV})}),C.jsx(NV,{$half:!0,children:C.jsx(fB,{required:!0,name:"last_name",label:l("request.form.lastName"),placeholder:l("request.form.lastName"),component:sV})})]}),C.jsx(PV,{children:C.jsx(NV,{$half:!0,children:C.jsx(fB,{required:!0,name:"company",label:l("request.form.company"),placeholder:l("request.form.company"),component:sV})})}),C.jsx(PV,{children:C.jsx(NV,{children:C.jsx(fB,{required:!0,name:"delivery_address",label:l("request.form.deliveryAddress"),placeholder:l("request.form.deliveryAddress"),helperText:l("request.form.helpText.address"),defaultValue:D,component:GB})})}),C.jsxs(PV,{children:[!x&&C.jsx(NV,{$half:!0,children:C.jsx(fB,{required:!0,type:"email",name:"email",label:l("request.form.email"),placeholder:l("request.form.email"),helperText:l("request.form.helpText.email"),component:sV})}),!(null==(n=null==(t=null==x?void 0:x.owner)?void 0:t.salesforceCustomer)?void 0:n.phoneNumber)&&C.jsx(NV,{$half:!0,children:C.jsx(lV,{label:l("request.form.phone"),name:"phone",formik:e,helperText:l("request.form.helpText.phone")})})]}),C.jsx(PV,{children:C.jsx(NV,{children:C.jsx(fB,{name:"comment",label:l("request.form.comment"),placeholder:l("request.form.commentPlaceholder"),component:sV,multiline:!0})})}),C.jsx(fB,{type:"hidden",name:"deliveryAddressStreet"}),C.jsx(fB,{type:"hidden",name:"deliveryAddressStreetNumber"}),C.jsx(fB,{type:"hidden",name:"deliveryAddressPostalCode"}),C.jsx(fB,{type:"hidden",name:"deliveryAddressCity"}),C.jsx(fB,{type:"hidden",name:"deliveryAddressCountry"}),C.jsxs(Fm,{mt:2,mb:4,display:"flex",flexDirection:"column",children:[C.jsx(Qm,{variant:"caption",fontWeight:500,fontSize:12,px:1,mr:1.5,mb:1,children:l("selection.yourSelection")}),C.jsx(DV,{children:d.map(e=>C.jsx(vM,{size:"sm",stepId:e.stepId,text:e.text||""},`${e.stepId}_${e.text}`))})]}),C.jsx(Fm,{ref:h,children:C.jsx(A,{isFormValid:e.isValid})})]})}})]})}const PV=_p.div`
|
|
1410
|
+
`;var mV=new Map,gV=new WeakMap,vV=0;function yV(e){return Object.keys(e).sort().filter(function(t){return void 0!==e[t]}).map(function(t){return t+"_"+("root"===t?(n=e.root)?(gV.has(n)||(vV+=1,gV.set(n,vV.toString())),gV.get(n)):"0":e[t]);var n}).toString()}function bV(e,t,n,r){if(void 0===n&&(n={}),void 0===r&&(r=undefined),void 0===window.IntersectionObserver&&void 0!==r){var o=e.getBoundingClientRect();return t(r,{isIntersecting:r,target:e,intersectionRatio:"number"==typeof n.threshold?n.threshold:0,time:0,boundingClientRect:o,intersectionRect:o,rootBounds:o}),function(){}}var i=function(e){var t=yV(e),n=mV.get(t);if(!n){var r,o=new Map,i=new IntersectionObserver(function(t){t.forEach(function(t){var n,i=t.isIntersecting&&r.some(function(e){return t.intersectionRatio>=e});e.trackVisibility&&void 0===t.isVisible&&(t.isVisible=i),null==(n=o.get(t.target))||n.forEach(function(e){e(i,t)})})},e);r=i.thresholds||(Array.isArray(e.threshold)?e.threshold:[e.threshold||0]),n={id:t,observer:i,elements:o},mV.set(t,n)}return n}(n),a=i.id,s=i.observer,l=i.elements,u=l.get(e)||[];return l.has(e)||l.set(e,u),u.push(t),s.observe(e),function(){u.splice(u.indexOf(t),1),0===u.length&&(l.delete(e),s.unobserve(e)),0===l.size&&(s.disconnect(),mV.delete(a))}}const wV=({children:e,height:t,isFloating:n,...r})=>C.jsxs(C.Fragment,{children:[C.jsx(Fm,{display:"flex",flexDirection:"column",flexGrow:"1",bottom:"0",left:"0",right:"0",position:n?"fixed":"relative",...r,children:e}),n&&C.jsx("div",{style:{height:`${t}px`}})]});function xV(){var e,t;const{inView:n,ref:r,entry:o}=function(e){var t=void 0===e?{}:e,n=t.threshold,r=t.delay,o=t.trackVisibility,i=t.rootMargin,a=t.root,s=t.triggerOnce,l=t.skip,u=t.initialInView,c=t.fallbackInView,d=g.useRef(),f=g.useState({inView:!!u}),p=f[0],h=f[1],m=g.useCallback(function(e){void 0!==d.current&&(d.current(),d.current=void 0),l||e&&(d.current=bV(e,function(e,t){h({inView:e,entry:t}),t.isIntersecting&&s&&d.current&&(d.current(),d.current=void 0)},{root:a,rootMargin:i,threshold:n,trackVisibility:o,delay:r},c))},[Array.isArray(n)?n.toString():n,a,i,s,l,o,c,r]);g.useEffect(function(){d.current||!p.entry||s||l||h({inView:!!u})});var v=[m,p.inView,p.entry];return v.ref=v[0],v.inView=v[1],v.entry=v[2],v}({threshold:1}),i=(null==(e=null==o?void 0:o.boundingClientRect)?void 0:e.height)||0,a=!o||(null==(t=o.boundingClientRect)?void 0:t.y)>0;return{height:i,isFloating:!n&&a,ref:r}}const CV={de:"German",en:"English"};function kV(e){const{billingAddressStreetAndNumber:t,billingAddressCity:n,billingAddressPostalCode:r,email:o,company:i,has_recurring_need:a}=e;return{billingAddressStreetAndNumber:t,billingAddressCity:n,billingAddressPostalCode:r,billingEmail:o,billingName:i,name:i,hasRecurringNeed:a}}function SV(){const{locale:e}=_E(),t=Mm();return{funnelCheckout:async n=>{try{const{data:{funnelCheckout:r}}=await((e,{client:t})=>t.mutation(EI,{attributes:e}).toPromise())({userAttributes:{email:n.email,firstName:n.first_name,lastName:n.last_name,phone:n.phone,language:CV[e]||CV.de},accountAttributes:kV(n),opportunityAttributes:CI(n)},{client:t});return r}catch(r){r instanceof Error&&UB.notify(r,e=>{e.addMetadata("funnelCheckoutArgs",n)})}}}}function EV(){const e=Mm();return{createQfLead:async t=>{try{const{company:n,comment:r,deliveryAddressCity:o,deliveryAddressCountry:i,deliveryAddressPostalCode:a,deliveryAddressStreet:s,deliveryAddressStreetNumber:l,email:u,first_name:c,last_name:d,phone:f,catering_categories:p,event_date:h,has_recurring_need:m,is_multi_day:g,number_of_carnivore:v,lead_type:y,number_of_vegans:b,number_of_vegetarians:w,price_per_person:x,service_type:C,team_size:k,delivery_frequency:S,budget_range:E}=t,_=b+w+v,{data:{createQfLead:L}}=await((e,{client:t})=>t.mutation(_I,{attributes:e}).toPromise())({email:u,firstName:c,lastName:d,phone:f,company:n,comment:r,address:`${s} ${l}, ${a} ${o}, ${i}`,cateringCategories:p,eventDate:new Date(h).toDateString(),hasRecurringNeed:m,isMultiDay:g,numberOfOmnivores:v,numberOfVegans:b,numberOfVegetarians:w,numberOfPeople:_,totalBudget:_*x,leadType:y,serviceType:C,teamSize:k,deliveryFrequency:S,budgetRange:E},{client:e});return L}catch(n){n&&UB.notify(n,e=>{e.addMetadata("createQfLead",t)})}}}}function _V(){const{state:e}=ZO(),t="qualification"in e?e.qualification:null,n=Mm(),{currentUserAccount:r}=UO(),o=_E(),{funnelCheckout:i}=SV(),{createQfLead:a}=EV(),s=e=>{var n,i,a,s;const l=`${e.deliveryAddressStreet} ${e.deliveryAddressStreetNumber}`,{street:u,postalCode:c,city:d,country:f}=(null==(i=null==(n=null==r?void 0:r.owner)?void 0:n.salesforceCustomer)?void 0:i.billingAddress)||{street:l,postalCode:e.deliveryAddressPostalCode,city:e.deliveryAddressCity,country:e.deliveryAddressCountry};if(!t)throw new Error("cannot create an opportunity outside of the qualification");const p=(null==(a=t.leadSource)?void 0:a.includes("/events"))?"events-landingpage":"Qualification Funnel";return{...t.answers,...e,phone:e.phone||"",catererSlug:null==(s=null==t?void 0:t.selectedCaterer)?void 0:s.slug,landingPageSource:t.leadSource,billingAddressStreetAndNumber:u||"",billingAddressPostalCode:c||"",billingAddressCity:d||"",billingCountry:f||"",conversion_url:window.location.href,deliveryAddressStreetAndNumber:l,deliveryCountry:e.deliveryAddressCountry,lead_language:o.locale,leadSource:p,commentByHeycaterForCaterer:e.comment}};return{submitAsNewCustomer:async e=>{var n;const r=null==(n=null==t?void 0:t.answers)?void 0:n.service_type,o="regular_employee_catering"===r||"full_service_event"===r,{deliveryAddressCountry:l}=e,u=["United Kingdom","Great Britain","UK"].includes(l);if(!o&&!u){const{signInToken:t,customerAccount:n,opportunity:r}=await i(s(e));return{signInToken:t,customerAccount:n,opportunity:r,isUkLead:!1}}try{const n=await a({...e,...null==t?void 0:t.answers});if(!n)return console.error("[HeyCater Funnel] createQfLead returned undefined/null"),{success:!1,isUkLead:u};const{success:r}=n;return void 0===r&&console.error("[HeyCater Funnel] createQfLead response missing success field:",n),{success:r,isUkLead:u}}catch(c){return console.error("[HeyCater Funnel] createQfLead failed:",c),{success:!1,isUkLead:u}}},submitAsExistingCustomer:async e=>{const t=s(e),{createOpportunity:{opportunity:r}}=await async function(e,{client:t}){const n=CI(e),{data:r}=await t.mutation(kI,{attributes:n}).toPromise();return r}(t,{client:n});return r}}}const LV="qualification-request-form",OV={},MV=/^\+?[1-9]\d{6,14}$/,jV=({isLoggedIn:e})=>US.object().shape({first_name:US.string().required(),last_name:US.string().required(),company:US.string().required(),email:US.string().required().email(),phone:e?US.string():US.string().matches(MV,"Invalid phone number").required(),deliveryAddressStreet:US.string().min(1).required(),deliveryAddressStreetNumber:US.string().min(1).required(),deliveryAddressPostalCode:US.string().min(1).required(),deliveryAddressCity:US.string().min(1).required(),deliveryAddressCountry:US.string().min(1).required(),comment:US.string()});function TV({header:e=null}){var t,n,r;const[o,i]=g.useState(!1),[a,s]=g.useState(!1),{t:l}=qd("qualification"),{submitAsNewCustomer:u,submitAsExistingCustomer:c}=_V(),d=bM({display:"all-answers"}),f=tM("xs"),{state:p}=ZO(),{ref:h,isFloating:m,height:v}=xV(),{validateAddress:y}=HB({cacheValidations:OV}),b=f&&m,w="qualification"in p?p.qualification:null,{actions:x}=ZO(),{currentUserAccount:k}=UO(),S=_E(),[E,_]=g.useState(!1),{deliveryAddressStreetAndNumber:L,deliveryAddressPostalCode:O,deliveryAddressCity:M,deliveryAddressCountry:j}=(null==k?void 0:k.owner)||{},[T,P]=g.useState(""),[N,D]=g.useState(""),R=k?(({street:e,postalCode:t,city:n,country:r})=>[e,t,n,r].filter(Boolean).join(", "))({street:L,postalCode:O,city:M,country:j}):"";g.useEffect(()=>{!async function(){if(!R)return;const{streetName:e,streetNumber:t}=await y(R);P(e),D(t)}()},[R]);const{funnelContextRef:A}=sj(),I=({isFormValid:e})=>{const t=C.jsxs(Vm,{id:"request-form__submit-btn",block:"true","data-logged-in":!!k,"data-valid":e,"data-leadsource":"qualification"in p?p.qualification.leadSource:void 0,size:"lg",type:"submit",disabled:E,children:[E&&C.jsx(Fm,{mr:2,style:{alignItems:"flex-start"},children:C.jsx(rl,{style:{verticalAlign:"sub"},size:20,color:"inherit"})}),l("request.form.submit")]});return f?C.jsx(wV,{height:v,isFloating:b,children:C.jsx(AV,{py:2,px:b&&2,$floating:b,children:t})}):C.jsx(Fm,{position:"absolute",bottom:"0",left:"0",right:"0",py:2,px:2,bgcolor:"white",children:t})},F={first_name:(null==k?void 0:k.firstName)||"",last_name:(null==k?void 0:k.lastName)||"",company:(null==(t=null==k?void 0:k.owner)?void 0:t.companyName)||"",deliveryAddressStreet:T||"",deliveryAddressStreetNumber:N||"",deliveryAddressPostalCode:O||"",deliveryAddressCity:M||"",deliveryAddressCountry:j||"",email:(null==k?void 0:k.email)||"",phone:(null==(r=null==(n=null==k?void 0:k.owner)?void 0:n.salesforceCustomer)?void 0:r.phoneNumber)||""},z=!!k;return o?C.jsx(cV,{isUkLead:a}):C.jsxs(oV,{children:[e,C.jsx(iB,{initialValues:F,validationSchema:jV({isLoggedIn:z}),onSubmit:async e=>{var t;_(!0);const n=null==(t=null==w?void 0:w.answers)?void 0:t.service_type,r="regular_employee_catering"===n||"full_service_event"===n,{deliveryAddressCountry:o}=e,a=["United Kingdom","Great Britain","UK"].includes(o);if(r||a){const t=await u(e),{success:n}=t;return n?(s(a),i(!0),rj(A.current,{is_uk_lead:a}),void oj(A.current)):(console.error("[HeyCater Funnel] Lead submission failed. Result:",t),void _(!1))}let l="";if(k)try{const t=await c(e);if(!t||!t.id)return console.error("[HeyCater Funnel] submitAsExistingCustomer returned invalid opportunity:",t),void _(!1);l=`/account/requests/${t.id}`}catch(d){return d instanceof Error&&UB.notify(d),void _(!1)}else{const t=await u(e),{signInToken:n,opportunity:r}=t||{};if(!r||!r.id)return console.error("[HeyCater Funnel] submitAsNewCustomer returned invalid opportunity:",t),void _(!1);l=n?`/${S.locale}/account/requests/${r.id}?one_time_sign_in_token=${n}`:`/${S.locale}/account/external/requests/${r.id}`}rj(A.current,{is_logged_in:!!k}),oj(A.current),x.setRequest(e),((e="/")=>{window.location.href=`${DE().customerAppHost}${e}`})(l)},enableReinitialize:!0,children:e=>{var t,n;return C.jsxs(RV,{id:LV,name:LV,children:[C.jsxs(PV,{children:[C.jsx(NV,{$half:!0,children:C.jsx(fB,{required:!0,name:"first_name",label:l("request.form.firstName"),placeholder:l("request.form.firstName"),component:sV})}),C.jsx(NV,{$half:!0,children:C.jsx(fB,{required:!0,name:"last_name",label:l("request.form.lastName"),placeholder:l("request.form.lastName"),component:sV})})]}),C.jsx(PV,{children:C.jsx(NV,{$half:!0,children:C.jsx(fB,{required:!0,name:"company",label:l("request.form.company"),placeholder:l("request.form.company"),component:sV})})}),C.jsx(PV,{children:C.jsx(NV,{children:C.jsx(fB,{required:!0,name:"delivery_address",label:l("request.form.deliveryAddress"),placeholder:l("request.form.deliveryAddress"),helperText:l("request.form.helpText.address"),defaultValue:R,component:GB})})}),C.jsxs(PV,{children:[!k&&C.jsx(NV,{$half:!0,children:C.jsx(fB,{required:!0,type:"email",name:"email",label:l("request.form.email"),placeholder:l("request.form.email"),helperText:l("request.form.helpText.email"),component:sV})}),!(null==(n=null==(t=null==k?void 0:k.owner)?void 0:t.salesforceCustomer)?void 0:n.phoneNumber)&&C.jsx(NV,{$half:!0,children:C.jsx(lV,{label:l("request.form.phone"),name:"phone",formik:e,helperText:l("request.form.helpText.phone")})})]}),C.jsx(PV,{children:C.jsx(NV,{children:C.jsx(fB,{name:"comment",label:l("request.form.comment"),placeholder:l("request.form.commentPlaceholder"),component:sV,multiline:!0})})}),C.jsx(fB,{type:"hidden",name:"deliveryAddressStreet"}),C.jsx(fB,{type:"hidden",name:"deliveryAddressStreetNumber"}),C.jsx(fB,{type:"hidden",name:"deliveryAddressPostalCode"}),C.jsx(fB,{type:"hidden",name:"deliveryAddressCity"}),C.jsx(fB,{type:"hidden",name:"deliveryAddressCountry"}),C.jsxs(Fm,{mt:2,mb:4,display:"flex",flexDirection:"column",children:[C.jsx(Qm,{variant:"caption",fontWeight:500,fontSize:12,px:1,mr:1.5,mb:1,children:l("selection.yourSelection")}),C.jsx(DV,{children:d.map(e=>C.jsx(vM,{size:"sm",stepId:e.stepId,text:e.text||""},`${e.stepId}_${e.text}`))})]}),C.jsx(Fm,{ref:h,children:C.jsx(I,{isFormValid:e.isValid})})]})}})]})}const PV=_p.div`
|
|
1411
1411
|
display: flex;
|
|
1412
1412
|
flex-wrap: wrap;
|
|
1413
1413
|
margin: 0 -${({theme:e})=>e.spacing(1)}px;
|
|
@@ -1567,7 +1567,7 @@
|
|
|
1567
1567
|
}
|
|
1568
1568
|
`,XV={common:{cities:{aachen:"Aachen",augsburg:"Augsburg","bergisch-gladbach":"Bergisch Gladbach",berlin:"Berlin",bielefeld:"Bielefeld",bochum:"Bochum",bonn:"Bonn",bottrop:"Bottrop",braunschweig:"Braunschweig",bremen:"Bremen",bremerhaven:"Bremerhaven",chemnitz:"Chemnitz",cottbus:"Cottbus",darmstadt:"Darmstadt",dortmund:"Dortmund",dresden:"Dresden",duisburg:"Duisburg",dueren:"Düren",duesseldorf:"Düsseldorf",erfurt:"Erfurt",erlangen:"Erlangen",essen:"Essen",esslingen:"Esslingen",flensburg:"Flensburg","frankfurt-am-main":"Frankfurt am Main","frankfurt-am-main-short":"Frankfurt a.M.","frankfurt-oder":"Frankfurt (Oder)",frankfurt:"Frankfurt",freiburg:"Freiburg",fuerth:"Fürth",gelsenkirchen:"Gelsenkirchen",gera:"Gera",giessen:"Gießen",goettingen:"Göttingen",guetersloh:"Gütersloh",hagen:"Hagen",halle:"Halle",hamburg:"Hamburg",hamm:"Hamm",hanau:"Hanau",hannover:"Hannover",heidelberg:"Heidelberg",heilbronn:"Heilbronn",herne:"Herne",hildesheim:"Hildesheim",ingolstadt:"Ingolstadt",iserlohn:"Iserlohn",jena:"Jena",kaiserslautern:"Kaiserslautern",karlsruhe:"Karlsruhe",kassel:"Kassel",kiel:"Kiel",kitzingen:"Kitzingen",koblenz:"Koblenz",koeln:"Köln",konstanz:"Konstanz",krefeld:"Krefeld",leipzig:"Leipzig",leverkusen:"Leverkusen",luebeck:"Lübeck",ludwigsburg:"Ludwigsburg",ludwigshafen:"Ludwigshafen",luenen:"Lünen",magdeburg:"Magdeburg",mainz:"Mainz",mannheim:"Mannheim",marl:"Marl",moers:"Moers",monchengladbach:"Mönchengladbach",muelheim:"Mühlheim",muenchen:"München",muenster:"Münster",neuss:"Neuss",nuernberg:"Nürnberg",oberhausen:"Oberhausen",offenbach:"Offenbach",oldenburg:"Oldenburg",oranienburg:"Oranienburg",osnabrueck:"Osnabrück",paderborn:"Paderborn",pforzheim:"Pforzheim",potsdam:"Potsdam",ratingen:"Ratingen",recklinghausen:"Recklinghausen",regensburg:"Regensburg",remscheid:"Remscheid",reutlingen:"Reutlingen",rostock:"Rostock",saarbruecken:"Saarbrücken",salzburg:"Salzburg",salzgitter:"Salzgitter",schwerin:"Schwerin",siegen:"Siegen",solingen:"Solingen",stuttgart:"Stuttgart",trier:"Trier",tuebingen:"Tübingen",ulm:"Ulm","villingen-schwenningen":"Villingen-Schwenningen",wien:"Wien",wiesbaden:"Wiesbaden",witten:"Witten",wolfsburg:"Wolfsburg",worms:"Worms",wuppertal:"Wuppertal",wuerzburg:"Würzburg",zurich:"Zürich",zwickau:"Zwickau"},tableOfContents:{title:"Inhaltsverzeichnis"},citiesAustria:{vienna:"Vienna",graz:"Graz",linz:"Linz",salzburg:"Salzburg",innsbruck:"Innsbruck",klagenfurt:"Klagenfurt",villach:"Villach",wels:"Wels"},citiesSwitzerland:{zuerich:"Zürich",geneva:"Geneva",basel:"Basel",lausanne:"Lausanne",bern:"Bern",winterthur:"Winterthur",lucerne:"Lucerne","sankt-gallen":"Sankt Gallen",lugano:"Lugano",biel:"Biel/Bienne"},citiesDenmark:{copenhagen:"København",aarhus:"Aarhus",odense:"Odense",aalborg:"Aalborg",esbjerg:"Esbjerg",randers:"Randers",kolding:"Kolding",vejle:"Vejle"},citiesUK:{london:"London",birmingham:"Birmingham",manchester:"Manchester",leeds:"Leeds",newcastle:"Newcastle",glasgow:"Glasgow",liverpool:"Liverpool",portsmouth:"Portsmouth",southampton:"Southampton",nottingham:"Nottingham",bristol:"Bristol",sheffield:"Sheffield","kingston-upon-hull":"Kingston upon Hull",leicester:"Leicester",edinburgh:"Edinburgh",cardiff:"Cardiff","stoke-on-trent":"Stoke-on-Trent",coventry:"Coventry",reading:"Reading",bradford:"Bradford"},generic:{new:"neu",loading:"Laden..."},countries:{germany:"Deutschland",austria:"Österreich",switzerland:"Schweiz"},signUpForm:{title:"Leckere HR-Ideen und köstlicher Team-Content",subtitle:"Köstliche Ideen für alle, die ihre Teams happy machen",button:"Meld mich an!",socialIconLabel:"Join the community",emailRequired:"E-Mail ist erforderlich",checkboxLabel:"Ich erkläre mich damit einverstanden, E-Mails zu erhalten, wobei ich mich jederzeit von diesen Mitteilungen abmelden kann, nachdem ich mich angemeldet habe.",correctFormatEmail:"Bitte gib eine gültige Email-Adresse ein",errorMessage:"Das Abonnement war nicht erfolgreich",successMessage:"Vielen Dank, dass du dich für unseren Newsletter angemeldet hast"},benefits:{title:{part1:"Es gibt immer gute Gründe für Feiern.",part2:"Und für heycater! - Deine Catering Plattform"},nr1:"Wir sind Nr. 1 in Europa ",customerCount:"Über {{count}} Kunden",catererCount:"{{count}} Caterer deutschlandweit",satisfaction:"{{percent}}% Kundenzufriedenheit",personalService:"Persönlich betreut, bei jeder Bestellung",quickAndFree:"Pünktlich, wie bestellt & immer lecker",gb:{nr1:"Europas Nummer eins Lösung",topCaterers:"+ 700 Top-Caterer"}},occasion:{variationA:{business_lunch:"Lunch"},breakfast:"Frühstück",buffet:"Buffet",business_lunch:"Business Lunch",cakes_and_sweets:"Kuchen & Süßes",drinks:"Getränke & Cocktails",drinks_short:"Getränke",fingerfood:"Fingerfood",street_food:"Foodtruck",bbq:"BBQ",christmas:"Weihnachten",summer_party:"Sommerparty",fine_dining:"Dinner & Fine Dining",fine_dining_short:"Dinner"},navigation:{catering:"Catering",individualOffer:"Individuelle Angebote",bookAProvider:"Anbieter selbst buchen",brandedMarketplace:"Branded Marketplace",aiAssistantCateBeta:"KI-Assistentin Cate (Beta)",onlineKantine:"Online Kantine",eventManagement:"Event Management",forPartners:"Für Partner",sustainability:"Nachhaltigkeit",services:"Services",marketplace:"Marktplatz",virtualEvents:"Virtual Events",events:"Events",partner:"Partner werden",howItWorks:"How it works",costs:"Catering Kosten & Kalkulation",about:"About us",heycater:"heycater!",jobs:"Jobs",press:"Presse",hub:"Blog",signIn:"Anmelden",signOut:"Abmelden",account:"Nutzerkonto",questions:"Fragen? ",imprint:"Impressum",terms:"AGB",privacy:"Datenschutz",career:"Karriere",blog:"Blog",officeSupplies:"Office Supplies",officeSupply:"Bürobedarf",drinksSnacks:"Getränke & Snacks",more:"Mehr",certifiedCaterers:"570+ zertifizierte Caterer",timeUntilOffer:"Angebot innerhalb von 4 Stunden",heykantine:"Heykantine"},labels:{previous:"Vorherige",cancel:"Abbrechen",done:"Fertig",next:"Weiter",back:"Zurück",continueTo:"Weiter zu {{ question }}",all:"Alles",findCaterers:"Caterer finden",findCaterersNow:"Jetzt Caterer Finden",requestCaterersNow:"Jetzt Catering anfragen",requestCaterersCTA:"Innerhalb von 4 Stunden kostenlos Angebote erhalten",findCatering:"Finde Catering",findVirtualEvents:"Virtuelle Events finden",selectCity:"Wähle Deine Stadt",whichCity:"In welcher Stadt benötigst Du Catering?",requestCatering:"Catering anfragen",other:"Sonstiges",requestIndividualOffer:"Individuelles Angebot anfragen",requestOffer:"Angebot anfragen",notSure:"Nicht sicher",showMore:"Zeige mehr"},validations:{required:"Dieses Feld ist erforderlich",email:"Trage eine gültige Adresse ein",number:"Trage gültige Zahlen ein"},algolia:{catering_categories:{home_office:"Home Office Pakete",street_food:"Foodtruck/Streetfood",bbq:"BBQ",fine_dining:"Dinner & Fine Dining",breakfast:"Frühstück",business_lunch:"Business Lunch",fingerfood:"Fingerfood & Snacks",cakes_and_sweets:"Kuchen & Süßes",buffet:"Buffet",drinks:"Getränke & Cocktails",event:"Event",easter:"Ostern",halloween:"Halloween",christmas:"Weihnachten",specials:"Besonderes"},dietary_restrictions:{vegan:"Vegan",vegetarian:"Vegetarisch",gluten_free:"Glutenfrei"}},days_of_week:{monday:"Montag",tuesday:"Dienstag",wednesday:"Mittwoch",thursday:"Donnerstag",friday:"Freitag",saturday:"Samstag",sunday:"Sonntag"},questions:{catering_categories:"Catering-Art",degree_of_satiation:"Sättigungsgrad",event_date:"Eventdatum",dietary_restrictions:"Ernährungstyp",lead_type:"Anfragentyp",min_order_number:"Personenanzahl",budget:"Budget",budgetProPerson:"Budget pro Person",totalBudget:"Gesamtbudget",services:"Services"},trustedShops:{ratingText:"Sehr gut",ratingCount:"{{amount}} Bewertungen"},action:{readMore:"Mehr Lesen",collapse:"Weniger Anzeigen"},preposition:{from:"von"}},static_pages:{caterings:{event:"Event Catering in ",lunch:"Lunch Catering in ",breakfast:"Frühstück Catering in ",christmas:"Weihnachtsfeier Catering in ",buffet:"Buffet Catering in ",fingerFood:"Fingerfood Catering in ",gourmet:"Gourmet Catering in "},homepageRedesign:{hero:{title:"Business Catering vergleichen & buchen",subtitle:"Finde die besten Caterer Deiner Stadt",benefits:["Persönliche Beratung","3 maßgeschneiderte Angebote in 24h","100% Zufriedenheitsgarantie"]},ctaLabel:"Jetzt Catering anfragen",ctaSubtext:"Kostenlos & unverbindlich",customers:{title:"heycater! Kunden"},benefits:{title:"Wir sind Deine\nNr. 1 Catering Plattform",activeCustomers:"aktive Kunden",organisedEvents:"durchgeführte Caterings",certifiedCaterers:"zertifizierte Caterer",satisfactionPercent:"Kundenzufriedenheit"},steps:{title:"4 Schritte bis zum Catering-Genuss",subtitle:"wir stehen Dir mit persönlicher Beratung zur Seite.",step1:"Catering Anfrage stellen",step2:"Eventdetails & Wünsche angeben",step3:"Angebot\nauswählen",step4:"Catering kurzfristig anpassen"},circularBenefits:{title:"Deine Vorteile",subtitle:"Individuelles, maßgeschneidertes Catering für Dein Büro oder Event ohne großen Aufwand",benefits:{satisfaction:{title:"100% Zufriedenheitsgarantie",description:"Unser Versprechen spiegelt unser tiefes Engagement für Qualität, Verlässlichkeit und Kundenzufriedenheit wider und garantiert Dir, dass Du Dich 100%ig auf uns verlassen kannst."},personalized:{title:"Persönliche Betreuung",description:"Du erhältst eine persönliche Fachberatung durch unser Experten-Team während des gesamten Prozesses und wir sind jederzeit für Dich erreichbar."},bestPrices:{title:"Beste Preis-Leistung",description:"heycater! steht für Qualität zu fairen und wettbewerbsfähigen Preisen. Du teilst uns Dein Budget mit und wir erstellen Dir passende Angebote, die sowohl Deine kulinarischen Wünsche als auch Dein Budget berücksichtigen."},simple:{title:"Einfache online Buchung",description:"Du erhältst einen kostenfreien Zugang zu Deinem persönlichen Kundenkonto. Vom Menü bis hin zur Zahlung wickelst Du alles online über Deinen Account ab."},fast:{title:"3 Angebote in 24h",description:"Wir machen Dir in 24h drei maßgeschneiderte Angebote - Du musst Dich nur entscheiden und ersparst Dir den Aufwand für die Kommunikation und Organisation."}}},guarantees:{ourService:"Unser Serviceversprechen",title:"Die heycater! Zufriedenheitsgarantie",subtitle:"Unser Versprechen an Dich: Business Catering, das Dich und Deine Gäste glücklich macht",list:{provenCaterers:{title:"100% geprüfte Caterer",description:"Wir arbeiten ausschließlich mit <0>hochqualitativen</0> und durch uns <0>geprüften Catering-Partnern</0> zusammen. Deine Zufriedenheit liegt uns am Herzen, weshalb wir stets Bewertungen sammeln, um Dir die besten Caterer vorstellen zu können."},reliable:{title:"Zuverlässigkeit in jeder Situation",description:"Sollte ein <0>Caterer unerwartet ausfallen</0>, stehen wir an Deiner Seite und organisieren <0>schnellstmöglich</0> einen <0>Ersatz</0>. Damit gewährleisten wir, dass Dein Event trotzdem ein voller Erfolg wird."},promise:{title:"Unser Service-Versprechen",description:"Falls einmal etwas nicht zu Deiner Zufriedenheit verläuft, kümmern wir uns um das <0>Beschwerdemanagement</0> und erstatten Dir gegebenenfalls (anteilig) die Kosten zurück."},insured:{title:"Bis zu 3.000.000€ versichert",description:"Im seltenen Fall, dass ein von uns vermittelter Caterer Sachschäden verursacht, bist Du über uns mit einer Deckungssumme von <0>bis zu 3.000.000€ versichert.</0>"}}},aboutUs:{title:"Wir sind heycater!",subtitle:"Das Team hinter Euren Events.",description:"Wir von heycater! haben es uns zur Aufgabe gemacht, Business-Caterings easy, schnell und absolut unkompliziert zu machen. Heute arbeiten über 2.500 aktive Geschäftskunden und 500 Cateringpartner in den größten Städten in Deutschland, Österreich und der Schweiz mit heycater! zusammen. Egal ob Team Lunch oder großes Event: unsere Catering-Experten sind immer bemüht, den perfekten Caterer für Deine Anfrage zu finden und Dir dabei den besten Service zu bieten."},ourServices:{title:"Unsere Catering Services",titleShort:"Unsere Services",subtitle:"Ob regelmäßige Mitarbeiterverpflegung oder individuelles Event Catering - wir haben eine passende Lösung für Dich!",services:{marketplace:{title:"heycater!\nMarktplatz",description:"Du wirst gern selbst kreativ? Dann wähle aus unseren Partnern und Angeboten das Beste aus und organisiere Dein Catering über den heycater! Marktplatz selbst.",cta:"Zu den Anbietern"},offer:{title:"heycater!\nAngebotsservice",description:"Der heycater! Angebotsservice liefert Dir maßgeschneidertes Catering für Dein Event. Gib uns die Details und wähle aus drei individuell erstellten Angeboten.",cta:"Jetzt Catering anfragen"},foodProgram:{title:"heycater!\nFood Program",description:"Das heycater! Food Program ist unsere zugeschnittene Lösung für Unternehmen mit regelmäßigem Catering-Bedarf - flexibel, zentralisiert und Bedarfsorientiert",cta:"Beratungstermin buchen"}}},cards:{title:"Finde das richtige Catering für Dein Event:",subtitle:"BBQ Catering, einen Foodtruck, ein Fingerfood Buffet oder eine mobile Cocktailbar für Dein Firmenevent - Du hast die Wahl!"},genericCta:{title:"Hangry ist leider aus",subtitle:"Buche Dein Catering ohne Stress, für jeden Anlass"}},homepage:{variationA:{meta:{title:"Catering Services vergleichen & buchen | heycater!",description:"Bestelle und verwalte Caterings mit unseren professionellen Lösungen."},qf:{title:"Die Plattform für <0>Business Catering, Events, Lunchlösungen</0> – und happy Teams!",header:"Welches Catering brauchst Du für Dein nächstes Event?"},steps:{step1:"Catering Anfrage stellen",step2:"Event Details angeben",step3:"Lieblings-Angebot wählen",step4:"Catering genießen"}},meta:{title:"Catering Services vergleichen & buchen | heycater!",description:"Bestelle und verwalte Caterings mit unseren professionellen Lösungen."},inspiration:{title:"Du hast Hunger auf Inspiration?",description:"Sehe Dir unsere 3 neuesten Artikel an",more:"Mehr Inspiration"},ourTeam:{title:"Wir sind heycater!",subtitle:"Das Team hinter euren Events",description:"Egal ob Lunch oder großes Event: Buche Catering ohne Stress und großes Hin und Her. Vom Menü bis hin zur Zahlung wickelst Du alles direkt online ab.",buttonLabel:"Mehr über heycater!"},getItDone:{title:"Mit heycater! alles erledigen",subtitle:"Zentralisiere Deine Cateringanfragen, Buchungen, Veranstaltungs- sowie Rechnungsdetails auf einer einzigen Plattform, um Dich noch effizienter zu organisieren.",section1:{title:"Easy, schnell und absolut unkompliziert",content:"Egal ob Lunch oder großes Event: Buche Catering ohne Stress und großes Hin und Her. Vom Menü bis hin zur Zahlung wickelst Du alles direkt online ab."},section2:{title:"Da bleiben keine\nWünsche offen",content:"Frühstück oder BBQ. Vegan, halal oder glutenfrei. Foodtruck oder Fine Dining. Menü selbst erstellen oder Profi-Service. Hier gibt’s alles. Du musst Dich nur entscheiden."},section3:{title:"Hier sind Profis\nam Werk",content:"Das Event muss perfekt werden? Dann hol Dir Support! Wir machen Dir in 24h drei maßgeschneiderte Angebote. Oder stell einfach alles selbst zusammen. Wie Du magst."}},areYouProfessionalSection:{title:"Bist Du der Profi oder sollen wir ran?",subtitle:"Du sagst, wo es langgeht. Willst Du Dein Catering selbst zusammenstellen oder brauchst Du Hilfe? Bei uns hast du zwei Optionen.",askUs:{title:"Anfrage bei uns stellen",description:"Dein Wunsch ist uns Befehl! Unsere Catering-Expert:innen erstellen Dir 3 maßgeschneiderte Angebote. Ideal für besondere Anlässe.",cta:"Anfrage stellen"},doYourself:{title:"Anbieter selbst buchen",description:"Du wirst gern selbst kreativ? Dann wähle aus unseren Partnern und Angeboten das Beste für Dein Catering aus.",cta:"Zu den Anbietern"}},citySelectorPills:{title:"Wähle Deine Stadt für ein Catering:",otherCity:"Andere Stadt"},businessCatering:{title:"Business-Catering vergleichen und buchen",collapsed:"Die einfachste Möglichkeit, Catering-Firmen in Deiner Stadt zu vergleichen Fingerfood, Messe-Catering, kalte oder warme Buffets – Du hast die Auswahl! heycater! unterstützt Dich auch bei der Eventplanung",services:{title:"Catering-Services für Dein Firmenevent buchen",description:"Zu jeder gelungenen Veranstaltung gehört ein gutes Catering, das auf die Bedürfnisse der Gäste eingeht und eine gesunde und leckere Auswahl an Menüs bietet. Planst Du ein Business Event und bist auf der Suche nach einem professionellen Caterer? Aus den zahlreichen Catering-Services, die es in großen Städten wie Berlin, Hamburg oder Köln gibt, ein passendes Angebot auszuwählen, kann eine echte Herausforderung sein. heycater! erleichtert Dir die Suche und hilft Dir dabei, das perfekte Catering zu finden. Ob Du Geschäftskunden zum Frühstück einladen möchtest, das Sommerfest Eures Unternehmens planst oder Verpflegung für einen Workshop suchst: Wir haben für jede Ernährungsgewohnheit, jede Veranstaltungsgröße und jeden Anlass passende Caterer im Angebot."},yourCity:{title:"Die einfachste Möglichkeit, Catering-Firmen in Deiner Stadt zu vergleichen",description:{a:"Mit heycater! ersparst Du Dir, seitenweise Suchergebnisse zu durchforsten und zahlreiche Anfragen an verschiedenen Catering-Unternehmen zu stellen. Diese Arbeit nehmen wir Dir sehr gerne ab. Wenn Du schon genaue Vorstellungen von Deinem Wunsch-Catering hast, schick uns alle wichtigen Eckdaten. Solltest Du Dir noch unsicher sein, welche Art von Menüs oder Speisen zu Deinem Anlass passen, beraten wir Dich gerne. Übrigens: Die Angebotserstellung ist für Dich kostenlos!. ",b:"Unsere Auswahl an Anbietern wird ständig erweitert, und so stehen Dir neben Catering in ",and:"und ",c:" für viele weitere Städte passende Menüs zur Verfügung. Möchtest du nicht den Umweg über die Suche gehen, hast Du die Möglichkeit, direkt eine individuelle ",request:"Anfrage",d:" an uns zu stellen. Nimm Kontakt zu uns auf, und unsere Catering-Experten melden sich bei Dir."}},selection:{title:"Fingerfood, Messe-Catering, kalte oder warme Buffets – Du hast die Auswahl!",description:{a:"Die Anforderungen an ein gutes Catering sind so verschieden wie es die Anlässe und Gäste sein können. Von der Firmen-Weihnachtsfeier oder Sommerfeier über Teambildung-Events bis hin zu Presseveranstaltungen, Workshops oder Treffen mit den Geschäftspartnern: Das passende Menü zusammenzustellen, ist keine einfache Aufgabe. Befinden sich unter Deinen Gästen Vegetarier oder Veganer, oder gibt es andere Einschränkungen oder Unverträglichkeiten, die Du beachten musst? Über heycater! kannst Du Menüs für alle Ernährungsweisen und Anlässe bestellen. Beispielsweise findest Du auf unserer Plattform ",fingerFood:"Fingerfood",breakfast:"Frühstücks-Catering",b:", vegane und vegetarische Catering-Angebote, ",gourmet:"Gourmet-Menüs",and:" und ",buffet:"Buffets",c:"Business Catering muss nicht langweilig sein. Vorbei ist die Zeit der traurigen Spieße und Schnittchen: Wie wäre es zum Beispiel mit einem Foodtruck zum Sommerfest oder Platten mit internationalem Fingerfood? Auch traditionelle regionale Spezialitäten haben unsere Caterer im Angebot. Von der vielseitigen Vorspeisenplatte über warme und kalte Hauptgerichte bis hin zu fantasievollen Desserts stehen die unterschiedlichsten Menüs zur Auswahl.",d:"Auf eins kannst Du Dich jedoch immer verlassen: Wir wählen unsere Caterer sehr sorgfältig aus. So kannst Du Dir sicher sein, dass das von Dir bestellte Catering lecker und hochwertig ist und pünktlich geliefert wird. Wir setzen außerdem auf transparente Kosten und Kommunikation. Die Angebotserstellung ist für Dich kostenlos. Hast Du darüber hinaus Fragen zu Preisen, Abläufen oder Menüs? Stell einfach eine Anfrage an uns, und unsere Catering-Experten melden sich bei Dir und helfen Dir weiter!"}},event:{title:"heycater! unterstützt Dich auch bei der Eventplanung",description:{a:"Mit heycater! ist nicht nur die Auswahl eines passenden Caterers ein Kinderspiel. Unsere Experten helfen Dir auch bei der Konzeption und Planung deines Firmenevents. Ob es um die passende Location für eine Weihnachtsfeier oder ein Sommerfest geht oder Du eine andere Veranstaltung für Mitarbeiter oder Geschäftskunden durchführen möchtest: Wir stehen Dir mit unseren besten Tipps und unserem Event-Service zur Seite! In unserem Blog findest Du außerdem viele Ideen für Deine Eventplanung – von angesagten Veranstaltungsorten in Deiner Stadt bis hin zu Food Trends. Sprich uns gern an, und wir unterstützen Dich bei der gesamten Planung, nicht nur bei der Buchung Deines Firmencaterings.",b:"Fülle jetzt das Angebotsformular aus und wir erstellen Dir kostenfrei und unverbindlich individuelle Catering-Angebote, die zu Deinen Anforderungen passen!"}},button:"Finde Caterer"}},marketingPages:{cateringCost:{metaTitle:"Catering Kosten und Preise"},certifiedSection:{title:"Alle Caterer sind von uns zertifiziert",description:"Um unserem Qualitätsanspruch gerecht zu werden, durchlaufen alle unsere Caterer einen strengen Zertifizierungsprozess, um dein Catering-Erlebnis zu einem unvergesslichen Ereignis zu machen."},sidebar:{title:"Catering Buchen für deinen Anlass",body:"Buche Catering für deinen Anlass Finde aus 309 Caterern das perfekte Menü",cta:"Catering Finden"},hero:{foodtruckCTA:"Finde Foodtruck",generalCTA:"Finde Caterer"},howItWorksCTA:{title:"Einfach Catering organisieren in Minuten",section1:{title:"Online Anfrage stellen",content:"Teile deine Cateringdetails und Wünsche mit uns"},section2:{title:"Angebot auswählen",content:"Erhalte maßgeschneiderte Angebote von zertifizierten Caterern"},section3:{title:"Catering genießen",content:"Buche bestes Catering für deine Gäste"}},partnersCTA:{title:{a:"Zusammen sind wir",b:"ein Team"},subtitle:"Gemeinsam unschlagbar seit 2015 mit mehr als 3.500 zufriedenen Firmenkunden"},seaPage:{valueProposition:{title:{a:"Wir",b:"unterstützen",c:"euer Zusammensein"},section1Title:"Spare Zeit & Geld",section1Content:"Mehr Freiraum im Alltag mit der effizienten online Bestellung über heycater! Caterings detailgenau organisieren funktioniert nun im Handumdrehen.",section2Title:"Größte Auswahl an Caterern",section2Content:"Alles für ein schönes Catering Erlebnis. Vergleichen, stöbern und das Passende finden aus der größten nationalen Catererauswahl.",section3Title:"Qualität & Sicherheit",section3Content:"Wir schauen genau hin. Alle unsere Caterer sind qualitätsgeprüft auf gastronomische Zertifizierungen, Speisen und Hygiene.",section4Title:"Zuverlässiger & persönlicher Service",section4Content:"Wir sind da wenn man uns braucht. Unser Serviceteam behält persönlich den Überblick damit du noch mehr Zeit bleibt für die wirklich wichtigen Aufgaben."}},caterer:{title:{a:"Gewinne neue Kunden und erhalte",b:"mehr Bestellungen"},subtitle:"Mit dem Marktplatz deines Vertrauens mehr Catering verkaufen",startNow:"Jetzt anmelden",title2:{a:"Baue dein Catering-Geschäft",b:"einfach",c:"aus"},section1Title:"Mehr Umsatz",section1Body:"Unsere Statistik spricht für sich: 94% der heycater!-Aufträge sind zusätzlicher Umsatz für Dein Unternehmen. Jede eingehende Bestellung bedeutet mehr Geld für Dich, pünktlich ausgezahlt zweimal im Monat.",section2Title:"100% Risikofrei",section2Body:"Du legst deine Rahmenbedingungen fest. Wir liefern dir nur relevante Bestellungen, die dein Geschäft voranbringen. Keine versteckten Kosten, das ist unser Versprechen.",section3Title:"Weniger Arbeit",section3Body:"Wir automatisieren zeitfressende Arbeitsprozesse, kümmern uns ums Online Marketing, den Kundenservice und die Bezahlung, sodass mehr Zeit bleibt fürs Wesentliche.",title3:{a:"Mit unserer Software behältst Du den",b:"Überblick"},step1Title:"Fragebogen ausfüllen",step1Body:"Sende uns Details über dein Geschäft",step2Title:"Menüs hochladen",step2Body:"Lade Deine Menüs online hoch",step3Title:"Bestellungen erhalten",step3Body:"Erhalte Bestellungen und kostenlose Beratung",title4:{a:"Zusammen sind wir",b:"ein Team"},subtitle4:"Seit 2015 marktführender B2B-Catering-Marktplatz mit 3.500+ Kunden und 500+ Partnern europaweit",caption4:"Danke, dass du so einen tollen Job machst und Dich einfach so ehrlich und einfühlsam um die Caterer bemühst.",title5:{a:"Gewinne neue Kunden und",b:"mehr Bestellungen"}},businessCateringAnfrage:{metaTitle:"Business catering for offices - make a non-binding inquiry now",metaDescription:"Here you will find the most delicious caterers in your city! Tell us your wishes and receive great offers quickly and without obligation!",pitchItems:{a:"Best customer service",b:"500+ Caterers",c:"Non-binding offers"},headerText:"Business-Catering with heycater!",ctaName:"Inquire business catering"},catererApplication:{metaTitle:"Werde heycater! Partner",metaDescription:"Steigere deinen Umsatz und akquiriere neue Kunden mit heycater!",pitchItems:{a:"Mehr Umsatz",b:"100% Risikofrei",c:"Weniger Arbeit"},headerText:"Business-Catering mit heycater!",ctaName:"Business Catering anfragen"}},partnerLandingPage:{ourCustomers:"Unsere Kunden",infoBoxes:{title:"heycater! in Zahlen",caterers:"zertifizierte Caterer",customers:"aktive Kunden",caterings:"durchgeführte Caterings",increaseInSales:"Umsatzsteigerung"},ourPartners:{title:"Unsere Partner",legend:"und über 500 weitere"},partnerships:{title:"Partnerschaften",subtitle:"Unsere Partnerschaften",items:[{title:"Vytal x heycater!",description:"heycater! hat eine Partnerschaft mit Vytal, einem Unternehmen, das Mehrwegverpackungen für Lebensmittel anbietet. Dadurch kannst Du als Partner den Einsatz von wiederverwendbaren Verpackungen fördern, was den Einwegmüll reduziert und somit die Umweltbelastung verringert."},{title:"Uber Direct x heycater!",description:"Dank der Kooperation mit Uber Direct kannst Du als unser Catering-Partner die Lieferung flexibel auslagern und auch dann anbieten, wenn Deine eigenen Lieferkapazitäten erschöpft sind. Dadurch hast Du die Möglichkeit, Dich mehr auf Dein Kern-Business zu fokussieren."},{title:"Climate Extender",description:"Als Mitglied der Climate Partner Initiative setzt sich heycater! aktiv für den Klimaschutz ein. Dies kann durch verschiedene Maßnahmen erfolgen, wie z.B. die Kompensation von CO2-Emissionen oder die Unterstützung von Projekten, die erneuerbare Energien fördern."}]}},customerLandingPage:{stepsToCatering:{title:"In drei einfachen Schritten zum perfekten Catering",cityTitle:"Ihre Stadt eingeben",cityBody:"Wählen Sie den Standort für Ihr Catering",compareTitle:"Caterer vergleichen",compareBody:"Wählen Sie Ihren idealen Caterer",enjoyTitle:"Buchen & genießen",enjoyBody:"Ergänzen Sie Details und bestätigen Sie Ihre Buchung"},trustedBy:"Werden Sie einer von >3.500 zufriedenen heycater! Kunden",requestForm:{titleMobile:"Benötigen Sie Hilfe bei der Suche nach dem richtigen Caterer?",title:"Benötigen Sie Hilfe bei der Suche nach dem <0>richtigen Caterer</0>?",subtitle:"Kontaktieren Sie uns und lassen Sie unser Expertenteam den idealen Caterer für Sie finden.",firstName:"Vorname",lastName:"Nachname",email:"E-Mail",phone:"Telefon",company:"Name ihres Unternehmens",submit:"Abschicken",isRequired:"Wird benötigt.",phoneError:"Bitte trage eine gültige Telefonnummer ein",correctFormatEmail:"Bitte geben Sie eine gültige Email-Adresse ein"},footerTitle:"Buchen Sie erstklassige Caterer für jeden erdenklichen Anlass Ihres Unternehmens",footerCta:"Caterer finden",citySelector:"Geben Sie Ihre Stadt ein, um Caterer in Ihrer Nähe zu finden",citySelectorMobile:"Geben Sie Ihre Stadt ein",searchButton:"Caterer finden",successMessage:"Vielen Dank für Ihre Anfrage! Wir werden Sie so schnell wie möglich persönlich kontaktieren."},socialProofBar:{text1:"Nr. 1 Catering Plattform in Europa",text2:"3,500+ Business Kunden",text3:"500+ Catering Partner",text4:"95% Zufriedenheitsquote"},footerCTA:{title:"Hangry ist leider aus. \nBuche dein Foodtruck-Catering ohne Stress, für jeden Anlass."},baseHero:{title:"Catering, das Dein Team <0>happy</0> macht",subtitle:"Buche die besten Business-Catering-Anbieter Deiner Stadt: \nsuper easy und super lecker",cta:"Caterer finden in Berlin",trust:{quote:'"Ausgezeichnetes Catering für Teams"'},successfulCaterings:"erfolgreiche Caterings",trustedByMore:"Mehr als 3.500 Unternehmen nutzen heycater!",trustedBy:"3500 Unternehmen nutzen heycater!"},baseHeroAlternate:{title:"Finde passendes Catering online",citySelectLabel:"Oder wählen Sie eine Stadt aus",trustedShopsScoreAlt:"Trusted Shops Bewertung: Sehr gut",benefits:{punctuality:"Pünktlich, und auf den Punkt",satisfiedCustomers:"98,7% zufriedene Kunden",personalService:"Persönlicher Service durch Experten",certifiedCaterers:"578 zertifizierte Caterer"}},virtualEventsHero:{title:{a:"Virtuelle Events für euer",b:"Zusammensein"},titleAlt:"Virtuelle Events für euer Miteinander",subtitle:"Finde und buche alles was du brauchst für dein virtuelles Event und beginne Freude zu bereiten."},articleCards:{readMore:"Weiterlesen"},catererCards:{cta:"Caterer anfragen",seeCaterer:"Caterer ansehen",see:"Zeige",vegetarian:"Vegetarisch",vegan:"Vegan",glutenFree:"Glutenfrei",noReviewsYet:"Keine Bewertungen",delivery:"Lieferung: {{amount}}+",freeDelivery:"Lieferung: ab {{amount}}",orderFrom:"Bestellung ab: {{amount}}€",leadTime:"Vorlaufzeit: {{days}} Tag",leadTime_plural:"Vorlaufzeit: {{days}} Tage",yourSelectedCaterer:"Deine Caterer Auswahl",ratingCount:"{{count}} Bewertung",ratingCount_plural:"{{count}} Bewertungen"},footerLinks:{cateringCategories:"Cateringkategorien",cities:"Städte",countries:"Länder",cateringIn:"Catering in {{city}}",categories:{fingerfood:"Fingerfood Catering",breakfast:"Frühstück bestellen",foodTruck:"Food Truck",event:"Event Catering",buffet:"Buffet Catering",cocktail:"Mobile Cocktailbar",coffee:"Mobile Kaffeebar",vegan:"Veganes Catering",bbq:"Grill Catering",summer_party:"Sommerfest",company_party:"Catering Firmenfeier"}},hey08Variation:{trustedBy:"3.500+ Kunden buchen bereits ihr Catering bei uns"},trustedShops:{ratingText:"Sehr gut",ratingCount:"{{amount}} Bewertungen"}},qualification:{lastQuestionCTA:"Durchsuche 500+ Caterer",lastQuestionCTAShort:"Suche",popularValues:"Beliebte Werte",budgetPerPerson:"Budget pro Person",total:"Gesamtbudget",steps:"Schritten",amountPeople:"x{{ amount }} Personen",trustElement:{fast:"Schneller Service",biggest:"Deutschlands größte Catering-Plattform",best:"Finde die besten Caterer"},customerTier:{title:"heycater! ist spezialisiert auf Kunden mit regelmäßigem Cateringbedarf",benefits:{title:"Deine Benefits als Stammkunde:",personal:"Persönlicher Concierge Service",premium:"Zugang zu unseren Premium Caterern",satisfaction:"100% Zufriedenheitsgarantie",customisations:"Unlimitiert Angebote und Anpassungen"},form:{title:"Wie viele Caterings organisiert Dein Unternehmen im Monat?",subtitle:"Wähle aus den 3 Frequenzen:",options:{rarely:{title:"Selten",subtext:"unregelmäßig zu besonderen Anlässen"},regularly:{title:"Regelmäßig",subtext:"mehre Male pro Monat"},frequently:{title:"Häufig",subtext:"mehrere Male pro Woche"}}}},rareCustomerTier:{footNote:"*Ich habe doch regelmäßigen Bedarf",v1:{title:"Du hast keinen regelmäßigen Bedarf? Kein Problem!",benefits:{title:"Deine Benefits:",first:"Bis zu 3 maßgeschneiderte Angebote in 24h",second:"Zeitersparnis von bis zu 6h",third:"Einfache online Buchung und Telefonsupport",fourth:"Zugriff auf über 500 zertifizierte Caterer"},service:{title:"heycater! Service",subtitle:"Für Unternehmen, die ein <strong>einmaliges</strong> Event oder Catering organisieren",button:"Kostenlos testen",footer:"Angebote für Dein <strong>erstes Event kostenlos,</strong> danach Angebotserstellung 69€ (Anrechnung bei Buchung)"}},v2:{bookYourself:{title:"Selbst buchen",subtitle:"Du wirst gern selbst kreativ? Dann ist unser Marktplatz genau das Richtige für Dich!",button:"Zu den Anbietern",bullets:{first:"Einfache online Buchung",second:"Zugriff auf über 500 zertifizierte Caterer",third:"100% Zufriedenheitsgarantie"}},service:{title:"heycater! Service",subtitle:"Du möchtest die Organisation den Profis überlassen und hast ein Budget von über 500€.",bullets:{first:"Erhalte 3 maßgeschneiderte Angebote in 24h",second:"Persönliche Beratung",third:"Einfache Onlinebuchung und flexible Event-Anpassungen"},button:"Kostenlos testen",footer:"Angebote für Dein <strong>erstes Event kostenlos,</strong> danach Angebotserstellung 69€ (Anrechnung bei Buchung)"}}},embeddedFunnel:{serviceSelection:{title:"Was planst du?"},teamSize:{title:"Wie viele Mitarbeitende sind ca. regelmäßig vor Ort?",placeholder:"z.B. 50"},deliveryFrequency:{title:"Wie häufig soll geliefert werden?"},peopleCount:{title:"Wie viele Personen nehmen ungefähr teil?",placeholder:"z.B. 100"},contactForm:{title:"Kontaktinformationen"},city:{title:"Wähle Deine Stadt:",title_meetings_events:"Wähle Deine Stadt:",title_regular_employee_catering:"Organisiere regelmäßiges Mittagessen für Dein Team. Wähle Deine Stadt:",title_full_service_event:"Plane Dein Firmenevent inklusive Catering, Location und Organisation. Wähle Deine Stadt:",titleShort:"Wähle Deine Stadt:",nextTo:"Weiter zur Stadtauswahl"},cateringCategories:{variationA:{title:"Welches Catering brauchst Du für Dein nächstes Event?"},title:"Super leckeres Essen zu allen Anlässen. Wähle eine Catering-Art:",titleShort:"Wähle eine Catering-Art:",subtitle:"Mehrfachauswahl möglich",nextTo:"Weiter zur Kategorieauswahl"},eventDate:{title:"Wann findet dein Event statt?",subtitle:"Die Vorlaufzeit muss mind. 2 Tage betragen",nextTo:"Weiter zur Datumsauswahl"},leadType:{title:"Ist es ein privater oder geschäftlicher Anlass?"},minOrderNumber:{title:"Wie viele Personen sollen ca. verköstigt werden?"},dietaryRestrictions:{title:"Wie soll die Verteilung der Ernährungsformen sein?",subtitle:"Basierend auf unserer Catering Erfahrung sind 50% vegetarisch, 30% Fleisch und 20% vegan eine optimale Verteilung. Du kannst diese Werte jetzt oder auch später anpassen.",nextTo:"Weiter zur Diätverteilung"},budget:{title:"Wie hoch ist ein Budget?",nextTo:"Weiter zur Budgetauswahl"},budgetAndPeople:{title:"Wie viele Personen sollen ca. verköstigt werden und was hast du für ein Budget?"},budgetRange:{title:"Wie hoch ist dein geschätztes Budget?"},customerTier:{title:"heycater! ist spezialisiert auf Kunden mit regelmäßigem Cateringbedarf",nextTo:"Weiter"},rareCustomerTier:{title:"Du hast keinen regelmäßigen Bedarf? Kein Problem!",nextTo:"Weiter"},success:{title:"Vielen Dank für Ihre Anfrage",subtitle:"Wir haben Ihre Anfrage erhalten und einer unserer Catering-Experten wird sich in Kürze mit Ihnen in Verbindung setzen."}},questionTypes:{dateSelect:{noSelectionLabel:"Noch nicht sicher"},multiDaySwitch:{label:"Mein Event dauert mehrere Tage",infoTooltip:"Du kannst uns den Zeitraum Deines mehrtägigen Events später mitteilen"},leadType:{switch:"Ich bin GeschäftskundIn",private:"Privat",business:"Geschäftlich"}},selection:{people:"{{ amount }} Personen",teamSize:"{{ amount }} Mitarbeitende",yourSelection:"Deine Auswahl:",vegan:"{{ amount }} Veganer",vegetarian:"{{ amount }} Vegetarier",carnivore:"{{ amount }} Fleischesser",budget:"{{ perPerson }}€ p.P. / {{ total }}€ Gesamtbudget"},diet:{pax:"Personenzahl:"},findingCaterers:{pageTitle:"Finde Caterer...",listItem1:"Durchsuche 500+ Caterer",listItem2:"Anfrageparameter werden angewendet",listItem3:"Verfügbarkeit wird geprüft"},bestseller:{title:"Neugierig? Unsere super leckeren Bestseller:",label:"Deine Bestseller Präferenz:",labelShort:"Deine Präferenz:",delivery:"*zzgl. Lieferung",select:"Angebot anfragen"},request:{pageTitle:"Wir haben passende Caterer gefunden!",signIn:{haveAnAccount:"Hast Du schon einen Account?",register:"Melde dich an",email:"E-Mail",password:"Passwort"},onSubmitErrors:{anErrorOccurred:"Leider ist ein Fehler aufgetreten",errorResettingPassword:"Fehler: Bitte sende die E-Mail erneut",loginTokenInvalid:'Dein Logintoken ist nicht mehr gültig. Bitte fordere ein neues Passwort an indem Du "Passwort vergessen" klickst.',logInError:"Wir konnten Dich leider nicht einloggen. Bitte versuche es erneut"},formErrors:{emailRequired:"E-Mail ist erforderlich",correctFormatEmail:"Bitte gebe eine gültige E-Mail ein"},header:{title:"Glückwunsch, wir haben mehrere passende Angebote für Dich!",subtitle:"Um dir ein maßgeschneiderte Angebote zukommen lassen zu können, benötigen wir deine Kontaktdaten."},form:{firstName:"Vorname",lastName:"Nachname",company:"Firma",email:"Email",deliveryAddress:"Lieferadresse",deliveryAddressPostalCode:"Postleitzahl",phone:"Telefon",comment:"Kommentar (optional)",phoneError:"Bitte trage eine gültige Telefonnummer ein",commentPlaceholder:"Was ist Dir wichtig für Dein Catering?",helpText:{email:"Wir senden die Angebote an diese Adresse",phone:"Für eventuelle Rückfragen und Cateringdetails",address:"Nenne uns die Lieferadresse um sie mit dem Liefergebiet des Caterers abzugleichen"},submit:"Anfrage senden",showMore:"Zeig Mehr",showLess:"Zeig Weniger"},labels:{missing:"fehlen",and:"und",address:{deliveryAddressPostalCode:"Postleitzahl",deliveryAddressStreetNumber:"Hausnummer",deliveryAddressStreet:"Straßenname",deliveryAddressCity:"Stadt",deliveryAddressCountry:"Land"}},thankYou:{pageTitle:"Vielen Dank!",header:{eyebrow:"Danke, {{ firstName }}",title:"Wir haben deine Anfrage erhalten",subtitle:"Eine Bestätigung deiner Anfrage schicken wir gleich an"},main:{stepOne:"Verfolge Deine Anfrage im Account",stepTwo:"Event-Details mit Catering-Berater abstimmen",stepThree:"Erhalte Angebote und buche Dein Catering",buttonCta:"Anfrage ansehen",customer:{stepOne:"Verfolge den Status Deiner Anfrage im Account",stepTwo:"Wir rufen Dich an und besprechen die Details",stepThree:"Erhalte Angebote und buche dein Catering",buttonCta:"Anfrage im Account anzeigen"}},footer:{title:"Fragen? Wir sind für dich da!"}}},validations:{pricePerPerson:{lowForCategory:"Ein qualitativ hochwertiges {{category}} erfordert ein Budget von mindestens {{budget}} pro Person. Bitte passe Deine Eingaben an.",category:{breakfast:"Frühstücks-Catering",buffet:"Buffet",business_lunch:"Business Lunch",cakes_and_sweets:"Sweets-Catering",drinks:"Getränke-Catering",fingerfood:"Fingerfood-Buffet",street_food:"Foodtruck Catering",bbq:"BBQ Catering",christmas:"Weihnachts-Catering",fine_dining:"Dinner",summer_party:"Sommerparty",other:"Catering"}}}}},eq={common:{cities:{aachen:"Aachen",augsburg:"Augsburg","bergisch-gladbach":"Bergisch Gladbach",berlin:"Berlin",bielefeld:"Bielefeld",bochum:"Bochum",bonn:"Bonn",bottrop:"Bottrop",braunschweig:"Braunschweig",bremen:"Bremen",bremerhaven:"Bremerhaven",chemnitz:"Chemnitz",cottbus:"Cottbus",darmstadt:"Darmstadt",dortmund:"Dortmund",dresden:"Dresden",duisburg:"Duisburg",dueren:"Düren",duesseldorf:"Düsseldorf",erfurt:"Erfurt",erlangen:"Erlangen",essen:"Essen",esslingen:"Esslingen",flensburg:"Flensburg","frankfurt-am-main":"Frankfurt am Main","frankfurt-am-main-short":"Frankfurt a.M.","frankfurt-oder":"Frankfurt (Oder)",frankfurt:"Frankfurt",freiburg:"Freiburg",fuerth:"Fürth",gelsenkirchen:"Gelsenkirchen",gera:"Gera",giessen:"Gießen",goettingen:"Göttingen",guetersloh:"Gütersloh",hagen:"Hagen",halle:"Halle",hamburg:"Hamburg",hamm:"Hamm",hanau:"Hanau",hannover:"Hannover",heidelberg:"Heidelberg",heilbronn:"Heilbronn",herne:"Herne",hildesheim:"Hildesheim",ingolstadt:"Ingolstadt",iserlohn:"Iserlohn",jena:"Jena",kaiserslautern:"Kaiserslautern",karlsruhe:"Karlsruhe",kassel:"Kassel",kiel:"Kiel",kitzingen:"Kitzingen",koblenz:"Koblenz",koeln:"Cologne",konstanz:"Konstanz",krefeld:"Krefeld",leipzig:"Leipzig",leverkusen:"Leverkusen",luebeck:"Lübeck",ludwigsburg:"Ludwigsburg",ludwigshafen:"Ludwigshafen",luenen:"Lünen",magdeburg:"Magdeburg",mainz:"Mainz",mannheim:"Mannheim",marl:"Marl",moers:"Moers",monchengladbach:"Mönchengladbach",muelheim:"Mühlheim",muenchen:"Munich",muenster:"Münster",neuss:"Neuss",nuernberg:"Nuremberg",oberhausen:"Oberhausen",offenbach:"Offenbach",oldenburg:"Oldenburg",oranienburg:"Oranienburg",osnabrueck:"Osnabrück",paderborn:"Paderborn",pforzheim:"Pforzheim",potsdam:"Potsdam",ratingen:"Ratingen",recklinghausen:"Recklinghausen",regensburg:"Regensburg",remscheid:"Remscheid",reutlingen:"Reutlingen",rostock:"Rostock",saarbruecken:"Saarbrücken",salzburg:"Salzburg",salzgitter:"Salzgitter",schwerin:"Schwerin",siegen:"Siegen",solingen:"Solingen",stuttgart:"Stuttgart",trier:"Trier",tuebingen:"Tübingen",ulm:"Ulm","villingen-schwenningen":"Villingen-Schwenningen",wien:"Vienna",wiesbaden:"Wiesbaden",witten:"Witten",wolfsburg:"Wolfsburg",worms:"Worms",wuppertal:"Wuppertal",wuerzburg:"Würzburg",zurich:"Zurich",zwickau:"Zwickau"},tableOfContents:{title:"Table of Contents"},citiesAustria:{vienna:"Vienna",graz:"Graz",linz:"Linz",salzburg:"Salzburg",innsbruck:"Innsbruck",klagenfurt:"Klagenfurt",villach:"Villach",wels:"Wels"},citiesSwitzerland:{zuerich:"Zürich",geneva:"Geneva",basel:"Basel",lausanne:"Lausanne",bern:"Bern",winterthur:"Winterthur",lucerne:"Lucerne","sankt-gallen":"Sankt Gallen",lugano:"Lugano",biel:"Biel/Bienne"},citiesDenmark:{copenhagen:"København",aarhus:"Aarhus",odense:"Odense",aalborg:"Aalborg",esbjerg:"Esbjerg",randers:"Randers",kolding:"Kolding",vejle:"Vejle"},citiesUK:{london:"London",birmingham:"Birmingham",manchester:"Manchester",leeds:"Leeds",newcastle:"Newcastle",glasgow:"Glasgow",liverpool:"Liverpool",portsmouth:"Portsmouth",southampton:"Southampton",nottingham:"Nottingham",bristol:"Bristol",sheffield:"Sheffield","kingston-upon-hull":"Kingston upon Hull",leicester:"Leicester",edinburgh:"Edinburgh",cardiff:"Cardiff","stoke-on-trent":"Stoke-on-Trent",coventry:"Coventry",reading:"Reading",bradford:"Bradford"},generic:{new:"new",loading:"Loading..."},signUpForm:{title:"Delicious HR ideas and delicious team content",subtitle:"Delicious ideas for all who make their teams happy",button:"Sign me up!",socialIconLabel:"Join the community",emailRequired:"Email is required",checkboxLabel:"I agree to receive emails with the understanding that I may easily opt-out of these communications at any time after signing up.",correctFormatEmail:"Please enter a valid email address",errorMessage:"Subscription was unsuccessful",successMessage:"Thank you for subscribing to our newsletter"},benefits:{title:{part1:"There are always good reasons to celebrate.",part2:"And for heycater! - Your catering platform"},nr1:"We are No. 1 in Europe",customerCount:"Over {{count}} Customers",catererCount:"{{count}} Catering partner in Germany",satisfaction:"{{percent}}% Satisfaction",personalService:"Personal service, with every order",quickAndFree:"Punctual, as ordered & always tasty",gb:{nr1:"Europe’s Number one solution",topCaterers:"+ 700 Top Caterers"}},countries:{germany:"Germany",austria:"Austria",switzerland:"Switzerland"},occasion:{variationA:{business_lunch:"Lunch"},breakfast:"Breakfast",buffet:"Buffet",business_lunch:"Business Lunch",cakes_and_sweets:"Cake & Sweets",drinks:"Drinks & Cocktails",drinks_short:"Drinks",fingerfood:"Fingerfood",street_food:"Foodtruck",bbq:"BBQ",christmas:"Christmas",summer_party:"Summer Party",fine_dining:"Dinner & Fine Dining",fine_dining_short:"Dinner"},navigation:{catering:"Catering",individualOffer:"Individual Offers",bookAProvider:"Book a provider yourself",brandedMarketplace:"Branded Marketplace",aiAssistantCateBeta:"AI Assistant Cate (beta)",onlineKantine:"Online canteen",eventManagement:"Event management",forPartners:"For partners",sustainability:"Sustainability",services:"Services",marketplace:"Marketplace",virtualEvents:"Virtual Events",events:"Events",partner:"Become a partner",howItWorks:"How it works",costs:"Catering Costs & Calculations",about:"About us",heycater:"heycater!",jobs:"Jobs",press:"Press",hub:"Blog",signIn:"Sign In",signOut:"Sign out",account:"Account",questions:"Questions? ",imprint:"Imprint",terms:"Terms & Conditions",privacy:"Privacy",career:"Career",blog:"Blog",officeSupplies:"Office Supplies",officeSupply:"Office Stationary",drinksSnacks:"Drinks & Snacks",more:"More",certifiedCaterers:"570+ certified Caterers",timeUntilOffer:"Get an offer within 4 hours",heykantine:"Heykantine"},labels:{previous:"Previous",cancel:"Cancel",done:"Done",next:"Next",back:"Back",continueTo:"Continue to {{ question }}",all:"All",findCaterers:"Find Caterers",findCaterersNow:"Find Caterers Now",requestCaterersNow:"Request catering now",requestCaterersCTA:"Get free quotes within 4 hours",findCatering:"Find Catering",findVirtualEvents:"Find Virtual Events",selectCity:"Select your city",whichCity:"In which city do you need catering?",requestCatering:"Request Catering",other:"Other",requestIndividualOffer:"Request individual offer",requestOffer:"Request Offer",notSure:"Not sure",showMore:"Show more"},validations:{required:"This is a required field",email:"Must be valid email",number:"Must be valid number"},algolia:{catering_categories:{home_office:"Home Office Packages",street_food:"Foodtruck/Streetfood",bbq:"BBQ",fine_dining:"Dinner & Fine Dining",breakfast:"Breakfast",business_lunch:"Business Lunch",fingerfood:"Fingerfood & Snacks",cakes_and_sweets:"Cake & Sweets",buffet:"Buffet",drinks:"Drinks & Cocktails",event:"Event",easter:"Easter",halloween:"Halloween",christmas:"Christmas",specials:"Specials"},dietary_restrictions:{vegan:"Vegan",vegetarian:"Vegetarian",gluten_free:"Gluten Free"}},days_of_week:{monday:"Monday",tuesday:"Tuesday",wednesday:"Wednesday",thursday:"Thursday",friday:"Friday",saturday:"Saturday",sunday:"Sunday"},questions:{catering_categories:"catering type",degree_of_satiation:"satiation",event_date:"event date",dietary_restrictions:"diets",lead_type:"request type",min_order_number:"Number of people",budget:"budget",budgetProPerson:"Budget pro Person",totalBudget:"Total Budget",services:"services"},trustedShops:{ratingText:"Very good",ratingCount:"{{amount}} reviews"},action:{readMore:"Read More",collapse:"Collapse"},preposition:{from:"from"}},static_pages:{caterings:{event:"Event Catering in ",lunch:"Lunch Catering in ",breakfast:"Breakfast Catering in ",christmas:"Christmas Party Catering in ",buffet:"Buffet Catering in ",fingerFood:"Finger Food Catering in ",gourmet:"Gourmet Catering in "},homepageRedesign:{hero:{title:"Compare & book business catering",subtitle:"Find the best caterers in your city",benefits:["Personalised advice","3 customised offers in 24h","100% satisfaction guarantee"]},ctaLabel:"Request catering now",ctaSubtext:"Free of charge & without obligation",customers:{title:"heycater! Customers"},benefits:{title:"We are your\nNr. 1 catering platform",activeCustomers:"active customers",organisedEvents:"caterings organised",certifiedCaterers:"certified caterers",satisfactionPercent:"customer satisfaction"},steps:{title:"4 steps to catering enjoyment",subtitle:"We are at your side with personal advice.",step1:"Make a catering enquiry",step2:"Specify event details & wishes",step3:"Select\noffer",step4:"Adjust catering\nat short notice"},circularBenefits:{title:"Your benefits",subtitle:"Individual, tailor-made catering for your office or event without much effort",benefits:{satisfaction:{title:"100% satisfaction guarantee",description:"Our promise reflects our deep commitment to quality, reliability and customer satisfaction and guarantees that you can rely on us 100%."},personalized:{title:"Personalised support",description:"You will receive personalised specialist advice from our team of experts throughout the entire process and you can reach them at any time."},bestPrices:{title:"Best value for money",description:"heycater! stands for quality at fair and competitive prices. You tell us your budget and we will create suitable offers that take into account both your culinary wishes and your budget."},simple:{title:"Simple online booking",description:"You will receive free access to your personal customer account. From the menu to payment, you handle everything online via your account."},fast:{title:"3 offers in 24h",description:"We'll make you three customised offers in 24 hours - all you have to do is decide and save yourself the hassle."}}},guarantees:{ourService:"Our service promise",title:"The heycater! Satisfaction Guarantee",subtitle:"Our promise to you: Business catering that makes you and your guests happy",list:{provenCaterers:{title:"100% certified caterers",description:"We work exclusively with <0>high-quality</0> and <0>approved catering partners</0>. Your satisfaction is important to us, which is why we always collect reviews so that we can introduce you to the best caterers."},reliable:{title:"Reliability in every situation",description:"If a <0>caterer unexpectedly cancels</0>, we will stand by your side and organise a <0>replacement</0> as quickly as possible. This will ensure that your event is still a complete success."},promise:{title:"Our service promise",description:"If something does not go to your satisfaction, we will take care of <0>complaint management</0> and refund you (pro rata) if necessary."},insured:{title:"Insured up to €3,000,000",description:"In the rare event that a caterer arranged by us causes property damage, you are insured by us with a sum insured of <0>up to €3,000,000</0>"}}},aboutUs:{title:"We are heycater!",subtitle:"The team behind your events",description:"We at heycater! have made it our mission to make business catering easy, fast and absolutely uncomplicated. Today, over 2,500 active business customers and 500 catering partners in the largest cities in Germany, Austria and Switzerland work with heycater! Whether it's a team lunch or a large event: our catering experts always strive to find the perfect caterer for your request and offer you the best service."},ourServices:{title:"Our catering services",titleShort:"Our services",subtitle:"Whether regular employee catering or individual event catering - we have a suitable solution for you!",services:{marketplace:{title:"heycater!\nMarketplace",description:"You like to get creative yourself? Then choose the best from our partners and offers and organise your catering yourself via the heycater! Marketplace yourself.",cta:"To the providers"},offer:{title:"heycater!\nOffer Service",description:"The heycater! offer service provides you with tailor-made catering for your event. Give us the details and choose from three customised offers.",cta:"Request catering now"},foodProgram:{title:"heycater!\nFood Programme",description:"The heycater! Food Program is our tailor-made solution for companies with regular catering needs - flexible, centralised and demand-oriented",cta:"Book a consultation appointment"}}},cards:{title:"Find the right catering for your event:",subtitle:"BBQ catering, a foodtruck, a fingerfood buffet or a mobile cocktail bar for your company event - the choice is yours!"},genericCta:{title:"Hangry is unfortunately out",subtitle:"Book your catering without stress, for any occasion"}},homepage:{variationA:{meta:{title:"Compare & book catering services | heycater!",description:"Order and manage catering with our professional solutions."},qf:{title:"The platform for <0>business catering, events, lunch solutions</0> – and happy teams!",header:"What type of catering do you need for your next event?"},steps:{step1:"Submit a catering request",step2:"Provide event details",step3:"Choose your favorite offer",step4:"Enjoy the catering"}},meta:{title:"Compare & book catering services | heycater!",description:"Order and manage catering with our professional solutions."},inspiration:{title:"Hungry for inspiration?",description:"Check out our 3 latest articles",more:"More Inspiration"},ourTeam:{title:"We are heycater!",subtitle:"The team behind your events.",description:"Whether lunch or a big event: Book catering without stress and back and forth. From the menu to the payment, you handle everything directly online.",buttonLabel:"More about heycater!"},getItDone:{title:"Get it all done with heycater!",subtitle:"Centralize your catering requests, bookings, event as well as billing details on a single platform to organize yourself even more efficiently.",section1:{title:"Easy, fast and absolutely straightforward",content:"Whether lunch or a big event: Book catering without stress and back and forth. From the menu to the payment, you handle everything directly online."},section2:{title:"No wishes\nremain unfulfilled",content:"Breakfast or BBQ. Vegan, halal or gluten-free. Foodtruck or fine dining. Create your own menu or professional service. It's all here. You just have to decide."},section3:{title:"Here are professionals\nat work",content:"The event must be perfect? Then get support! We will make you three tailor-made offers in 24 hours. Or just put everything together yourself. As you like."}},areYouProfessionalSection:{title:"Are you the professional or should we go for it?",subtitle:"You call the shots. Do you want to put together your own catering or do you need help? With us you have two options.",askUs:{title:"Make request with us",description:"Your wish is our command! Our catering experts will create 3 customized offers for you. Ideal for special occasions.",cta:"Make a request"},doYourself:{title:"Book a provider yourself",description:"You like to be creative yourself? Then choose the best for your catering from our partners and offers.",cta:"To the providers"}},citySelectorPills:{title:"Choose your city for a catering:",otherCity:"Other city"},businessCatering:{title:"Compare and book business catering",collapsed:"The easiest way to compare catering companies in your city. Finger food, trade fair catering, cold or warm buffets - the choice is yours! heycater! also supports you in event planning",services:{title:"Book catering services for your corporate event",description:"Every great event includes the type of catering that considers the needs of its guests and that offers a selection of healthy and delicious food. Are you planning a business event and looking for a professional caterer? Choosing a suitable caterer from the numerous catering services available in big cities like Berlin, Hamburg, or Cologne can be challenging. heycater! simplifies your search and matches you with the perfect caterer. Whether you want to invite clients for breakfast, plan your company's summer party, or offer catering during a workshop, we have suitable caterers for all dietary requirements, any event size, and for every occasion."},yourCity:{title:"The easiest way to compare catering companies in your city",description:{a:"With heycater! you no longer have to search through pages of search results and make inquiries at numerous different catering companies. Simply select the city, the date of the event, and the number of people to be catered for. In addition, you can filter by type of catering and dietary requirements to get an overview of all the appropriate offers available. ",b:"Our selection of providers is constantly expanding, so you can choose from catering in ",and:"and ",c:" as well as many other cities. However, if you don't want to spend time searching, you can send an individual ",request:"request",d:" to us directly. Simply contact us and our catering experts will get back to you."}},selection:{title:"Finger food, trade fair catering, cold or warm buffets – the choice is yours!",description:{a:"The requirements for first-class catering are as varied as the occasion and the guests. From a company Christmas or summer party, to team-building events, press events, workshops or meetings with business partners: assembling the right menu is no easy task. Are there vegetarians or vegans amongst your guests, or are there any other food restrictions you need to consider? With heycater! you can order menus for all diets and occasions. On our platform you will find everything from ",fingerFood:"finger food",to:", to ",breakfast:"breakfast catering",b:", vegan and vegetarian catering, ",gourmet:"gourmet menus",and:", and ",buffet:"buffets",c:"Business catering doesn't have to be boring. Gone are the days of sad skewers and canapés – instead, why not consider a food truck for the summer party, or plates of exquisite international finger food? Our caterers also offer traditional regional specialties. From the versatile starter platter, to hot and cold main courses and imaginative desserts, there is a wide variety of menus to choose from.",d:"But, you can always rely on one thing: we choose our caterers with precision. So, you can be sure that the catering you order is delicious, of the highest quality, and delivered on time. We also rely on transparent costs and communication. The offer creation is free of charge for you. Do you have any further questions about prices, procedures, or menus? Just send us an inquiry and our catering experts will get in touch!"}},event:{title:"heycater! also helps you plan your event",description:{a:"With heycater! it's not just the selection of the perfect caterer that's a piece of cake. Our experts can also help you with the conception and planning of your corporate event. Whether it's finding a suitable location for your Christmas party, a summer celebration, or a different kind of event for your employees or clients, we've got your back with our insider tips and first-class event service. On our blog you can also find some great ideas for planning your event - from chic venues in your city to the latest food trends. Feel free to contact us and we will support you with the entire planning process, not just with booking your corporate caterer.",b:"Fill out the offer form now and receive a free, non-binding, individual catering offer that fits your requirements!"}},button:"Find a caterer"}},marketingPages:{cateringCost:{metaTitle:"Catering Cost and Price"},certifiedSection:{title:"All caterers are certified by us",description:"To meet our quality standards, all our caterers go through a rigorous certification process to make your catering experience a memorable one."},sidebar:{title:"Book Catering for your event",body:"Find and book the perfect catering from your choice of 309 Caterers",cta:"Find Catering"},hero:{foodtruckCTA:"Find Food trucks",generalCTA:"Find caterers"},howItWorksCTA:{title:"Simply organize catering in minutes",section1:{title:"Submit online request",content:"Share your catering details and wishes with us"},section2:{title:"Select offer",content:"Receive customized offers from certified caterers"},section3:{title:"Book & Enjoy",content:"Book the best catering for your guests"}},partnersCTA:{title:{a:"Together we are",b:"one team"},subtitle:"Market leader since 2015 with > 3.500 happy business customers"},seaPage:{valueProposition:{title:{a:"We",b:"support",c:"your togetherness"},section1Title:"Save Time & Money",section1Content:"More freedom in everyday life with the efficient online ordering via heycater! Organizing caterings down to the last detail now works in no time at all.",section2Title:"Largest Selection of Caterers",section2Content:"Everything for a beautiful catering experience. Compare, browse and find what you need from the largest national selection of caterers.",section3Title:"Quality & Safety",section3Content:"We look closely: All our caterers are quality checked for gastronomic certifications, food and hygiene.",section4Title:"Reliable & personal Service",section4Content:"We are there when you need us. Our service team personally keeps track so that you have even more time for the really important tasks."}},caterer:{title:{a:"Win new customers and get",b:"more orders"},subtitle:"Sell more catering with your trusted marketplace",startNow:"Get started",title2:{a:"Grow you catering business",b:"easily",c:""},section1Title:"More Revenue",section1Body:"Our figures speak for themselves: 94% of heycater! orders are additional revenue for your company. Every incoming order means more money for you, paid on time twice a month.",section2Title:"100% risk-free",section2Body:"You set your parameters. We deliver only relevant orders that drive your business. No hidden costs, that's our promise.",section3Title:"Less work",section3Body:"We automate time-consuming work processes, take care of online marketing, customer service and payment, leaving more time for the essential.",title3:{a:"With our software you keep the",b:"overview"},step1Title:"Questionnaire",step1Body:"Send us details about your business",step2Title:"Upload menus",step2Body:"Upload your menus online",step3Title:"Receive Orders",step3Body:"Receive orders and free support",subtitle4:"Market-leading B2B catering marketplace since 2015 with 3,500+ customers and 500+ partners across Europe",caption4:"Thank you for doing such a great job and just being so honest and empathetic to the caterers.",title5:{a:"Win new customers and get",b:"orders"}},businessCateringAnfrage:{metaTitle:"Business catering for offices - make a non-binding inquiry now",metaDescription:"Here you will find the most delicious caterers in your city! Tell us your wishes and receive great offers quickly and without obligation!",pitchItems:{a:"Best customer service",b:"500+ Caterers",c:"Non-binding offers"},headerText:"Business-Catering with heycater!",ctaName:"Inquire business catering"},catererApplication:{metaTitle:"Become a catering partner with heycater!",metaDescription:"Grow your catering business and get new customers by partnering with heycater!",pitchItems:{a:"More revenue",b:"100% risk-free",c:"Less work"},headerText:"Business-Catering with heycater!",ctaName:"Inquire business catering"}},partnerLandingPage:{ourCustomers:"Our customers",infoBoxes:{title:"heycater! in numbers",caterers:"certified caterers",customers:"active customers",caterings:"caterings carried out",increaseInSales:"Increase in sales"},ourPartners:{title:"Our partner",legend:"and over 500 more"},partnerships:{title:"Partnerships",subtitle:"Our partnerships",items:[{title:"Vytal x heycater!",description:"heycater! has a partnership with Vytal, a company that offers reusable packaging for food. As a partner, you can promote the use of reusable packaging, which reduces single-use waste and thus reduces the environmental impact."},{title:"Uber Direct x heycater!",description:"Thanks to the cooperation with Uber Direct, you as our catering partner can flexibly outsource the delivery and offer it even when your own delivery capacities are exhausted. This gives you the opportunity to focus more on your core business."},{title:"Climate Extender",description:"As a member of the Climate Partner Initiative, heycater! is actively committed to climate protection. This can be done through various measures, such as offsetting CO2 emissions or supporting projects that promote renewable energies."}]}},customerLandingPage:{stepsToCatering:{title:"Three simple steps to great catering",cityTitle:"Enter your city",cityBody:"Select your catering location",compareTitle:"Compare caterers",compareBody:"Find your ideal caterer",enjoyTitle:"Book & enjoy",enjoyBody:"Add your details and confirm your booking"},trustedBy:"Join 3,500+ satisfied heycater! customers",requestForm:{titleMobile:"Need help finding the right caterer?",title:"Need help finding the <0>right caterer</0>?",subtitle:"Get in touch and let our team of experts find the ideal caterer.",firstName:"First name",lastName:"Last name",email:"Email",phone:"Phone",company:"Company",submit:"Submit",isRequired:"Is required.",phoneError:"Please enter a valid phone number",correctFormatEmail:"Please enter a valid email address"},footerTitle:"Book great caterers for all your company needs",footerCta:"Find caterers",citySelector:"Enter your city to find caterers near you",citySelectorMobile:"Enter your city",searchButton:"Find caterers",successMessage:"Thank you for your request! We will contact you personally as soon as possible."},socialProofBar:{text1:"#1 business catering platform in Europe",text2:"3,500+ business customers",text3:"500+ catering partners",text4:"95% customer satisfaction"},footerCTA:{title:"Hangry is out. \nBook your food truck catering without stress, for any occasion."},baseHero:{title:"Catering that makes your team <0>happy</0>",subtitle:"Book the best business catering providers in your city: \nsuper easy and super delicious",cta:"Find Caterer in Berlin",trust:{quote:'"Excellent catering for teams"'},successfulCaterings:"successful Caterings",trustedByMore:"More than 3,500 customers use heycater!",trustedBy:"3500 customers use heycater!"},baseHeroAlternate:{title:"Find suitable catering online",citySelectLabel:"or select a city",trustedShopsScoreAlt:"Trusted Shops Score: Very good",benefits:{punctuality:"On time and on point",satisfiedCustomers:"98,7% satisfied customers",personalService:"Personal service from experts",certifiedCaterers:"578 certified caterers across Germany"}},virtualEventsHero:{title:{a:"Virtual Events for your",b:"togetherness"},titleAlt:"Virtual Events for your togetherness",subtitle:"Find and book everything you need for your virtual events and start sparking joy."},articleCards:{readMore:"Read more"},catererCards:{cta:"Caterer anfragen",seeCaterer:"See Caterer",see:"See",vegetarian:"Vegetarian",vegan:"Vegan",glutenFree:"Gluten Free",noReviewsYet:"no reviews yet",delivery:"Delivery: {{amount}}+",freeDelivery:"Delivery: from {{amount}}",orderFrom:"Order from: {{amount}}€",leadTime:"Lead Time: {{days}} day",leadTime_plural:"Lead Time: {{days}} days",yourSelectedCaterer:"Your caterer choice",ratingCount:"{{count}} rating",ratingCount_plural:"{{count}} ratings"},footerLinks:{cateringCategories:"Catering Categories",cities:"Cities",countries:"Countries",cateringIn:"Catering in {{city}}",categories:{fingerfood:"Fingerfood Catering",breakfast:"Breakfast Catering",foodTruck:"Food Truck",event:"Event Catering",buffet:"Buffet Catering",cocktail:"Mobile Cocktail Bar",coffee:"Mobile Coffee Bar",vegan:"Vegan Catering",bbq:"Grill Catering",summer_party:"Summer Party",company_party:"Company Party Catering"}},hey08Variation:{trustedBy:"3.500+ customers already book their catering with us"},trustedShops:{ratingText:"Very good",ratingCount:"{{amount}} reviews"}},qualification:{lastQuestionCTA:"Search 500+ Caterers",lastQuestionCTAShort:"Search",popularValues:"Popular values",budgetPerPerson:"Budget per Person",total:"Total Budget",steps:"Steps",amountPeople:"x{{ amount }} people",trustElement:{fast:"Fast service",biggest:"Germany’s biggest catering platform",best:"Find the best caterers"},customerTier:{title:"heycater! specializes in customers with regular catering needs",benefits:{title:"Your Benefits as a Regular Customer:",personal:"Personal Concierge Service",premium:"Access to our Premium Caterers",satisfaction:"100% Satisfaction Guarantee",customisations:"Unlimited Offers and Customizations"},form:{title:"How many caterings does your company organize per month?",subtitle:"Choose from the 3 frequencies:",options:{rarely:{title:"Rarely",subtext:"Irregularly for special occasions"},regularly:{title:"Regularly",subtext:"Several times per month"},frequently:{title:"Frequently",subtext:"Several times per week"}}}},rareCustomerTier:{footNote:"*I have regular needs",v1:{title:"Don't have regular needs? No problem!",benefits:{title:"Your Benefits:",subtitle:"Do you enjoy being creative on your own? Then our marketplace is just right for you!",first:"Up to 3 customized offers within 24 hours",second:"Time savings of up to 6 hours",third:"Easy online booking and phone support",fourth:"Access to over 500 certified caterers"},service:{title:"heycater! Service",subtitle:"For companies organizing a <strong>one-time</strong> event or catering",button:"Try for free",footer:"Offers for your <strong>first event are free,</strong> afterwards, offer creation costs €69 (credited towards booking)"}},v2:{bookYourself:{title:"Book Yourself",subtitle:"Enjoy being creative on your own? Then our marketplace is perfect for you!",button:"Browse Providers",bullets:{first:"Easy online booking",second:"Access to over 500 certified caterers",third:"100% Satisfaction Guarantee"}},service:{title:"heycater! Service",subtitle:"Want to leave the organization to the professionals and have a budget of over €500.",bullets:{first:"Receive 3 customized offers within 24 hours",second:"Personal consultation",third:"Easy online booking and flexible event adjustments"},button:"Try for free",footer:"Offers for your <strong>first event are free,</strong> afterwards, offer creation costs €69 (credited towards booking)"}}},embeddedFunnel:{serviceSelection:{title:"What are you planning?"},teamSize:{title:"How many employees are regularly on-site?",placeholder:"e.g. 50"},deliveryFrequency:{title:"How often should delivery happen?"},peopleCount:{title:"How many people will attend?",placeholder:"e.g. 100"},contactForm:{title:"Contact Information"},city:{title:"Choose your city:",title_meetings_events:"Choose your city:",title_regular_employee_catering:"Organize regular lunches for your team. Choose your city:",title_full_service_event:"Plan your corporate event including catering, location, and organization. Choose your city:",titleShort:"Choose your city:",nextTo:"Continue to the city selection"},cateringCategories:{variationA:{title:"What type of catering do you need for your next event?"},title:"Super delicious food for all occasions. Choose a catering type:",titleShort:"Choose a catering type:",subtitle:"Multiple selection possible",nextTo:"Continue to the category selection"},eventDate:{title:"When will your event take place?",subtitle:"Lead time must be at least 2 days",nextTo:"Continue to the date selection"},leadType:{title:"Is it a private or business event?"},minOrderNumber:{title:"Approximately how many people are to be fed?"},dietaryRestrictions:{title:"What should the distribution of diets be?",subtitle:"Based on our catering experience, 50% vegetarian, 30% meat and 20% vegan is an optimal distribution. You can adjust these values now or later.",nextTo:"Continue to the dietary distribution"},budget:{title:"What is your budget?",nextTo:"Continue to the budget selection"},budgetAndPeople:{title:"How many people are to be catered for and what is your budget?"},budgetRange:{title:"What is your estimated budget?"},customerTier:{title:"heycater! specializes in customers with regular catering needs",nextTo:"Next"},rareCustomerTier:{title:"Don't have regular needs? No problem!",nextTo:"Next"},success:{title:"Thank you for your request",subtitle:"We have received your request, and one of our catering experts will be in touch with you soon."}},questionTypes:{dateSelect:{noSelectionLabel:"I don't know yet"},multiDaySwitch:{label:"My event lasts several days",infoTooltip:"You can provide us with the duration of your multi-day event at a later time"},leadType:{switch:"I am a business customer",private:"Private",business:"Business"}},selection:{people:"{{ amount }} People",teamSize:"{{ amount }} Employees",yourSelection:"Your selection:",vegan:"{{ amount }} Vegans",vegetarian:"{{ amount }} Vegetarians",carnivore:"{{ amount }} Carnivores",budget:"{{ perPerson }}€ p.P. / {{ total }}€ Total Budget"},diet:{pax:"Number of people:"},findingCaterers:{pageTitle:"Finding Caterers...",listItem1:"Searching 500+ Caterers",listItem2:"Search parameters are being applied",listItem3:"Availabilities are checked"},bestseller:{title:"Curious? Our super delicious bestsellers:",label:"Your Bestseller Preference:",labelShort:"Your Preference:",delivery:"*plus delivery",select:"Request offer"},request:{pageTitle:"We have found suitable caterers!",signIn:{haveAnAccount:"Have an account?",register:"Sign in",email:"Email",password:"Password"},onSubmitErrors:{anErrorOccurred:"An error occurred",errorResettingPassword:"Error: Please send the email again",loginTokenInvalid:'Your log-in token has expired. Please set a new password by clicking "Forgot Password".',logInError:"The log-in was unsuccessful. Please try again."},formErrors:{emailRequired:"Email is required",correctFormatEmail:"Please enter a valid email address"},header:{title:"Congrats, we found several matching offers for you!",subtitle:"To be able to send you a customized offer, we need your contact information."},form:{firstName:"First Name",lastName:"Last Name",company:"Company",email:"Email",deliveryAddress:"Delivery Address",deliveryAddressPostalCode:"Postal Code",phone:"Phone",comment:"Comment (optional)",phoneError:"Please enter a valid phone number",commentPlaceholder:"What is important to know about your catering?",helpText:{email:"We'll send the offers to this address",phone:"For catering details and other questions concerning your request.",address:"The address is necessary to confirm that it’s within the delivery area of the caterer."},submit:"Send Request",showMore:"Show More",showLess:"Show Less"},labels:{missing:"missing",and:"and",address:{deliveryAddressPostalCode:"Postal Code",deliveryAddressStreetNumber:"Street Number",deliveryAddressStreet:"Street Name",deliveryAddressCity:"City",deliveryAddressCountry:"Country"}},thankYou:{pageTitle:"Thank you",header:{eyebrow:"Thank you, {{ firstName }}",title:"We have received your request",subtitle:"A confirmation of your request will be sent shortly to"},main:{stepOne:"Track your request in your account",stepTwo:"Coordinate event details with catering consultant",stepThree:"Get quotes and book your catering",buttonCta:"View request",customer:{stepOne:"Track the status of your request in the account",stepTwo:"We will call you and discuss the details",stepThree:"Get quotes and book your catering",buttonCta:"View request in account"}},footer:{title:"Questions? We're here for you!"}}},validations:{pricePerPerson:{lowForCategory:"A high quality {{category}} requires a budget of at least {{budget}} per person. Please adjust your input.",category:{breakfast:"breakfast catering",buffet:"buffet",business_lunch:"business lunch catering",cakes_and_sweets:"sweets catering",drinks:"drinks catering",fingerfood:"fingerfood buffet",street_food:"foodtruck catering",bbq:"BBQ catering",christmas:"christmas catering",summer_party:"summerparty catering",fine_dining:"dinner",other:"catering"}}}}},tq={en:{...eq},de:{...XV},da:{...eq}},nq={"en-uk":["en"],"en-de":["en"],"de-at":["de"],"de-ch":["de"],"de-de":["de"],"da-dk":["en"],da:["en"]};class rq{constructor({filters:e,locale:t}){this.filters=e,this.locale=t}generateLocalizedFieldValues(e){const t=tq[(e=>{const t=nq[e];return t?t[0]:e})(this.locale)].common.algolia;return Object.entries(t[e]).reduce((t,[n,r])=>(this.filters[e]||[]).includes(n)?[...t,r]:t,[])}localizedFieldName(e){return UM(this.locale)(e)}}function oq(e,t){var n;const r=new URL(mI("/cate/chat/start")),o=new URLSearchParams;if(e.city&&o.set("city",String(e.city)),null==(n=e.catering_categories)||n.forEach(e=>o.append("cateringCategories",String(e))),e.event_date instanceof Date&&!isNaN(e.event_date.getTime())){const t=e.event_date,n=String(t.getDate()).padStart(2,"0"),r=String(t.getMonth()+1).padStart(2,"0"),i=t.getFullYear();o.set("eventDate",`${n}.${r}.${i}`)}const i=e.number_of_vegans,a=e.number_of_vegetarians,s=e.number_of_carnivore;null!=i&&o.set("veganNumber",String(i)),null!=a&&o.set("vegetarianNumber",String(a)),null!=s&&o.set("omnivoreNumber",String(s));const l=[i,a,s].filter(e=>"number"==typeof e);return l.length?o.set("numberOfPeople",String(l.reduce((e,t)=>e+t,0))):null!=e.min_order_number&&o.set("numberOfPeople",String(e.min_order_number)),"number"==typeof e.price_per_person&&o.set("budgetPerPerson",String(Math.round(100*e.price_per_person))),t&&o.set("locale",t),r.search=o.toString(),r.toString()}function iq(e,t){const n=new rq({filters:e,locale:t}),r=e.city||"berlin",o={qualified:!0,lng:t,refinementList:{[n.localizedFieldName("catering_categories")]:n.generateLocalizedFieldValues("catering_categories")},range:{min_order_number:{max:e.min_order_number||0}}};return e.event_date&&(o.event_date=(new Date(e.event_date).getTime()/1e3).toFixed(0)),o.range.price_per_person={max:100*(e.price_per_person||0)},mI(`/catering/${r}?${pI.stringify(o)}`)}function aq(){const e=_E(),t=LE(),{actions:n,state:r}=ZO(),{currentUserAccount:o}=UO(),i=g.useRef(null);g.useEffect(()=>{var a,s;if(!("qualification"in r))return;const l=r.qualification.answers,u=function({user:e,answers:t,selectedCaterer:n,isGb:r=!1}){var o,i,a;if(r)return!0;const s=t.service_type;if("regular_employee_catering"===s||"meetings_events"===s||"full_service_event"===s)return!0;const l=!e&&t.lead_type===cN,u=(null==t?void 0:t.caterer_minimum_order_value)&&(null==t?void 0:t.caterer_minimum_order_value)>=500,c=!u,d="account-managed"===(null==(o=null==e?void 0:e.owner)?void 0:o.admStage),f=!!(null==(a=null==(i=null==e?void 0:e.owner)?void 0:i.salesforceCustomer)?void 0:a.isManagedAccount),p=!!t.has_recurring_need;if(n)return!0;if(l)return!1;if(u)return!0;if(c){if(p)return!0;if(f)return!0;if(d)return!0}return!1}({answers:l,user:o,selectedCaterer:null==(a=r.qualification)?void 0:a.selectedCaterer,isGb:t}),c=function({user:e,answers:t}){var n,r,o;const i=!e&&t.lead_type===cN;if(i)return!1;if("berlin"===t.city&&((null==(n=t.catering_categories)?void 0:n.includes("business_lunch"))||(null==(r=t.catering_categories)?void 0:r.includes("fingerfood"))||(null==(o=t.catering_categories)?void 0:o.includes("breakfast"))))return!0;return!1}({answers:l,user:o,selectedCaterer:null==(s=r.qualification)?void 0:s.selectedCaterer});return i.current=setTimeout(function(){u?n.qualify({to:"request"}):c?n.qualify({to:"cate",url:oq(l,e.locale)}):n.qualify({to:"marketplace",url:iq(l,e.locale)})},1800*Math.random()),()=>{i.current&&clearTimeout(i.current)}},[])}const sq=({variant:e})=>{const{t:t}=qd();return aq(),C.jsx(SM,{wrapper:"transparent",content:C.jsxs(lq,{textAlign:"center",children:[C.jsx(QV,{variant:e}),C.jsx(Qm,{mt:3,mb:1,children:t("qualification:findingCaterers.listItem1")}),C.jsx(Qm,{mb:1,children:t("qualification:findingCaterers.listItem2")}),C.jsx(Qm,{children:t("qualification:findingCaterers.listItem3")})]})})},lq=_p(Fm)`
|
|
1569
1569
|
color: var(--embedded-text-color, inherit);
|
|
1570
|
-
`;function uq(e,t){const n=g.useRef(!1),r=g.useRef(!1);g.useEffect(()=>{if(t.status===dg||t.status===fg||t.status===pg||t.status===hg)return void(r.current=!0);if(t.status!==cg)return void(n.current=!1);if(!("qualification"in t))return;const o={stepId:t.qualification.step.id,stepIndex:t.qualification.stepIndex},i=()=>{n.current||r.current||(!function(e,t){e.session_id||console.warn("[Tracking] trackAbandoned called with empty session_id",e);const n={funnel_mode:e.funnel_mode,session_id:e.session_id,total_steps:e.total_steps,step_id:t.step_id,step_index:t.step_index};e.service_type&&(n.service_type=e.service_type),e.city&&(n.city=e.city),nj("
|
|
1570
|
+
`;function uq(e,t){const n=g.useRef(!1),r=g.useRef(!1);g.useEffect(()=>{if(t.status===dg||t.status===fg||t.status===pg||t.status===hg)return void(r.current=!0);if(t.status!==cg)return void(n.current=!1);if(!("qualification"in t))return;const o={stepId:t.qualification.step.id,stepIndex:t.qualification.stepIndex},i=()=>{n.current||r.current||(!function(e,t){e.session_id||console.warn("[Tracking] trackAbandoned called with empty session_id",e);const n={funnel_mode:e.funnel_mode,session_id:e.session_id,total_steps:e.total_steps,step_id:t.step_id,step_index:t.step_index};e.service_type&&(n.service_type=e.service_type),e.city&&(n.city=e.city),nj("qf_v7_abandoned",n)}(e.current,{step_id:o.stepId,step_index:o.stepIndex}),n.current=!0)};let a;const s=()=>{document.hidden?a=setTimeout(i,3e3):clearTimeout(a)};return document.addEventListener("visibilitychange",s),()=>{document.removeEventListener("visibilitychange",s),clearTimeout(a)}},[t.status,"qualification"in t&&"step"in t.qualification?t.qualification.step.id:null])}const cq=v.forwardRef(({onBackground:e,highlightColor:t,ratings:n,slides:r,renderTitle:o,titleTranslationKeys:i,LayoutComponent:a=SM,mode:s="embedded",onCancel:l},u)=>{var c,d,f,p,h,m,v,y,b,w;const x=g.useRef(null),{state:k,actions:S,canContinue:E}=ZO({}),_=g.useRef({session_id:"",funnel_mode:s,service_type:"",total_steps:0}),L=g.useCallback(e=>{if(_.current={..._.current,...e},"undefined"!=typeof sessionStorage&&_.current.session_id)try{sessionStorage.setItem(`funnel_context_${_.current.session_id}`,JSON.stringify(_.current))}catch(Kq){}},[]);g.useEffect(()=>{!function(){if("undefined"!=typeof window&&"undefined"!=typeof sessionStorage)try{const e=[],t=864e5,n=Date.now();for(let r=0;r<sessionStorage.length;r++){const o=sessionStorage.key(r);if(o&&o.startsWith("funnel_started_")){const r=o.split("-")[1];r&&!isNaN(Number(r))&&n-Number(r)>t&&e.push(o)}}e.forEach(e=>sessionStorage.removeItem(e))}catch(Kq){}}()},[]),g.useLayoutEffect(()=>{var e,t,n;if(!("qualification"in k))return;const r=(null==(e=k.qualification.sessionInfo)?void 0:e.sessionId)||"",o=k.qualification.steps.filter(e=>!e.disabled).length,i=(null==(t=k.qualification.answers)?void 0:t.service_type)||"",a=null==(n=k.qualification.answers)?void 0:n.city;let s=null;if("undefined"!=typeof sessionStorage&&r)try{const e=sessionStorage.getItem(`funnel_context_${r}`);e&&(s=JSON.parse(e))}catch(Kq){}const l=(null==s?void 0:s.service_type)===i,u=a||(l?null==s?void 0:s.city:void 0);L({session_id:r,total_steps:o,service_type:(null==s?void 0:s.service_type)||i,...u?{city:u}:{}})},["qualification"in k?null==(c=k.qualification.sessionInfo)?void 0:c.sessionId:null,"qualification"in k?k.qualification.steps:null,"qualification"in k?null==(d=k.qualification.answers)?void 0:d.service_type:null,"qualification"in k?null==(f=k.qualification.answers)?void 0:f.city:null,L]),g.useEffect(()=>{x&&(null==x?void 0:x.current)&&x.current.scrollIntoView({inline:"nearest",block:"nearest",behavior:"smooth"})},[k.status]),uq(_,k);const O=g.useCallback(()=>{S.nextStep()},[S]);if(g.useEffect(()=>{k.status===pg&&gI(k.marketplaceUrl)},[k]),g.useEffect(()=>{k.status===hg&&gI(k.url)},[k]),k.status!==dg&&k.status!==cg&&k.status!==fg)return null;const M="answering"===k.status&&(null==(p=k.qualification.step)?void 0:p.id)||"";if(k.status===fg)return C.jsx(aj,{funnelContextRef:_,updateContext:L,currentStepId:M,children:C.jsx(FV,{ratings:n})});let j="light"===e?"dark":"light";M.includes("customer-")&&(null==(h=null==r?void 0:r.customerTier)?void 0:h.whiteWrapper)&&(j="dark"),"city"===M&&(null==(m=null==r?void 0:r.city)?void 0:m.whiteWrapper)&&(j="dark"),"catering_categories"===M&&(null==(v=null==r?void 0:r.category)?void 0:v.whiteWrapper)&&(j="dark"),"people_count_and_budget"===M&&(null==(y=null==r?void 0:r.budgetAndPeople)?void 0:y.whiteWrapper)&&(j="dark"),"dietary_restrictions"===M&&(null==(b=null==r?void 0:r.dietaryRestriction)?void 0:b.whiteWrapper)&&(j="dark"),"event_date"===M&&(null==(w=null==r?void 0:r.dateAndLead)?void 0:w.whiteWrapper)&&(j="dark");const T="fullscreen"===s,P=k.qualification.steps.filter(e=>!e.disabled),N=l||(()=>window.history.back());return C.jsx(aj,{funnelContextRef:_,updateContext:L,currentStepId:M,children:C.jsxs(dq,{$textColor:j,$mode:s,tabIndex:0,ref:u,"data-embedded-funnel":!0,"data-ph-capture-attribute-funnel-step":M||void 0,"data-ph-capture-attribute-funnel-mode":s,name:"step"in k.qualification?k.qualification.step.id:k.status,onSubmit:e=>{e.preventDefault(),O()},onKeyPressCapture:e=>{"Enter"===e.key&&E&&(e.preventDefault(),O())},children:[T&&k.status===cg&&C.jsx(UV,{currentStep:k.qualification.stepIndex+1,stepCount:P.length,onCancel:N}),C.jsx(Fm,{position:"absolute",top:"-120px",ref:x}),C.jsxs(Fm,{width:"100%",pb:T?0:6,flexGrow:1,display:"flex",flexDirection:"column",children:[k.status===cg&&C.jsx(JP,{slides:r,step:k.qualification.step,highlightColor:t,ratings:n,renderTitle:o,LayoutComponent:a,titleTranslationKeys:i,mode:s}),k.status===dg&&C.jsxs(C.Fragment,{children:[C.jsx(sq,{variant:"dark"===e?"light":"dark"}),C.jsx(Fm,{display:"none",children:C.jsx(FV,{ratings:n})})]})]})]})})}),dq=_p.form`
|
|
1571
1571
|
--embedded-text-color: ${({$textColor:e})=>"light"===e?"white":"rgb(60, 67, 64)"};
|
|
1572
1572
|
width: 100%;
|
|
1573
1573
|
position: relative;
|