@happychef/reservation-sidebar 2.4.8 → 2.5.1

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 CHANGED
@@ -6,17 +6,17 @@ Arguments: `+Array.prototype.slice.call(c).join("")+`
6
6
  [getAvailableTablesForTime] Finding available tables for ${q} guests on ${O} at ${o}`);let i=F1(o,f,L);if(!i||i.length===0)return console.error(`[getAvailableTablesForTime] Could not compute required slots for ${O} ${o}`),[];let R={},T=e.filter(B=>B.date===O&&B.time&&B.guests>0).sort((B,N)=>{let S=B.time.split(":").map(Number),g=N.time.split(":").map(Number);return S[0]*60+S[1]-(g[0]*60+g[1])});console.log(`[getAvailableTablesForTime] Building occupancy map (Processing ${T.length} existing reservations)`);for(let B of T){let N=sb(B),S=[];if(N.length>0?S=N:S=Rb(b,B.date,B.time,B.guests,R,null),S.length>0){let g=F1(B.time,f,L);if(!g||g.length===0)continue;S.forEach(k=>{R[k]||(R[k]=new Set),g.forEach(H=>R[k].add(H));});}}console.log("[getAvailableTablesForTime] Occupancy map built");let X=tM(b,a),h=[];console.log(`[getAvailableTablesForTime] Checking ${X.length} tables for individual availability`);for(let B of X)I1(B,O,o)&&B.minCapacity<=q&&q<=B.maxCapacity&&G1(B.tableNumber,i,R)&&(console.log(`[getAvailableTablesForTime] Table ${B.tableNumber} is available`),h.push(B));return console.log(`[getAvailableTablesForTime] Found ${h.length} individually available tables: ${h.map(B=>B.tableNumber).join(", ")}`),h.sort((B,N)=>B.tableNumber-N.tableNumber),h}catch(n){return console.error(`[getAvailableTablesForTime] Error for ${O} ${o}:`,n),[]}}Lb.exports={isTimeAvailableSync:fb,filterTimeblocksByTableAvailability:ub,getAvailableTimeblocksWithTableCheck:Eo,getAvailableTablesForTime:vo};});var Nb=$((o5,lb)=>{var L2=r2(),{isDateAvailable:Co}=dM(),{getAvailableTimeblocks:ko}=R2(),{isTimeAvailableSync:xo}=sM(),{daysOfWeekEnglish:wo,getMealTypeByTime:Do}=X1(),l2="Europe/Brussels";function Po(b,O,o,q){if(!q||!q.trim())return true;let e=Do(o);if(!e)return false;let a=L2.tz(O,"YYYY-MM-DD",l2);if(!a.isValid())return false;let n=wo[a.day()],u=`openinghours-${e}`,s=b[u]&&b[u].schemeSettings&&b[u].schemeSettings[n]?b[u].schemeSettings[n]:null;return s?s.giftcardsEnabled!==true||!Array.isArray(s.giftcards)||s.giftcards.length===0?false:s.giftcards.includes(q):(console.error(`No day settings found for ${n} ${e}`),false)}function _o(b,O,o,q,e=[],a=null){let n=typeof window<"u"?window.currentReservationTicketItem:null;if(n&&!n.normalOpeningTimes){let T=L2.tz(O,"YYYY-MM-DD",l2).startOf("day"),X=n.filterStartDate?L2.tz(n.filterStartDate,"YYYY-MM-DD",l2).startOf("day"):null,h=n.filterEndDate?L2.tz(n.filterEndDate,"YYYY-MM-DD",l2).endOf("day"):null;if(X&&T.isBefore(X))return console.log(`Date ${O} is before the allowed start ${n.filterStartDate}`),false;if(h&&T.isAfter(h))return console.log(`Date ${O} is after the allowed end ${n.filterEndDate}`),false}console.log(`
7
7
  ===== Checking date availability for ${q} guests on ${O} =====`),console.log("Restaurant data floors:",b.floors?"present":"missing"),console.log("Table settings:",JSON.stringify(b["table-settings"]||{},null,2));let u=b?.["table-settings"]||{},s=u.isInstalled===true&&u.assignmentMode==="automatic"&&b.floors&&Array.isArray(b.floors);if(console.log(`Table assignment is ${s?"ENABLED":"DISABLED"} for date ${O}`),!Co(b,O,o,q,e,a))return console.log(`Date ${O} fails basic availability check`),false;if(!s)return console.log(`Table assignment disabled, date ${O} is available`),true;console.log(`Getting available timeblocks for ${O}`);let L=ko(b,O,o,q,e,a);if(console.log(`Found ${Object.keys(L).length} available timeblocks before table check`),Object.keys(L).length===0)return console.log(`No available timeblocks on ${O}, date is unavailable`),false;console.log(`Checking table availability for each timeblock on ${O}`);let i=false,R=0;for(let T of Object.keys(L)){if(R++,a&&!Po(b,O,T,a)){console.log(`Time ${T} doesn't match giftcard meal requirements`);continue}if(console.log(`Checking table availability for ${T} on ${O} for ${q} guests`),xo(b,O,T,q,o)){console.log(`Found available time ${T} with table assignment!`),i=true;break}}return console.log(`Checked ${R}/${Object.keys(L).length} timeblocks`),console.log(`Date ${O} with table check: ${i?"Available":"Unavailable"}`),i}lb.exports={isDateAvailableWithTableCheck:_o};});var mb=$(()=>{var{isTimeAvailable:Io}=iM(),Fo={_id:"poer","general-settings":{zitplaatsen:30,uurOpVoorhand:4,dagenInToekomst:90,maxGasten:8,intervalReservatie:15,duurReservatie:120,minutenTotEinde:135,showNoticeForMaxGuests:0,noticePhoneNumber:"",storedNumber:76},menu:[{name:"POER Menu",startDate:"2024-11-01",endDate:"2030-01-30",startHour:"12:00",endHour:"23:00",daysOfWeek:["zaterdag","dinsdag","woensdag","donderdag","vrijdag"],storedNumber:36,_id:"674a9033c1956dd233bafaad"},{name:"A la carte",startDate:"2024-11-30",endDate:"2030-01-01",startHour:"12:00",endHour:"14:00",daysOfWeek:["dinsdag","woensdag","donderdag","vrijdag"],storedNumber:28,_id:"674a9084c1956dd233bafaae"},{name:"Ik weet het nog niet",startDate:"2024-11-30",endDate:"2030-01-01",startHour:"12:00",endHour:"14:00",daysOfWeek:["dinsdag","woensdag","donderdag","vrijdag"],storedNumber:41,_id:"674a90bc64cc52acdd5e6cc2"},{name:"Lunch",startDate:"2024-11-01",endDate:"2030-01-30",startHour:"12:00",endHour:"14:00",daysOfWeek:["dinsdag","woensdag","donderdag","vrijdag"],storedNumber:23,_id:"674adb4e8d6385fb343499f7"},{name:"A la carte",startDate:"2024-11-01",endDate:"2030-01-30",startHour:"18:30",endHour:"20:30",daysOfWeek:["dinsdag","woensdag","donderdag"],storedNumber:50,_id:"674adbf58d6385fb343499f8"},{name:"Ik weet het nog niet",startDate:"2024-11-01",endDate:"2030-01-30",startHour:"18:30",endHour:"20:30",daysOfWeek:["dinsdag","donderdag","woensdag"],storedNumber:54,_id:"674adc208d6385fb343499f9"}],mededeling:[{mededeling:"Gelieve er rekening mee te houden dat we op vrijdagavond en zaterdagavond enkel ons POER menu serveren.",startDate:"2024-11-01",endDate:"2030-01-30",startTime:"18:30",endTime:"20:30",daysOfWeek:["vrijdag","zaterdag"],storedNumber:95,_id:"674ade0a8d6385fb343499fa"}],settings:{pageTitle:"Reserveer nu",generalNotification:"",alignment:"fullScreenColor",backgroundBlur:"blurBackground",storedNumber:61},colors:{backgroundType:"solid",backgroundColor:"#e0debe",gradientStartColor:"#FFFFFF",gradientEndColor:"#000000",animationType:"none",widgetBackgroundColor:"#000000",widgetTextColor:"#FFFFFF",textColor:"#000000",containerColor:"#FFFFFF",buttonColor:"#000000",buttonTextColor:"#FFFFFF",storedNumber:81},exceptions:[{title:"Extra mensen donderdagmiddag",type:"Opening",timeframe:"lunch",startDate:"2024-12-05",endDate:"2024-12-05",startHour:"12:00",endHour:"16:00",maxSeats:"34",daysOfWeek:["donderdag"],storedNumber:74,_id:"67507dc98fb61d6afd54acb0"},{title:"Extra personen donderdagavond",type:"Uitzondering",timeframe:"dinner",startDate:"2024-12-05",endDate:"2024-12-05",startHour:"18:30",endHour:"23:00",maxSeats:"27",daysOfWeek:["donderdag"],storedNumber:88,_id:"67507e3383d7f2de02628f4a"},{title:"Cong\xE9 Periode 22/12 tot 9/01",type:"Sluiting",timeframe:"Volledige Dag",startDate:"2024-12-22",endDate:"2025-01-09",daysOfWeek:[],storedNumber:89,_id:"67511bb38fb61d6afd54acba"}],"openinghours-lunch":{schemeSettings:{Tuesday:{enabled:true,startTime:"12:00",endTime:"13:30",maxCapacityEnabled:true,maxCapacity:"30",shiftsEnabled:false,shifts:[]},Wednesday:{enabled:true,startTime:"12:00",endTime:"16:00",maxCapacityEnabled:true,maxCapacity:"30",shiftsEnabled:false,shifts:[]},Thursday:{enabled:true,startTime:"12:00",endTime:"16:00",maxCapacityEnabled:true,maxCapacity:"30",shiftsEnabled:false,shifts:[]},Friday:{enabled:true,startTime:"12:30",endTime:"13:30",maxCapacityEnabled:true,maxCapacity:"30",shiftsEnabled:false,shifts:[]}},storedNumber:2},"openinghours-dinner":{schemeSettings:{Tuesday:{enabled:true,startTime:"18:30",endTime:"20:00",maxCapacityEnabled:true,maxCapacity:"24",shiftsEnabled:false,shifts:[]},Wednesday:{enabled:true,startTime:"16:00",endTime:"20:00",maxCapacityEnabled:true,maxCapacity:"24",shiftsEnabled:false,shifts:[]},Thursday:{enabled:true,startTime:"16:00",endTime:"20:00",maxCapacityEnabled:true,maxCapacity:"24",shiftsEnabled:false,shifts:[]},Friday:{enabled:true,startTime:"18:30",endTime:"20:00",maxCapacityEnabled:true,maxCapacity:"30",shiftsEnabled:false,shifts:[]},Saturday:{enabled:true,startTime:"18:30",endTime:"20:00",maxCapacityEnabled:true,maxCapacity:"30",shiftsEnabled:false,shifts:[]}},storedNumber:6},fonts:{titleFont:{font:"Poppins",weight:"400"},subtitleFont:{font:"Poppins",weight:"400"},labelFont:{font:"Poppins",weight:"400"},buttonFont:{font:"Poppins",weight:"400"}},theme:{id:10,title:"Herfstbladeren",color:"#D35400",image:"/static/media/default-theme.webp"}},Go=[{guests:10,time:"12:00",date:"2024-12-18"},{guests:100,time:"15:00",date:"2024-12-04"}];console.log("--- Is Time Available Tests ---");var Bb="2024-12-10",Xb=1e3,Ho=["12:00","12:15","13:00","19:00","20:00","20:15"];Ho.forEach(b=>{let O=Io(Fo,Bb,b,Go,Xb);console.log(`Is ${b} on ${Bb} available for ${Xb} guests?`,O);});});var hb=$((a5,gb)=>{var Tb=r2(),{shifts:e5,parseTime:RM,getMealTypeByTime:Uo}=u2();function jo(){let b=Tb().tz("Europe/Brussels");return b.hours()*60+b.minutes()}function Yo(b,O,o){let q=Tb().tz("Europe/Brussels").format("YYYY-MM-DD");if(o!==q)return b;console.log(`Applying stop time filter for today (${o})`);let e=O?.["general-settings"]||{},a=jo(),n=e.ontbijtStop||null,u=e.lunchStop||null,s=e.dinerStop||null,f=n?RM(n):null,L=u?RM(u):null,i=s?RM(s):null,R={},T=0,X=0,h=0;for(let B in b){if(!b.hasOwnProperty(B))continue;let N=Uo(B),S=false;N==="breakfast"&&f!==null&&!isNaN(f)&&a>=f?(S=true,T++):N==="lunch"&&L!==null&&!isNaN(L)&&a>=L?(S=true,X++):N==="dinner"&&i!==null&&!isNaN(i)&&a>=i&&(S=true,h++),S||(R[B]=b[B]);}return T>0&&console.log(`Stop time filter removed ${T} breakfast slots.`),X>0&&console.log(`Stop time filter removed ${X} lunch slots.`),h>0&&console.log(`Stop time filter removed ${h} dinner slots.`),R}gb.exports={filterTimeblocksByStopTimes:Yo};});var Sb=$((n5,yb)=>{function Ko(b){let O=parseInt(b.split(":")[0],10);return O>=4&&O<11?"breakfast":O>=11&&O<16?"lunch":O>=16&&O<23?"dinner":null}function Vo(b){if(!b)return null;if(b.$numberInt)return parseInt(b.$numberInt,10);if(typeof b=="number")return b;if(typeof b=="string"){let O=parseInt(b,10);return isNaN(O)?null:O}return null}function Qo(b,O,o){return b.filter(q=>q.date===O&&q.time===o).reduce((q,e)=>q+(parseInt(e.guests,10)||0),0)}function Jo(b,O,o,q,e){let a={};for(let[n,u]of Object.entries(o)){let s=Ko(n);if(!s){a[n]=u;continue}let f=b[`max-arrivals-${s}`];if(!f){a[n]=u;continue}let L=Vo(f[n]);if(L===null){a[n]=u;continue}Qo(q,O,n)+e<=L&&(a[n]=u);}return a}yb.exports={filterTimeblocksByMaxArrivals:Jo};});var vb=$((d5,Eb)=>{function fM(b){let O=parseInt(b.split(":")[0],10);return O>=4&&O<11?"breakfast":O>=11&&O<16?"lunch":O>=16&&O<23?"dinner":null}function f0(b,...O){console.log(`[MaxGroupsFilter] ${b}`,...O);}function Zo(b){if(b==null)return null;if(typeof b=="object"&&b!==null&&"$numberInt"in b){let O=parseInt(b.$numberInt,10);return isNaN(O)?null:O}if(typeof b=="number")return Number.isInteger(b)?b:null;if(typeof b=="string"){let O=parseInt(b,10);return isNaN(O)?null:O}return null}function M4(b,O,o,q,e){f0(`--- Running MaxGroupsFilter for Date: ${O}, Guests: ${e} ---`);let a=Object.keys(b).filter(L=>L.startsWith("max-groups-"));f0("Received restaurantData max-group keys:",a.length>0?a:"None found");let n={},u=parseInt(e,10);if(isNaN(u)||u<=0)return f0(`Invalid guest count (${e}). Returning all ${Object.keys(o).length} input blocks unfiltered.`),o;let s=q.filter(L=>L.date===O);f0(`Relevant reservations on ${O}: ${s.length}`),f0(`Input timeblocks count: ${Object.keys(o).length}`);let f={};s.forEach(L=>{let i=fM(L.time);i&&(f[i]||(f[i]=[]),f[i].push(L));}),f0("Reservations grouped by meal type:",f);for(let[L,i]of Object.entries(o)){let R=fM(L);if(f0(`
