@happychef/reservation-sidebar 2.4.4 → 2.4.5
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/index.js +2 -2
- package/dist/index.mjs +2 -2
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -15,8 +15,8 @@ Checking Time: ${L} -> Determined Meal: ${R}`),!R){f0(` Time ${L} has no associ
|
|
|
15
15
|
`);var hp=i0__default.default.memo(({formData:b,errors:O,handleChange:o,setFormData:q,menuData:e})=>{let a=kM(),n=w0(mp,"reservationStepTwoFiltering"),[u,s]=i0.useState([]),[f,L]=i0.useState(false),[i,R]=i0.useState(null),T=t1(),X=fa.FaMagic,h=()=>{i&&N();};i0.useEffect(()=>{if(o1.default.locale(a),!b.date||!b.time||!e.length)return s([]);let g=(0, o1.default)(`${b.date} ${b.time}`,"YYYY-MM-DD HH:mm"),k=e.filter(H=>{let C=g.isBetween((0, o1.default)(H.startDate,"YYYY-MM-DD"),(0, o1.default)(H.endDate,"YYYY-MM-DD"),"day","[]"),x=(0, o1.default)(b.time,"HH:mm").isBetween((0, o1.default)(H.startHour,"HH:mm"),(0, o1.default)(H.endHour,"HH:mm"),"minute","[]"),Y=g.format("dddd").toLowerCase(),Q=(H.daysOfWeek||[]).map(M0=>M0.toLowerCase()),n0=!Q.length||Q.includes(Y);return C&&x&&n0});s(k);},[b.date,b.time,e,a]);let B=async()=>{if(f||i)return;let g=(b.email||"").trim().toLowerCase(),k=(b.phone||"").trim(),H=g&&[".com",".net",".be",".nl"].some(Y=>g.endsWith(Y)),C=!!k&&(k.startsWith("+32")?k.length>=12:k.length>=10);if(!H&&!C)return;let x=[];H&&x.push("email"),C&&x.push("phone");try{let Y=await T.post(`${window.baseDomain}api/autofill`,{email:g,phone:k});Y?.firstName&&Y?.lastName&&Y?.email&&Y?.phone&&R({...Y,sources:x});}catch{console.error("Autofill error");}};i0.useEffect(()=>{B();},[b.email,b.phone]);let N=()=>{i&&(q(g=>({...g,firstName:i.firstName,lastName:i.lastName,email:i.email,phone:i.phone})),L(true),R(null));},S=i0.useMemo(()=>{if(!i)return {email:{},phone:{}};let g=i.sources.includes("email")&&(b.email||"").trim().toLowerCase()===i.email.trim().toLowerCase(),k=i.sources.includes("phone")&&(b.phone||"").trim()===i.phone.trim(),H={rightIcon:X,onRightIconClick:h};return {email:g?{...H,tooltipContent:i0__default.default.createElement("div",null,i0__default.default.createElement("div",{style:{textAlign:"center",fontWeight:"bold"}},n.magic?.title),i0__default.default.createElement("div",null,i.firstName," ",i.lastName),i0__default.default.createElement("div",null,i.phone))}:{},phone:k?{...H,tooltipContent:i0__default.default.createElement("div",null,i0__default.default.createElement("div",{style:{textAlign:"center",fontWeight:"bold"}},n.magic?.title),i0__default.default.createElement("div",null,i.firstName," ",i.lastName),i0__default.default.createElement("div",null,i.email))}:{}}},[i,b.email,b.phone,n.magic?.title]);return i0__default.default.createElement("div",{className:"reservation-step-two"},i0__default.default.createElement("div",{className:"account-manage-form"},u.length>0&&i0__default.default.createElement(C0,{label:n.labels?.menu||"Menu",name:"menu",type:"select",options:u.map(g=>({value:g.name,label:g.name})),value:b.menu,onChange:o,error:O.menu}),i0__default.default.createElement("div",{className:"name-fields"},i0__default.default.createElement(C0,{label:n.labels?.firstName||"Voornaam",name:"firstName",placeholder:n.placeholders?.firstName||"",value:b.firstName,onChange:o,error:O.firstName,icon:fa.FaUser}),i0__default.default.createElement(C0,{label:n.labels?.lastName||"Achternaam",name:"lastName",placeholder:n.placeholders?.lastName||"",value:b.lastName,onChange:o,error:O.lastName,icon:fa.FaUser})),i0__default.default.createElement(C0,{label:n.labels?.email||"Email",name:"email",type:"email",placeholder:n.placeholders?.email||"",value:b.email,onChange:o,onBlur:B,error:O.email,icon:fa.FaEnvelope,...S.email}),i0__default.default.createElement(C0,{label:n.labels?.phone||"Telefoon",name:"phone",type:"tel",placeholder:n.placeholders?.phone||"",value:b.phone,onChange:o,onBlur:B,error:O.phone,icon:fa.FaPhone,...S.phone}),i0__default.default.createElement(C0,{label:n.labels?.extraInfo||"Extra info",name:"extraInfo",type:"textarea",placeholder:n.placeholders?.extraInfo||"",value:b.extraInfo,onChange:o,error:O.extraInfo,icon:fa.FaInfoCircle})))});hp.displayName="ReservationStepTwo";var S2=hp;var yp={nl:{reservationStepTwoFiltering:{labels:{menu:"Menu",firstName:"Voornaam",lastName:"Achternaam",email:"E-mail",phone:"Mobiel nummer",extraInfo:"Extra info",seatPlace:"Zitplaats"},placeholders:{firstName:"Voornaam",lastName:"Achternaam",email:"E-mailadres",phone:"Mobiel nummer",extraInfo:"Extra informatie",seatPlace:"Selecteer zitplaats"},magic:{title:"Gast Gegevens"}},reservationSummary:{title:"Reservatie Gegevens",guests:"Aantal gasten",date:"Datum",time:"Tijd",firstName:"Voornaam",lastName:"Achternaam",email:"E-mail",phone:"Mobiel nummer",menu:"Menu",staff:"Aangemaakt door",giftcard:"Cadeaubon",extraInfo:"Extra informatie",seatPlace:"Zitplaats",newReservationButton:"Nieuwe Reservatie Maken"}},en:{reservationStepTwoFiltering:{labels:{menu:"Menu",firstName:"First Name",lastName:"Last Name",email:"Email",phone:"Mobile Number",extraInfo:"Extra Info",seatPlace:"Seating area"},placeholders:{firstName:"First Name",lastName:"Last Name",email:"Email Address",phone:"Mobile Number",extraInfo:"Extra Information",seatPlace:"Select seating area"},magic:{title:"Guest Details"}},reservationSummary:{title:"Reservation Details",guests:"Number of Guests",date:"Date",time:"Time",firstName:"First Name",lastName:"Last Name",email:"Email",phone:"Mobile Number",menu:"Menu",staff:"Created by",giftcard:"Gift Card",extraInfo:"Extra Information",seatPlace:"Seating area",newReservationButton:"New Reservation"}},fr:{reservationStepTwoFiltering:{labels:{menu:"Menu",firstName:"Pr\xE9nom",lastName:"Nom",email:"E-mail",phone:"Num\xE9ro de portable",extraInfo:"Informations suppl\xE9mentaires",seatPlace:"Zone d\u2019assise"},placeholders:{firstName:"Pr\xE9nom",lastName:"Nom",email:"Adresse e-mail",phone:"Num\xE9ro de portable",extraInfo:"Informations suppl\xE9mentaires",seatPlace:"S\xE9lectionner une zone d\u2019assise"},magic:{title:"D\xE9tails Invit\xE9"}},reservationSummary:{title:"D\xE9tails de la R\xE9servation",guests:"Nombre d'invit\xE9s",date:"Date",time:"Heure",firstName:"Pr\xE9nom",lastName:"Nom",email:"E-mail",phone:"Num\xE9ro de portable",menu:"Menu",staff:"Cr\xE9\xE9 par",giftcard:"Carte Cadeau",extraInfo:"Informations suppl\xE9mentaires",seatPlace:"Zone d\u2019assise",newReservationButton:"Nouvelle R\xE9servation"}}};R0(`.new-reservation-page .reservation-sidebar-component .reservation-summary .modal-title{margin-top:0;margin-bottom:20px}.new-reservation-page .reservation-sidebar-component .reservation-summary .reservation-details{list-style-type:none;padding:0;margin:0 0 20px;width:100%}.new-reservation-page .reservation-sidebar-component .reservation-summary .reservation-details li{margin-bottom:10px;font-size:15px;align-items:left;text-align:left}.new-reservation-page .reservation-sidebar-component .reservation-summary .reservation-details li strong{font-weight:700}.new-reservation-page .reservation-sidebar-component .reservation-summary{align-items:left}
|
|
16
16
|
`);var sq=({formData:b,onNewReservation:O})=>{let o=w0(yp,"reservationSummary");return i0__default.default.createElement("div",{className:"reservation-summary"},i0__default.default.createElement("ul",{className:"reservation-details"},i0__default.default.createElement("li",null,i0__default.default.createElement("strong",null,o.title)),i0__default.default.createElement("li",null,i0__default.default.createElement("strong",null,o.guests,":")," ",b.guests),i0__default.default.createElement("li",null,i0__default.default.createElement("strong",null,o.date,":")," ",b.date),i0__default.default.createElement("li",null,i0__default.default.createElement("strong",null,o.time,":")," ",b.time),i0__default.default.createElement("li",null,i0__default.default.createElement("strong",null,o.firstName,":")," ",b.firstName),i0__default.default.createElement("li",null,i0__default.default.createElement("strong",null,o.lastName,":")," ",b.lastName),i0__default.default.createElement("li",null,i0__default.default.createElement("strong",null,o.email,":")," ",b.email),i0__default.default.createElement("li",null,i0__default.default.createElement("strong",null,o.phone,":")," ",b.phone),b.menu&&i0__default.default.createElement("li",null,i0__default.default.createElement("strong",null,o.menu,":")," ",b.menu),b.personeel&&i0__default.default.createElement("li",null,i0__default.default.createElement("strong",null,o.staff,":")," ",b.personeel),b.giftcard&&i0__default.default.createElement("li",null,i0__default.default.createElement("strong",null,o.giftcard,":")," ",b.giftcard),b.extraInfo&&i0__default.default.createElement("li",null,i0__default.default.createElement("strong",null,o.extraInfo,":")," ",b.extraInfo),b.zitplaats&&i0__default.default.createElement("li",null,i0__default.default.createElement("strong",null,o.seatPlace,":")," ",b.zitplaats)),i0__default.default.createElement("button",{className:"button-style-3",onClick:O},o.newReservationButton))},E2=sq;var Sp={nl:{zitplaatsSelection:{labels:{seating:"Zitplaats"},options:{noPreference:"Geen voorkeur"}},giftcardSelection:{labels:{giftcard:"Cadeaubon"},options:{noGiftcard:"Geen Cadeaubon"}}},en:{zitplaatsSelection:{labels:{seating:"Seating"},options:{noPreference:"No preference"}},giftcardSelection:{labels:{giftcard:"Gift Card"},options:{noGiftcard:"No Gift Card"}}},fr:{zitplaatsSelection:{labels:{seating:"Place Assise"},options:{noPreference:"Pas de pr\xE9f\xE9rence"}},giftcardSelection:{labels:{giftcard:"Cadeau"},options:{noGiftcard:"Pas de carte"}}}};R0(`.new-reservation-page .giftcard-selection{margin-bottom:20px}.new-reservation-page .giftcard-options{display:flex;gap:20px;margin:10px 0}.new-reservation-page .giftcard-option{display:flex;align-items:center;gap:8px;cursor:pointer}.new-reservation-page .form-label{font-weight:500;margin-bottom:8px;display:block}.new-reservation-page .giftcard-option input[type=radio]{margin:0;cursor:pointer}.new-reservation-page .giftcard-option label{cursor:pointer}
|
|
17
17
|
`);var Lq=({restaurantData:b,formData:O,handleChange:o,resetFormDataFields:q})=>{let e=w0(Sp,"giftcardSelection"),[a,n]=i0.useState([]);if(i0.useEffect(()=>{if(!b)return;let f=["breakfast","lunch","dinner"],L=new Set;f.forEach(i=>{let R=b[`openinghours-${i}`]?.schemeSettings||{};Object.values(R).forEach(T=>{T?.giftcardsEnabled&&Array.isArray(T.giftcards)&&T.giftcards.forEach(X=>{let h=typeof X=="string"?X.trim():String(X||"").trim();h&&L.add(h);});});}),n([...L]);},[b]),!a.length)return null;let u=a.map(f=>({value:f,label:f})),s=f=>{o({target:{name:"giftcard",value:f.target.value}}),q(["date","time"]);};return i0__default.default.createElement("div",{className:"giftcard-selection"},i0__default.default.createElement(C0,{label:e.labels?.giftcard||"Giftcard",name:"giftcard",type:"select",options:u,value:O.giftcard||"",onChange:s,selectPlaceholder:e.options?.noGiftcard||"Geen giftcard"}))},v2=Lq;var vp={nl:{zitplaatsSelection:{labels:{seating:"Zitplaats"},options:{noPreference:"Geen voorkeur"}},giftcardSelection:{labels:{giftcard:"Cadeaubon"},options:{noGiftcard:"Geen Cadeaubon"}}},en:{zitplaatsSelection:{labels:{seating:"Seating"},options:{noPreference:"No preference"}},giftcardSelection:{labels:{giftcard:"Gift Card"},options:{noGiftcard:"No Gift Card"}}},fr:{zitplaatsSelection:{labels:{seating:"Place Assise"},options:{noPreference:"Pas de pr\xE9f\xE9rence"}},giftcardSelection:{labels:{giftcard:"Cadeau"},options:{noGiftcard:"Pas de carte"}}}};R0(`.new-reservation-page .zitplaats-selection{margin-bottom:15px}.new-reservation-page .zitplaats-selection select{width:100%;padding:10px;border-radius:4px;border:1px solid #ccc;background-color:#fff}
|
|
18
|
-
`);var Xq=({restaurantData:b,formData:O,handleChange:o,resetFormDataFields:q})=>{let[e,a]=i0.useState([]),n=w0(vp,"zitplaatsSelection");i0.useEffect(()=>{if(!b?.floors||!Array.isArray(b.floors))return;let L=new Set;b.floors.forEach(i=>(i.tables||[]).forEach(R=>{let T=typeof R.zitplaats=="string"?R.zitplaats.trim():String(R.zitplaats||"").trim();T&&L.add(T);})),a([...L].sort());},[b]);let u=L=>{let{value:i}=L.target;o({target:{name:"zitplaats",value:i}}),q(["date","time","selectedTableNumbers","selectedTableIds"]);},s=b?.["table-settings"]||{};return !(s.isInstalled===true&&s.assignmentMode==="automatic")||e.length===0?null:i0__default.default.createElement("div",{className:"zitplaats-selection"},i0__default.default.createElement("label",{htmlFor:"zitplaats",className:"form-label"},n.labels?.seating||"Zitplaats"),i0__default.default.createElement("div",{className:"input-container select-field"},i0__default.default.createElement("select",{id:"zitplaats",name:"zitplaats",value:O.zitplaats||"",onChange:u},i0__default.default.createElement("option",{value:""},n.options?.noPreference||"Geen voorkeur"),e.map(L=>i0__default.default.createElement("option",{key:L,value:L,className:"notranslate",translate:"no"},L)))))},C2=Xq;var k2=G0(O1());var Cp={nl:{reservationSidebar:{saveButton:"Opslaan",saveButtonLoading:"Opslaan..."}},en:{reservationSidebar:{saveButton:"Save",saveButtonLoading:"Saving..."}},fr:{reservationSidebar:{saveButton:"Enregistrer",saveButtonLoading:"Enregistrement..."}}};R0(`.reservation-sidebar-component{position:fixed;top:0;right:-400px;width:400px;height:100%;background-color:#fff;box-shadow:-2px 0 5px #0000001a;z-index:var(--z-index-sidebar-reservation);display:flex;flex-direction:column;overflow-y:auto;transition:right .3s ease-in-out}.admin-title{text-align:center;margin-bottom:30px}.reservation-sidebar-component.open{right:0}.reservation-sidebar-content{padding:60px 20px 20px}.close-sidebar-button{position:absolute;top:10px;left:10px;background-color:transparent;border:none;cursor:pointer}.close-sidebar-button svg{color:#000}.sidebar-section-one,.sidebar-section-two{margin-bottom:20px}.reservation-footer{margin-top:auto}.store-reservation-button{width:100%;padding:12px;background-color:var(--color-blue);color:#fff;border:none;border-radius:5px;cursor:pointer;font-size:1.1rem}.open-sidebar-button{position:fixed;bottom:20px;right:20px;background-color:var(--color-blue);color:#fff;border:none;border-radius:50%;width:50px;height:50px;cursor:pointer;z-index:var(--z-index-modal)!important;transition:all .3s ease}.open-sidebar-button:hover{background-color:var(--color-blue-hover-accent)!important}.open-sidebar-button svg{position:relative;top:2px}@media screen and (max-width:480px){.reservation-sidebar-component{width:100%}}.sidebar-section-personeel{margin-bottom:10px}
|
|
19
|
-
`);var Dp=i0.memo(({isOpen:b,onClose:O,formData:o,errors:q,handleChange:e,handleFinalSubmit:a,setFormData:n,isSubmitting:u,reservationSubmitted:s,onNewReservation:f,apiBaseDomain:L})=>{i0.useEffect(()=>{L&&!window.baseDomain&&(window.baseDomain=L);},[L]);let i=t1(),[R,T]=i0.useState([]),[X,h]=i0.useState(false),[B,N]=i0.useState(null),[S,g]=i0.useState([]),[k,H]=i0.useState({}),[C,x]=i0.useState([]),Y=i0.useMemo(()=>w0(Cp,"reservationSidebar"),[]),Q=i0.useCallback(L0=>{n(b0=>{let q0={...b0};return L0.forEach(_=>{q0[_]="";}),q0});},[n]);i0.useEffect(()=>{if(!b)return;h(true),(async()=>{try{let b0=window.baseDomain||"",[q0,_]=await Promise.all([i.get(`${b0}api/auth-restaurant/`,{noCache:!0}),i.get(`${b0}api/personeel`,{noCache:!0})]);T(q0.timeblocks||[]),window.timeblocks=q0.timeblocks||[],window.generalSettings=q0["general-settings"]||{},g(q0.menu||[]),H(q0||{});let w=(0,k2.default)().tz("Europe/Amsterdam").startOf("day"),W0=(_||[]).filter(K=>{let d0=(0,k2.default)(K.startDate,"YYYY-MM-DD").tz("Europe/Amsterdam").startOf("day"),U=(0,k2.default)(K.endDate,"YYYY-MM-DD").tz("Europe/Amsterdam").endOf("day");return w.isBetween(d0,U,null,"[]")});x(W0);}catch(b0){N(b0),console.error("Error fetching data:",b0);}finally{h(false);}})();},[b,i]);let n0=i0.useCallback(()=>{n({guest:2,date:"",time:"",firstName:"",lastName:"",email:"",phone:"",extraInfo:"",menu:"",personeel:"",giftcard:"",zitplaats:"",selectedTableNumbers:[],selectedTableIds:[],reservationMode:"met_limieten"}),f();},[f,n]),M0=i0.useMemo(()=>!!k?.["general-settings"]?.seatSelectionEnabled,[k]);return i0__default.default.createElement("div",{className:`reservation-sidebar-component ${b?"open":""}`},i0__default.default.createElement("div",{className:"reservation-sidebar-content"},i0__default.default.createElement("h2",{className:"admin-title"},"Admin Reservatie"),i0__default.default.createElement("button",{className:"close-sidebar-button",onClick:O,"aria-label":"Sluiten"},i0__default.default.createElement(fa.FaTimes,{size:20,color:"#000"})),s?i0__default.default.createElement(E2,{formData:o,onNewReservation:n0}):i0__default.default.createElement(i0__default.default.Fragment,null,k&&Object.keys(k).length>0&&i0__default.default.createElement("div",{className:"sidebar-section-giftcard"},i0__default.default.createElement(v2,{restaurantData:k,formData:o,handleChange:e,resetFormDataFields:Q})),k&&Object.keys(k).length>0&&M0&&i0__default.default.createElement("div",{className:"sidebar-section-zitplaats"},i0__default.default.createElement(C2,{restaurantData:k,formData:o,handleChange:e,resetFormDataFields:Q})),C.length>0&&i0__default.default.createElement("div",{className:"sidebar-section-personeel"},i0__default.default.createElement(C0,{label:"",name:"personeel",type:"select",options:C.map(L0=>{let b0=`${L0.voornaam} ${L0.achternaam}`;return {value:L0.id,label:b0}}),value:o.personeel,onChange:e,error:q.personeel,selectPlaceholder:"Toewijzen aan persoon"})),i0__default.default.createElement("div",{className:"sidebar-section-one"},i0__default.default.createElement(CM,{formData:o,errors:q,handleChange:e,setFormData:n,timeblocks:R,loadingTimeblocks:X,timeblocksError:B,restaurantData:k})),i0__default.default.createElement("div",{className:"sidebar-section-two"},i0__default.default.createElement(S2,{formData:o,errors:q,handleChange:e,setFormData:n,isSubmitting:u,menuData:S})),i0__default.default.createElement("div",{className:"reservation-footer"},i0__default.default.createElement("button",{type:"button",className:"store-reservation-button",onClick:a,disabled:u},u?Y.saveButtonLoading||"Opslaan...":Y.saveButton||"Opslaan")))))});Dp.displayName="ReservationSidebar";var hq=Dp;R0(`.account-manage-title{text-align:center;margin-bottom:30px}.account-manage-container{max-width:800px;margin:0 auto}.account-manage-form{display:flex;flex-direction:column;gap:15px}.input-container{position:relative}.input-icon{position:absolute;top:50%;left:10px;transform:translateY(-50%);color:#6c757d;pointer-events:none}.input-container input,.input-container textarea{width:100%;padding:10px 10px 10px 35px;border:1px solid #ccc;border-radius:5px;font-size:1rem;transition:border-color .3s ease}.form-error{color:#dc3545;font-size:.9rem;margin-top:5px;display:flex;align-items:center;gap:5px}.account-manage__button{padding:12px;background-color:var(--color-blue);color:#fff;border:none;border-radius:5px;cursor:pointer;font-size:1.1rem;display:flex;align-items:center;justify-content:center;gap:10px;transition:background-color .3s ease}
|
|
18
|
+
`);var Xq=({restaurantData:b,formData:O,handleChange:o,resetFormDataFields:q})=>{let[e,a]=i0.useState([]),n=w0(vp,"zitplaatsSelection");i0.useEffect(()=>{if(!b?.floors||!Array.isArray(b.floors))return;let L=new Set;b.floors.forEach(i=>(i.tables||[]).forEach(R=>{let T=typeof R.zitplaats=="string"?R.zitplaats.trim():String(R.zitplaats||"").trim();T&&L.add(T);})),a([...L].sort());},[b]);let u=L=>{let{value:i}=L.target;o({target:{name:"zitplaats",value:i}}),q(["date","time","selectedTableNumbers","selectedTableIds"]);},s=b?.["table-settings"]||{};return !(s.isInstalled===true&&s.assignmentMode==="automatic")||e.length===0?null:i0__default.default.createElement("div",{className:"zitplaats-selection"},i0__default.default.createElement("label",{htmlFor:"zitplaats",className:"form-label"},n.labels?.seating||"Zitplaats"),i0__default.default.createElement("div",{className:"input-container select-field"},i0__default.default.createElement("select",{id:"zitplaats",name:"zitplaats",value:O.zitplaats||"",onChange:u},i0__default.default.createElement("option",{value:""},n.options?.noPreference||"Geen voorkeur"),e.map(L=>i0__default.default.createElement("option",{key:L,value:L,className:"notranslate",translate:"no"},L)))))},C2=Xq;var k2=G0(O1());var Cp={nl:{reservationSidebar:{saveButton:"Opslaan",saveButtonLoading:"Opslaan..."}},en:{reservationSidebar:{saveButton:"Save",saveButtonLoading:"Saving..."}},fr:{reservationSidebar:{saveButton:"Enregistrer",saveButtonLoading:"Enregistrement..."}}};R0(`.new-reservation-page .reservation-sidebar-component{position:fixed;top:0;right:-400px;width:400px;height:100%;background-color:#fff;box-shadow:-2px 0 5px #0000001a;z-index:var(--z-index-sidebar-reservation);display:flex;flex-direction:column;overflow-y:auto;transition:right .3s ease-in-out}.new-reservation-page .admin-title{text-align:center;margin-bottom:30px}.new-reservation-page .reservation-sidebar-component.open{right:0}.new-reservation-page .reservation-sidebar-content{padding:60px 20px 20px}.new-reservation-page .close-sidebar-button{position:absolute;top:10px;left:10px;background-color:transparent;border:none;cursor:pointer}.new-reservation-page .close-sidebar-button svg{color:#000}.new-reservation-page .sidebar-section-one,.new-reservation-page .sidebar-section-two{margin-bottom:20px}.new-reservation-page .reservation-footer{margin-top:auto}.new-reservation-page .store-reservation-button{width:100%;padding:12px;background-color:var(--color-blue);color:#fff;border:none;border-radius:5px;cursor:pointer;font-size:1.1rem}.new-reservation-page .open-sidebar-button{position:fixed;bottom:20px;right:20px;background-color:var(--color-blue);color:#fff;border:none;border-radius:50%;width:50px;height:50px;cursor:pointer;z-index:var(--z-index-modal)!important;transition:all .3s ease}.new-reservation-page .open-sidebar-button:hover{background-color:var(--color-blue-hover-accent)!important}.new-reservation-page .open-sidebar-button svg{position:relative;top:2px}@media screen and (max-width:480px){.new-reservation-page .reservation-sidebar-component{width:100%}}.new-reservation-page .sidebar-section-personeel{margin-bottom:10px}
|
|
19
|
+
`);var Dp=i0.memo(({isOpen:b,onClose:O,formData:o,errors:q,handleChange:e,handleFinalSubmit:a,setFormData:n,isSubmitting:u,reservationSubmitted:s,onNewReservation:f,apiBaseDomain:L})=>{i0.useEffect(()=>{L&&!window.baseDomain&&(window.baseDomain=L);},[L]);let i=t1(),[R,T]=i0.useState([]),[X,h]=i0.useState(false),[B,N]=i0.useState(null),[S,g]=i0.useState([]),[k,H]=i0.useState({}),[C,x]=i0.useState([]),Y=i0.useMemo(()=>w0(Cp,"reservationSidebar"),[]),Q=i0.useCallback(L0=>{n(b0=>{let q0={...b0};return L0.forEach(_=>{q0[_]="";}),q0});},[n]);i0.useEffect(()=>{if(!b)return;h(true),(async()=>{try{let b0=window.baseDomain||"",[q0,_]=await Promise.all([i.get(`${b0}api/auth-restaurant/`,{noCache:!0}),i.get(`${b0}api/personeel`,{noCache:!0})]);T(q0.timeblocks||[]),window.timeblocks=q0.timeblocks||[],window.generalSettings=q0["general-settings"]||{},g(q0.menu||[]),H(q0||{});let w=(0,k2.default)().tz("Europe/Amsterdam").startOf("day"),W0=(_||[]).filter(K=>{let d0=(0,k2.default)(K.startDate,"YYYY-MM-DD").tz("Europe/Amsterdam").startOf("day"),U=(0,k2.default)(K.endDate,"YYYY-MM-DD").tz("Europe/Amsterdam").endOf("day");return w.isBetween(d0,U,null,"[]")});x(W0);}catch(b0){N(b0),console.error("Error fetching data:",b0);}finally{h(false);}})();},[b,i]);let n0=i0.useCallback(()=>{n({guest:2,date:"",time:"",firstName:"",lastName:"",email:"",phone:"",extraInfo:"",menu:"",personeel:"",giftcard:"",zitplaats:"",selectedTableNumbers:[],selectedTableIds:[],reservationMode:"met_limieten"}),f();},[f,n]),M0=i0.useMemo(()=>!!k?.["general-settings"]?.seatSelectionEnabled,[k]);return i0__default.default.createElement("div",{className:`reservation-sidebar-component ${b?"open":""}`},i0__default.default.createElement("div",{className:"reservation-sidebar-content"},i0__default.default.createElement("h2",{className:"admin-title"},"Admin Reservatie"),i0__default.default.createElement("button",{className:"close-sidebar-button",onClick:O,"aria-label":"Sluiten"},i0__default.default.createElement(fa.FaTimes,{size:20,color:"#000"})),s?i0__default.default.createElement(E2,{formData:o,onNewReservation:n0}):i0__default.default.createElement(i0__default.default.Fragment,null,k&&Object.keys(k).length>0&&i0__default.default.createElement("div",{className:"sidebar-section-giftcard"},i0__default.default.createElement(v2,{restaurantData:k,formData:o,handleChange:e,resetFormDataFields:Q})),k&&Object.keys(k).length>0&&M0&&i0__default.default.createElement("div",{className:"sidebar-section-zitplaats"},i0__default.default.createElement(C2,{restaurantData:k,formData:o,handleChange:e,resetFormDataFields:Q})),C.length>0&&i0__default.default.createElement("div",{className:"sidebar-section-personeel"},i0__default.default.createElement(C0,{label:"",name:"personeel",type:"select",options:C.map(L0=>{let b0=`${L0.voornaam} ${L0.achternaam}`;return {value:L0.id,label:b0}}),value:o.personeel,onChange:e,error:q.personeel,selectPlaceholder:"Toewijzen aan persoon"})),i0__default.default.createElement("div",{className:"sidebar-section-one"},i0__default.default.createElement(CM,{formData:o,errors:q,handleChange:e,setFormData:n,timeblocks:R,loadingTimeblocks:X,timeblocksError:B,restaurantData:k})),i0__default.default.createElement("div",{className:"sidebar-section-two"},i0__default.default.createElement(S2,{formData:o,errors:q,handleChange:e,setFormData:n,isSubmitting:u,menuData:S})),i0__default.default.createElement("div",{className:"reservation-footer"},i0__default.default.createElement("button",{type:"button",className:"store-reservation-button",onClick:a,disabled:u},u?Y.saveButtonLoading||"Opslaan...":Y.saveButton||"Opslaan")))))});Dp.displayName="ReservationSidebar";var hq=Dp;R0(`.new-reservation-page .account-manage-title{text-align:center;margin-bottom:30px}.new-reservation-page .account-manage-container{max-width:800px;margin:0 auto}.new-reservation-page .account-manage-form{display:flex;flex-direction:column;gap:15px}.new-reservation-page .input-container{position:relative}.new-reservation-page .input-icon{position:absolute;top:50%;left:10px;transform:translateY(-50%);color:#6c757d;pointer-events:none}.new-reservation-page .input-container input,.new-reservation-page .input-container textarea{width:100%;padding:10px 10px 10px 35px;border:1px solid #ccc;border-radius:5px;font-size:1rem;transition:border-color .3s ease}.new-reservation-page .form-error{color:#dc3545;font-size:.9rem;margin-top:5px;display:flex;align-items:center;gap:5px}.new-reservation-page .account-manage__button{padding:12px;background-color:var(--color-blue);color:#fff;border:none;border-radius:5px;cursor:pointer;font-size:1.1rem;display:flex;align-items:center;justify-content:center;gap:10px;transition:background-color .3s ease}
|
|
20
20
|
`);/*! Bundled license information:
|
|
21
21
|
|
|
22
22
|
moment/moment.js:
|
package/dist/index.mjs
CHANGED
|
@@ -15,8 +15,8 @@ Checking Time: ${L} -> Determined Meal: ${R}`),!R){f0(` Time ${L} has no associ
|
|
|
15
15
|
`);var hp=i0.memo(({formData:b,errors:O,handleChange:o,setFormData:q,menuData:e})=>{let a=kM(),n=w0(mp,"reservationStepTwoFiltering"),[u,s]=useState([]),[f,L]=useState(false),[i,R]=useState(null),T=t1(),X=FaMagic,h=()=>{i&&N();};useEffect(()=>{if(o1.default.locale(a),!b.date||!b.time||!e.length)return s([]);let g=(0, o1.default)(`${b.date} ${b.time}`,"YYYY-MM-DD HH:mm"),k=e.filter(H=>{let C=g.isBetween((0, o1.default)(H.startDate,"YYYY-MM-DD"),(0, o1.default)(H.endDate,"YYYY-MM-DD"),"day","[]"),x=(0, o1.default)(b.time,"HH:mm").isBetween((0, o1.default)(H.startHour,"HH:mm"),(0, o1.default)(H.endHour,"HH:mm"),"minute","[]"),Y=g.format("dddd").toLowerCase(),Q=(H.daysOfWeek||[]).map(M0=>M0.toLowerCase()),n0=!Q.length||Q.includes(Y);return C&&x&&n0});s(k);},[b.date,b.time,e,a]);let B=async()=>{if(f||i)return;let g=(b.email||"").trim().toLowerCase(),k=(b.phone||"").trim(),H=g&&[".com",".net",".be",".nl"].some(Y=>g.endsWith(Y)),C=!!k&&(k.startsWith("+32")?k.length>=12:k.length>=10);if(!H&&!C)return;let x=[];H&&x.push("email"),C&&x.push("phone");try{let Y=await T.post(`${window.baseDomain}api/autofill`,{email:g,phone:k});Y?.firstName&&Y?.lastName&&Y?.email&&Y?.phone&&R({...Y,sources:x});}catch{console.error("Autofill error");}};useEffect(()=>{B();},[b.email,b.phone]);let N=()=>{i&&(q(g=>({...g,firstName:i.firstName,lastName:i.lastName,email:i.email,phone:i.phone})),L(true),R(null));},S=useMemo(()=>{if(!i)return {email:{},phone:{}};let g=i.sources.includes("email")&&(b.email||"").trim().toLowerCase()===i.email.trim().toLowerCase(),k=i.sources.includes("phone")&&(b.phone||"").trim()===i.phone.trim(),H={rightIcon:X,onRightIconClick:h};return {email:g?{...H,tooltipContent:i0.createElement("div",null,i0.createElement("div",{style:{textAlign:"center",fontWeight:"bold"}},n.magic?.title),i0.createElement("div",null,i.firstName," ",i.lastName),i0.createElement("div",null,i.phone))}:{},phone:k?{...H,tooltipContent:i0.createElement("div",null,i0.createElement("div",{style:{textAlign:"center",fontWeight:"bold"}},n.magic?.title),i0.createElement("div",null,i.firstName," ",i.lastName),i0.createElement("div",null,i.email))}:{}}},[i,b.email,b.phone,n.magic?.title]);return i0.createElement("div",{className:"reservation-step-two"},i0.createElement("div",{className:"account-manage-form"},u.length>0&&i0.createElement(C0,{label:n.labels?.menu||"Menu",name:"menu",type:"select",options:u.map(g=>({value:g.name,label:g.name})),value:b.menu,onChange:o,error:O.menu}),i0.createElement("div",{className:"name-fields"},i0.createElement(C0,{label:n.labels?.firstName||"Voornaam",name:"firstName",placeholder:n.placeholders?.firstName||"",value:b.firstName,onChange:o,error:O.firstName,icon:FaUser}),i0.createElement(C0,{label:n.labels?.lastName||"Achternaam",name:"lastName",placeholder:n.placeholders?.lastName||"",value:b.lastName,onChange:o,error:O.lastName,icon:FaUser})),i0.createElement(C0,{label:n.labels?.email||"Email",name:"email",type:"email",placeholder:n.placeholders?.email||"",value:b.email,onChange:o,onBlur:B,error:O.email,icon:FaEnvelope,...S.email}),i0.createElement(C0,{label:n.labels?.phone||"Telefoon",name:"phone",type:"tel",placeholder:n.placeholders?.phone||"",value:b.phone,onChange:o,onBlur:B,error:O.phone,icon:FaPhone,...S.phone}),i0.createElement(C0,{label:n.labels?.extraInfo||"Extra info",name:"extraInfo",type:"textarea",placeholder:n.placeholders?.extraInfo||"",value:b.extraInfo,onChange:o,error:O.extraInfo,icon:FaInfoCircle})))});hp.displayName="ReservationStepTwo";var S2=hp;var yp={nl:{reservationStepTwoFiltering:{labels:{menu:"Menu",firstName:"Voornaam",lastName:"Achternaam",email:"E-mail",phone:"Mobiel nummer",extraInfo:"Extra info",seatPlace:"Zitplaats"},placeholders:{firstName:"Voornaam",lastName:"Achternaam",email:"E-mailadres",phone:"Mobiel nummer",extraInfo:"Extra informatie",seatPlace:"Selecteer zitplaats"},magic:{title:"Gast Gegevens"}},reservationSummary:{title:"Reservatie Gegevens",guests:"Aantal gasten",date:"Datum",time:"Tijd",firstName:"Voornaam",lastName:"Achternaam",email:"E-mail",phone:"Mobiel nummer",menu:"Menu",staff:"Aangemaakt door",giftcard:"Cadeaubon",extraInfo:"Extra informatie",seatPlace:"Zitplaats",newReservationButton:"Nieuwe Reservatie Maken"}},en:{reservationStepTwoFiltering:{labels:{menu:"Menu",firstName:"First Name",lastName:"Last Name",email:"Email",phone:"Mobile Number",extraInfo:"Extra Info",seatPlace:"Seating area"},placeholders:{firstName:"First Name",lastName:"Last Name",email:"Email Address",phone:"Mobile Number",extraInfo:"Extra Information",seatPlace:"Select seating area"},magic:{title:"Guest Details"}},reservationSummary:{title:"Reservation Details",guests:"Number of Guests",date:"Date",time:"Time",firstName:"First Name",lastName:"Last Name",email:"Email",phone:"Mobile Number",menu:"Menu",staff:"Created by",giftcard:"Gift Card",extraInfo:"Extra Information",seatPlace:"Seating area",newReservationButton:"New Reservation"}},fr:{reservationStepTwoFiltering:{labels:{menu:"Menu",firstName:"Pr\xE9nom",lastName:"Nom",email:"E-mail",phone:"Num\xE9ro de portable",extraInfo:"Informations suppl\xE9mentaires",seatPlace:"Zone d\u2019assise"},placeholders:{firstName:"Pr\xE9nom",lastName:"Nom",email:"Adresse e-mail",phone:"Num\xE9ro de portable",extraInfo:"Informations suppl\xE9mentaires",seatPlace:"S\xE9lectionner une zone d\u2019assise"},magic:{title:"D\xE9tails Invit\xE9"}},reservationSummary:{title:"D\xE9tails de la R\xE9servation",guests:"Nombre d'invit\xE9s",date:"Date",time:"Heure",firstName:"Pr\xE9nom",lastName:"Nom",email:"E-mail",phone:"Num\xE9ro de portable",menu:"Menu",staff:"Cr\xE9\xE9 par",giftcard:"Carte Cadeau",extraInfo:"Informations suppl\xE9mentaires",seatPlace:"Zone d\u2019assise",newReservationButton:"Nouvelle R\xE9servation"}}};R0(`.new-reservation-page .reservation-sidebar-component .reservation-summary .modal-title{margin-top:0;margin-bottom:20px}.new-reservation-page .reservation-sidebar-component .reservation-summary .reservation-details{list-style-type:none;padding:0;margin:0 0 20px;width:100%}.new-reservation-page .reservation-sidebar-component .reservation-summary .reservation-details li{margin-bottom:10px;font-size:15px;align-items:left;text-align:left}.new-reservation-page .reservation-sidebar-component .reservation-summary .reservation-details li strong{font-weight:700}.new-reservation-page .reservation-sidebar-component .reservation-summary{align-items:left}
|
|
16
16
|
`);var sq=({formData:b,onNewReservation:O})=>{let o=w0(yp,"reservationSummary");return i0.createElement("div",{className:"reservation-summary"},i0.createElement("ul",{className:"reservation-details"},i0.createElement("li",null,i0.createElement("strong",null,o.title)),i0.createElement("li",null,i0.createElement("strong",null,o.guests,":")," ",b.guests),i0.createElement("li",null,i0.createElement("strong",null,o.date,":")," ",b.date),i0.createElement("li",null,i0.createElement("strong",null,o.time,":")," ",b.time),i0.createElement("li",null,i0.createElement("strong",null,o.firstName,":")," ",b.firstName),i0.createElement("li",null,i0.createElement("strong",null,o.lastName,":")," ",b.lastName),i0.createElement("li",null,i0.createElement("strong",null,o.email,":")," ",b.email),i0.createElement("li",null,i0.createElement("strong",null,o.phone,":")," ",b.phone),b.menu&&i0.createElement("li",null,i0.createElement("strong",null,o.menu,":")," ",b.menu),b.personeel&&i0.createElement("li",null,i0.createElement("strong",null,o.staff,":")," ",b.personeel),b.giftcard&&i0.createElement("li",null,i0.createElement("strong",null,o.giftcard,":")," ",b.giftcard),b.extraInfo&&i0.createElement("li",null,i0.createElement("strong",null,o.extraInfo,":")," ",b.extraInfo),b.zitplaats&&i0.createElement("li",null,i0.createElement("strong",null,o.seatPlace,":")," ",b.zitplaats)),i0.createElement("button",{className:"button-style-3",onClick:O},o.newReservationButton))},E2=sq;var Sp={nl:{zitplaatsSelection:{labels:{seating:"Zitplaats"},options:{noPreference:"Geen voorkeur"}},giftcardSelection:{labels:{giftcard:"Cadeaubon"},options:{noGiftcard:"Geen Cadeaubon"}}},en:{zitplaatsSelection:{labels:{seating:"Seating"},options:{noPreference:"No preference"}},giftcardSelection:{labels:{giftcard:"Gift Card"},options:{noGiftcard:"No Gift Card"}}},fr:{zitplaatsSelection:{labels:{seating:"Place Assise"},options:{noPreference:"Pas de pr\xE9f\xE9rence"}},giftcardSelection:{labels:{giftcard:"Cadeau"},options:{noGiftcard:"Pas de carte"}}}};R0(`.new-reservation-page .giftcard-selection{margin-bottom:20px}.new-reservation-page .giftcard-options{display:flex;gap:20px;margin:10px 0}.new-reservation-page .giftcard-option{display:flex;align-items:center;gap:8px;cursor:pointer}.new-reservation-page .form-label{font-weight:500;margin-bottom:8px;display:block}.new-reservation-page .giftcard-option input[type=radio]{margin:0;cursor:pointer}.new-reservation-page .giftcard-option label{cursor:pointer}
|
|
17
17
|
`);var Lq=({restaurantData:b,formData:O,handleChange:o,resetFormDataFields:q})=>{let e=w0(Sp,"giftcardSelection"),[a,n]=useState([]);if(useEffect(()=>{if(!b)return;let f=["breakfast","lunch","dinner"],L=new Set;f.forEach(i=>{let R=b[`openinghours-${i}`]?.schemeSettings||{};Object.values(R).forEach(T=>{T?.giftcardsEnabled&&Array.isArray(T.giftcards)&&T.giftcards.forEach(X=>{let h=typeof X=="string"?X.trim():String(X||"").trim();h&&L.add(h);});});}),n([...L]);},[b]),!a.length)return null;let u=a.map(f=>({value:f,label:f})),s=f=>{o({target:{name:"giftcard",value:f.target.value}}),q(["date","time"]);};return i0.createElement("div",{className:"giftcard-selection"},i0.createElement(C0,{label:e.labels?.giftcard||"Giftcard",name:"giftcard",type:"select",options:u,value:O.giftcard||"",onChange:s,selectPlaceholder:e.options?.noGiftcard||"Geen giftcard"}))},v2=Lq;var vp={nl:{zitplaatsSelection:{labels:{seating:"Zitplaats"},options:{noPreference:"Geen voorkeur"}},giftcardSelection:{labels:{giftcard:"Cadeaubon"},options:{noGiftcard:"Geen Cadeaubon"}}},en:{zitplaatsSelection:{labels:{seating:"Seating"},options:{noPreference:"No preference"}},giftcardSelection:{labels:{giftcard:"Gift Card"},options:{noGiftcard:"No Gift Card"}}},fr:{zitplaatsSelection:{labels:{seating:"Place Assise"},options:{noPreference:"Pas de pr\xE9f\xE9rence"}},giftcardSelection:{labels:{giftcard:"Cadeau"},options:{noGiftcard:"Pas de carte"}}}};R0(`.new-reservation-page .zitplaats-selection{margin-bottom:15px}.new-reservation-page .zitplaats-selection select{width:100%;padding:10px;border-radius:4px;border:1px solid #ccc;background-color:#fff}
|
|
18
|
-
`);var Xq=({restaurantData:b,formData:O,handleChange:o,resetFormDataFields:q})=>{let[e,a]=useState([]),n=w0(vp,"zitplaatsSelection");useEffect(()=>{if(!b?.floors||!Array.isArray(b.floors))return;let L=new Set;b.floors.forEach(i=>(i.tables||[]).forEach(R=>{let T=typeof R.zitplaats=="string"?R.zitplaats.trim():String(R.zitplaats||"").trim();T&&L.add(T);})),a([...L].sort());},[b]);let u=L=>{let{value:i}=L.target;o({target:{name:"zitplaats",value:i}}),q(["date","time","selectedTableNumbers","selectedTableIds"]);},s=b?.["table-settings"]||{};return !(s.isInstalled===true&&s.assignmentMode==="automatic")||e.length===0?null:i0.createElement("div",{className:"zitplaats-selection"},i0.createElement("label",{htmlFor:"zitplaats",className:"form-label"},n.labels?.seating||"Zitplaats"),i0.createElement("div",{className:"input-container select-field"},i0.createElement("select",{id:"zitplaats",name:"zitplaats",value:O.zitplaats||"",onChange:u},i0.createElement("option",{value:""},n.options?.noPreference||"Geen voorkeur"),e.map(L=>i0.createElement("option",{key:L,value:L,className:"notranslate",translate:"no"},L)))))},C2=Xq;var k2=G0(O1());var Cp={nl:{reservationSidebar:{saveButton:"Opslaan",saveButtonLoading:"Opslaan..."}},en:{reservationSidebar:{saveButton:"Save",saveButtonLoading:"Saving..."}},fr:{reservationSidebar:{saveButton:"Enregistrer",saveButtonLoading:"Enregistrement..."}}};R0(`.reservation-sidebar-component{position:fixed;top:0;right:-400px;width:400px;height:100%;background-color:#fff;box-shadow:-2px 0 5px #0000001a;z-index:var(--z-index-sidebar-reservation);display:flex;flex-direction:column;overflow-y:auto;transition:right .3s ease-in-out}.admin-title{text-align:center;margin-bottom:30px}.reservation-sidebar-component.open{right:0}.reservation-sidebar-content{padding:60px 20px 20px}.close-sidebar-button{position:absolute;top:10px;left:10px;background-color:transparent;border:none;cursor:pointer}.close-sidebar-button svg{color:#000}.sidebar-section-one,.sidebar-section-two{margin-bottom:20px}.reservation-footer{margin-top:auto}.store-reservation-button{width:100%;padding:12px;background-color:var(--color-blue);color:#fff;border:none;border-radius:5px;cursor:pointer;font-size:1.1rem}.open-sidebar-button{position:fixed;bottom:20px;right:20px;background-color:var(--color-blue);color:#fff;border:none;border-radius:50%;width:50px;height:50px;cursor:pointer;z-index:var(--z-index-modal)!important;transition:all .3s ease}.open-sidebar-button:hover{background-color:var(--color-blue-hover-accent)!important}.open-sidebar-button svg{position:relative;top:2px}@media screen and (max-width:480px){.reservation-sidebar-component{width:100%}}.sidebar-section-personeel{margin-bottom:10px}
|
|
19
|
-
`);var Dp=memo(({isOpen:b,onClose:O,formData:o,errors:q,handleChange:e,handleFinalSubmit:a,setFormData:n,isSubmitting:u,reservationSubmitted:s,onNewReservation:f,apiBaseDomain:L})=>{useEffect(()=>{L&&!window.baseDomain&&(window.baseDomain=L);},[L]);let i=t1(),[R,T]=useState([]),[X,h]=useState(false),[B,N]=useState(null),[S,g]=useState([]),[k,H]=useState({}),[C,x]=useState([]),Y=useMemo(()=>w0(Cp,"reservationSidebar"),[]),Q=useCallback(L0=>{n(b0=>{let q0={...b0};return L0.forEach(_=>{q0[_]="";}),q0});},[n]);useEffect(()=>{if(!b)return;h(true),(async()=>{try{let b0=window.baseDomain||"",[q0,_]=await Promise.all([i.get(`${b0}api/auth-restaurant/`,{noCache:!0}),i.get(`${b0}api/personeel`,{noCache:!0})]);T(q0.timeblocks||[]),window.timeblocks=q0.timeblocks||[],window.generalSettings=q0["general-settings"]||{},g(q0.menu||[]),H(q0||{});let w=(0,k2.default)().tz("Europe/Amsterdam").startOf("day"),W0=(_||[]).filter(K=>{let d0=(0,k2.default)(K.startDate,"YYYY-MM-DD").tz("Europe/Amsterdam").startOf("day"),U=(0,k2.default)(K.endDate,"YYYY-MM-DD").tz("Europe/Amsterdam").endOf("day");return w.isBetween(d0,U,null,"[]")});x(W0);}catch(b0){N(b0),console.error("Error fetching data:",b0);}finally{h(false);}})();},[b,i]);let n0=useCallback(()=>{n({guest:2,date:"",time:"",firstName:"",lastName:"",email:"",phone:"",extraInfo:"",menu:"",personeel:"",giftcard:"",zitplaats:"",selectedTableNumbers:[],selectedTableIds:[],reservationMode:"met_limieten"}),f();},[f,n]),M0=useMemo(()=>!!k?.["general-settings"]?.seatSelectionEnabled,[k]);return i0.createElement("div",{className:`reservation-sidebar-component ${b?"open":""}`},i0.createElement("div",{className:"reservation-sidebar-content"},i0.createElement("h2",{className:"admin-title"},"Admin Reservatie"),i0.createElement("button",{className:"close-sidebar-button",onClick:O,"aria-label":"Sluiten"},i0.createElement(FaTimes,{size:20,color:"#000"})),s?i0.createElement(E2,{formData:o,onNewReservation:n0}):i0.createElement(i0.Fragment,null,k&&Object.keys(k).length>0&&i0.createElement("div",{className:"sidebar-section-giftcard"},i0.createElement(v2,{restaurantData:k,formData:o,handleChange:e,resetFormDataFields:Q})),k&&Object.keys(k).length>0&&M0&&i0.createElement("div",{className:"sidebar-section-zitplaats"},i0.createElement(C2,{restaurantData:k,formData:o,handleChange:e,resetFormDataFields:Q})),C.length>0&&i0.createElement("div",{className:"sidebar-section-personeel"},i0.createElement(C0,{label:"",name:"personeel",type:"select",options:C.map(L0=>{let b0=`${L0.voornaam} ${L0.achternaam}`;return {value:L0.id,label:b0}}),value:o.personeel,onChange:e,error:q.personeel,selectPlaceholder:"Toewijzen aan persoon"})),i0.createElement("div",{className:"sidebar-section-one"},i0.createElement(CM,{formData:o,errors:q,handleChange:e,setFormData:n,timeblocks:R,loadingTimeblocks:X,timeblocksError:B,restaurantData:k})),i0.createElement("div",{className:"sidebar-section-two"},i0.createElement(S2,{formData:o,errors:q,handleChange:e,setFormData:n,isSubmitting:u,menuData:S})),i0.createElement("div",{className:"reservation-footer"},i0.createElement("button",{type:"button",className:"store-reservation-button",onClick:a,disabled:u},u?Y.saveButtonLoading||"Opslaan...":Y.saveButton||"Opslaan")))))});Dp.displayName="ReservationSidebar";var hq=Dp;R0(`.account-manage-title{text-align:center;margin-bottom:30px}.account-manage-container{max-width:800px;margin:0 auto}.account-manage-form{display:flex;flex-direction:column;gap:15px}.input-container{position:relative}.input-icon{position:absolute;top:50%;left:10px;transform:translateY(-50%);color:#6c757d;pointer-events:none}.input-container input,.input-container textarea{width:100%;padding:10px 10px 10px 35px;border:1px solid #ccc;border-radius:5px;font-size:1rem;transition:border-color .3s ease}.form-error{color:#dc3545;font-size:.9rem;margin-top:5px;display:flex;align-items:center;gap:5px}.account-manage__button{padding:12px;background-color:var(--color-blue);color:#fff;border:none;border-radius:5px;cursor:pointer;font-size:1.1rem;display:flex;align-items:center;justify-content:center;gap:10px;transition:background-color .3s ease}
|
|
18
|
+
`);var Xq=({restaurantData:b,formData:O,handleChange:o,resetFormDataFields:q})=>{let[e,a]=useState([]),n=w0(vp,"zitplaatsSelection");useEffect(()=>{if(!b?.floors||!Array.isArray(b.floors))return;let L=new Set;b.floors.forEach(i=>(i.tables||[]).forEach(R=>{let T=typeof R.zitplaats=="string"?R.zitplaats.trim():String(R.zitplaats||"").trim();T&&L.add(T);})),a([...L].sort());},[b]);let u=L=>{let{value:i}=L.target;o({target:{name:"zitplaats",value:i}}),q(["date","time","selectedTableNumbers","selectedTableIds"]);},s=b?.["table-settings"]||{};return !(s.isInstalled===true&&s.assignmentMode==="automatic")||e.length===0?null:i0.createElement("div",{className:"zitplaats-selection"},i0.createElement("label",{htmlFor:"zitplaats",className:"form-label"},n.labels?.seating||"Zitplaats"),i0.createElement("div",{className:"input-container select-field"},i0.createElement("select",{id:"zitplaats",name:"zitplaats",value:O.zitplaats||"",onChange:u},i0.createElement("option",{value:""},n.options?.noPreference||"Geen voorkeur"),e.map(L=>i0.createElement("option",{key:L,value:L,className:"notranslate",translate:"no"},L)))))},C2=Xq;var k2=G0(O1());var Cp={nl:{reservationSidebar:{saveButton:"Opslaan",saveButtonLoading:"Opslaan..."}},en:{reservationSidebar:{saveButton:"Save",saveButtonLoading:"Saving..."}},fr:{reservationSidebar:{saveButton:"Enregistrer",saveButtonLoading:"Enregistrement..."}}};R0(`.new-reservation-page .reservation-sidebar-component{position:fixed;top:0;right:-400px;width:400px;height:100%;background-color:#fff;box-shadow:-2px 0 5px #0000001a;z-index:var(--z-index-sidebar-reservation);display:flex;flex-direction:column;overflow-y:auto;transition:right .3s ease-in-out}.new-reservation-page .admin-title{text-align:center;margin-bottom:30px}.new-reservation-page .reservation-sidebar-component.open{right:0}.new-reservation-page .reservation-sidebar-content{padding:60px 20px 20px}.new-reservation-page .close-sidebar-button{position:absolute;top:10px;left:10px;background-color:transparent;border:none;cursor:pointer}.new-reservation-page .close-sidebar-button svg{color:#000}.new-reservation-page .sidebar-section-one,.new-reservation-page .sidebar-section-two{margin-bottom:20px}.new-reservation-page .reservation-footer{margin-top:auto}.new-reservation-page .store-reservation-button{width:100%;padding:12px;background-color:var(--color-blue);color:#fff;border:none;border-radius:5px;cursor:pointer;font-size:1.1rem}.new-reservation-page .open-sidebar-button{position:fixed;bottom:20px;right:20px;background-color:var(--color-blue);color:#fff;border:none;border-radius:50%;width:50px;height:50px;cursor:pointer;z-index:var(--z-index-modal)!important;transition:all .3s ease}.new-reservation-page .open-sidebar-button:hover{background-color:var(--color-blue-hover-accent)!important}.new-reservation-page .open-sidebar-button svg{position:relative;top:2px}@media screen and (max-width:480px){.new-reservation-page .reservation-sidebar-component{width:100%}}.new-reservation-page .sidebar-section-personeel{margin-bottom:10px}
|
|
19
|
+
`);var Dp=memo(({isOpen:b,onClose:O,formData:o,errors:q,handleChange:e,handleFinalSubmit:a,setFormData:n,isSubmitting:u,reservationSubmitted:s,onNewReservation:f,apiBaseDomain:L})=>{useEffect(()=>{L&&!window.baseDomain&&(window.baseDomain=L);},[L]);let i=t1(),[R,T]=useState([]),[X,h]=useState(false),[B,N]=useState(null),[S,g]=useState([]),[k,H]=useState({}),[C,x]=useState([]),Y=useMemo(()=>w0(Cp,"reservationSidebar"),[]),Q=useCallback(L0=>{n(b0=>{let q0={...b0};return L0.forEach(_=>{q0[_]="";}),q0});},[n]);useEffect(()=>{if(!b)return;h(true),(async()=>{try{let b0=window.baseDomain||"",[q0,_]=await Promise.all([i.get(`${b0}api/auth-restaurant/`,{noCache:!0}),i.get(`${b0}api/personeel`,{noCache:!0})]);T(q0.timeblocks||[]),window.timeblocks=q0.timeblocks||[],window.generalSettings=q0["general-settings"]||{},g(q0.menu||[]),H(q0||{});let w=(0,k2.default)().tz("Europe/Amsterdam").startOf("day"),W0=(_||[]).filter(K=>{let d0=(0,k2.default)(K.startDate,"YYYY-MM-DD").tz("Europe/Amsterdam").startOf("day"),U=(0,k2.default)(K.endDate,"YYYY-MM-DD").tz("Europe/Amsterdam").endOf("day");return w.isBetween(d0,U,null,"[]")});x(W0);}catch(b0){N(b0),console.error("Error fetching data:",b0);}finally{h(false);}})();},[b,i]);let n0=useCallback(()=>{n({guest:2,date:"",time:"",firstName:"",lastName:"",email:"",phone:"",extraInfo:"",menu:"",personeel:"",giftcard:"",zitplaats:"",selectedTableNumbers:[],selectedTableIds:[],reservationMode:"met_limieten"}),f();},[f,n]),M0=useMemo(()=>!!k?.["general-settings"]?.seatSelectionEnabled,[k]);return i0.createElement("div",{className:`reservation-sidebar-component ${b?"open":""}`},i0.createElement("div",{className:"reservation-sidebar-content"},i0.createElement("h2",{className:"admin-title"},"Admin Reservatie"),i0.createElement("button",{className:"close-sidebar-button",onClick:O,"aria-label":"Sluiten"},i0.createElement(FaTimes,{size:20,color:"#000"})),s?i0.createElement(E2,{formData:o,onNewReservation:n0}):i0.createElement(i0.Fragment,null,k&&Object.keys(k).length>0&&i0.createElement("div",{className:"sidebar-section-giftcard"},i0.createElement(v2,{restaurantData:k,formData:o,handleChange:e,resetFormDataFields:Q})),k&&Object.keys(k).length>0&&M0&&i0.createElement("div",{className:"sidebar-section-zitplaats"},i0.createElement(C2,{restaurantData:k,formData:o,handleChange:e,resetFormDataFields:Q})),C.length>0&&i0.createElement("div",{className:"sidebar-section-personeel"},i0.createElement(C0,{label:"",name:"personeel",type:"select",options:C.map(L0=>{let b0=`${L0.voornaam} ${L0.achternaam}`;return {value:L0.id,label:b0}}),value:o.personeel,onChange:e,error:q.personeel,selectPlaceholder:"Toewijzen aan persoon"})),i0.createElement("div",{className:"sidebar-section-one"},i0.createElement(CM,{formData:o,errors:q,handleChange:e,setFormData:n,timeblocks:R,loadingTimeblocks:X,timeblocksError:B,restaurantData:k})),i0.createElement("div",{className:"sidebar-section-two"},i0.createElement(S2,{formData:o,errors:q,handleChange:e,setFormData:n,isSubmitting:u,menuData:S})),i0.createElement("div",{className:"reservation-footer"},i0.createElement("button",{type:"button",className:"store-reservation-button",onClick:a,disabled:u},u?Y.saveButtonLoading||"Opslaan...":Y.saveButton||"Opslaan")))))});Dp.displayName="ReservationSidebar";var hq=Dp;R0(`.new-reservation-page .account-manage-title{text-align:center;margin-bottom:30px}.new-reservation-page .account-manage-container{max-width:800px;margin:0 auto}.new-reservation-page .account-manage-form{display:flex;flex-direction:column;gap:15px}.new-reservation-page .input-container{position:relative}.new-reservation-page .input-icon{position:absolute;top:50%;left:10px;transform:translateY(-50%);color:#6c757d;pointer-events:none}.new-reservation-page .input-container input,.new-reservation-page .input-container textarea{width:100%;padding:10px 10px 10px 35px;border:1px solid #ccc;border-radius:5px;font-size:1rem;transition:border-color .3s ease}.new-reservation-page .form-error{color:#dc3545;font-size:.9rem;margin-top:5px;display:flex;align-items:center;gap:5px}.new-reservation-page .account-manage__button{padding:12px;background-color:var(--color-blue);color:#fff;border:none;border-radius:5px;cursor:pointer;font-size:1.1rem;display:flex;align-items:center;justify-content:center;gap:10px;transition:background-color .3s ease}
|
|
20
20
|
`);/*! Bundled license information:
|
|
21
21
|
|
|
22
22
|
moment/moment.js:
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@happychef/reservation-sidebar",
|
|
3
|
-
"version": "2.4.
|
|
3
|
+
"version": "2.4.5",
|
|
4
4
|
"description": "A compound component for managing restaurant reservations - JavaScript version with independent styles",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.mjs",
|