8
8
  Checking Time: ${L} -> Determined Meal: ${R}`),!R){f0(` Time ${L} has no associated meal type. Keeping block.`),n[L]=i;continue}let T=`max-groups-${R}`,X=b[T];if(f0(` Looking for settings using key: "${T}"`),!X||typeof X!="object"){f0(` No settings found for key "${T}". Filter doesn't apply. Keeping block.`),n[L]=i;continue}f0(` Found settings for ${R}:`,JSON.stringify(X));let h=true,B=Object.keys(X).map(N=>parseInt(N,10)).filter(N=>!isNaN(N)&&N>0).sort((N,S)=>N-S);f0(` Defined numeric limit sizes to check for ${R}: [${B.join(", ")}]`);for(let N of B){let S=String(N);if(f0(` Checking Limit Condition: Groups of size >= ${N}`),u>=N){f0(` Applicable: Booking guests (${u}) >= Limit threshold (${N})`);let g=Zo(X[S]);if(f0(` Max groups allowed for >=${N} is: ${g} (raw setting: ${JSON.stringify(X[S])})`),g===null||g<0){f0(` Skipping check: Invalid or non-positive max count defined for size ${N}.`);continue}let H=(f[R]||[]).filter(C=>{let x=parseInt(C.guests,10);return !isNaN(x)&&x>=N}).length;if(f0(` Count of existing groups >=${N} found in ${R}: ${H}`),H+1>g){f0(` *** VIOLATION DETECTED *** for limit >=${N}.`),f0(` (Existing Groups: ${H} + New Group: 1 = ${H+1}, which is > Max Allowed: ${g})`),f0(` Blocking time ${L} due to this violation.`),h=false;break}else f0(` OK: Limit for >=${N} not exceeded. (Existing: ${H} + New: 1 <= Max: ${g})`);}else f0(` Not Applicable: Booking guests (${u}) < Limit threshold (${N}). Skipping this check.`);}h?(f0(` \u2705 Result for time ${L}: ALLOWED (passed all applicable checks)`),n[L]=i):f0(` \u274C Result for time ${L}: BLOCKED (failed at least one limit check)`);}return f0(`--- MaxGroupsFilter Finished. Output timeblocks count: ${Object.keys(n).length} ---`),n}Eb.exports={filterTimeblocksByMaxGroups:M4,getMealType:fM};});var m1=$((i5,Cb)=>{function z4(b,O){if(b==null)return O;if(typeof b=="object"&&b!==null&&"$numberInt"in b){try{let o=parseInt(b.$numberInt,10);if(!isNaN(o))return o}catch{}return O}if(typeof b=="number"&&!isNaN(b))return b;if(typeof b=="string")try{let o=parseInt(b,10);if(!isNaN(o))return o}catch{}return O}Cb.exports=z4;});var H1=$((t5,kb)=>{function b4(b,O,o){if(!b||!/^([01]\d|2[0-3]):([0-5]\d)$/.test(b))return [];let[e,a]=b.split(":").map(Number),n=e*60+a;if(o<=0)return [n];let u=Math.ceil(O/o),s=[];for(let f=0;f<u;f++)s.push(n+f*o);return s}kb.exports=b4;});var uM=$((r5,xb)=>{function p4(b){if(!b||typeof b!="string")return NaN;let O=b.split(":");if(O.length!==2)return NaN;let o=parseInt(O[0],10),q=parseInt(O[1],10);return isNaN(o)||isNaN(q)||o<0||o>23||q<0||q>59?NaN:o*60+q}xb.exports=p4;});var LM=$((s5,wb)=>{var O4={breakfast:{start:"07:00",end:"11:00"},lunch:{start:"11:00",end:"16:00"},dinner:{start:"16:00",end:"23:00"}};wb.exports={shifts:O4};});var NM=$((R5,Db)=>{var lM=uM(),{shifts:c4}=LM();function A4(b){let O=lM(b);if(isNaN(O))return null;for(let[o,q]of Object.entries(c4)){let e=lM(q.start),a=lM(q.end);if(!(isNaN(e)||isNaN(a))&&O>=e&&O<a)return o}return null}Db.exports=A4;});var T1=$((f5,Pb)=>{var o4=NM();function q4(b,O,o){if(!b.isTemporary)return true;if(!b.startDate||!b.endDate||O<b.startDate||O>b.endDate)return false;let q=o4(o);return !(!q||b.application!==q)}Pb.exports=q4;});var N2=$((u5,_b)=>{function W4(b,O=null){let o=[];return b?.floors&&Array.isArray(b.floors)?b.floors.forEach(q=>{q?.tables&&Array.isArray(q.tables)&&q.tables.forEach(e=>{let a=e.tableNumber?.$numberInt??e.tableNumber,n=e.minCapacity?.$numberInt??e.minCapacity,u=e.maxCapacity?.$numberInt??e.maxCapacity,s=e.priority?.$numberInt??e.priority,f=e.x?.$numberInt??e.x,L=e.y?.$numberInt??e.y;O&&O.trim()!==""&&e.zitplaats!==O||(e.objectType==="Tafel"&&a!==void 0&&n!==void 0&&u!==void 0&&s!==void 0&&f!==void 0&&L!==void 0?o.push({tableId:e.id,tableNumber:parseInt(a,10),minCapacity:parseInt(n,10),maxCapacity:parseInt(u,10),priority:parseInt(s,10),x:parseInt(f,10),y:parseInt(L,10),isTemporary:e.isTemporary===true,startDate:e.startDate||null,endDate:e.endDate||null,application:e.application||null,zitplaats:e.zitplaats||null}):e.objectType==="Tafel"&&console.warn(`Skipping table due to missing essential properties: ${JSON.stringify(e)}`));});}):console.warn("Restaurant data is missing 'floors' array."),o.sort((q,e)=>q.maxCapacity!==e.maxCapacity?q.maxCapacity-e.maxCapacity:q.priority!==e.priority?q.priority-e.priority:q.minCapacity-e.minCapacity),o=o.filter(q=>!isNaN(q.tableNumber)&&!isNaN(q.minCapacity)&&!isNaN(q.maxCapacity)&&!isNaN(q.priority)&&!isNaN(q.x)&&!isNaN(q.y)),o}_b.exports=W4;});var Fb=$((L5,Ib)=>{var e4=m1();function a4(b){return Array.isArray(b)?b.map(O=>e4(O,null)).filter(O=>O!==null):[]}Ib.exports=a4;});var BM=$((l5,Gb)=>{var n4=Fb();function d4(b){return b.tables&&Array.isArray(b.tables)?n4(b.tables):[]}Gb.exports=d4;});var U1=$((N5,Hb)=>{function i4(b,O,o){let q=o[b]||new Set;for(let e of O)if(q.has(e))return false;return true}Hb.exports=i4;});var XM=$((B5,Ub)=>{function t4(b,O){if(b?.x===void 0||b?.y===void 0||O?.x===void 0||O?.y===void 0)return 1/0;let o=b.x-O.x,q=b.y-O.y;return Math.sqrt(o*o+q*q)}Ub.exports=t4;});var B2=$((X5,Vb)=>{var jb=T1(),Yb=U1(),r4=XM();function Kb(b,O,o,q,e,a,n,u,s){if(O<=0){let L=0;for(let i=0;i<q.length;i++)for(let R=i+1;R<q.length;R++)L+=r4(q[i],q[R]);(q.length<e.tableCount||q.length===e.tableCount&&L<e.minDistance)&&(e.minDistance=L,e.tables=[...q],e.tableCount=q.length);return}if(o>=b.length||q.length>=e.tableCount&&e.tableCount!==1/0)return;let f=0;for(let L=o;L<b.length;L++){let i=b[L];jb(i,u,s)&&Yb(i.tableNumber,a,n)&&(f+=i.maxCapacity);}if(!(f<O))for(let L=o;L<b.length;L++){let i=b[L];if(!jb(i,u,s)||!Yb(i.tableNumber,a,n))continue;let R=Math.min(i.maxCapacity,O);R<i.minCapacity&&R<O||R<=0||(q.push(i),Kb(b,O-R,L+1,q,e,a,n,u,s),q.pop());}}Vb.exports=Kb;});var X2=$((m5,Jb)=>{var Qb=m1(),s4=H1(),R4=N2(),f4=T1(),u4=B2(),L4=U1();function l4(b,O,o,q,e,a=null){let n=b["general-settings"]||{};typeof n.duurReservatie=="object"&&n.duurReservatie?.$numberInt,typeof n.intervalReservatie=="object"&&n.intervalReservatie?.$numberInt;let u=120,s=15;if(u=Qb(n.duurReservatie,120),s=Qb(n.intervalReservatie,15),s<=0)return console.error("Invalid interval settings."),[];let f=s4(o,u,s);if(!f||f.length===0)return console.error(`Could not compute required slots for ${o}`),[];let L=R4(b,a);for(let R of L)if(f4(R,O,o)&&R.minCapacity<=q&&q<=R.maxCapacity&&L4(R.tableNumber,f,e))return [R.tableNumber];let i={minDistance:1/0,tables:[],tableCount:1/0};return u4(L,q,0,[],i,f,e,O,o),i.tables.length>0,i.tables.map(R=>R.tableNumber)}Jb.exports=l4;});var m2=$((T5,Mp)=>{var $b=m1(),Zb=H1(),N4=T1(),B4=N2(),X4=BM(),m4=X2(),T4=U1(),g4=B2();function h4(b,O,o,q,e,a=null){q<0&&(q=2);let n=b?.["table-settings"]||{};if(!(n.isInstalled===true&&n.assignmentMode==="automatic"))return true;try{if(!b?.floors||!Array.isArray(b.floors))return console.error(`[isTimeAvailableSync] Missing floors data for ${O} ${o}`),!1;if(q<=0)return console.error(`[isTimeAvailableSync] Invalid guest count: ${q}`),!1;let s=b["general-settings"]||{},f=120,L=15;if(f=$b(s.duurReservatie,120),L=$b(s.intervalReservatie,15),L<=0)return console.error(`[isTimeAvailableSync] Invalid interval settings for ${O} ${o}`),!1;let i=Zb(o,f,L);if(!i||i.length===0)return console.error(`[isTimeAvailableSync] Could not compute required slots for ${O} ${o}`),!1;let R={},T=e.filter(N=>N.date===O&&N.time&&N.guests>0).sort((N,S)=>{let g=N.time.split(":").map(Number),k=S.time.split(":").map(Number);return g[0]*60+g[1]-(k[0]*60+k[1])});for(let N of T){let S=X4(N),g=[];if(S.length>0?g=S:g=m4(b,N.date,N.time,N.guests,R),g.length>0){let k=Zb(N.time,f,L);if(!k||k.length===0)continue;g.forEach(H=>{R[H]||(R[H]=new Set),k.forEach(C=>R[H].add(C));});}}let X=B4(b,a);for(let N of X)if(N4(N,O,o)&&N.minCapacity<=q&&q<=N.maxCapacity&&T4(N.tableNumber,i,R))return !0;let h={minDistance:1/0,tables:[],tableCount:1/0};g4(X,q,0,[],h,i,R,O,o);let B=h.tables.length>0;return B}catch{return false}}Mp.exports=h4;});var mM=$((g5,pp)=>{var zp=m1(),bp=H1(),y4=N2(),S4=T1(),E4=BM(),v4=X2();function C4(b,O,o,q,e,a=null){try{q<0&&(q=0);let n=b?.["table-settings"]||{};if(!(n.isInstalled===!0&&n.assignmentMode==="automatic"))return [];if(!b?.floors||!Array.isArray(b.floors))return [];if(q<=0)return [];let s=b["general-settings"]||{},f=zp(s.duurReservatie,120),L=zp(s.intervalReservatie,15);if(L<=0)return [];let i=bp(o,f,L);if(!i||i.length===0)return [];let R={},T=e.filter(B=>B.date===O&&B.time&&B.guests>0).sort((B,N)=>{let S=B.time.split(":").map(Number),g=N.time.split(":").map(Number);return S[0]*60+S[1]-(g[0]*60+g[1])});for(let B of T){let N=E4(B),S=[];if(N.length>0?S=N:S=v4(b,B.date,B.time,B.guests,R,null),S.length>0){let g=bp(B.time,f,L);if(!g||g.length===0)continue;S.forEach(k=>{R[k]||(R[k]=new Set),g.forEach(H=>R[k].add(H));});}}let X=y4(b,a),h=[];for(let B of X)S4(B,O,o)&&B.minCapacity<=q&&q<=B.maxCapacity&&(R&&i&&Array.isArray(i),(function(){let S=R[B.tableNumber]||new Set;for(let g of i)if(S.has(g))return !1;return !0})()&&h.push(B));return h.sort((B,N)=>B.tableNumber-N.tableNumber),h}catch{return []}}pp.exports=C4;});var TM=$((h5,Op)=>{var k4=m2();function x4(b,O,o,q,e,a=null){q<0&&(q=0);let n=b?.["table-settings"]||{};if(!(n.isInstalled===true&&n.assignmentMode==="automatic"))return o;let s={},f=0,L=0;for(let i in o)k4(b,O,i,q,e,a)?(s[i]=o[i],f++):L++;return s}Op.exports=x4;});var op=$((y5,Ap)=>{var w4=m2(),D4=mM(),cp=TM(),P4=(b,O,o,q,e,a=null)=>cp(b,O,o,q,e,a);Ap.exports={isTimeAvailableSync:w4,filterTimeblocksByTableAvailability:cp,getAvailableTimeblocksWithTableCheck:P4,getAvailableTablesForTime:D4};});var T2=$((S5,qp)=>{var _4={...qM(),...i2(),...s2()},I4={...oM()},F4={...d2(),...X1()},G4={...eb(),...R2(),...WM(),...dM(),...iM(),...sM(),...Nb(),...u2(),...mb()},H4={...hb(),...Sb(),...vb()},U4={...op(),...m2(),...mM(),...B2(),...TM(),...X2(),...m1(),...T1(),...U1(),...XM(),...LM().shifts,...uM(),...NM(),...H1()};qp.exports={..._4,...I4,...F4,...G4,...H4,...U4};});function R0(b,{insertAt:O}={}){if(!b||typeof document>"u")return;let o=document.head||document.getElementsByTagName("head")[0],q=document.createElement("style");q.type="text/css",O==="top"&&o.firstChild?o.insertBefore(q,o.firstChild):o.appendChild(q),q.styleSheet?q.styleSheet.cssText=b:q.appendChild(document.createTextNode(b));}R0(`.new-reservation-page .value-selector{display:flex;flex-direction:column;gap:15px;margin-bottom:20px}.new-reservation-page .non-absolute{position:relative!important}.new-reservation-page .non-absolute:before{background:none}.new-reservation-page .predefined-values{display:flex;gap:10px}.new-reservation-page .predefined-value-button{flex:1;padding:10px;border:1px solid #ccc;border-radius:var(--border-radius);background-color:var(--color-white);cursor:pointer;font-size:1rem;transition:background-color .3s ease}.new-reservation-page .predefined-value-button.active,.new-reservation-page .predefined-value-button:hover{background-color:var(--color-blue);color:var(--color-white)}.new-reservation-page .slider-container{display:flex;align-items:center;gap:15px}.new-reservation-page .slider{flex:1;appearance:none;-webkit-appearance:none;height:5px;background:#ddd;border-radius:5px;outline:none}.new-reservation-page .slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:20px;height:20px;background:var(--color-blue);cursor:pointer;border-radius:50%}.new-reservation-page .value-input{width:80px;padding:10px;border:1px solid #ccc;border-radius:var(--border-radius);font-size:1rem}
9
- `);var hA=({setGuests:b,value:O,onChange:o})=>{let q=[1,2,3,"4+"],[e,a]=i0.useState(O||""),[n,u]=i0.useState(false),s=i=>{i==="4+"?(u(true),a(4),b(4),o({target:{name:"guests",value:4}})):(u(false),a(i),b(i),o({target:{name:"guests",value:i}}));},f=i=>{let R=i.target.value;a(R),b(R),o({target:{name:"guests",value:R}});},L=i=>{let R=i.target.value;a(R),b(R),o({target:{name:"guests",value:R}});};return i0__default.default.createElement("div",{className:"value-selector",translate:"no"},i0__default.default.createElement("div",{className:"predefined-values"},q.map(i=>i0__default.default.createElement("button",{key:i,type:"button",className:`predefined-value-button ${e==i||i==="4+"&&n?"active":""}`,onClick:()=>s(i)},i==="4+"?"4+":`${i} p`))),i0__default.default.createElement(framerMotion.AnimatePresence,null,n&&i0__default.default.createElement(framerMotion.motion.div,{className:"slider-container",initial:{opacity:0,height:0},animate:{opacity:1,height:"auto"},exit:{opacity:0,height:0}},i0__default.default.createElement("input",{type:"range",min:"4",max:"15",step:"1",value:e,onChange:f,className:"slider non-absolute"}),i0__default.default.createElement("input",{type:"number",name:"guests",value:e,onChange:L,className:"value-input",min:"4",max:"100",step:"1"}))))},hz=hA;var i1=G0(O1());var Cz=G0(O1()),kz=b=>{let O=(0, Cz.default)().tz("Europe/Brussels").startOf("day");return b.clone().add(6,"days").endOf("day").isBefore(O)},xz=(b,O)=>b.isSame(O,"day");R0(`.new-reservation-page .calendar-container{position:relative;width:100%}.new-reservation-page .calendar-container .calendar-display{display:flex;align-items:center;justify-content:space-between;width:100%;padding:10px;background-color:#fff;border:#ccc 1px solid;cursor:pointer;user-select:none;text-align:left;border-radius:5px}.new-reservation-page .calendar-container .calendar-display span:first-child{flex-grow:1}.new-reservation-page .calendar-container .calendar{position:absolute;z-index:1000;width:100%;background-color:#fff;border:1px solid #ccc;margin-top:5px;padding:10px;border-radius:10px;animation:fadeInCalendar .3s ease-in-out;box-shadow:0 2px 10px #0000001a}@keyframes fadeInCalendar{0%{opacity:0}to{opacity:1}}.new-reservation-page .calendar-container .availability-hold-btn{font-size:10px}.new-reservation-page .calendar-container .calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;gap:8px;flex-wrap:wrap}.new-reservation-page .calendar-container .calendar-header button{background-color:transparent;border:none;cursor:pointer;font-size:18px}.new-reservation-page .calendar-container .calendar-header span{font-size:15px;color:gray;font-weight:500}.new-reservation-page .calendar-container .calendar-weeks-wrapper{overflow:hidden;position:relative;width:100%}.new-reservation-page .calendar-container .calendar-table{width:100%;border-collapse:collapse}.new-reservation-page .calendar-container .calendar-table th,.new-reservation-page .calendar-container .calendar-table td{width:14.28%;text-align:center;padding:5px}.new-reservation-page .calendar-container .calendar-table th{color:#666;font-weight:400;padding-bottom:10px}.new-reservation-page .calendar-container .calendar-table td{vertical-align:middle;cursor:pointer;border:none;opacity:1;position:relative}.new-reservation-page .calendar-container .calendar-table td.empty-day{cursor:default}.new-reservation-page .calendar-container .calendar-table td:hover .day-square.available{transform:scale(1.05)}.new-reservation-page .calendar-container .day-square{position:relative;width:38px;height:38px;border-radius:4px;display:inline-flex;align-items:center;justify-content:center;flex-direction:column;transition:all .2s ease;font-size:16px;margin:0 auto}.new-reservation-page .calendar-container .day-number{line-height:1;z-index:2}.new-reservation-page .calendar-container .available .day-square{background-color:#cfc;color:#060}.new-reservation-page .calendar-container .available:hover .day-square{background-color:#b3ffb3}.new-reservation-page .calendar-container .available:active .day-square{background-color:#9f9}.new-reservation-page .calendar-container .unavailable .day-square{background-color:#8b000021;color:#8b0000}.new-reservation-page .calendar-container .gray-out .day-square{background-color:#e0e0e0;color:#999;cursor:not-allowed}.new-reservation-page .calendar-container .selected .day-square{background-color:#060;color:#cfc}.new-reservation-page .calendar-container .calendar-table td.unavailable,.new-reservation-page .calendar-container .calendar-table td.gray-out{cursor:not-allowed}.new-reservation-page .calendar-container .calendar-table td.unavailable:hover .day-square,.new-reservation-page .calendar-container .calendar-table td.gray-out:hover .day-square{transform:none}.new-reservation-page .calendar-container .calendar-table td{border:none}.new-reservation-page .calendar-container .arrow{margin-left:auto;color:gray;display:flex;align-items:center}.new-reservation-page .calendar-container .available .availability-badge{background:#38a169}.new-reservation-page .calendar-container .selected .availability-badge{background:#2d3748}@media screen and (max-width:900px){.new-reservation-page .calendar-container .day-square{width:35px!important;height:35px!important;font-size:15px!important}.new-reservation-page .calendar-container .calendar-header span{font-size:12px}.new-reservation-page .calendar-container .availability-toggle-btn{padding:5px 8px;font-size:11px}}
9
+ `);var hA=({setGuests:b,value:O,onChange:o})=>{let q=[1,2,3,"4+"],[e,a]=i0.useState(O||""),[n,u]=i0.useState(false),s=i=>{i==="4+"?(u(true),a(4),b(4),o({target:{name:"guests",value:4}})):(u(false),a(i),b(i),o({target:{name:"guests",value:i}}));},f=i=>{let R=i.target.value;a(R),b(R),o({target:{name:"guests",value:R}});},L=i=>{let R=i.target.value;a(R),b(R),o({target:{name:"guests",value:R}});};return i0__default.default.createElement("div",{className:"value-selector",translate:"no"},i0__default.default.createElement("div",{className:"predefined-values"},q.map(i=>i0__default.default.createElement("button",{key:i,type:"button",className:`predefined-value-button ${e==i||i==="4+"&&n?"active":""}`,onClick:()=>s(i)},i==="4+"?"4+":`${i} p`))),i0__default.default.createElement(framerMotion.AnimatePresence,null,n&&i0__default.default.createElement(framerMotion.motion.div,{className:"slider-container",initial:{opacity:0,height:0},animate:{opacity:1,height:"auto"},exit:{opacity:0,height:0}},i0__default.default.createElement("input",{type:"range",min:"4",max:"15",step:"1",value:e,onChange:f,className:"slider non-absolute"}),i0__default.default.createElement("input",{type:"number",name:"guests",value:e,onChange:L,className:"value-input",min:"4",max:"100",step:"1"}))))},hz=hA;var i1=G0(O1());var Cz=G0(O1()),kz=b=>{let O=(0, Cz.default)().tz("Europe/Brussels").startOf("day");return b.clone().add(6,"days").endOf("day").isBefore(O)},xz=(b,O)=>b.isSame(O,"day");R0(`.new-reservation-page .calendar-container{position:relative;width:100%}.new-reservation-page .calendar-container .calendar-display{display:flex;align-items:center;justify-content:space-between;width:100%;padding:10px;background-color:#fff;border:#ccc 1px solid;cursor:pointer;user-select:none;text-align:left;border-radius:5px}.new-reservation-page .calendar-container .calendar-display span:first-child{flex-grow:1}.new-reservation-page .calendar-container .calendar{position:absolute;z-index:1000;width:100%;background-color:#fff;border:1px solid #ccc;margin-top:5px;padding:10px;border-radius:10px;animation:fadeInCalendar .3s ease-in-out;box-shadow:0 2px 10px #0000001a}@keyframes fadeInCalendar{0%{opacity:0}to{opacity:1}}.new-reservation-page .calendar-container .availability-hold-btn{font-size:10px}.new-reservation-page .calendar-container .calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;gap:8px;flex-wrap:wrap}.new-reservation-page .calendar-container .calendar-header button{background-color:transparent;border:none;cursor:pointer;font-size:18px}.new-reservation-page .calendar-container .calendar-header span{font-size:15px;color:gray;font-weight:500}.new-reservation-page .calendar-container .calendar-weeks-wrapper{overflow:hidden;position:relative;width:100%}.new-reservation-page .calendar-container .calendar-table{width:100%;border-collapse:collapse}.new-reservation-page .calendar-container .calendar-table th,.new-reservation-page .calendar-container .calendar-table td{width:14.28%;text-align:center;padding:5px}.calendar-container .calendar-table th{color:#666;font-weight:400;padding-bottom:10px}.new-reservation-page .calendar-container .calendar-table td{vertical-align:middle;cursor:pointer;border:none;opacity:1;position:relative}.new-reservation-page .calendar-container .calendar-table td.empty-day{cursor:default}.new-reservation-page .calendar-container .calendar-table td:hover .day-square.available{transform:scale(1.05)}.new-reservation-page .calendar-container .day-square{position:relative;width:38px;height:38px;border-radius:4px;display:inline-flex;align-items:center;justify-content:center;flex-direction:column;transition:all .2s ease;font-size:16px;margin:0 auto}.new-reservation-page .calendar-container .day-number{line-height:1;z-index:2}.new-reservation-page .calendar-container .available .day-square{background-color:#cfc;color:#060}.new-reservation-page .calendar-container .available:hover .day-square{background-color:#b3ffb3}.new-reservation-page .calendar-container .available:active .day-square{background-color:#9f9}.new-reservation-page .calendar-container .unavailable .day-square{background-color:#8b000021;color:#8b0000}.new-reservation-page .calendar-container .gray-out .day-square{background-color:#e0e0e0;color:#999;cursor:not-allowed}.new-reservation-page .calendar-container .selected .day-square{background-color:#060;color:#cfc}.new-reservation-page .calendar-container .calendar-table td.unavailable,.new-reservation-page .calendar-container .calendar-table td.gray-out{cursor:not-allowed}.new-reservation-page .calendar-container .calendar-table td.unavailable:hover .day-square,.new-reservation-page .calendar-container .calendar-table td.gray-out:hover .day-square{transform:none}.new-reservation-page .calendar-container .calendar-table td{border:none}.new-reservation-page .calendar-container .arrow{margin-left:auto;color:gray;display:flex;align-items:center}.new-reservation-page .calendar-container .available .availability-badge{background:#38a169}.new-reservation-page .calendar-container .selected .availability-badge{background:#2d3748}@media screen and (max-width:900px){.calendar-container .day-square{width:35px!important;height:35px!important;font-size:15px!important}.calendar-container .calendar-header span{font-size:12px}.new-reservation-page .calendar-container .availability-toggle-btn{padding:5px 8px;font-size:11px}}
10
10
  `);var M1=G0(T2());var gM=class{constructor(O=6e4){this.cache=new Map,this.ttl=O;}generateKey(O,...o){return `${O}::${JSON.stringify(o)}`}get(O){let o=this.cache.get(O);return o?Date.now()-o.timestamp>this.ttl?(this.cache.delete(O),null):o.value:null}set(O,o){this.cache.set(O,{value:o,timestamp:Date.now()});}clear(){this.cache.clear();}cleanup(){let O=Date.now();for(let[o,q]of this.cache.entries())O-q.timestamp>this.ttl&&this.cache.delete(o);}},g2=new gM;setInterval(()=>g2.cleanup(),3e4);var Z0=(b,O,...o)=>{let q=g2.generateKey(b,...o),e=g2.get(q);if(e!==null)return e;let a=O(...o);return g2.set(q,a),a};var A1={nl:{reservationStepOne:{errors:{openingHoursNotSet:"Openingstijden niet ingesteld.",clickHereToSet:"Klik hier om uw openingsuren in te stellen."},modes:{withLimits:"Met Limieten",unlimited:"Onbeperkt",openingHours:"Openingsuren",free:"Vrij"},fields:{time:"Tijd"},messages:{searchingTables:"Beschikbare tafels zoeken...",noTablesAvailable:"Geen specifieke tafels beschikbaar voor deze selectie."},warnings:{unlimitedMode:"Onbeperkt zal geen rekening houden met maximum limieten."}},calendar:{selectDatePlaceholder:"Selecteer een datum",today:"Vandaag",tomorrow:"Morgen",prevWeek:"Vorige week",nextWeek:"Volgende week",dayHeaders:["Ma","Di","Wo","Do","Vr","Za","Zo"],seatsQuestion:"Zitplaatsen?"},timeSelector:{shifts:{breakfast:"Ontbijt",lunch:"Lunch",dinner:"Diner"},selectMeal:"Selecteer een maaltijd",selectTime:"Selecteer een tijd",noDateSelected:"Selecteer eerst een datum.",noTimes:"Geen beschikbare tijden.",back:"Terug"},tableSelector:{label:"Selecteer beschikbare tafel(s):",table:"Tafel",max:"Max",noTables:"Geen specifieke tafels beschikbaar voor deze tijd/gasten combinatie."}},en:{reservationStepOne:{errors:{openingHoursNotSet:"Opening hours not set.",clickHereToSet:"Click here to set your opening hours."},modes:{withLimits:"With Limits",unlimited:"Unlimited",openingHours:"Opening Hours",free:"Free"},fields:{time:"Time"},messages:{searchingTables:"Searching for available tables...",noTablesAvailable:"No specific tables available for this selection."},warnings:{unlimitedMode:"Unlimited will not take into account maximum limits."}},calendar:{selectDatePlaceholder:"Select a date",today:"Today",tomorrow:"Tomorrow",prevWeek:"Previous week",nextWeek:"Next week",dayHeaders:["M","T","W","T","F","S","S"],seatsQuestion:"Seating?"},timeSelector:{shifts:{breakfast:"Breakfast",lunch:"Lunch",dinner:"Dinner"},selectMeal:"Select a meal",selectTime:"Select a time",noDateSelected:"Please select a date first.",noTimes:"No available times.",back:"Back"},tableSelector:{label:"Select available table(s):",table:"Table",max:"Max",noTables:"No specific tables available for this time/guest combination."}},fr:{reservationStepOne:{errors:{openingHoursNotSet:"Horaires non d\xE9finies.",clickHereToSet:"Cliquez ici pour d\xE9finir vos horaires."},modes:{withLimits:"Avec Limites",unlimited:"Illimit\xE9",openingHours:"Horaires",free:"Libre"},fields:{time:"Heure"},messages:{searchingTables:"Recherche de tables disponibles...",noTablesAvailable:"Aucune table sp\xE9cifique disponible pour cette s\xE9lection."},warnings:{unlimitedMode:"Illimit\xE9 ne tiendra pas compte des limites maximales."}},calendar:{selectDatePlaceholder:"S\xE9lectionnez une date",today:"Aujourd'hui",tomorrow:"Demain",prevWeek:"Semaine pr\xE9c\xE9dente",nextWeek:"Semaine suivante",dayHeaders:["Lu","Ma","Me","Je","Ve","Sa","Di"],seatsQuestion:"Places ?"},timeSelector:{shifts:{breakfast:"Petit-d\xE9jeuner",lunch:"D\xE9jeuner",dinner:"D\xEEner"},selectMeal:"S\xE9lectionnez un repas",selectTime:"S\xE9lectionnez une heure",noDateSelected:"Veuillez d'abord s\xE9lectionner une date.",noTimes:"Aucun horaire disponible.",back:"Retour"},tableSelector:{label:"S\xE9lectionnez les table(s) disponibles :",table:"Table",max:"Max",noTables:"Aucune table sp\xE9cifique disponible pour cette combinaison temps/convives."}}};var ap=i0.memo(({guests:b,selectedDate:O,onSelectDate:o,autoExpand:q,reservationMode:e,restaurantData:a,startDate:n,onWeekChange:u,reservations:s,giftcard:f,zitplaats:L})=>{let i=localStorage.getItem("preferredLanguage")||"nl",R=A1[i].calendar,[T,X]=i0.useState(q||false),[h,B]=i0.useState(false),N=i0.useRef(null),S=i0.useRef(null),g=(0, i1.default)().tz("Europe/Amsterdam").add(1,"year").endOf("day");i0.useEffect(()=>{q&&X(true);},[q]),i0.useEffect(()=>{let w=W0=>{N.current&&!N.current.contains(W0.target)&&(X(false),B(false));};return document.addEventListener("mousedown",w),()=>{document.removeEventListener("mousedown",w);}},[]),i0.useEffect(()=>()=>{S.current&&(clearTimeout(S.current),S.current=null);},[]);let k=()=>{S.current&&(clearTimeout(S.current),S.current=null),B(true);},H=(w=1e3)=>{S.current&&clearTimeout(S.current),S.current=setTimeout(()=>{B(false),S.current=null;},w);},C=(w,W0,K=[])=>{if(w.isBefore(W0,"day")||w.isAfter(g,"day"))return 0;let d0=w.format("YYYY-MM-DD");if(h){let v=a?.["table-settings"]||{},z0=v.isInstalled===true&&v.assignmentMode==="automatic",a0=0;for(let P=1;P<=21;P++){let O0;z0?O0=Z0("isDateAvailableWithTableCheck",M1.isDateAvailableWithTableCheck,a,d0,s,P,K):O0=Z0("isDateAvailable",M1.isDateAvailable,a,d0,s,P,K),O0&&(a0=P);}return a0}if(e==="vrije_keuze")return 21;if(e!=="met_limieten")return (0, M1.isDateAvailable)(a,d0,s,-1e4,K)?21:0;let U=a?.["table-settings"]||{},Z=U.isInstalled===true&&U.assignmentMode==="automatic"&&e==="met_limieten",p0=0;for(let v=1;v<=21;v++){let z0;Z?z0=Z0("isDateAvailableWithTableCheck",M1.isDateAvailableWithTableCheck,a,d0,s,v,K):z0=Z0("isDateAvailable",M1.isDateAvailable,a,d0,s,v,K),z0&&(p0=v);}return p0},x=i0.useMemo(()=>{if(!T)return [];let w=[],W0=(0, i1.default)().tz("Europe/Amsterdam").startOf("day"),K=n||W0,d0=a?.["blocked-slots"]||[],U=K.clone().startOf("month"),Z=K.clone().endOf("month"),p0=a?.["table-settings"]||{},v=p0.isInstalled===true&&p0.assignmentMode==="automatic"&&e==="met_limieten",z0=U.clone();for(;z0.isSameOrBefore(Z,"day");){let a0=z0.format("YYYY-MM-DD"),P;if(e==="vrije_keuze")P=z0.isBetween(W0,g,null,"[]");else {let _0=e!=="met_limieten"?-1e4:b,I0=e==="met_limieten"?f:null;v?P=Z0("isDateAvailableWithTableCheck",M1.isDateAvailableWithTableCheck,a,a0,s,_0,d0,I0):P=Z0("isDateAvailable",M1.isDateAvailable,a,a0,s,_0,d0,I0);}let O0=C(z0,W0,d0);w.push({date:z0.clone(),isPast:z0.isBefore(W0,"day"),isFuture:z0.isAfter(g,"day"),isAvailable:P,maxGuestsAvailable:O0}),z0.add(1,"day");}return w},[T,n,b,e,a,s,f,L,h]),Y=w=>{w.isAvailable&&!w.isPast&&!w.isFuture&&(o(w.date.format("YYYY-MM-DD")),X(false),B(false));},Q=()=>{let w=n.clone().subtract(1,"month").startOf("month"),W0=(0, i1.default)().tz("Europe/Amsterdam").startOf("day");if(w.clone().endOf("month").isBefore(W0,"day")){console.log("Cannot go to previous month. It is in the past.");return}u(w);},n0=()=>{let w=n.clone().add(1,"month").startOf("month");u(w);},M0=()=>{if(!O)return R.selectDatePlaceholder;let w=(0, i1.default)(O,"YYYY-MM-DD").tz("Europe/Amsterdam").startOf("day"),W0=(0, i1.default)().tz("Europe/Amsterdam").startOf("day"),K=W0.clone().add(1,"day");return w.isSame(W0,"day")?R.today:w.isSame(K,"day")?R.tomorrow:w.format("dddd D MMMM YYYY")},b0=n?(w=>{let K=n.clone().startOf("month").day(),d0=K===0?6:K-1,U=[];for(let z0=0;z0<d0;z0++)U.push(null);U.push(...w);let Z=U.length,p0=Math.ceil(Z/7);for(;U.length<p0*7;)U.push(null);let v=[];for(let z0=0;z0<p0;z0++){let a0=U.slice(z0*7,z0*7+7);v.push(a0);}return v})(x):[],q0=R.dayHeaders,_=w=>w>=21?"20+":String(w);return i0__default.default.createElement("div",{className:"calendar-container",ref:N},i0__default.default.createElement("div",{className:"calendar-display",onClick:()=>X(!T)},i0__default.default.createElement("span",null,M0()),i0__default.default.createElement("span",{className:"arrow"},i0__default.default.createElement("svg",{width:"12",height:"12",viewBox:"0 0 24 24",style:{transform:T?"rotate(180deg)":"rotate(0deg)",transition:"transform 0.2s"}},i0__default.default.createElement("path",{d:"M7 10l5 5 5-5",fill:"none",stroke:"currentColor",strokeWidth:"2"})))),T&&n&&i0__default.default.createElement("div",{className:"calendar"},i0__default.default.createElement("div",{className:"calendar-header"},i0__default.default.createElement("button",{type:"button",onClick:Q,"aria-label":R.prevWeek},"<"),i0__default.default.createElement("span",null,n.format("MMMM YYYY")),i0__default.default.createElement("button",{type:"button",onClick:n0,"aria-label":R.nextWeek},">"),i0__default.default.createElement("button",{type:"button",className:`availability-hold-btn ${h?"active":""}`,"aria-pressed":h,"aria-label":"Houd ingedrukt om beschikbaarheden te tonen",onMouseDown:k,onMouseUp:()=>H(1e3),onMouseLeave:()=>H(1e3),onTouchStart:k,onTouchEnd:()=>H(1e3),onTouchCancel:()=>H(1e3),onKeyDown:w=>{(w.key===" "||w.key==="Enter")&&k();},onKeyUp:w=>{(w.key===" "||w.key==="Enter")&&H(1e3);},style:{fontSize:"15px",color:"gray",fontWeight:"450",textDecoration:"underline"}},R.seatsQuestion)),i0__default.default.createElement("div",{className:"calendar-weeks-wrapper"},i0__default.default.createElement("table",{className:"calendar-table"},i0__default.default.createElement("thead",null,i0__default.default.createElement("tr",{translate:"no"},q0.map((w,W0)=>i0__default.default.createElement("th",{key:W0},w)))),i0__default.default.createElement("tbody",null,b0.map((w,W0)=>i0__default.default.createElement("tr",{key:W0,translate:"no"},w.map((K,d0)=>{if(!K)return i0__default.default.createElement("td",{key:d0,className:"empty-day"});let U=O&&xz(K.date,(0, i1.default)(O,"YYYY-MM-DD").tz("Europe/Amsterdam")),Z=[];return K.isPast?Z.push("gray-out"):K.isAvailable?Z.push("available"):Z.push("unavailable"),U&&Z.push("selected"),i0__default.default.createElement("td",{key:d0,className:Z.join(" "),onClick:()=>Y(K),style:{"--animation-order":d0+W0*7}},i0__default.default.createElement("div",{className:`day-square ${h?"showing-availabilities":""}`},i0__default.default.createElement("span",{className:"day-number"},h?_(K.maxGuestsAvailable):K.date.date())))}))))))))});ap.displayName="Calendar";var np=ap;var yM=G0(O1()),V4=({guests:b,formData:O,handleChange:o,resetFormDataFields:q,restaurantData:e,reservations:a,startDate:n,onWeekChange:u,reservationMode:s})=>{let f=i=>{let R=(0, yM.default)(i).format("YYYY-MM-DD");console.log("Selected date:",R),o({target:{name:"date",value:R}}),q(["time"]);},L=n?n.clone().startOf("month"):(0, yM.default)().startOf("month");return i0__default.default.createElement("div",{className:"form-group date-selector-container"},i0__default.default.createElement(np,{guests:b,selectedDate:O.date||null,onSelectDate:f,autoExpand:false,reservationMode:s,restaurantData:e,startDate:L,onWeekChange:u,reservations:a,giftcard:O.giftcard,zitplaats:O.zitplaats}))},ip=V4;R0(`.new-reservation-page .time-selector-container{position:relative}.new-reservation-page .time-display{display:flex;align-items:center;justify-content:space-between;width:100%;padding:10px;background-color:#fff;border:#ccc 1px solid;cursor:pointer;user-select:none;text-align:left;border-radius:5px}.new-reservation-page .time-display span:first-child{flex-grow:1}.new-reservation-page .time-selector{position:absolute;z-index:1000;width:100%;max-height:300px;overflow-y:auto;background-color:#fff;border:1px solid #ccc;margin-top:5px;padding:10px;border-radius:10px;animation:fadeInTimeSelector .3s ease-in-out;top:75px}@keyframes fadeInTimeSelector{0%{opacity:0}to{opacity:1}}.new-reservation-page .time-period{margin-bottom:15px}.new-reservation-page .time-period-label{font-weight:700;margin-bottom:5px}.new-reservation-page .time-options{display:flex;flex-wrap:wrap;gap:5px}.new-reservation-page .time-option{padding:8px 12px;background-color:#cfc;color:#060;border-radius:5px;cursor:pointer;transition:background-color .2s ease}.new-reservation-page .time-option:hover{background-color:#b3ffb3}.new-reservation-page .time-option.selected{background-color:#060;color:#cfc}.new-reservation-page .info-text{color:#666;font-style:italic}.new-reservation-page .arrow{margin-left:auto;color:gray;display:flex;align-items:center}@media screen and (max-width:480px){.new-reservation-page .time-option{padding:6px 10px;font-size:14px}}
11
11
  `);var EM=G0(O1());var h2=G0(T2()),rp=i0.memo(({guests:b,formData:O,handleChange:o,field:q,selectedDate:e,expanded:a,setCurrentExpandedField:n,restaurantData:u,reservations:s,reservationMode:f})=>{let L=localStorage.getItem("preferredLanguage")||"nl",i=A1[L].timeSelector,[R,T]=i0.useState(a||false),[X,h]=i0.useState([]),[B,N]=i0.useState(null),S=i0.useRef(null),g={breakfast:{start:"07:00",end:"11:00",label:i.shifts.breakfast},lunch:{start:"11:00",end:"16:00",label:i.shifts.lunch},dinner:{start:"16:00",end:"23:00",label:i.shifts.dinner}};i0.useEffect(()=>{if(!e||!b){h([]);return}if(f==="vrije_keuze")if(B){let x=g[B],Y=EM.default.tz(`${e} ${x.start}`,"YYYY-MM-DD HH:mm","Europe/Brussels"),Q=EM.default.tz(`${e} ${x.end}`,"YYYY-MM-DD HH:mm","Europe/Brussels"),n0=[],M0=Y.clone();for(;M0.isBefore(Q);)n0.push({value:M0.format("HH:mm"),label:M0.format("HH:mm")}),M0.add(15,"minutes");h(n0);}else h([]);else if(u&&s){let x=f!=="met_limieten"?-1e4:b,Y=u?.["table-settings"]||{},Q=f==="met_limieten"&&Y.isInstalled===true&&Y.assignmentMode==="automatic",n0=f==="met_limieten"?O.giftcard:null,M0=u?.["blocked-slots"]||[],L0=(0, h2.getAvailableTimeblocks)(u,e,s,x,M0,n0),b0=Q?(0, h2.getAvailableTimeblocksWithTableCheck)(u,e,L0,x,s):L0,q0=Object.keys(b0).map(_=>({value:_,label:b0[_].name||_}));q0.sort((_,w)=>{let[W0,K]=_.value.split(":").map(Number),[d0,U]=w.value.split(":").map(Number);return W0*60+K-(d0*60+U)}),h(q0),O[q.id]&&!q0.some(_=>_.value===O[q.id])&&o({target:{name:q.id,value:""}});}else h([]);},[e,b,u,s,f,q.id,B,O[q.id],o]),i0.useEffect(()=>{f==="vrije_keuze"&&(N(null),O[q.id]&&o({target:{name:q.id,value:""}}));},[e,f]);let k=x=>{o({target:{name:q.id,value:x}}),T(false),n?.(null);},H=x=>{B!==x&&O[q.id]&&o({target:{name:q.id,value:""}}),N(x);},C=()=>{if(f==="vrije_keuze")return B?O[q.id]?`${g[B].label} \u2013 ${O[q.id]}`:`${g[B].label} \u2013 ${i.selectTime}`:i.selectMeal;if(O[q.id]){let x=X.find(Y=>Y.value===O[q.id]);return x?x.label:i.selectTime}return i.selectTime};return q?i0__default.default.createElement("div",{className:"form-group time-selector-container",ref:S},e?i0__default.default.createElement(i0__default.default.Fragment,null,i0__default.default.createElement("div",{className:"time-display",onClick:()=>{T(!R),R||n?.(q.id);}},i0__default.default.createElement("span",null,C()),i0__default.default.createElement("span",{className:"arrow"},i0__default.default.createElement("svg",{width:"12",height:"12",viewBox:"0 0 24 24",style:{transform:R?"rotate(180deg)":"rotate(0deg)",transition:"transform 0.2s"}},i0__default.default.createElement("path",{d:"M7 10l5 5 5-5",fill:"none",stroke:"currentColor",strokeWidth:"2"})))),R&&i0__default.default.createElement("div",{className:"time-selector"},f==="vrije_keuze"?B?i0__default.default.createElement("div",{className:"time-period"},i0__default.default.createElement("div",{className:"time-period-label"},g[B].label,i0__default.default.createElement("button",{onClick:()=>N(null),style:{marginLeft:"10px",background:"none",border:"none",cursor:"pointer",color:"#006600",fontSize:"0.9rem",padding:0}},"\u2190 ",i.back)),i0__default.default.createElement("div",{className:"time-options"},X.length===0?i0__default.default.createElement("div",{className:"no-times"},i.noTimes):X.map(x=>i0__default.default.createElement("div",{key:x.value,className:`time-option ${O[q.id]===x.value?"selected":""}`,onClick:()=>k(x.value)},x.label)))):i0__default.default.createElement("div",{className:"time-options"},Object.keys(g).map(x=>i0__default.default.createElement("div",{key:x,className:`time-option ${B===x?"selected":""}`,onClick:()=>H(x)},g[x].label))):i0__default.default.createElement("div",{className:"time-options"},X.length===0?i0__default.default.createElement("div",{className:"no-times"},i.noTimes):X.map(x=>i0__default.default.createElement("div",{key:x.value,className:`time-option ${O[q.id]===x.value?"selected":""}`,onClick:()=>k(x.value)},x.label))))):i0__default.default.createElement("p",{className:"info-text"},i.noDateSelected)):null});rp.displayName="TimeSelector";var sp=rp;R0(`.new-reservation-page .table-selector-container{margin-top:15px;padding:10px;border:1px solid #eee;border-radius:4px;background-color:#f9f9f9}.new-reservation-page .table-selector-label{display:block;margin-bottom:10px;font-weight:700;color:#333;font-size:.95rem}.new-reservation-page .table-options{display:flex;flex-wrap:wrap;gap:10px}.new-reservation-page .table-option{display:inline-block;margin-right:15px;margin-bottom:5px;padding:5px 8px;border:1px solid #ccc;border-radius:4px;background-color:#fff;transition:background-color .2s ease}.new-reservation-page .table-option label{display:flex;align-items:center;cursor:pointer;font-size:.9rem;color:#555}.new-reservation-page .table-option input[type=checkbox]{margin-right:8px;cursor:pointer;accent-color:var(--primary-color, #006600)}.new-reservation-page .table-option:has(input[type=checkbox]:checked){background-color:#e0f2e0;border-color:#060}.new-reservation-page .table-option:hover{background-color:#f0f0f0}.new-reservation-page .info-text{margin-top:10px;font-size:.85rem;color:#666}.new-reservation-page .selected-tables-info{margin-top:10px;font-style:italic}.new-reservation-page .info-text.loading-tables{font-style:italic;color:#060}
12
12
  `);var $4=({availableTables:b=[],isFetching:O=false,formData:o={},handleChange:q,setFormData:e})=>{let a=localStorage.getItem("preferredLanguage")||"nl",n=A1?.[a]?.tableSelector||{},u={label:n.label||"Tafels",noTables:n.noTables||"Geen tafels beschikbaar voor deze selectie.",table:n.table||"Tafel",max:n.max||"Max"},s=Array.isArray(o.selectedTableNumbers)?o.selectedTableNumbers:[],f=Array.isArray(o.selectedTableIds)?o.selectedTableIds:[],L=(R,T)=>{if(typeof q=="function"){q({target:{multiple:true,updates:{selectedTableNumbers:R,selectedTableIds:T}}});return}typeof e=="function"&&e(X=>({...X,selectedTableNumbers:R,selectedTableIds:T}));},i=R=>T=>{let X=T.target.checked,h=b.find(S=>S.tableNumber===R);if(!h)return;let B=[...s],N=[...f];X?(B.includes(R)||B.push(R),N.includes(h.tableId)||N.push(h.tableId)):(B=B.filter(S=>S!==R),N=N.filter(S=>S!==h.tableId)),B.sort((S,g)=>S-g),L(B,N);};return O?i0__default.default.createElement("div",{className:"form-group table-selector-container"},i0__default.default.createElement("label",{className:"table-selector-label"},u.label),i0__default.default.createElement("p",{className:"info-text"},"Laden\u2026")):!b||b.length===0?i0__default.default.createElement("div",{className:"form-group table-selector-container"},i0__default.default.createElement("label",{className:"table-selector-label"},u.label),i0__default.default.createElement("p",{className:"info-text"},u.noTables)):i0__default.default.createElement("div",{className:"form-group table-selector-container"},i0__default.default.createElement("label",{className:"table-selector-label"},u.label),i0__default.default.createElement("div",{className:"table-options"},b.map(R=>{let T=R.tableNumber,X=R.maxCapacity??R.capacity??R.seats??"-",h=s.includes(T);return i0__default.default.createElement("div",{key:`${R.tableId||T}`,className:"table-option"},i0__default.default.createElement("label",null,i0__default.default.createElement("input",{type:"checkbox",value:T,checked:h,onChange:i(T)}),u.table," ",T," (",u.max,": ",X,")"))})))},Rp=$4;R0(`.new-reservation-page .form-row .field-label{display:block;margin-bottom:6px;font-weight:600}.new-reservation-page .form-row .reservation-mode-buttons{margin-top:0}.new-reservation-page .reservation-mode-buttons{display:flex;gap:10px;margin-top:10px}.new-reservation-page .reservation-mode-button{flex:1;padding:10px;border:1px solid #ccc;border-radius:var(--border-radius);background-color:var(--color-white);cursor:pointer;font-size:1rem;transition:background-color .3s ease,color .3s ease}.new-reservation-page .reservation-mode-button:nth-child(3){flex:0 0 100%}.new-reservation-page .reservation-modes-container{display:flex;flex-wrap:wrap;margin:0 -5px;width:100%}.new-reservation-page .reservation-mode-button{flex:0 0 calc(50% - 10px);margin:5px;padding:10px;box-sizing:border-box;text-align:center;border:1px solid #ccc;background:#f7f7f7;cursor:pointer}.new-reservation-page .reservation-mode-button.active,.new-reservation-page .reservation-mode-button:hover{background-color:var(--color-blue);color:var(--color-white)}.new-reservation-page .unlimited-mode-warning{display:flex;align-items:flex-start;gap:10px;margin:15px 0;padding:12px 15px;background-color:#fff3cd;border:1px solid #ffeaa7;border-radius:var(--border-radius, 4px);border-left:4px solid #e67e22;font-size:.9rem;line-height:1.4}.new-reservation-page .unlimited-mode-warning .warning-icon{color:#e67e22;font-size:1.1rem;margin-top:2px;flex-shrink:0}.new-reservation-page .unlimited-mode-warning .warning-text{color:#856404;margin:0}@media screen and (max-width:480px){.new-reservation-page .unlimited-mode-warning{margin:10px 0;padding:10px 12px;font-size:.85rem}.new-reservation-page .unlimited-mode-warning .warning-icon{font-size:1rem}}.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}
13
13
  `);var up=G0(O1());var Mq=()=>{let b=i0.useCallback(()=>localStorage.getItem("accessToken"),[]),O=i0.useCallback((e,a={})=>{let{params:n,...u}=a,s=b();return fp__default.default.get(e,{...u,params:n,headers:{...u.headers,...s?{Authorization:`Bearer ${s}`}:{}}}).then(f=>f.data).catch(f=>{throw console.error("Error fetching data:",f),f})},[b]),o=i0.useCallback((e,a,n=null,u={})=>{let s=b();return fp__default.default({method:e,url:a,data:n,...u,headers:{...u.headers,...s?{Authorization:`Bearer ${s}`}:{}}}).then(f=>f.data).catch(f=>{throw console.error(`Error with ${e} request:`,f),f})},[b]);return i0.useMemo(()=>({get:O,post:(e,a,n)=>o("POST",e,a,n),put:(e,a,n)=>o("PUT",e,a,n),patch:(e,a,n)=>o("PATCH",e,a,n),delete:(e,a)=>o("DELETE",e,null,a)}),[O,o])},t1=Mq;var Lp=G0(T2());var lp=i0.memo(({formData:b,errors:O,handleChange:o,handleStepOneSubmit:q,setFormData:e,timeblocks:a,loadingTimeblocks:n,timeblocksError:u,restaurantData:s})=>{let f=localStorage.getItem("preferredLanguage")||"nl",L=A1[f].reservationStepOne,[i,R]=i0.useState(b.guests||2),[T,X]=i0.useState(null),[h,B]=i0.useState([]),N=t1(),[S,g]=i0.useState([]),[k,H]=i0.useState(false),C=i0.useRef(false),x=i0.useCallback(U=>{e(Z=>{let p0={...Z};return U.forEach(v=>{p0[v]="";}),(U.includes("date")||U.includes("time")||U.includes("guests"))&&(p0.selectedTableNumbers=[],p0.selectedTableIds=[],g([])),p0});},[e]);i0.useEffect(()=>{let Z=(0, up.default)().tz("Europe/Amsterdam").startOf("day").clone().startOf("isoWeek");for(;kz(Z);)Z.add(1,"week");X(Z);},[]),i0.useEffect(()=>{(async()=>{if(T&&(b.reservationMode==="met_limieten"||b.reservationMode==="zonder_regels")){let Z=s?.["table-settings"]||{},p0=Z.isInstalled===true&&Z.assignmentMode==="automatic";if(b.reservationMode==="met_limieten"||b.reservationMode==="zonder_regels"&&p0){let v=T.format("YYYY-MM-DD"),z0=T.clone().add(13,"days").format("YYYY-MM-DD"),a0=localStorage.getItem("username"),P=`${window.baseDomain}api/slots/${a0}/${v}/${z0}`;try{let O0=await N.get(P,{noCache:!0});B(O0||[]);}catch(O0){console.error("Error fetching reservations:",O0),B([]);}}else B([]);}else B([]);})();},[T,N,b.reservationMode,s]);let Y=U=>{X(U),x(["date","time","selectedTableNumbers","selectedTableIds"]);};i0.useEffect(()=>{if(!C.current){let U=false,Z={};b.reservationMode||(Z.reservationMode="met_limieten",U=true),(!b.guests||b.guests==="")&&(Z.guests=i,U=true),Array.isArray(b.selectedTableNumbers)||(Z.selectedTableNumbers=[],U=true),Array.isArray(b.selectedTableIds)||(Z.selectedTableIds=[],U=true),U&&setTimeout(()=>{o({target:{multiple:true,updates:Z}});},0),C.current=true;}},[b.reservationMode,b.guests,b.selectedTableNumbers,b.selectedTableIds,i,o]);let Q=i0.useMemo(()=>s?.["table-settings"]||{},[s]),n0=i0.useMemo(()=>Q.isInstalled===true&&Q.assignmentMode==="automatic",[Q]),M0=i0.useMemo(()=>["met_limieten","zonder_regels","vrije_keuze"].includes(b.reservationMode),[b.reservationMode]),L0=i0.useMemo(()=>M0&&b.date&&b.time&&b.guests>0&&n0&&S.length>0,[M0,b.date,b.time,b.guests,n0,S.length]);i0.useEffect(()=>{if(!n0||!b.date||!b.time||b.guests<=0||!s||!h){g([]),H(false);return}H(true);let U=setTimeout(()=>{(window.requestIdleCallback||(p0=>setTimeout(p0,1)))(()=>{try{let p0=Z0("getAvailableTablesForTime",Lp.getAvailableTablesForTime,s,b.date,b.time,b.guests,h);g(p0);}catch(p0){console.error("Error calculating available tables:",p0),g([]);}finally{H(false);}});},500);return ()=>{clearTimeout(U),H(false);}},[n0,b.date,b.time,b.guests,s,h]),i0.useEffect(()=>{if(S.length>0){let U=b.selectedTableNumbers||[],Z=b.selectedTableIds||[],p0=[],v=[];U.forEach(z0=>{let a0=S.find(P=>P.tableNumber===z0);a0&&Z.includes(a0.tableId)&&(p0.push(z0),v.push(a0.tableId));}),p0.length!==U.length&&setTimeout(()=>{o({target:{multiple:true,updates:{selectedTableNumbers:p0,selectedTableIds:v}}});},0);}else (b.selectedTableNumbers?.length>0||b.selectedTableIds?.length>0)&&setTimeout(()=>{o({target:{multiple:true,updates:{selectedTableNumbers:[],selectedTableIds:[]}}});},0);},[S,b.selectedTableNumbers,b.selectedTableIds]);let b0=U=>{let Z=parseInt(U.target.value,10)||1;R(Z),o(U),x(["time","selectedTableNumbers","selectedTableIds"]);};i0.useEffect(()=>{x(["date","time","selectedTableNumbers","selectedTableIds"]);},[b.reservationMode,x]);let q0=U=>{U==="met_limieten"?o({target:{name:"reservationMode",value:"met_limieten"}}):U==="onbeperkt_parent"&&(["zonder_regels","vrije_keuze"].includes(b.reservationMode)||o({target:{name:"reservationMode",value:"zonder_regels"}}));},_=U=>{o({target:{name:"reservationMode",value:U}});},w=b.reservationMode,W0=!!s?.["general-settings"]?.seatSelectionEnabled,K=["Terras","Restaurant"],d0=U=>{e(Z=>({...Z,zitplaats:U}));};return u?i0__default.default.createElement("div",null,L.errors.openingHoursNotSet," ",i0__default.default.createElement("a",{href:"https://happychef.cloud/#/openinghours/dinner",target:"_blank",rel:"noopener noreferrer",style:{color:"var(--color-blue)",textDecoration:"underline"}},L.errors.clickHereToSet)):i0__default.default.createElement("form",{className:"account-manage-form",noValidate:true},i0__default.default.createElement("div",{className:"form-group reservation-mode"},i0__default.default.createElement("div",{className:"reservation-modes-container"},i0__default.default.createElement("button",{type:"button",className:`reservation-mode-button ${w==="met_limieten"?"active":""}`,onClick:()=>q0("met_limieten"),"aria-pressed":w==="met_limieten"},L.modes.withLimits),i0__default.default.createElement("button",{type:"button",className:`reservation-mode-button ${["onbeperkt_parent","zonder_regels","vrije_keuze"].includes(w)?"active":""}`,onClick:()=>q0("onbeperkt_parent"),"aria-pressed":["onbeperkt_parent","zonder_regels","vrije_keuze"].includes(w)},L.modes.unlimited)),["onbeperkt_parent","zonder_regels","vrije_keuze"].includes(w)&&i0__default.default.createElement("div",{className:"reservation-modes-container sub-modes"},i0__default.default.createElement("button",{type:"button",className:`reservation-mode-button ${w==="zonder_regels"?"active":""}`,onClick:()=>_("zonder_regels"),"aria-pressed":w==="zonder_regels"},L.modes.openingHours),i0__default.default.createElement("button",{type:"button",className:`reservation-mode-button ${w==="vrije_keuze"?"active":""}`,onClick:()=>_("vrije_keuze"),"aria-pressed":w==="vrije_keuze"},L.modes.free))),["onbeperkt_parent","zonder_regels","vrije_keuze"].includes(w)&&i0__default.default.createElement("div",{className:"unlimited-mode-warning"},i0__default.default.createElement("div",{className:"warning-text"},L.warnings?.unlimitedMode||(f==="nl"?"Let op: Bij onbeperkte boekingen wordt geen rekening gehouden met de maximale capaciteit van het restaurant. De maximale zitplaatslimiet kan worden overschreden.":"Warning: Unlimited bookings do not take into account the restaurant's maximum capacity. The maximum seating limit may be exceeded."))),i0__default.default.createElement(hz,{setGuests:R,value:b.guests||i,onChange:b0,error:O.guests}),M0&&b.guests>0&&i0__default.default.createElement(ip,{guests:b.guests,formData:b,handleChange:o,resetFormDataFields:x,restaurantData:s,reservations:h,startDate:T,onWeekChange:Y,reservationMode:w}),M0&&b.date&&i0__default.default.createElement(sp,{guests:b.guests,formData:b,handleChange:o,field:{id:"time",label:L.fields.time},selectedDate:b.date,setCurrentExpandedField:()=>{},restaurantData:s,reservations:h,reservationMode:w}),W0&&i0__default.default.createElement("div",{className:"form-row",style:{marginTop:12}},i0__default.default.createElement("div",{className:"reservation-mode-buttons"},K.map(U=>i0__default.default.createElement("button",{key:U,type:"button",className:`reservation-mode-button ${b.zitplaats===U?"active":""}`,onClick:()=>d0(U),"aria-pressed":b.zitplaats===U},U))),O.zitplaats&&i0__default.default.createElement("small",{className:"error"},O.zitplaats)),L0&&i0__default.default.createElement(Rp,{availableTables:S,isFetching:k,formData:b,setFormData:e,handleChange:o}),k&&b.date&&b.time&&b.guests>0&&i0__default.default.createElement("div",{style:{textAlign:"center",padding:"10px",color:"#666",fontSize:"14px"}},"Beschikbare tafels berekenen..."))});lp.displayName="ReservationStepOne";var CM=lp;var kM=()=>localStorage.getItem("preferredLanguage")||"nl",w0=(b,O,o="nl")=>{let q=kM();return (b[q]||b[o]||{})[O]||{}};var Np={v:"5.12.1",fr:30,ip:0,op:530,w:1024,h:900,nm:"gr1",ddd:0,assets:[],layers:[{ddd:0,ind:1,ty:4,nm:"Layer 6",sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:1,k:[{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:25,s:[0]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:145,s:[-9]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:265,s:[0]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:385,s:[9]},{t:505,s:[0]}],ix:10},p:{a:0,k:[1206.514,-59.851,0],ix:2,l:2},a:{a:0,k:[0,0,0],ix:1,l:2},s:{a:1,k:[{i:{x:[.667,.667,.667],y:[1,1,1]},o:{x:[.333,.333,.333],y:[0,0,0]},t:25,s:[100,100,100]},{i:{x:[.667,.667,.667],y:[1,1,1]},o:{x:[.333,.333,.333],y:[0,0,0]},t:145,s:[134.764,134.764,100]},{i:{x:[.667,.667,.667],y:[1,1,1]},o:{x:[.333,.333,.333],y:[0,0,0]},t:265,s:[100,100,100]},{i:{x:[.667,.667,.667],y:[1,1,1]},o:{x:[.333,.333,.333],y:[0,0,0]},t:385,s:[134.764,134.764,100]},{t:505,s:[100,100,100]}],ix:6,l:2}},ao:0,ef:[{ty:29,nm:"Gaussian Blur",np:5,mn:"ADBE Gaussian Blur 2",ix:1,en:1,ef:[{ty:0,nm:"Blurriness",mn:"ADBE Gaussian Blur 2-0001",ix:1,v:{a:0,k:150,ix:1}},{ty:7,nm:"Blur Dimensions",mn:"ADBE Gaussian Blur 2-0002",ix:2,v:{a:0,k:1,ix:2}},{ty:7,nm:"Repeat Edge Pixels",mn:"ADBE Gaussian Blur 2-0003",ix:3,v:{a:0,k:0,ix:3}}]}],shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:0,k:{i:[[446.031,78.565],[0,0],[0,0],[0,0],[0,0],[0,0]],o:[[-474.322,-83.548],[0,0],[0,0],[.57,.727],[0,0],[-8.99,-11.449]],v:[[-95.525,259.75],[-429.671,-292.588],[-219.085,-449.194],[448.196,448.091],[449.016,449.194],[448.196,448.091]],c:true},ix:2},nm:"Path 1",mn:"ADBE Vector Shape - Group",hd:false},{ty:"fl",c:{a:0,k:[.129411771894,.149019613862,.313725501299,1],ix:4},o:{a:0,k:100,ix:5},r:1,bm:0,nm:"Fill 1",mn:"ADBE Vector Graphic - Fill",hd:false},{ty:"tr",p:{a:0,k:[0,0],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transform"}],nm:"Group 1",np:2,cix:2,bm:0,ix:1,mn:"ADBE Vector Group",hd:false},{ty:"gr",it:[{ty:"rc",d:1,s:{a:0,k:[1200,900],ix:2},p:{a:0,k:[0,0],ix:3},r:{a:0,k:0,ix:4},nm:"Rectangle Path 1",mn:"ADBE Vector Shape - Rect",hd:false},{ty:"st",c:{a:0,k:[.494117647059,.298039215686,.619607843137,1],ix:3},o:{a:0,k:100,ix:4},w:{a:0,k:0,ix:5},lc:1,lj:1,ml:4,bm:0,nm:"Stroke 1",mn:"ADBE Vector Graphic - Stroke",hd:false},{ty:"fl",c:{a:0,k:[0,.792156862745,.843137254902,1],ix:4},o:{a:0,k:0,ix:5},r:1,bm:0,nm:"Fill 1",mn:"ADBE Vector Graphic - Fill",hd:false},{ty:"tr",p:{a:0,k:[0,0],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[178.543,174.429],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transform"}],nm:"Rectangle 1",np:3,cix:2,bm:0,ix:2,mn:"ADBE Vector Group",hd:false}],ip:0,op:1535,st:25,ct:1,bm:0},{ddd:0,ind:2,ty:4,nm:"Layer 5",sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:1,k:[{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:20,s:[0]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:140,s:[-9]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:260,s:[0]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:380,s:[9]},{t:500,s:[0]}],ix:10},p:{a:0,k:[1073.85,-30.391,0],ix:2,l:2},a:{a:0,k:[0,0,0],ix:1,l:2},s:{a:1,k:[{i:{x:[.667,.667,.667],y:[1,1,1]},o:{x:[.333,.333,.333],y:[0,0,0]},t:20,s:[100,100,100]},{i:{x:[.667,.667,.667],y:[1,1,1]},o:{x:[.333,.333,.333],y:[0,0,0]},t:140,s:[134.764,134.764,100]},{i:{x:[.667,.667,.667],y:[1,1,1]},o:{x:[.333,.333,.333],y:[0,0,0]},t:260,s:[100,100,100]},{i:{x:[.667,.667,.667],y:[1,1,1]},o:{x:[.333,.333,.333],y:[0,0,0]},t:380,s:[134.764,134.764,100]},{t:500,s:[100,100,100]}],ix:6,l:2}},ao:0,ef:[{ty:29,nm:"Gaussian Blur",np:5,mn:"ADBE Gaussian Blur 2",ix:1,en:1,ef:[{ty:0,nm:"Blurriness",mn:"ADBE Gaussian Blur 2-0001",ix:1,v:{a:0,k:150,ix:1}},{ty:7,nm:"Blur Dimensions",mn:"ADBE Gaussian Blur 2-0002",ix:2,v:{a:0,k:1,ix:2}},{ty:7,nm:"Repeat Edge Pixels",mn:"ADBE Gaussian Blur 2-0003",ix:3,v:{a:0,k:0,ix:3}}]}],shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:0,k:{i:[[424.081,79.754],[0,0],[0,0],[0,0],[0,0],[0,0]],o:[[-450.977,-84.811],[0,0],[0,0],[.55,.7],[0,0],[-8.65,-11.031]],v:[[-50.221,245.909],[-467.951,-214.723],[-174.945,-432.62],[467.71,431.558],[468.5,432.62],[467.71,431.558]],c:true},ix:2},nm:"Path 1",mn:"ADBE Vector Shape - Group",hd:false},{ty:"fl",c:{a:0,k:[0,.792156875134,.843137264252,1],ix:4},o:{a:0,k:100,ix:5},r:1,bm:0,nm:"Fill 1",mn:"ADBE Vector Graphic - Fill",hd:false},{ty:"tr",p:{a:0,k:[0,0],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transform"}],nm:"Group 1",np:2,cix:2,bm:0,ix:1,mn:"ADBE Vector Group",hd:false},{ty:"gr",it:[{ty:"rc",d:1,s:{a:0,k:[1200,900],ix:2},p:{a:0,k:[0,0],ix:3},r:{a:0,k:0,ix:4},nm:"Rectangle Path 1",mn:"ADBE Vector Shape - Rect",hd:false},{ty:"st",c:{a:0,k:[.494117647059,.298039215686,.619607843137,1],ix:3},o:{a:0,k:100,ix:4},w:{a:0,k:0,ix:5},lc:1,lj:1,ml:4,bm:0,nm:"Stroke 1",mn:"ADBE Vector Graphic - Stroke",hd:false},{ty:"fl",c:{a:0,k:[0,.792156862745,.843137254902,1],ix:4},o:{a:0,k:0,ix:5},r:1,bm:0,nm:"Fill 1",mn:"ADBE Vector Graphic - Fill",hd:false},{ty:"tr",p:{a:0,k:[0,0],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[178.543,174.429],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transform"}],nm:"Rectangle 1",np:3,cix:2,bm:0,ix:2,mn:"ADBE Vector Group",hd:false}],ip:0,op:1530,st:20,ct:1,bm:0},{ddd:0,ind:3,ty:4,nm:"Layer 4",sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:1,k:[{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:15,s:[0]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:135,s:[-9]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:255,s:[0]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:375,s:[9]},{t:495,s:[0]}],ix:10},p:{a:0,k:[988.859,75.079,0],ix:2,l:2},a:{a:0,k:[0,0,0],ix:1,l:2},s:{a:1,k:[{i:{x:[.667,.667,.667],y:[1,1,1]},o:{x:[.333,.333,.333],y:[0,0,0]},t:15,s:[100,100,100]},{i:{x:[.667,.667,.667],y:[1,1,1]},o:{x:[.333,.333,.333],y:[0,0,0]},t:135,s:[134.764,134.764,100]},{i:{x:[.667,.667,.667],y:[1,1,1]},o:{x:[.333,.333,.333],y:[0,0,0]},t:255,s:[100,100,100]},{i:{x:[.667,.667,.667],y:[1,1,1]},o:{x:[.333,.333,.333],y:[0,0,0]},t:375,s:[134.764,134.764,100]},{t:495,s:[100,100,100]}],ix:6,l:2}},ao:0,ef:[{ty:29,nm:"Gaussian Blur",np:5,mn:"ADBE Gaussian Blur 2",ix:1,en:1,ef:[{ty:0,nm:"Blurriness",mn:"ADBE Gaussian Blur 2-0001",ix:1,v:{a:0,k:100,ix:1}},{ty:7,nm:"Blur Dimensions",mn:"ADBE Gaussian Blur 2-0002",ix:2,v:{a:0,k:1,ix:2}},{ty:7,nm:"Repeat Edge Pixels",mn:"ADBE Gaussian Blur 2-0003",ix:3,v:{a:0,k:0,ix:3}}]}],shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:1,k:[{i:{x:.833,y:1},o:{x:.333,y:0},t:75,s:[{i:[[432.399,124.912],[0,0],[0,0],[123.76,-96.677]],o:[[-432.397,-124.911],[0,0],[0,0],[-123.77,96.676]],v:[[-78.678,155.686],[-500.894,-232.49],[-167.127,-480.7],[487.581,460.594]],c:true}]},{i:{x:.833,y:1},o:{x:.167,y:0},t:195,s:[{i:[[432.399,124.912],[0,0],[0,0],[123.76,-96.677]],o:[[-432.397,-124.911],[0,0],[0,0],[-123.77,96.676]],v:[[-97.842,203.742],[-500.894,-232.49],[-167.127,-480.7],[487.581,460.594]],c:true}]},{i:{x:.833,y:1},o:{x:.167,y:0},t:315,s:[{i:[[253.734,244.526],[0,0],[0,0],[123.76,-96.677]],o:[[-324.079,-312.318],[0,0],[0,0],[-123.77,96.676]],v:[[-129.581,213.076],[-500.894,-232.49],[-167.127,-480.7],[487.581,460.594]],c:true}]},{i:{x:.667,y:1},o:{x:.167,y:0},t:435,s:[{i:[[226.573,11.739],[0,0],[0,0],[123.76,-96.677]],o:[[-147.242,-7.629],[0,0],[0,0],[-123.77,96.676]],v:[[-215.336,122.406],[-500.894,-232.49],[-167.127,-480.7],[487.581,460.594]],c:true}]},{t:529,s:[{i:[[432.399,124.912],[0,0],[0,0],[123.76,-96.677]],o:[[-432.397,-124.911],[0,0],[0,0],[-123.77,96.676]],v:[[-78.678,155.686],[-500.894,-232.49],[-167.127,-480.7],[487.581,460.594]],c:true}]}],ix:2},nm:"Path 1",mn:"ADBE Vector Shape - Group",hd:false},{ty:"fl",c:{a:0,k:[.929411768913,1,.482352942228,1],ix:4},o:{a:0,k:100,ix:5},r:1,bm:0,nm:"Fill 1",mn:"ADBE Vector Graphic - Fill",hd:false},{ty:"tr",p:{a:0,k:[0,0],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transform"}],nm:"Group 1",np:2,cix:2,bm:0,ix:1,mn:"ADBE Vector Group",hd:false},{ty:"gr",it:[{ty:"rc",d:1,s:{a:0,k:[1200,900],ix:2},p:{a:0,k:[0,0],ix:3},r:{a:0,k:0,ix:4},nm:"Rectangle Path 1",mn:"ADBE Vector Shape - Rect",hd:false},{ty:"st",c:{a:0,k:[.494117647059,.298039215686,.619607843137,1],ix:3},o:{a:0,k:100,ix:4},w:{a:0,k:0,ix:5},lc:1,lj:1,ml:4,bm:0,nm:"Stroke 1",mn:"ADBE Vector Graphic - Stroke",hd:false},{ty:"fl",c:{a:0,k:[0,.792156862745,.843137254902,1],ix:4},o:{a:0,k:0,ix:5},r:1,bm:0,nm:"Fill 1",mn:"ADBE Vector Graphic - Fill",hd:false},{ty:"tr",p:{a:0,k:[0,0],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[178.543,174.429],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transform"}],nm:"Rectangle 1",np:3,cix:2,bm:0,ix:2,mn:"ADBE Vector Group",hd:false}],ip:0,op:1525,st:15,ct:1,bm:0},{ddd:0,ind:4,ty:4,nm:"Layer 3",sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:1,k:[{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:10,s:[0]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:130,s:[-9]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:250,s:[0]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:370,s:[9]},{t:490,s:[0]}],ix:10},p:{a:0,k:[894.117,84.677,0],ix:2,l:2},a:{a:0,k:[0,0,0],ix:1,l:2},s:{a:1,k:[{i:{x:[.667,.667,.667],y:[1,1,1]},o:{x:[.333,.333,.333],y:[0,0,0]},t:10,s:[100,100,100]},{i:{x:[.667,.667,.667],y:[1,1,1]},o:{x:[.333,.333,.333],y:[0,0,0]},t:130,s:[134.764,134.764,100]},{i:{x:[.667,.667,.667],y:[1,1,1]},o:{x:[.333,.333,.333],y:[0,0,0]},t:250,s:[100,100,100]},{i:{x:[.667,.667,.667],y:[1,1,1]},o:{x:[.333,.333,.333],y:[0,0,0]},t:370,s:[134.764,134.764,100]},{t:490,s:[100,100,100]}],ix:6,l:2}},ao:0,ef:[{ty:29,nm:"Gaussian Blur",np:5,mn:"ADBE Gaussian Blur 2",ix:1,en:1,ef:[{ty:0,nm:"Blurriness",mn:"ADBE Gaussian Blur 2-0001",ix:1,v:{a:0,k:40,ix:1}},{ty:7,nm:"Blur Dimensions",mn:"ADBE Gaussian Blur 2-0002",ix:2,v:{a:0,k:1,ix:2}},{ty:7,nm:"Repeat Edge Pixels",mn:"ADBE Gaussian Blur 2-0003",ix:3,v:{a:0,k:0,ix:3}}]}],shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:1,k:[{i:{x:.667,y:1},o:{x:.167,y:0},t:67,s:[{i:[[361.666,65.659],[0,0],[0,0],[92.214,-68.58]],o:[[-361.667,-65.659],[0,0],[0,0],[-92.219,68.579]],v:[[-99.227,158.019],[-431.16,-238.63],[-176.178,-428.251],[423.289,416.898]],c:true}]},{i:{x:.833,y:1},o:{x:.333,y:0},t:190,s:[{i:[[303.862,85.416],[0,0],[0,0],[92.214,-68.58]],o:[[-353.863,-99.472],[0,0],[0,0],[-92.219,68.579]],v:[[-114.955,184.127],[-431.16,-238.63],[-176.178,-428.251],[423.289,416.898]],c:true}]},{i:{x:.833,y:1},o:{x:.167,y:0},t:310,s:[{i:[[66.949,140.982],[0,0],[0,0],[92.213,-68.58]],o:[[-157.679,-332.04],[0,0],[0,0],[-92.219,68.579]],v:[[-182.308,153.536],[-647.392,-141.284],[-176.178,-428.251],[423.29,416.898]],c:true}]},{i:{x:.833,y:1},o:{x:.167,y:0},t:430,s:[{i:[[160.75,51.563],[0,0],[0,0],[92.213,-68.58]],o:[[-350.011,-112.272],[0,0],[0,0],[-92.219,68.579]],v:[[-133.05,149.658],[-420.434,-232.638],[-176.178,-428.251],[423.29,416.898]],c:true}]},{t:524,s:[{i:[[361.666,65.659],[0,0],[0,0],[92.214,-68.58]],o:[[-361.667,-65.659],[0,0],[0,0],[-92.219,68.579]],v:[[-99.227,158.019],[-431.16,-238.63],[-176.178,-428.251],[423.289,416.898]],c:true}]}],ix:2},nm:"Path 1",mn:"ADBE Vector Shape - Group",hd:false},{ty:"st",c:{a:0,k:[.129411771894,.149019613862,.313725501299,1],ix:3},o:{a:0,k:100,ix:4},w:{a:0,k:8,ix:5},lc:1,lj:1,ml:4,bm:0,nm:"Stroke 1",mn:"ADBE Vector Graphic - Stroke",hd:false},{ty:"tr",p:{a:0,k:[0,0],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transform"}],nm:"Group 1",np:2,cix:2,bm:0,ix:1,mn:"ADBE Vector Group",hd:false},{ty:"gr",it:[{ty:"rc",d:1,s:{a:0,k:[1200,900],ix:2},p:{a:0,k:[0,0],ix:3},r:{a:0,k:0,ix:4},nm:"Rectangle Path 1",mn:"ADBE Vector Shape - Rect",hd:false},{ty:"st",c:{a:0,k:[.494117647059,.298039215686,.619607843137,1],ix:3},o:{a:0,k:100,ix:4},w:{a:0,k:0,ix:5},lc:1,lj:1,ml:4,bm:0,nm:"Stroke 1",mn:"ADBE Vector Graphic - Stroke",hd:false},{ty:"fl",c:{a:0,k:[0,.792156862745,.843137254902,1],ix:4},o:{a:0,k:0,ix:5},r:1,bm:0,nm:"Fill 1",mn:"ADBE Vector Graphic - Fill",hd:false},{ty:"tr",p:{a:0,k:[0,0],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[178.543,174.429],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transform"}],nm:"Rectangle 1",np:3,cix:2,bm:0,ix:2,mn:"ADBE Vector Group",hd:false}],ip:0,op:1520,st:10,ct:1,bm:0},{ddd:0,ind:5,ty:4,nm:"Layer 2",sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:1,k:[{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:5,s:[0]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:125,s:[-9]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:245,s:[0]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:365,s:[9]},{t:485,s:[0]}],ix:10},p:{a:0,k:[894.117,83.978,0],ix:2,l:2},a:{a:0,k:[0,0,0],ix:1,l:2},s:{a:1,k:[{i:{x:[.667,.667,.667],y:[1,1,1]},o:{x:[.333,.333,.333],y:[0,0,0]},t:5,s:[100,100,100]},{i:{x:[.667,.667,.667],y:[1,1,1]},o:{x:[.333,.333,.333],y:[0,0,0]},t:125,s:[134.764,134.764,100]},{i:{x:[.667,.667,.667],y:[1,1,1]},o:{x:[.333,.333,.333],y:[0,0,0]},t:245,s:[100,100,100]},{i:{x:[.667,.667,.667],y:[1,1,1]},o:{x:[.333,.333,.333],y:[0,0,0]},t:365,s:[134.764,134.764,100]},{t:485,s:[100,100,100]}],ix:6,l:2}},ao:0,shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:1,k:[{i:{x:.667,y:1},o:{x:.167,y:0},t:62,s:[{i:[[361.666,65.659],[0,0],[0,0],[92.214,-68.58]],o:[[-361.667,-65.659],[0,0],[0,0],[-92.219,68.579]],v:[[-99.227,158.019],[-431.16,-238.63],[-176.178,-428.251],[423.289,416.898]],c:true}]},{i:{x:.833,y:1},o:{x:.333,y:0},t:185,s:[{i:[[303.862,85.416],[0,0],[0,0],[92.214,-68.58]],o:[[-353.863,-99.472],[0,0],[0,0],[-92.219,68.579]],v:[[-114.955,184.127],[-431.16,-238.63],[-176.178,-428.251],[423.289,416.898]],c:true}]},{i:{x:.833,y:1},o:{x:.167,y:0},t:305,s:[{i:[[66.949,140.982],[0,0],[0,0],[92.213,-68.58]],o:[[-157.679,-332.04],[0,0],[0,0],[-92.219,68.579]],v:[[-182.308,153.536],[-647.392,-141.284],[-176.178,-428.251],[423.29,416.898]],c:true}]},{i:{x:.833,y:1},o:{x:.167,y:0},t:425,s:[{i:[[160.75,51.563],[0,0],[0,0],[92.213,-68.58]],o:[[-350.011,-112.272],[0,0],[0,0],[-92.219,68.579]],v:[[-133.05,149.658],[-420.434,-232.638],[-176.178,-428.251],[423.29,416.898]],c:true}]},{t:519,s:[{i:[[361.666,65.659],[0,0],[0,0],[92.214,-68.58]],o:[[-361.667,-65.659],[0,0],[0,0],[-92.219,68.579]],v:[[-99.227,158.019],[-431.16,-238.63],[-176.178,-428.251],[423.289,416.898]],c:true}]}],ix:2},nm:"Path 1",mn:"ADBE Vector Shape - Group",hd:false},{ty:"fl",c:{a:0,k:[.956862747669,.980392158031,.976470589638,1],ix:4},o:{a:0,k:100,ix:5},r:1,bm:0,nm:"Fill 1",mn:"ADBE Vector Graphic - Fill",hd:false},{ty:"tr",p:{a:0,k:[0,0],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transform"}],nm:"Group 1",np:2,cix:2,bm:0,ix:1,mn:"ADBE Vector Group",hd:false},{ty:"gr",it:[{ty:"rc",d:1,s:{a:0,k:[1200,900],ix:2},p:{a:0,k:[0,0],ix:3},r:{a:0,k:0,ix:4},nm:"Rectangle Path 1",mn:"ADBE Vector Shape - Rect",hd:false},{ty:"st",c:{a:0,k:[.494117647059,.298039215686,.619607843137,1],ix:3},o:{a:0,k:100,ix:4},w:{a:0,k:0,ix:5},lc:1,lj:1,ml:4,bm:0,nm:"Stroke 1",mn:"ADBE Vector Graphic - Stroke",hd:false},{ty:"fl",c:{a:0,k:[0,.792156862745,.843137254902,1],ix:4},o:{a:0,k:0,ix:5},r:1,bm:0,nm:"Fill 1",mn:"ADBE Vector Graphic - Fill",hd:false},{ty:"tr",p:{a:0,k:[0,0],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[178.543,174.429],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transform"}],nm:"Rectangle 1",np:3,cix:2,bm:0,ix:2,mn:"ADBE Vector Group",hd:false}],ip:0,op:1515,st:5,ct:1,bm:0},{ddd:0,ind:6,ty:4,nm:"Layer 1",sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:1,k:[{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:0,s:[0]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:120,s:[-9]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:240,s:[0]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:360,s:[9]},{t:480,s:[0]}],ix:10},p:{a:0,k:[895.851,111.19,0],ix:2,l:2},a:{a:0,k:[0,0,0],ix:1,l:2},s:{a:1,k:[{i:{x:[.667,.667,.667],y:[1,1,1]},o:{x:[.333,.333,.333],y:[0,0,0]},t:0,s:[100,100,100]},{i:{x:[.667,.667,.667],y:[1,1,1]},o:{x:[.333,.333,.333],y:[0,0,0]},t:120,s:[134.764,134.764,100]},{i:{x:[.667,.667,.667],y:[1,1,1]},o:{x:[.333,.333,.333],y:[0,0,0]},t:240,s:[100,100,100]},{i:{x:[.667,.667,.667],y:[1,1,1]},o:{x:[.333,.333,.333],y:[0,0,0]},t:360,s:[134.764,134.764,100]},{t:480,s:[100,100,100]}],ix:6,l:2}},ao:0,ef:[{ty:29,nm:"Gaussian Blur",np:5,mn:"ADBE Gaussian Blur 2",ix:1,en:1,ef:[{ty:0,nm:"Blurriness",mn:"ADBE Gaussian Blur 2-0001",ix:1,v:{a:0,k:200,ix:1}},{ty:7,nm:"Blur Dimensions",mn:"ADBE Gaussian Blur 2-0002",ix:2,v:{a:0,k:1,ix:2}},{ty:7,nm:"Repeat Edge Pixels",mn:"ADBE Gaussian Blur 2-0003",ix:3,v:{a:0,k:0,ix:3}}]}],shapes:[{ty:"gr",it:[{ind:0,ty:"sh",ix:1,ks:{a:1,k:[{i:{x:.667,y:1},o:{x:.333,y:0},t:57,s:[{i:[[261.24,94.803],[0,0],[0,0],[280.19,-208.366]],o:[[-261.24,-94.803],[0,0],[0,0],[-280.189,208.367]],v:[[-130.27,227.181],[-489.015,-224.108],[-180.898,-453.243],[434.739,374.6]],c:true}]},{i:{x:.667,y:1},o:{x:.333,y:0},t:180,s:[{i:[[240.029,117.135],[0,0],[0,0],[280.191,-208.366]],o:[[-249.757,-121.882],[0,0],[0,0],[-280.189,208.367]],v:[[-256.037,109.609],[-489.015,-224.108],[-180.898,-453.243],[434.739,374.6]],c:true}]},{i:{x:.667,y:1},o:{x:.333,y:0},t:300,s:[{i:[[153.185,80.344],[0,0],[0,0],[280.191,-208.366]],o:[[-246.114,-129.083],[0,0],[0,0],[-280.189,208.367]],v:[[-99.854,269.938],[-489.015,-224.108],[-180.898,-453.243],[434.739,374.6]],c:true}]},{i:{x:.667,y:1},o:{x:.333,y:0},t:420,s:[{i:[[172.303,15.256],[0,0],[0,0],[280.191,-208.366]],o:[[-418.35,-37.043],[0,0],[0,0],[-280.189,208.367]],v:[[-1.548,216.055],[-489.015,-224.108],[-180.898,-453.243],[434.739,374.6]],c:true}]},{t:514,s:[{i:[[261.24,94.803],[0,0],[0,0],[280.19,-208.366]],o:[[-261.24,-94.803],[0,0],[0,0],[-280.189,208.367]],v:[[-130.27,227.181],[-489.015,-224.108],[-180.898,-453.243],[434.739,374.6]],c:true}]}],ix:2},nm:"Path 1",mn:"ADBE Vector Shape - Group",hd:false},{ty:"fl",c:{a:0,k:[0,.792156875134,.843137264252,1],ix:4},o:{a:0,k:100,ix:5},r:1,bm:0,nm:"Fill 1",mn:"ADBE Vector Graphic - Fill",hd:false},{ty:"tr",p:{a:0,k:[0,0],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transform"}],nm:"Group 1",np:2,cix:2,bm:0,ix:1,mn:"ADBE Vector Group",hd:false},{ty:"gr",it:[{ty:"rc",d:1,s:{a:0,k:[1200,900],ix:2},p:{a:0,k:[0,0],ix:3},r:{a:0,k:0,ix:4},nm:"Rectangle Path 1",mn:"ADBE Vector Shape - Rect",hd:false},{ty:"st",c:{a:0,k:[.494117647059,.298039215686,.619607843137,1],ix:3},o:{a:0,k:100,ix:4},w:{a:0,k:0,ix:5},lc:1,lj:1,ml:4,bm:0,nm:"Stroke 1",mn:"ADBE Vector Graphic - Stroke",hd:false},{ty:"fl",c:{a:0,k:[0,.792156862745,.843137254902,1],ix:4},o:{a:0,k:0,ix:5},r:1,bm:0,nm:"Fill 1",mn:"ADBE Vector Graphic - Fill",hd:false},{ty:"tr",p:{a:0,k:[0,0],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[178.543,174.429],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"Transform"}],nm:"Rectangle 1",np:3,cix:2,bm:0,ix:2,mn:"ADBE Vector Group",hd:false}],ip:0,op:1510,st:0,ct:1,bm:0}],markers:[],props:{}};var Bp={nl:{formField:{selectPlaceholder:"Selecteer een optie",tooltip:{confirm:"Klik om te Bevestigen",source:"Gevonden met Happy Ai"}}},en:{formField:{selectPlaceholder:"Select an option",tooltip:{confirm:"Click to Confirm",source:"Found with Happy Ai"}}},fr:{formField:{selectPlaceholder:"S\xE9lectionnez une option",tooltip:{confirm:"Cliquez pour confirmer",source:"Trouv\xE9 avec Happy Ai"}}}};R0(`.new-reservation-page .form-group .magic-tooltip{transition:transform .2s ease;transform-origin:bottom right}.new-reservation-page .form-group .magic-tooltip:hover{transform:scale(1.05)}
14
- `);var Wq=({label:b,name:O,type:o="text",icon:q,value:e,onChange:a,onBlur:n,error:u,placeholder:s,halfWidth:f,options:L=[],selectPlaceholder:i,rightIcon:R,onRightIconClick:T,tooltipContent:X})=>{let h=w0(Bp,"formField"),B=i||h.selectPlaceholder,[N,S]=i0.useState(false),g=i0.useRef(null),k=i0.useRef(null),H=R,C=q;i0.useEffect(()=>{let Q=n0=>{g.current&&!g.current.contains(n0.target)&&(k.current&&clearTimeout(k.current),S(false));};return N&&document.addEventListener("mousedown",Q),()=>document.removeEventListener("mousedown",Q)},[N]);let x={name:O,value:e,onChange:a,onBlur:n,"aria-label":b,className:`form-control ${u?"input-error":""}`};return i0__default.default.createElement("div",{className:`form-group ${f?"half-width":""}`,style:{position:"relative"}},i0__default.default.createElement("div",{className:"input-container"},C&&i0__default.default.createElement(C,{className:"input-icon"}),o==="select"?i0__default.default.createElement("select",{...x},i0__default.default.createElement("option",{value:""},B),L.map(Q=>i0__default.default.createElement("option",{key:Q.value,value:Q.value},Q.label))):o==="textarea"?i0__default.default.createElement("textarea",{...x,placeholder:s}):i0__default.default.createElement("input",{type:o,...x,placeholder:s}),H&&i0__default.default.createElement("div",{className:"magic-wand-container",onClick:T,onMouseEnter:()=>{k.current&&clearTimeout(k.current),S(true);},onMouseLeave:()=>{k.current=setTimeout(()=>S(false),1200);},style:{position:"absolute",top:"50%",right:"10px",transform:"translateY(-50%)",cursor:"pointer"}},i0__default.default.createElement(H,{className:"magic-wand-icon",style:{color:"#B567C2"}}),N&&X&&i0__default.default.createElement("div",{ref:g,className:"magic-tooltip",style:{position:"absolute",bottom:"100%",right:0,backgroundColor:"#fff",color:"#333",borderRadius:"8px",fontSize:"0.9rem",boxShadow:"0px 4px 10px rgba(0,0,0,0.15)",zIndex:1e3,marginBottom:"8px",minWidth:"220px",overflow:"hidden"}},i0__default.default.createElement("div",{className:"lottie-container",style:{position:"absolute",top:0,right:"1px",width:"calc(100% + 30px)",height:"100%",marginRight:"-100px",pointerEvents:"none",zIndex:1}},i0__default.default.createElement(qq__default.default,{animationData:Np,loop:true,style:{width:"100%",height:"100%",opacity:.5}})),i0__default.default.createElement("div",{style:{position:"relative",zIndex:2,padding:"12px 20px"}},i0__default.default.createElement("div",{style:{borderBottom:"1px solid #eee",marginBottom:"8px",paddingBottom:"4px"}},X),i0__default.default.createElement("div",{style:{fontWeight:"bold",fontSize:"13px",textAlign:"center",marginTop:"8px"}},h.tooltip?.confirm),i0__default.default.createElement("div",{style:{fontSize:"0.7rem",textAlign:"center",color:"#999",marginTop:"4px"}},h.tooltip?.source))))),u&&i0__default.default.createElement("p",{className:"form-error"},u))},C0=i0__default.default.memo(Wq);var o1=G0(O1());var mp={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 .name-fields{display:flex;gap:20px}.new-reservation-page .input-container .form-control{display:flex;align-items:center;justify-content:space-between;width:100%;padding:10px;background-color:#fff;border:#ccc 1px solid;cursor:pointer;-webkit-user-select:none;user-select:none;text-align:left;border-radius:5px;font-size:16px}
14
+ `);var Wq=({label:b,name:O,type:o="text",icon:q,value:e,onChange:a,onBlur:n,error:u,placeholder:s,halfWidth:f,options:L=[],selectPlaceholder:i,rightIcon:R,onRightIconClick:T,tooltipContent:X})=>{let h=w0(Bp,"formField"),B=i||h.selectPlaceholder,[N,S]=i0.useState(false),g=i0.useRef(null),k=i0.useRef(null),H=R,C=q;i0.useEffect(()=>{let Q=n0=>{g.current&&!g.current.contains(n0.target)&&(k.current&&clearTimeout(k.current),S(false));};return N&&document.addEventListener("mousedown",Q),()=>document.removeEventListener("mousedown",Q)},[N]);let x={name:O,value:e,onChange:a,onBlur:n,"aria-label":b,className:`form-control ${u?"input-error":""}`};return i0__default.default.createElement("div",{className:`form-group ${f?"half-width":""}`,style:{position:"relative"}},i0__default.default.createElement("div",{className:"input-container"},C&&i0__default.default.createElement(C,{className:"input-icon"}),o==="select"?i0__default.default.createElement("select",{...x},i0__default.default.createElement("option",{value:""},B),L.map(Q=>i0__default.default.createElement("option",{key:Q.value,value:Q.value},Q.label))):o==="textarea"?i0__default.default.createElement("textarea",{...x,placeholder:s}):i0__default.default.createElement("input",{type:o,...x,placeholder:s}),H&&i0__default.default.createElement("div",{className:"magic-wand-container",onClick:T,onMouseEnter:()=>{k.current&&clearTimeout(k.current),S(true);},onMouseLeave:()=>{k.current=setTimeout(()=>S(false),1200);},style:{position:"absolute",top:"50%",right:"10px",transform:"translateY(-50%)",cursor:"pointer"}},i0__default.default.createElement(H,{className:"magic-wand-icon",style:{color:"#B567C2"}}),N&&X&&i0__default.default.createElement("div",{ref:g,className:"magic-tooltip",style:{position:"absolute",bottom:"100%",right:0,backgroundColor:"#fff",color:"#333",borderRadius:"8px",fontSize:"0.9rem",boxShadow:"0px 4px 10px rgba(0,0,0,0.15)",zIndex:1e3,marginBottom:"8px",minWidth:"220px",overflow:"hidden"}},i0__default.default.createElement("div",{className:"lottie-container",style:{position:"absolute",top:0,right:"1px",width:"calc(100% + 30px)",height:"100%",marginRight:"-100px",pointerEvents:"none",zIndex:1}},i0__default.default.createElement(qq__default.default,{animationData:Np,loop:true,style:{width:"100%",height:"100%",opacity:.5}})),i0__default.default.createElement("div",{style:{position:"relative",zIndex:2,padding:"12px 20px"}},i0__default.default.createElement("div",{style:{borderBottom:"1px solid #eee",marginBottom:"8px",paddingBottom:"4px"}},X),i0__default.default.createElement("div",{style:{fontWeight:"bold",fontSize:"13px",textAlign:"center",marginTop:"8px"}},h.tooltip?.confirm),i0__default.default.createElement("div",{style:{fontSize:"0.7rem",textAlign:"center",color:"#999",marginTop:"4px"}},h.tooltip?.source))))),u&&i0__default.default.createElement("p",{className:"form-error"},u))},C0=i0__default.default.memo(Wq);var o1=G0(O1());var mp={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 .name-fields{display:flex;gap:20px}.input-container .form-control{display:flex;align-items:center;justify-content:space-between;width:100%;padding:10px;background-color:#fff;border:#ccc 1px solid;cursor:pointer;-webkit-user-select:none;user-select:none;text-align:left;border-radius:5px;font-size:16px}
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(`.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}
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}
20
20
  `);/*! Bundled license information:
21
21
 
22
22
  moment/moment.js: