@happychef/reservation-sidebar 2.2.1 → 2.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +10 -10
- package/dist/index.mjs +10 -10
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
'use strict';var D=require('react'),framerMotion=require('framer-motion'),ce=require('moment-timezone');require('moment/locale/nl');var ai=require('axios'),ao=require('lottie-react'),fa=require('react-icons/fa');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var D__default=/*#__PURE__*/_interopDefault(D);var ce__default=/*#__PURE__*/_interopDefault(ce);var ai__default=/*#__PURE__*/_interopDefault(ai);var ao__default=/*#__PURE__*/_interopDefault(ao);var Ni=Object.create;var kt=Object.defineProperty;var wi=Object.getOwnPropertyDescriptor;var Ai=Object.getOwnPropertyNames;var Si=Object.getPrototypeOf,Ii=Object.prototype.hasOwnProperty;var Tt=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,n)=>(typeof require<"u"?require:t)[n]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var I=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Ci=(e,t,n,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of Ai(t))!Ii.call(e,a)&&a!==n&&kt(e,a,{get:()=>t[a],enumerable:!(i=wi(t,a))||i.enumerable});return e};var Ve=(e,t,n)=>(n=e!=null?Ni(Si(e)):{},Ci(!e||!e.__esModule?kt(n,"default",{value:e,enumerable:true}):n,e));var de=I((Po,Dt)=>{var It=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],Bi=["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"],Ct={breakfast:{start:"07:00",end:"11:00"},lunch:{start:"11:00",end:"16:00"},dinner:{start:"16:00",end:"23:00"}};function ae(e){let[t,n]=e.split(":").map(Number);return t*60+n}function Et(e){let t=ae(e);for(let[n,i]of Object.entries(Ct)){let a=ae(i.start),s=ae(i.end);if(t>=a&&t<s)return n}return null}function $t(e,t,n){let i=`openinghours-${n}`;if(!e[i])return null;let s=e[i].schemeSettings[t];return s?{...s}:null}function Fi(e,t){e.maxCapacityEnabled===false&&(t&&t.zitplaatsen?(e.maxCapacity=t.zitplaatsen,e.maxCapacityEnabled=true):(e.maxCapacity="0",e.maxCapacityEnabled=true));}function Gi(e){let t=120;return e["general-settings"]&&e["general-settings"].duurReservatie&&parseInt(e["general-settings"].duurReservatie,10)>0&&(t=parseInt(e["general-settings"].duurReservatie,10)),t}function zi(e,t){let n=Gi(t),a=ae(e.endTime)+n,s=String(Math.floor(a/60)).padStart(2,"0"),r=String(a%60).padStart(2,"0");e.endTime=`${s}:${r}`;}function Mt(e,t,n){let i=new Date(t);if(isNaN(i))return null;let a=i.getDay(),s=It[a],r=$t(e,s,n);return !r||r.enabled!==true?null:(Fi(r,e["general-settings"]),zi(r,e),r)}function Pi(e,t,n){let i=Et(n);if(!i)return null;let a=Mt(e,t,i);if(!a)return null;let s=ae(n),r=ae(a.startTime),m=ae(a.endTime);return s>=r&&s<m?a:null}Dt.exports={getDataByDayAndMeal:$t,getDataByDateAndMeal:Mt,getDataByDateAndTime:Pi,daysOfWeekEnglish:It,daysOfWeekDutch:Bi,getMealTypeByTime:Et,parseTime:ae,shifts:Ct};});var Se=I((Yo,Ft)=>{var{getDataByDateAndMeal:Oi,getDataByDateAndTime:Oo,getMealTypeByTime:qi,parseTime:Ae,shifts:qo,daysOfWeekEnglish:jo,daysOfWeekDutch:ji}=de();function Yi(e,t,n){let i=new Date(e),a=new Date(t),s=new Date(n);return isNaN(i)||isNaN(a)||isNaN(s)?false:i>=a&&i<=s}function Hi(e){let t=e.getDay();return ji[t]}function Li(e,t,n,i){let{timeframe:a,startDate:s,endDate:r,daysOfWeek:m}=e;return !Yi(t,s,r)||Array.isArray(m)&&m.length>0&&!m.map(c=>c.toLowerCase()).includes(n)?false:a==="Volledige Dag"||a===i}function Wi(e){let t=120;return e["general-settings"]&&e["general-settings"].duurReservatie&&parseInt(e["general-settings"].duurReservatie,10)>0&&(t=parseInt(e["general-settings"].duurReservatie,10)),t}function Vi(e,t){let n=Wi(t),a=Ae(e.endTime)+n,s=String(Math.floor(a/60)).padStart(2,"0"),r=String(a%60).padStart(2,"0");e.endTime=`${s}:${r}`;}function _i(e,t){let n={enabled:true,startTime:e.startHour,endTime:e.endHour,maxCapacityEnabled:!!e.maxSeats,maxCapacity:e.maxSeats||null,shiftsEnabled:false,shifts:[]};return Vi(n,t),n}function Bt(e,t,n){let i=e.exceptions||[],a=new Date(t);if(isNaN(a))return null;let s=Hi(a).toLowerCase(),r=["Opening","Sluiting","Uitzondering"];for(let m of r)for(let u of i)if(u.type===m&&Li(u,t,s,n))return m==="Sluiting"?null:_i(u,e);return Oi(e,t,n)}function Ri(e,t){return !(e==="breakfast"&&t==="11:00"||e==="lunch"&&t==="16:00")}function Zi(e,t,n){let i=qi(n);if(!i)return null;let a=Bt(e,t,i);if(!a)return null;let s=Ae(n),r=Ae(a.startTime),m=Ae(a.endTime);return (Ri(i,a.endTime)?s>=r&&s<=m:s>=r&&s<m)?a:null}Ft.exports={getDataByDateAndMealWithExceptions:Bt,getDataByDateAndTimeWithExceptions:Zi};});var _e=I((Ho,zt)=>{function Gt(e){let[t,n]=e.split(":").map(Number);return t*60+n}function Ui(e){let t=120;return e["general-settings"]&&e["general-settings"].duurReservatie&&parseInt(e["general-settings"].duurReservatie,10)>0&&(t=parseInt(e["general-settings"].duurReservatie,10)),t}function Ki(e,t,n,i){let a=Ui(e),s=Gt(n),r=0;for(let m of t){if(m.date!==i)continue;let u=Gt(m.time),c=u+a;s>=u&&s<c&&(r+=parseInt(m.guests,10));}return r}zt.exports={getGuestCountAtHour:Ki};});var Ie=I((Lo,jt)=>{var{getDataByDateAndMealWithExceptions:qt}=Se(),{parseTime:Pt}=de(),{getGuestCountAtHour:Ot}=_e();function Ji(e){let t=15;return e["general-settings"]&&e["general-settings"].intervalReservatie&&parseInt(e["general-settings"].intervalReservatie,10)>0&&(t=parseInt(e["general-settings"].intervalReservatie,10)),t}function Qi(e,t){let n=["breakfast","lunch","dinner"],i=[];for(let a of n){let s=qt(e,t,a);s&&s.shiftsEnabled&&Array.isArray(s.shifts)&&s.shifts.length>0&&i.push(a);}return i}function Xi(e,t){return !(e==="breakfast"&&t==="11:00"||e==="lunch"&&t==="16:00")}function ea(e,t,n,i){let a=qt(e,t,n);if(!a)return null;let s={},r=[],m=Ji(e);if(a.shiftsEnabled&&Array.isArray(a.shifts)&&a.shifts.length>0){let u=a.shifts;for(let c of u){let d=c.time,o=Ot(e,i,d,t);s[d]=a.maxCapacity-o,r.push({mealType:n,shiftName:c.name,time:d,availableSeats:a.maxCapacity-o});}}else {let u=a.startTime,c=a.endTime,d=Xi(n,c),o=Pt(u),l=Pt(c);for(;d?o<=l:o<l;){let x=Math.floor(o/60).toString().padStart(2,"0"),v=(o%60).toString().padStart(2,"0"),b=`${x}:${v}`,p=Ot(e,i,b,t);s[b]=a.maxCapacity-p,o+=m;}}return {guestCounts:s,shiftsInfo:r}}jt.exports={getGuestCountsForMeal:ea,getMealTypesWithShifts:Qi};});var Re=I((Wo,Yt)=>{var{getGuestCountsForMeal:ta}=Ie();function na(e,t,n){let i=["breakfast","lunch","dinner"],a={},s=[],r={breakfast:1,lunch:2,dinner:3};for(let u of i){let c=ta(e,t,u,n);if(c){let{guestCounts:d,shiftsInfo:o}=c;for(let[l,x]of Object.entries(d))if(a.hasOwnProperty(l)){let v=a[l].mealPriority,b=r[u];b>=v&&(a[l]={availableSeats:x,mealPriority:b});}else a[l]={availableSeats:x,mealPriority:r[u]};o&&o.length>0&&s.push(...o);}}let m={};for(let[u,c]of Object.entries(a))m[u]=c.availableSeats;return {guestCounts:m,shiftsInfo:s}}Yt.exports={getDailyGuestCounts:na};});var Ce=I((_o,Lt)=>{var{getDailyGuestCounts:ia}=Re(),{getMealTypesWithShifts:aa}=Ie(),{getDataByDateAndMealWithExceptions:ra}=Se(),{getMealTypeByTime:oa,parseTime:Vo}=de();function se(e){let[t,n]=e.split(":").map(Number);return t*60+n}function sa(e){let t=15;return e["general-settings"]&&e["general-settings"].intervalReservatie&&parseInt(e["general-settings"].intervalReservatie,10)>0&&(t=parseInt(e["general-settings"].intervalReservatie,10)),t}function la(e){let t=120;return e["general-settings"]&&e["general-settings"].duurReservatie&&parseInt(e["general-settings"].duurReservatie,10)>0&&(t=parseInt(e["general-settings"].duurReservatie,10)),t}function Ht(e,t,n,i){let a=oa(n);if(!a)return false;let s=ra(e,t,a);if(!s)return false;let r=se(s.startTime),m=se(s.endTime),u=se(n);return u>=r&&u+i<=m}function ca(e,t,n,i){let a=la(e),s=sa(e),r=Math.ceil(a/s),{guestCounts:m,shiftsInfo:u}=ia(e,t,n),c={};if(aa(e,t).length>0&&u&&u.length>0)for(let o of u){let{time:l,availableSeats:x}=o;x>=i&&Ht(e,t,l,a)&&(c[l]={name:l});}if(m&&Object.keys(m).length>0){let o=Object.keys(m).sort((l,x)=>se(l)-se(x));for(let l=0;l<=o.length-r;l++){let x=true;if(m[o[l]]<i)continue;let v=se(o[l]);for(let b=1;b<r;b++){let p=o[l+b],f=se(p);if(f-v!==s||m[p]<i){x=false;break}v=f;}x&&Ht(e,t,o[l],a)&&(c[o[l]]={name:o[l]});}}return c}Lt.exports={timeblocksAvailable:ca};});var Ze=I((Ro,Wt)=>{function ua({restaurantSettings:e,allTables:t,guests:n,date:i,time:a,requiredSlots:s,tableOccupiedSlots:r,isTemporaryTableValid:m,isTableFreeForAllSlots:u}){let c=e["grouping-settings"]||{},d=c.enable===true,o=c.strict===true,l=Number.isFinite(c.maxSubtables)?c.maxSubtables:void 0,x=c.orderStrategy||"smallest-first";c.seed??0;let b=Array.isArray(e.pinnedGroups)?e.pinnedGroups:[];if(!d||b.length===0)return null;let p=new Map(t.map(h=>[String(h.tableId),h])),f=new Map(t.filter(h=>typeof h.tableNumber=="number").map(h=>[h.tableNumber,h]));if(t.some(h=>h.minCapacity<=n&&n<=h.maxCapacity&&m(h,i,a)&&u(h.tableNumber,s,r)))return null;let g=[...b].sort((h,k)=>{let C=String(h.id||h.name||""),E=String(k.id||k.name||"");return C.localeCompare(E)}),N=(h,k)=>{if(x==="closest-fit"){let R=(h.maxCapacity||0)-(h.minCapacity||0),j=(k.maxCapacity||0)-(k.minCapacity||0);if(R!==j)return R-j}if(h.maxCapacity!==k.maxCapacity)return h.maxCapacity-k.maxCapacity;if(h.tableNumber!==k.tableNumber)return h.tableNumber-k.tableNumber;let C=String(h.tableId),E=String(k.tableId);return C.localeCompare(E)};for(let h of g){let k=Array.isArray(h.tableIds)?h.tableIds.map(String):[],C=Array.isArray(h.tableNumbers)?h.tableNumbers.filter(S=>typeof S=="number"):[],E=[];if(k.length?E=k.map(S=>p.get(S)).filter(Boolean):C.length&&(E=C.map(S=>f.get(S)).filter(Boolean)),l&&E.length>l&&(E=E.slice(0,l)),E.length<2||!E.every(S=>m(S,i,a)&&u(S.tableNumber,s,r)))continue;let R=E.reduce((S,Q)=>S+(Q.maxCapacity||0),0),j=E.reduce((S,Q)=>S+(Q.minCapacity||0),0);if(n<j||n>R)continue;let Z=[...E].sort(N),$=new Map(Z.map(S=>[S.tableNumber,Math.max(0,S.minCapacity||0)])),B=n-[...$.values()].reduce((S,Q)=>S+Q,0);if(!(B<0)){for(let S of Z){if(B<=0)break;let Q=$.get(S.tableNumber),w=Math.max(0,(S.maxCapacity||0)-Q),G=Math.min(w,B);$.set(S.tableNumber,Q+G),B-=G;}if(B===0)return {tables:Z.map(S=>S.tableNumber),tableIds:Z.map(S=>S.tableId),viaGroup:String(h.id||h.name||"pinned-group")}}}if(o)throw new Error("No matching pinned group found (strict grouping)");return null}Wt.exports={tryGroupTables:ua};});var Zt=I((Zo,Rt)=>{var{tryGroupTables:ma}=Ze();function Ue(e){if(!e||typeof e!="string")return NaN;let t=e.split(":");if(t.length!==2)return NaN;let n=parseInt(t[0],10),i=parseInt(t[1],10);return isNaN(n)||isNaN(i)||n<0||n>23||i<0||i>59?NaN:n*60+i}var da={breakfast:{start:"07:00",end:"11:00"},lunch:{start:"11:00",end:"16:00"},dinner:{start:"16:00",end:"23:00"}};function pa(e){let t=Ue(e);if(isNaN(t))return null;for(let[n,i]of Object.entries(da)){let a=Ue(i.start),s=Ue(i.end);if(!(isNaN(a)||isNaN(s))&&t>=a&&t<s)return n}return null}function Ke(e,t,n){if(!e.isTemporary)return true;if(!e.startDate||!e.endDate||t<e.startDate||t>e.endDate)return false;let i=pa(n);return !(!i||e.application!==i)}function Vt(e,t,n){if(!/^([01]\d|2[0-3]):([0-5]\d)$/.test(e))throw new Error("Invalid time format. Expected 'HH:MM'.");let[a,s]=e.split(":").map(Number),r=a*60+s,m=Math.ceil(t/n),u=[];for(let c=0;c<m;c++)u.push(r+c*n);return u}function Je(e,t,n){let i=n[e]||new Set;return !t.some(a=>i.has(a))}function fa(e,t){let n=e.x-t.x,i=e.y-t.y;return Math.sqrt(n*n+i*i)}function ga(e){let t=0;for(let n=0;n<e.length;n++)for(let i=n+1;i<e.length;i++)t+=fa(e[n],e[i]);return t}function _t(e,t,n,i,a,s,r,m,u,c){if(!c){c=new Array(e.length+1).fill(0);for(let l=e.length-1;l>=0;l--)c[l]=c[l+1]+e[l].maxCapacity;}let d=0,o=0;for(let l of i)d+=l.minCapacity,o+=l.maxCapacity;if(!(d>t)&&!(o+c[n]<t)){if(d<=t&&t<=o){let l=ga(i);l<a.minDistance&&(a.minDistance=l,a.tables=[...i]);}for(let l=n;l<e.length;l++){let x=e[l];Ke(x,m,u)&&Je(x.tableNumber,s,r)&&(i.push(x),_t(e,t,l+1,i,a,s,r,m,u,c),i.pop());}}}async function ba({db:e,reservation:t,enforceTableAvailability:n}){let i=t.restaurantId,a=t.date,s=t.time,r=t.guests,m=await e.collection("restaurants").findOne({_id:i});if(!m){if(n)throw new Error("Restaurant settings not found.");return}let u=m.floors;if(!u||!Array.isArray(u)||u.length===0){if(n)throw new Error("No floors data found in restaurant document.");return}let c=[];if(u.forEach(p=>{p.tables&&Array.isArray(p.tables)&&p.tables.forEach(f=>{f.objectType==="Tafel"&&c.push({tableId:f.id,tableNumber:parseInt(f.tableNumber.$numberInt||f.tableNumber),minCapacity:parseInt(f.minCapacity.$numberInt||f.minCapacity),maxCapacity:parseInt(f.maxCapacity.$numberInt||f.maxCapacity),priority:parseInt(f.priority.$numberInt||f.priority),x:parseInt(f.x.$numberInt||f.x),y:parseInt(f.y.$numberInt||f.y),isTemporary:f.isTemporary===true,startDate:f.startDate||null,endDate:f.endDate||null,application:f.application||null});});}),!c.length){if(n)throw new Error("No tables found for this restaurant.");return}c.sort((p,f)=>p.maxCapacity!==f.maxCapacity?p.maxCapacity-f.maxCapacity:p.priority!==f.priority?p.priority-f.priority:p.minCapacity-f.minCapacity);let d=parseInt(m["general-settings"]?.duurReservatie?.$numberInt||m["general-settings"]?.duurReservatie||120),o=parseInt(m["general-settings"]?.intervalReservatie?.$numberInt||m["general-settings"]?.intervalReservatie||30),l=Vt(s,d,o),x=await e.collection("reservations").find({restaurantId:i,date:a}).toArray(),v={};for(let p of x){let f=d,y=Vt(p.time,f,o);if(p.tables)for(let g of p.tables)v[g]||(v[g]=new Set),y.forEach(T=>{v[g].add(T);});}try{let p=ma({restaurantSettings:m,allTables:c,guests:r,date:a,time:s,requiredSlots:l,tableOccupiedSlots:v,isTemporaryTableValid:Ke,isTableFreeForAllSlots:Je});if(p){t.tables=p.tables,t.tableIds=p.tableIds,t._viaGroup=p.viaGroup,console.log(`[Grouping] via '${t._viaGroup}' -> tables ${t.tables.join(",")}`);return}}catch(p){throw p}for(let p of c)if(Ke(p,a,s)&&p.minCapacity<=r&&r<=p.maxCapacity&&Je(p.tableNumber,l,v)){t.tables=[p.tableNumber],t.tableIds=[p.tableId],console.log(`Reservation assigned to table: ${p.tableNumber}`);return}let b={minDistance:1/0,tables:[]};if(_t(c,r,0,[],b,l,v,a,s),b.tables.length>0){t.tables=b.tables.map(p=>p.tableNumber),t.tableIds=b.tables.map(p=>p.tableId),console.log(`Reservation assigned to tables: ${t.tables.join(", ")}`);return}else {if(n)throw new Error("Unable to find enough tables for this reservation with enforcement on.");console.log("No tables available, but non-enforcing mode => continuing without assignment.");}}Rt.exports={assignTablesIfPossible:ba};});var Ee=I((Uo,Ut)=>{var{timeblocksAvailable:ya}=Ce();function xa(e,t,n){let[i,a,s]=e.split("-").map(Number),[r,m]=t.split(":").map(Number),u=new Date(Date.UTC(i,a-1,s,r,m));return new Date(u.toLocaleString("en-US",{timeZone:n}))}function va(e,t,n,i){let a=4;e["general-settings"]&&e["general-settings"].uurOpVoorhand&&parseInt(e["general-settings"].uurOpVoorhand,10)>=0&&(a=parseInt(e["general-settings"].uurOpVoorhand,10));let s=90;e["general-settings"]&&e["general-settings"].dagenInToekomst&&parseInt(e["general-settings"].dagenInToekomst,10)>0&&(s=parseInt(e["general-settings"].dagenInToekomst,10));let r="Europe/Amsterdam",m=new Date,u=new Date(m.toLocaleString("en-US",{timeZone:r})),c=new Date(u.getTime());c.setDate(c.getDate()+s),c.setHours(23,59,59,999);let[d,o,l]=t.split("-").map(Number),x=new Date(Date.UTC(d,o-1,l)),v=new Date(x.toLocaleString("en-US",{timeZone:r}));if(v>c)return {};let b=u.toDateString()===v.toDateString(),p=ya(e,t,n,i);if(b&&a>=0){let f=new Date(u.getTime());f.setHours(f.getHours()+a);for(let[y,g]of Object.entries(p))xa(t,y,r)<f&&delete p[y];}return p}Ut.exports={getAvailableTimeblocks:va};});var Qe=I((Ko,Kt)=>{var{getAvailableTimeblocks:ha}=Ee();function ka(e,t){let n=90;e["general-settings"]&&e["general-settings"].dagenInToekomst&&parseInt(e["general-settings"].dagenInToekomst,10)>0&&(n=parseInt(e["general-settings"].dagenInToekomst,10));let i="Europe/Amsterdam",a=new Date,s=new Date(a.toLocaleString("en-US",{timeZone:i})),r=new Date(s.getTime());r.setDate(r.getDate()+n),r.setHours(23,59,59,999);let[m,u,c]=t.split("-").map(Number),d=new Date(Date.UTC(m,u-1,c));return new Date(d.toLocaleString("en-US",{timeZone:i}))<=r}function Ta(e,t,n,i){if(!ka(e,t))return false;let a=ha(e,t,n,i);return Object.keys(a).length>0}Kt.exports={isDateAvailable:Ta};});var Xe=I((Jo,Jt)=>{var{timeblocksAvailable:Na}=Ce();function wa(e,t,n,i,a){let s=Na(e,t,i,a);return Object.prototype.hasOwnProperty.call(s,n)}Jt.exports={isTimeAvailable:wa};});var Me=I((Qo,en)=>{function $e(e){if(!e||typeof e!="string")return NaN;let t=e.split(":");if(t.length!==2)return NaN;let n=parseInt(t[0],10),i=parseInt(t[1],10);return isNaN(n)||isNaN(i)||n<0||n>23||i<0||i>59?NaN:n*60+i}var Qt={breakfast:{start:"07:00",end:"11:00"},lunch:{start:"11:00",end:"16:00"},dinner:{start:"16:00",end:"23:00"}};function Xt(e){let t=$e(e);if(isNaN(t))return null;for(let[n,i]of Object.entries(Qt)){let a=$e(i.start),s=$e(i.end);if(!(isNaN(a)||isNaN(s))&&t>=a&&t<s)return n}return null}function Aa(e){let t=[];return e?.floors&&Array.isArray(e.floors)?e.floors.forEach(n=>{n?.tables&&Array.isArray(n.tables)&&n.tables.forEach(i=>{let a=i.tableNumber?.$numberInt??i.tableNumber,s=i.minCapacity?.$numberInt??i.minCapacity,r=i.maxCapacity?.$numberInt??i.maxCapacity,m=i.priority?.$numberInt??i.priority,u=i.x?.$numberInt??i.x,c=i.y?.$numberInt??i.y;i.objectType==="Tafel"&&a!==void 0&&s!==void 0&&r!==void 0&&m!==void 0&&u!==void 0&&c!==void 0?t.push({tableId:i.id,tableNumber:parseInt(a,10),minCapacity:parseInt(s,10),maxCapacity:parseInt(r,10),priority:parseInt(m,10),x:parseInt(u,10),y:parseInt(c,10),isTemporary:i.isTemporary===true,startDate:i.startDate||null,endDate:i.endDate||null,application:i.application||null}):i.objectType==="Tafel"&&console.warn(`Skipping table due to missing essential properties: ${JSON.stringify(i)}`);});}):console.warn("Restaurant data is missing 'floors' array."),t.sort((n,i)=>n.maxCapacity!==i.maxCapacity?n.maxCapacity-i.maxCapacity:n.priority!==i.priority?n.priority-i.priority:n.minCapacity-i.minCapacity),t=t.filter(n=>!isNaN(n.tableNumber)&&!isNaN(n.minCapacity)&&!isNaN(n.maxCapacity)&&!isNaN(n.priority)&&!isNaN(n.x)&&!isNaN(n.y)),t}function Sa(e,t,n){if(!e.isTemporary)return true;if(!e.startDate||!e.endDate)return console.log(`Temporary Table ${e.tableNumber} skipped: Missing start/end date.`),false;if(t<e.startDate||t>e.endDate)return false;let i=Xt(n);return i?e.application===i:(console.log(`Temporary Table ${e.tableNumber} skipped: Could not determine meal type for time ${n}.`),false)}en.exports={shifts:Qt,parseTime:$e,getMealTypeByTime:Xt,getAllTables:Aa,isTemporaryTableValid:Sa};});var nt=I((Xo,on)=>{var{getAllTables:et,isTemporaryTableValid:ye}=Me();function le(e,t){if(console.log("[safeParseInt] Parsing value:",e,"with type:",typeof e),e==null)return t;if(typeof e=="object"&&e!==null&&"$numberInt"in e){try{let n=parseInt(e.$numberInt,10);if(console.log("[safeParseInt] Parsed $numberInt format:",n),!isNaN(n))return n}catch(n){console.log("[safeParseInt] Error parsing $numberInt:",n);}return t}if(typeof e=="number"&&!isNaN(e))return console.log("[safeParseInt] Using numeric value directly:",e),e;if(typeof e=="string")try{let n=parseInt(e,10);if(console.log("[safeParseInt] Parsed string:",n),!isNaN(n))return n}catch(n){console.log("[safeParseInt] Error parsing string:",n);}return console.log("[safeParseInt] Could not parse, using default:",t),t}function Ia(e){return Array.isArray(e)?e.map(t=>le(t,null)).filter(t=>t!==null):[]}function tn(e){if(e.tables&&Array.isArray(e.tables)){let t=Ia(e.tables);return console.log("[getActualTableAssignment] Found actual table assignment for reservation:",t),t}return console.log("[getActualTableAssignment] No actual table assignment found for reservation"),[]}function xe(e,t,n){if(!e||!/^([01]\d|2[0-3]):([0-5]\d)$/.test(e))return console.error(`Invalid time format for computeRequiredSlots: ${e}. Expected 'HH:MM'.`),[];let[a,s]=e.split(":").map(Number),r=a*60+s;if(n<=0)return console.error("Interval must be positive in computeRequiredSlots."),[r];let m=Math.ceil(t/n);console.log(`Computing ${m} slots for time ${e} (duration: ${t}min, interval: ${n}min)`);let u=[];for(let c=0;c<m;c++)u.push(r+c*n);return u}function ve(e,t,n){let i=n[e]||new Set;for(let a of t)if(i.has(a))return false;return true}function Ca(e,t){if(e?.x===void 0||e?.y===void 0||t?.x===void 0||t?.y===void 0)return 1/0;let n=e.x-t.x,i=e.y-t.y;return Math.sqrt(n*n+i*i)}function tt(e,t,n,i,a,s,r,m,u){if(t<=0){let d=0;for(let o=0;o<i.length;o++)for(let l=o+1;l<i.length;l++)d+=Ca(i[o],i[l]);(i.length<a.tableCount||i.length===a.tableCount&&d<a.minDistance)&&(a.minDistance=d,a.tables=[...i],a.tableCount=i.length,console.log(`Found new best table combination: ${a.tables.map(o=>o.tableNumber).join(", ")} for ${t} guests`));return}if(n>=e.length||i.length>=a.tableCount&&a.tableCount!==1/0)return;let c=0;for(let d=n;d<e.length;d++){let o=e[d];ye(o,m,u)&&ve(o.tableNumber,s,r)&&(c+=o.maxCapacity);}if(!(c<t))for(let d=n;d<e.length;d++){let o=e[d];if(!ye(o,m,u)||!ve(o.tableNumber,s,r))continue;let l=Math.min(o.maxCapacity,t);l<o.minCapacity&&l<t||l<=0||(i.push(o),console.log(`Trying table ${o.tableNumber} (${o.minCapacity}-${o.maxCapacity}) for ${l}/${t} guests`),tt(e,t-l,d+1,i,a,s,r,m,u),i.pop());}}function nn(e,t,n,i,a,s=null){console.log(`[assignTablesForGivenTime] Processing ${t} ${n} for ${i} guests`);let r=e["general-settings"]||{};console.log("[assignTablesForGivenTime] General settings:",r),console.log("[assignTablesForGivenTime] duurReservatie format:",typeof r.duurReservatie),console.log("[assignTablesForGivenTime] intervalReservatie format:",typeof r.intervalReservatie),typeof r.duurReservatie=="object"&&r.duurReservatie?.$numberInt&&console.log("[assignTablesForGivenTime] duurReservatie is in MongoDB format:",r.duurReservatie?.$numberInt),typeof r.intervalReservatie=="object"&&r.intervalReservatie?.$numberInt&&console.log("[assignTablesForGivenTime] intervalReservatie is in MongoDB format:",r.intervalReservatie?.$numberInt);let m=120,u=15;if(m=le(r.duurReservatie,120),u=le(r.intervalReservatie,15),console.log(`[assignTablesForGivenTime] Using duration: ${m}min, interval: ${u}min`),u<=0)return console.error("Invalid interval settings."),[];let c=xe(n,m,u);if(!c||c.length===0)return console.error(`Could not compute required slots for ${n}`),[];let d=et(e,s);console.log(`[assignTablesForGivenTime] Checking ${d.length} tables`);for(let l of d)if(ye(l,t,n)&&l.minCapacity<=i&&i<=l.maxCapacity&&ve(l.tableNumber,c,a))return console.log(`[assignTablesForGivenTime] Assigned single table ${l.tableNumber} for ${i} guests`),[l.tableNumber];console.log("[assignTablesForGivenTime] No single table found, trying combinations...");let o={minDistance:1/0,tables:[],tableCount:1/0};return tt(d,i,0,[],o,c,a,t,n),o.tables.length>0?console.log(`[assignTablesForGivenTime] Found multi-table solution: ${o.tables.map(l=>l.tableNumber).join(", ")}`):console.log(`[assignTablesForGivenTime] No table combination found for ${i} guests`),o.tables.map(l=>l.tableNumber)}function an(e,t,n,i,a,s=null){console.log(`
|
|
1
|
+
'use strict';var D=require('react'),framerMotion=require('framer-motion'),ue=require('moment-timezone'),ai=require('axios'),ao=require('lottie-react'),fa=require('react-icons/fa');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var D__default=/*#__PURE__*/_interopDefault(D);var ue__default=/*#__PURE__*/_interopDefault(ue);var ai__default=/*#__PURE__*/_interopDefault(ai);var ao__default=/*#__PURE__*/_interopDefault(ao);var Ni=Object.create;var kt=Object.defineProperty;var wi=Object.getOwnPropertyDescriptor;var Ai=Object.getOwnPropertyNames;var Si=Object.getPrototypeOf,Ii=Object.prototype.hasOwnProperty;var Tt=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,n)=>(typeof require<"u"?require:t)[n]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var I=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Ci=(e,t,n,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of Ai(t))!Ii.call(e,a)&&a!==n&&kt(e,a,{get:()=>t[a],enumerable:!(i=wi(t,a))||i.enumerable});return e};var Ve=(e,t,n)=>(n=e!=null?Ni(Si(e)):{},Ci(!e||!e.__esModule?kt(n,"default",{value:e,enumerable:true}):n,e));var me=I((Po,Dt)=>{var It=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],Bi=["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"],Ct={breakfast:{start:"07:00",end:"11:00"},lunch:{start:"11:00",end:"16:00"},dinner:{start:"16:00",end:"23:00"}};function ae(e){let[t,n]=e.split(":").map(Number);return t*60+n}function Et(e){let t=ae(e);for(let[n,i]of Object.entries(Ct)){let a=ae(i.start),s=ae(i.end);if(t>=a&&t<s)return n}return null}function $t(e,t,n){let i=`openinghours-${n}`;if(!e[i])return null;let s=e[i].schemeSettings[t];return s?{...s}:null}function Fi(e,t){e.maxCapacityEnabled===false&&(t&&t.zitplaatsen?(e.maxCapacity=t.zitplaatsen,e.maxCapacityEnabled=true):(e.maxCapacity="0",e.maxCapacityEnabled=true));}function Gi(e){let t=120;return e["general-settings"]&&e["general-settings"].duurReservatie&&parseInt(e["general-settings"].duurReservatie,10)>0&&(t=parseInt(e["general-settings"].duurReservatie,10)),t}function zi(e,t){let n=Gi(t),a=ae(e.endTime)+n,s=String(Math.floor(a/60)).padStart(2,"0"),r=String(a%60).padStart(2,"0");e.endTime=`${s}:${r}`;}function Mt(e,t,n){let i=new Date(t);if(isNaN(i))return null;let a=i.getDay(),s=It[a],r=$t(e,s,n);return !r||r.enabled!==true?null:(Fi(r,e["general-settings"]),zi(r,e),r)}function Pi(e,t,n){let i=Et(n);if(!i)return null;let a=Mt(e,t,i);if(!a)return null;let s=ae(n),r=ae(a.startTime),m=ae(a.endTime);return s>=r&&s<m?a:null}Dt.exports={getDataByDayAndMeal:$t,getDataByDateAndMeal:Mt,getDataByDateAndTime:Pi,daysOfWeekEnglish:It,daysOfWeekDutch:Bi,getMealTypeByTime:Et,parseTime:ae,shifts:Ct};});var Se=I((Yo,Ft)=>{var{getDataByDateAndMeal:Oi,getDataByDateAndTime:Oo,getMealTypeByTime:qi,parseTime:Ae,shifts:qo,daysOfWeekEnglish:jo,daysOfWeekDutch:ji}=me();function Yi(e,t,n){let i=new Date(e),a=new Date(t),s=new Date(n);return isNaN(i)||isNaN(a)||isNaN(s)?false:i>=a&&i<=s}function Hi(e){let t=e.getDay();return ji[t]}function Li(e,t,n,i){let{timeframe:a,startDate:s,endDate:r,daysOfWeek:m}=e;return !Yi(t,s,r)||Array.isArray(m)&&m.length>0&&!m.map(c=>c.toLowerCase()).includes(n)?false:a==="Volledige Dag"||a===i}function Wi(e){let t=120;return e["general-settings"]&&e["general-settings"].duurReservatie&&parseInt(e["general-settings"].duurReservatie,10)>0&&(t=parseInt(e["general-settings"].duurReservatie,10)),t}function Vi(e,t){let n=Wi(t),a=Ae(e.endTime)+n,s=String(Math.floor(a/60)).padStart(2,"0"),r=String(a%60).padStart(2,"0");e.endTime=`${s}:${r}`;}function _i(e,t){let n={enabled:true,startTime:e.startHour,endTime:e.endHour,maxCapacityEnabled:!!e.maxSeats,maxCapacity:e.maxSeats||null,shiftsEnabled:false,shifts:[]};return Vi(n,t),n}function Bt(e,t,n){let i=e.exceptions||[],a=new Date(t);if(isNaN(a))return null;let s=Hi(a).toLowerCase(),r=["Opening","Sluiting","Uitzondering"];for(let m of r)for(let u of i)if(u.type===m&&Li(u,t,s,n))return m==="Sluiting"?null:_i(u,e);return Oi(e,t,n)}function Ri(e,t){return !(e==="breakfast"&&t==="11:00"||e==="lunch"&&t==="16:00")}function Zi(e,t,n){let i=qi(n);if(!i)return null;let a=Bt(e,t,i);if(!a)return null;let s=Ae(n),r=Ae(a.startTime),m=Ae(a.endTime);return (Ri(i,a.endTime)?s>=r&&s<=m:s>=r&&s<m)?a:null}Ft.exports={getDataByDateAndMealWithExceptions:Bt,getDataByDateAndTimeWithExceptions:Zi};});var _e=I((Ho,zt)=>{function Gt(e){let[t,n]=e.split(":").map(Number);return t*60+n}function Ui(e){let t=120;return e["general-settings"]&&e["general-settings"].duurReservatie&&parseInt(e["general-settings"].duurReservatie,10)>0&&(t=parseInt(e["general-settings"].duurReservatie,10)),t}function Ki(e,t,n,i){let a=Ui(e),s=Gt(n),r=0;for(let m of t){if(m.date!==i)continue;let u=Gt(m.time),c=u+a;s>=u&&s<c&&(r+=parseInt(m.guests,10));}return r}zt.exports={getGuestCountAtHour:Ki};});var Ie=I((Lo,jt)=>{var{getDataByDateAndMealWithExceptions:qt}=Se(),{parseTime:Pt}=me(),{getGuestCountAtHour:Ot}=_e();function Ji(e){let t=15;return e["general-settings"]&&e["general-settings"].intervalReservatie&&parseInt(e["general-settings"].intervalReservatie,10)>0&&(t=parseInt(e["general-settings"].intervalReservatie,10)),t}function Qi(e,t){let n=["breakfast","lunch","dinner"],i=[];for(let a of n){let s=qt(e,t,a);s&&s.shiftsEnabled&&Array.isArray(s.shifts)&&s.shifts.length>0&&i.push(a);}return i}function Xi(e,t){return !(e==="breakfast"&&t==="11:00"||e==="lunch"&&t==="16:00")}function ea(e,t,n,i){let a=qt(e,t,n);if(!a)return null;let s={},r=[],m=Ji(e);if(a.shiftsEnabled&&Array.isArray(a.shifts)&&a.shifts.length>0){let u=a.shifts;for(let c of u){let d=c.time,o=Ot(e,i,d,t);s[d]=a.maxCapacity-o,r.push({mealType:n,shiftName:c.name,time:d,availableSeats:a.maxCapacity-o});}}else {let u=a.startTime,c=a.endTime,d=Xi(n,c),o=Pt(u),l=Pt(c);for(;d?o<=l:o<l;){let x=Math.floor(o/60).toString().padStart(2,"0"),v=(o%60).toString().padStart(2,"0"),b=`${x}:${v}`,p=Ot(e,i,b,t);s[b]=a.maxCapacity-p,o+=m;}}return {guestCounts:s,shiftsInfo:r}}jt.exports={getGuestCountsForMeal:ea,getMealTypesWithShifts:Qi};});var Re=I((Wo,Yt)=>{var{getGuestCountsForMeal:ta}=Ie();function na(e,t,n){let i=["breakfast","lunch","dinner"],a={},s=[],r={breakfast:1,lunch:2,dinner:3};for(let u of i){let c=ta(e,t,u,n);if(c){let{guestCounts:d,shiftsInfo:o}=c;for(let[l,x]of Object.entries(d))if(a.hasOwnProperty(l)){let v=a[l].mealPriority,b=r[u];b>=v&&(a[l]={availableSeats:x,mealPriority:b});}else a[l]={availableSeats:x,mealPriority:r[u]};o&&o.length>0&&s.push(...o);}}let m={};for(let[u,c]of Object.entries(a))m[u]=c.availableSeats;return {guestCounts:m,shiftsInfo:s}}Yt.exports={getDailyGuestCounts:na};});var Ce=I((_o,Lt)=>{var{getDailyGuestCounts:ia}=Re(),{getMealTypesWithShifts:aa}=Ie(),{getDataByDateAndMealWithExceptions:ra}=Se(),{getMealTypeByTime:oa,parseTime:Vo}=me();function se(e){let[t,n]=e.split(":").map(Number);return t*60+n}function sa(e){let t=15;return e["general-settings"]&&e["general-settings"].intervalReservatie&&parseInt(e["general-settings"].intervalReservatie,10)>0&&(t=parseInt(e["general-settings"].intervalReservatie,10)),t}function la(e){let t=120;return e["general-settings"]&&e["general-settings"].duurReservatie&&parseInt(e["general-settings"].duurReservatie,10)>0&&(t=parseInt(e["general-settings"].duurReservatie,10)),t}function Ht(e,t,n,i){let a=oa(n);if(!a)return false;let s=ra(e,t,a);if(!s)return false;let r=se(s.startTime),m=se(s.endTime),u=se(n);return u>=r&&u+i<=m}function ca(e,t,n,i){let a=la(e),s=sa(e),r=Math.ceil(a/s),{guestCounts:m,shiftsInfo:u}=ia(e,t,n),c={};if(aa(e,t).length>0&&u&&u.length>0)for(let o of u){let{time:l,availableSeats:x}=o;x>=i&&Ht(e,t,l,a)&&(c[l]={name:l});}if(m&&Object.keys(m).length>0){let o=Object.keys(m).sort((l,x)=>se(l)-se(x));for(let l=0;l<=o.length-r;l++){let x=true;if(m[o[l]]<i)continue;let v=se(o[l]);for(let b=1;b<r;b++){let p=o[l+b],f=se(p);if(f-v!==s||m[p]<i){x=false;break}v=f;}x&&Ht(e,t,o[l],a)&&(c[o[l]]={name:o[l]});}}return c}Lt.exports={timeblocksAvailable:ca};});var Ze=I((Ro,Wt)=>{function ua({restaurantSettings:e,allTables:t,guests:n,date:i,time:a,requiredSlots:s,tableOccupiedSlots:r,isTemporaryTableValid:m,isTableFreeForAllSlots:u}){let c=e["grouping-settings"]||{},d=c.enable===true,o=c.strict===true,l=Number.isFinite(c.maxSubtables)?c.maxSubtables:void 0,x=c.orderStrategy||"smallest-first";c.seed??0;let b=Array.isArray(e.pinnedGroups)?e.pinnedGroups:[];if(!d||b.length===0)return null;let p=new Map(t.map(h=>[String(h.tableId),h])),f=new Map(t.filter(h=>typeof h.tableNumber=="number").map(h=>[h.tableNumber,h]));if(t.some(h=>h.minCapacity<=n&&n<=h.maxCapacity&&m(h,i,a)&&u(h.tableNumber,s,r)))return null;let g=[...b].sort((h,k)=>{let C=String(h.id||h.name||""),E=String(k.id||k.name||"");return C.localeCompare(E)}),N=(h,k)=>{if(x==="closest-fit"){let R=(h.maxCapacity||0)-(h.minCapacity||0),j=(k.maxCapacity||0)-(k.minCapacity||0);if(R!==j)return R-j}if(h.maxCapacity!==k.maxCapacity)return h.maxCapacity-k.maxCapacity;if(h.tableNumber!==k.tableNumber)return h.tableNumber-k.tableNumber;let C=String(h.tableId),E=String(k.tableId);return C.localeCompare(E)};for(let h of g){let k=Array.isArray(h.tableIds)?h.tableIds.map(String):[],C=Array.isArray(h.tableNumbers)?h.tableNumbers.filter(S=>typeof S=="number"):[],E=[];if(k.length?E=k.map(S=>p.get(S)).filter(Boolean):C.length&&(E=C.map(S=>f.get(S)).filter(Boolean)),l&&E.length>l&&(E=E.slice(0,l)),E.length<2||!E.every(S=>m(S,i,a)&&u(S.tableNumber,s,r)))continue;let R=E.reduce((S,Q)=>S+(Q.maxCapacity||0),0),j=E.reduce((S,Q)=>S+(Q.minCapacity||0),0);if(n<j||n>R)continue;let Z=[...E].sort(N),$=new Map(Z.map(S=>[S.tableNumber,Math.max(0,S.minCapacity||0)])),B=n-[...$.values()].reduce((S,Q)=>S+Q,0);if(!(B<0)){for(let S of Z){if(B<=0)break;let Q=$.get(S.tableNumber),w=Math.max(0,(S.maxCapacity||0)-Q),G=Math.min(w,B);$.set(S.tableNumber,Q+G),B-=G;}if(B===0)return {tables:Z.map(S=>S.tableNumber),tableIds:Z.map(S=>S.tableId),viaGroup:String(h.id||h.name||"pinned-group")}}}if(o)throw new Error("No matching pinned group found (strict grouping)");return null}Wt.exports={tryGroupTables:ua};});var Zt=I((Zo,Rt)=>{var{tryGroupTables:ma}=Ze();function Ue(e){if(!e||typeof e!="string")return NaN;let t=e.split(":");if(t.length!==2)return NaN;let n=parseInt(t[0],10),i=parseInt(t[1],10);return isNaN(n)||isNaN(i)||n<0||n>23||i<0||i>59?NaN:n*60+i}var da={breakfast:{start:"07:00",end:"11:00"},lunch:{start:"11:00",end:"16:00"},dinner:{start:"16:00",end:"23:00"}};function pa(e){let t=Ue(e);if(isNaN(t))return null;for(let[n,i]of Object.entries(da)){let a=Ue(i.start),s=Ue(i.end);if(!(isNaN(a)||isNaN(s))&&t>=a&&t<s)return n}return null}function Ke(e,t,n){if(!e.isTemporary)return true;if(!e.startDate||!e.endDate||t<e.startDate||t>e.endDate)return false;let i=pa(n);return !(!i||e.application!==i)}function Vt(e,t,n){if(!/^([01]\d|2[0-3]):([0-5]\d)$/.test(e))throw new Error("Invalid time format. Expected 'HH:MM'.");let[a,s]=e.split(":").map(Number),r=a*60+s,m=Math.ceil(t/n),u=[];for(let c=0;c<m;c++)u.push(r+c*n);return u}function Je(e,t,n){let i=n[e]||new Set;return !t.some(a=>i.has(a))}function fa(e,t){let n=e.x-t.x,i=e.y-t.y;return Math.sqrt(n*n+i*i)}function ga(e){let t=0;for(let n=0;n<e.length;n++)for(let i=n+1;i<e.length;i++)t+=fa(e[n],e[i]);return t}function _t(e,t,n,i,a,s,r,m,u,c){if(!c){c=new Array(e.length+1).fill(0);for(let l=e.length-1;l>=0;l--)c[l]=c[l+1]+e[l].maxCapacity;}let d=0,o=0;for(let l of i)d+=l.minCapacity,o+=l.maxCapacity;if(!(d>t)&&!(o+c[n]<t)){if(d<=t&&t<=o){let l=ga(i);l<a.minDistance&&(a.minDistance=l,a.tables=[...i]);}for(let l=n;l<e.length;l++){let x=e[l];Ke(x,m,u)&&Je(x.tableNumber,s,r)&&(i.push(x),_t(e,t,l+1,i,a,s,r,m,u,c),i.pop());}}}async function ba({db:e,reservation:t,enforceTableAvailability:n}){let i=t.restaurantId,a=t.date,s=t.time,r=t.guests,m=await e.collection("restaurants").findOne({_id:i});if(!m){if(n)throw new Error("Restaurant settings not found.");return}let u=m.floors;if(!u||!Array.isArray(u)||u.length===0){if(n)throw new Error("No floors data found in restaurant document.");return}let c=[];if(u.forEach(p=>{p.tables&&Array.isArray(p.tables)&&p.tables.forEach(f=>{f.objectType==="Tafel"&&c.push({tableId:f.id,tableNumber:parseInt(f.tableNumber.$numberInt||f.tableNumber),minCapacity:parseInt(f.minCapacity.$numberInt||f.minCapacity),maxCapacity:parseInt(f.maxCapacity.$numberInt||f.maxCapacity),priority:parseInt(f.priority.$numberInt||f.priority),x:parseInt(f.x.$numberInt||f.x),y:parseInt(f.y.$numberInt||f.y),isTemporary:f.isTemporary===true,startDate:f.startDate||null,endDate:f.endDate||null,application:f.application||null});});}),!c.length){if(n)throw new Error("No tables found for this restaurant.");return}c.sort((p,f)=>p.maxCapacity!==f.maxCapacity?p.maxCapacity-f.maxCapacity:p.priority!==f.priority?p.priority-f.priority:p.minCapacity-f.minCapacity);let d=parseInt(m["general-settings"]?.duurReservatie?.$numberInt||m["general-settings"]?.duurReservatie||120),o=parseInt(m["general-settings"]?.intervalReservatie?.$numberInt||m["general-settings"]?.intervalReservatie||30),l=Vt(s,d,o),x=await e.collection("reservations").find({restaurantId:i,date:a}).toArray(),v={};for(let p of x){let f=d,y=Vt(p.time,f,o);if(p.tables)for(let g of p.tables)v[g]||(v[g]=new Set),y.forEach(T=>{v[g].add(T);});}try{let p=ma({restaurantSettings:m,allTables:c,guests:r,date:a,time:s,requiredSlots:l,tableOccupiedSlots:v,isTemporaryTableValid:Ke,isTableFreeForAllSlots:Je});if(p){t.tables=p.tables,t.tableIds=p.tableIds,t._viaGroup=p.viaGroup,console.log(`[Grouping] via '${t._viaGroup}' -> tables ${t.tables.join(",")}`);return}}catch(p){throw p}for(let p of c)if(Ke(p,a,s)&&p.minCapacity<=r&&r<=p.maxCapacity&&Je(p.tableNumber,l,v)){t.tables=[p.tableNumber],t.tableIds=[p.tableId],console.log(`Reservation assigned to table: ${p.tableNumber}`);return}let b={minDistance:1/0,tables:[]};if(_t(c,r,0,[],b,l,v,a,s),b.tables.length>0){t.tables=b.tables.map(p=>p.tableNumber),t.tableIds=b.tables.map(p=>p.tableId),console.log(`Reservation assigned to tables: ${t.tables.join(", ")}`);return}else {if(n)throw new Error("Unable to find enough tables for this reservation with enforcement on.");console.log("No tables available, but non-enforcing mode => continuing without assignment.");}}Rt.exports={assignTablesIfPossible:ba};});var Ee=I((Uo,Ut)=>{var{timeblocksAvailable:ya}=Ce();function xa(e,t,n){let[i,a,s]=e.split("-").map(Number),[r,m]=t.split(":").map(Number),u=new Date(Date.UTC(i,a-1,s,r,m));return new Date(u.toLocaleString("en-US",{timeZone:n}))}function va(e,t,n,i){let a=4;e["general-settings"]&&e["general-settings"].uurOpVoorhand&&parseInt(e["general-settings"].uurOpVoorhand,10)>=0&&(a=parseInt(e["general-settings"].uurOpVoorhand,10));let s=90;e["general-settings"]&&e["general-settings"].dagenInToekomst&&parseInt(e["general-settings"].dagenInToekomst,10)>0&&(s=parseInt(e["general-settings"].dagenInToekomst,10));let r="Europe/Amsterdam",m=new Date,u=new Date(m.toLocaleString("en-US",{timeZone:r})),c=new Date(u.getTime());c.setDate(c.getDate()+s),c.setHours(23,59,59,999);let[d,o,l]=t.split("-").map(Number),x=new Date(Date.UTC(d,o-1,l)),v=new Date(x.toLocaleString("en-US",{timeZone:r}));if(v>c)return {};let b=u.toDateString()===v.toDateString(),p=ya(e,t,n,i);if(b&&a>=0){let f=new Date(u.getTime());f.setHours(f.getHours()+a);for(let[y,g]of Object.entries(p))xa(t,y,r)<f&&delete p[y];}return p}Ut.exports={getAvailableTimeblocks:va};});var Qe=I((Ko,Kt)=>{var{getAvailableTimeblocks:ha}=Ee();function ka(e,t){let n=90;e["general-settings"]&&e["general-settings"].dagenInToekomst&&parseInt(e["general-settings"].dagenInToekomst,10)>0&&(n=parseInt(e["general-settings"].dagenInToekomst,10));let i="Europe/Amsterdam",a=new Date,s=new Date(a.toLocaleString("en-US",{timeZone:i})),r=new Date(s.getTime());r.setDate(r.getDate()+n),r.setHours(23,59,59,999);let[m,u,c]=t.split("-").map(Number),d=new Date(Date.UTC(m,u-1,c));return new Date(d.toLocaleString("en-US",{timeZone:i}))<=r}function Ta(e,t,n,i){if(!ka(e,t))return false;let a=ha(e,t,n,i);return Object.keys(a).length>0}Kt.exports={isDateAvailable:Ta};});var Xe=I((Jo,Jt)=>{var{timeblocksAvailable:Na}=Ce();function wa(e,t,n,i,a){let s=Na(e,t,i,a);return Object.prototype.hasOwnProperty.call(s,n)}Jt.exports={isTimeAvailable:wa};});var Me=I((Qo,en)=>{function $e(e){if(!e||typeof e!="string")return NaN;let t=e.split(":");if(t.length!==2)return NaN;let n=parseInt(t[0],10),i=parseInt(t[1],10);return isNaN(n)||isNaN(i)||n<0||n>23||i<0||i>59?NaN:n*60+i}var Qt={breakfast:{start:"07:00",end:"11:00"},lunch:{start:"11:00",end:"16:00"},dinner:{start:"16:00",end:"23:00"}};function Xt(e){let t=$e(e);if(isNaN(t))return null;for(let[n,i]of Object.entries(Qt)){let a=$e(i.start),s=$e(i.end);if(!(isNaN(a)||isNaN(s))&&t>=a&&t<s)return n}return null}function Aa(e){let t=[];return e?.floors&&Array.isArray(e.floors)?e.floors.forEach(n=>{n?.tables&&Array.isArray(n.tables)&&n.tables.forEach(i=>{let a=i.tableNumber?.$numberInt??i.tableNumber,s=i.minCapacity?.$numberInt??i.minCapacity,r=i.maxCapacity?.$numberInt??i.maxCapacity,m=i.priority?.$numberInt??i.priority,u=i.x?.$numberInt??i.x,c=i.y?.$numberInt??i.y;i.objectType==="Tafel"&&a!==void 0&&s!==void 0&&r!==void 0&&m!==void 0&&u!==void 0&&c!==void 0?t.push({tableId:i.id,tableNumber:parseInt(a,10),minCapacity:parseInt(s,10),maxCapacity:parseInt(r,10),priority:parseInt(m,10),x:parseInt(u,10),y:parseInt(c,10),isTemporary:i.isTemporary===true,startDate:i.startDate||null,endDate:i.endDate||null,application:i.application||null}):i.objectType==="Tafel"&&console.warn(`Skipping table due to missing essential properties: ${JSON.stringify(i)}`);});}):console.warn("Restaurant data is missing 'floors' array."),t.sort((n,i)=>n.maxCapacity!==i.maxCapacity?n.maxCapacity-i.maxCapacity:n.priority!==i.priority?n.priority-i.priority:n.minCapacity-i.minCapacity),t=t.filter(n=>!isNaN(n.tableNumber)&&!isNaN(n.minCapacity)&&!isNaN(n.maxCapacity)&&!isNaN(n.priority)&&!isNaN(n.x)&&!isNaN(n.y)),t}function Sa(e,t,n){if(!e.isTemporary)return true;if(!e.startDate||!e.endDate)return console.log(`Temporary Table ${e.tableNumber} skipped: Missing start/end date.`),false;if(t<e.startDate||t>e.endDate)return false;let i=Xt(n);return i?e.application===i:(console.log(`Temporary Table ${e.tableNumber} skipped: Could not determine meal type for time ${n}.`),false)}en.exports={shifts:Qt,parseTime:$e,getMealTypeByTime:Xt,getAllTables:Aa,isTemporaryTableValid:Sa};});var nt=I((Xo,on)=>{var{getAllTables:et,isTemporaryTableValid:ye}=Me();function le(e,t){if(console.log("[safeParseInt] Parsing value:",e,"with type:",typeof e),e==null)return t;if(typeof e=="object"&&e!==null&&"$numberInt"in e){try{let n=parseInt(e.$numberInt,10);if(console.log("[safeParseInt] Parsed $numberInt format:",n),!isNaN(n))return n}catch(n){console.log("[safeParseInt] Error parsing $numberInt:",n);}return t}if(typeof e=="number"&&!isNaN(e))return console.log("[safeParseInt] Using numeric value directly:",e),e;if(typeof e=="string")try{let n=parseInt(e,10);if(console.log("[safeParseInt] Parsed string:",n),!isNaN(n))return n}catch(n){console.log("[safeParseInt] Error parsing string:",n);}return console.log("[safeParseInt] Could not parse, using default:",t),t}function Ia(e){return Array.isArray(e)?e.map(t=>le(t,null)).filter(t=>t!==null):[]}function tn(e){if(e.tables&&Array.isArray(e.tables)){let t=Ia(e.tables);return console.log("[getActualTableAssignment] Found actual table assignment for reservation:",t),t}return console.log("[getActualTableAssignment] No actual table assignment found for reservation"),[]}function xe(e,t,n){if(!e||!/^([01]\d|2[0-3]):([0-5]\d)$/.test(e))return console.error(`Invalid time format for computeRequiredSlots: ${e}. Expected 'HH:MM'.`),[];let[a,s]=e.split(":").map(Number),r=a*60+s;if(n<=0)return console.error("Interval must be positive in computeRequiredSlots."),[r];let m=Math.ceil(t/n);console.log(`Computing ${m} slots for time ${e} (duration: ${t}min, interval: ${n}min)`);let u=[];for(let c=0;c<m;c++)u.push(r+c*n);return u}function ve(e,t,n){let i=n[e]||new Set;for(let a of t)if(i.has(a))return false;return true}function Ca(e,t){if(e?.x===void 0||e?.y===void 0||t?.x===void 0||t?.y===void 0)return 1/0;let n=e.x-t.x,i=e.y-t.y;return Math.sqrt(n*n+i*i)}function tt(e,t,n,i,a,s,r,m,u){if(t<=0){let d=0;for(let o=0;o<i.length;o++)for(let l=o+1;l<i.length;l++)d+=Ca(i[o],i[l]);(i.length<a.tableCount||i.length===a.tableCount&&d<a.minDistance)&&(a.minDistance=d,a.tables=[...i],a.tableCount=i.length,console.log(`Found new best table combination: ${a.tables.map(o=>o.tableNumber).join(", ")} for ${t} guests`));return}if(n>=e.length||i.length>=a.tableCount&&a.tableCount!==1/0)return;let c=0;for(let d=n;d<e.length;d++){let o=e[d];ye(o,m,u)&&ve(o.tableNumber,s,r)&&(c+=o.maxCapacity);}if(!(c<t))for(let d=n;d<e.length;d++){let o=e[d];if(!ye(o,m,u)||!ve(o.tableNumber,s,r))continue;let l=Math.min(o.maxCapacity,t);l<o.minCapacity&&l<t||l<=0||(i.push(o),console.log(`Trying table ${o.tableNumber} (${o.minCapacity}-${o.maxCapacity}) for ${l}/${t} guests`),tt(e,t-l,d+1,i,a,s,r,m,u),i.pop());}}function nn(e,t,n,i,a,s=null){console.log(`[assignTablesForGivenTime] Processing ${t} ${n} for ${i} guests`);let r=e["general-settings"]||{};console.log("[assignTablesForGivenTime] General settings:",r),console.log("[assignTablesForGivenTime] duurReservatie format:",typeof r.duurReservatie),console.log("[assignTablesForGivenTime] intervalReservatie format:",typeof r.intervalReservatie),typeof r.duurReservatie=="object"&&r.duurReservatie?.$numberInt&&console.log("[assignTablesForGivenTime] duurReservatie is in MongoDB format:",r.duurReservatie?.$numberInt),typeof r.intervalReservatie=="object"&&r.intervalReservatie?.$numberInt&&console.log("[assignTablesForGivenTime] intervalReservatie is in MongoDB format:",r.intervalReservatie?.$numberInt);let m=120,u=15;if(m=le(r.duurReservatie,120),u=le(r.intervalReservatie,15),console.log(`[assignTablesForGivenTime] Using duration: ${m}min, interval: ${u}min`),u<=0)return console.error("Invalid interval settings."),[];let c=xe(n,m,u);if(!c||c.length===0)return console.error(`Could not compute required slots for ${n}`),[];let d=et(e,s);console.log(`[assignTablesForGivenTime] Checking ${d.length} tables`);for(let l of d)if(ye(l,t,n)&&l.minCapacity<=i&&i<=l.maxCapacity&&ve(l.tableNumber,c,a))return console.log(`[assignTablesForGivenTime] Assigned single table ${l.tableNumber} for ${i} guests`),[l.tableNumber];console.log("[assignTablesForGivenTime] No single table found, trying combinations...");let o={minDistance:1/0,tables:[],tableCount:1/0};return tt(d,i,0,[],o,c,a,t,n),o.tables.length>0?console.log(`[assignTablesForGivenTime] Found multi-table solution: ${o.tables.map(l=>l.tableNumber).join(", ")}`):console.log(`[assignTablesForGivenTime] No table combination found for ${i} guests`),o.tables.map(l=>l.tableNumber)}function an(e,t,n,i,a,s=null){console.log(`
|
|
2
2
|
[isTimeAvailableSync] Checking ${t} ${n} for ${i} guests`),i<0&&(console.log(`[isTimeAvailableSync] Detected negative guest count (${i}), adjusting to default of 2`),i=2);let r=e?.["table-settings"]||{},m=r.isInstalled===true&&r.assignmentMode==="automatic";if(console.log(`[isTimeAvailableSync] Table assignment enabled? ${m}`),console.log(`- Table settings installed: ${r.isInstalled===true}`),console.log(`- Assignment mode: ${r.assignmentMode}`),!m)return console.log("[isTimeAvailableSync] No table assignment needed, returning true"),true;try{if(!e?.floors||!Array.isArray(e.floors))return console.error(`[isTimeAvailableSync] Missing floors data for ${t} ${n}`),!1;if(i<=0)return console.error(`[isTimeAvailableSync] Invalid guest count: ${i}`),!1;let u=e["general-settings"]||{},c=120,d=15;if(c=le(u.duurReservatie,120),d=le(u.intervalReservatie,15),console.log(`[isTimeAvailableSync] Using duration: ${c}min, interval: ${d}min`),d<=0)return console.error(`[isTimeAvailableSync] Invalid interval settings for ${t} ${n}`),!1;let o=xe(n,c,d);if(!o||o.length===0)return console.error(`[isTimeAvailableSync] Could not compute required slots for ${t} ${n}`),!1;let l={},x=a.filter(f=>f.date===t&&f.time&&f.guests>0).sort((f,y)=>{let g=f.time.split(":").map(Number),T=y.time.split(":").map(Number);return g[0]*60+g[1]-(T[0]*60+T[1])});console.log(`[isTimeAvailableSync] Processing ${x.length} existing reservations on ${t}`);for(let f of x){let y=tn(f),g=[];if(y.length>0?(g=y,console.log(`[isTimeAvailableSync] Using actual table assignment for reservation: ${g.join(", ")}`)):(console.log("[isTimeAvailableSync] No actual table data, simulating assignment for reservation"),g=nn(e,f.date,f.time,f.guests,l)),g.length>0){let T=xe(f.time,c,d);if(!T||T.length===0)continue;g.forEach(N=>{l[N]||(l[N]=new Set),T.forEach(h=>l[N].add(h));}),console.log(`[isTimeAvailableSync] Marked tables ${g.join(", ")} as occupied for time ${f.time}`);}}console.log("[isTimeAvailableSync] Occupancy map built, checking availability for new reservation");let v=et(e,s);console.log(`[isTimeAvailableSync] Checking ${v.length} tables for new reservation`);for(let f of v)if(ye(f,t,n)&&f.minCapacity<=i&&i<=f.maxCapacity&&ve(f.tableNumber,o,l))return console.log(`[isTimeAvailableSync] Found single table ${f.tableNumber} for ${i} guests at ${n}`),!0;console.log("[isTimeAvailableSync] No single table found, trying combinations...");let b={minDistance:1/0,tables:[],tableCount:1/0};tt(v,i,0,[],b,o,l,t,n);let p=b.tables.length>0;return console.log(p?`[isTimeAvailableSync] Multi-table assignment possible: ${b.tables.map(f=>f.tableNumber).join(", ")}`:"[isTimeAvailableSync] No table combination available"),p}catch(u){return console.error(`[isTimeAvailableSync] Error during check for ${t} ${n}:`,u),false}}function rn(e,t,n,i,a,s=null){console.log(`[filterTimeblocksByTableAvailability] Filtering timeblocks for ${t} with ${i} guests`),i<0&&(console.log(`[filterTimeblocksByTableAvailability] Detected negative guest count (${i}), adjusting to default of 2`),i=0);let r=e?.["table-settings"]||{};if(!(r.isInstalled===true&&r.assignmentMode==="automatic"))return console.log("[filterTimeblocksByTableAvailability] No table assignment enabled, returning all timeblocks"),n;console.log(`[filterTimeblocksByTableAvailability] Starting with ${Object.keys(n).length} timeblocks`);let u={},c=0,d=0;for(let o in n)an(e,t,o,i,a,s)?(u[o]=n[o],c++):d++;return console.log(`[filterTimeblocksByTableAvailability] Result: ${c} available, ${d} unavailable times`),c>0&&console.log(`[filterTimeblocksByTableAvailability] Available times: ${Object.keys(u).join(", ")}`),u}function Ea(e,t,n,i,a,s=null){return rn(e,t,n,i,a,s)}function $a(e,t,n,i,a,s=null){try{i<0&&(console.log(`[getAvailableTablesForTime] Detected negative guest count (${i}), adjusting to default of 2`),i=0);let r=e?.["table-settings"]||{};if(!(r.isInstalled===!0&&r.assignmentMode==="automatic"))return [];if(!e?.floors||!Array.isArray(e.floors))return console.error(`[getAvailableTablesForTime] Missing floors data for ${t} ${n}`),[];if(i<=0)return [];let u=e["general-settings"]||{},c=le(u.duurReservatie,120),d=le(u.intervalReservatie,15);if(d<=0)return console.error(`[getAvailableTablesForTime] Invalid interval settings for ${t} ${n}`),[];console.log(`
|
|
3
|
-
[getAvailableTablesForTime] Finding available tables for ${i} guests on ${t} at ${n}`);let o=xe(n,c,d);if(!o||o.length===0)return console.error(`[getAvailableTablesForTime] Could not compute required slots for ${t} ${n}`),[];let l={},x=a.filter(p=>p.date===t&&p.time&&p.guests>0).sort((p,f)=>{let y=p.time.split(":").map(Number),g=f.time.split(":").map(Number);return y[0]*60+y[1]-(g[0]*60+g[1])});console.log(`[getAvailableTablesForTime] Building occupancy map (Processing ${x.length} existing reservations)`);for(let p of x){let f=tn(p),y=[];if(f.length>0?y=f:y=nn(e,p.date,p.time,p.guests,l,null),y.length>0){let g=xe(p.time,c,d);if(!g||g.length===0)continue;y.forEach(T=>{l[T]||(l[T]=new Set),g.forEach(N=>l[T].add(N));});}}console.log("[getAvailableTablesForTime] Occupancy map built");let v=et(e,s),b=[];console.log(`[getAvailableTablesForTime] Checking ${v.length} tables for individual availability`);for(let p of v)ye(p,t,n)&&p.minCapacity<=i&&i<=p.maxCapacity&&ve(p.tableNumber,o,l)&&(console.log(`[getAvailableTablesForTime] Table ${p.tableNumber} is available`),b.push(p));return console.log(`[getAvailableTablesForTime] Found ${b.length} individually available tables: ${b.map(p=>p.tableNumber).join(", ")}`),b.sort((p,f)=>p.tableNumber-f.tableNumber),b}catch(r){return console.error(`[getAvailableTablesForTime] Error for ${t} ${n}:`,r),[]}}on.exports={isTimeAvailableSync:an,filterTimeblocksByTableAvailability:rn,getAvailableTimeblocksWithTableCheck:Ea,getAvailableTablesForTime:$a};});var ln=I((es,sn)=>{var De=Tt("moment-timezone"),{isDateAvailable:Ma}=Qe(),{getAvailableTimeblocks:Da}=Ee(),{isTimeAvailableSync:Ba}=nt(),{daysOfWeekEnglish:Fa,getMealTypeByTime:Ga}=
|
|
3
|
+
[getAvailableTablesForTime] Finding available tables for ${i} guests on ${t} at ${n}`);let o=xe(n,c,d);if(!o||o.length===0)return console.error(`[getAvailableTablesForTime] Could not compute required slots for ${t} ${n}`),[];let l={},x=a.filter(p=>p.date===t&&p.time&&p.guests>0).sort((p,f)=>{let y=p.time.split(":").map(Number),g=f.time.split(":").map(Number);return y[0]*60+y[1]-(g[0]*60+g[1])});console.log(`[getAvailableTablesForTime] Building occupancy map (Processing ${x.length} existing reservations)`);for(let p of x){let f=tn(p),y=[];if(f.length>0?y=f:y=nn(e,p.date,p.time,p.guests,l,null),y.length>0){let g=xe(p.time,c,d);if(!g||g.length===0)continue;y.forEach(T=>{l[T]||(l[T]=new Set),g.forEach(N=>l[T].add(N));});}}console.log("[getAvailableTablesForTime] Occupancy map built");let v=et(e,s),b=[];console.log(`[getAvailableTablesForTime] Checking ${v.length} tables for individual availability`);for(let p of v)ye(p,t,n)&&p.minCapacity<=i&&i<=p.maxCapacity&&ve(p.tableNumber,o,l)&&(console.log(`[getAvailableTablesForTime] Table ${p.tableNumber} is available`),b.push(p));return console.log(`[getAvailableTablesForTime] Found ${b.length} individually available tables: ${b.map(p=>p.tableNumber).join(", ")}`),b.sort((p,f)=>p.tableNumber-f.tableNumber),b}catch(r){return console.error(`[getAvailableTablesForTime] Error for ${t} ${n}:`,r),[]}}on.exports={isTimeAvailableSync:an,filterTimeblocksByTableAvailability:rn,getAvailableTimeblocksWithTableCheck:Ea,getAvailableTablesForTime:$a};});var ln=I((es,sn)=>{var De=Tt("moment-timezone"),{isDateAvailable:Ma}=Qe(),{getAvailableTimeblocks:Da}=Ee(),{isTimeAvailableSync:Ba}=nt(),{daysOfWeekEnglish:Fa,getMealTypeByTime:Ga}=me(),Be="Europe/Brussels";function za(e,t,n,i){if(!i||!i.trim())return true;let a=Ga(n);if(!a)return false;let s=De.tz(t,"YYYY-MM-DD",Be);if(!s.isValid())return false;let r=Fa[s.day()],m=`openinghours-${a}`,u=e[m]&&e[m].schemeSettings&&e[m].schemeSettings[r]?e[m].schemeSettings[r]:null;return u?u.giftcardsEnabled!==true||!Array.isArray(u.giftcards)||u.giftcards.length===0?false:u.giftcards.includes(i):(console.error(`No day settings found for ${r} ${a}`),false)}function Pa(e,t,n,i,a){let s=typeof window<"u"?window.currentReservationTicketItem:null;if(s&&!s.normalOpeningTimes){let l=De.tz(t,"YYYY-MM-DD",Be).startOf("day"),x=s.filterStartDate?De.tz(s.filterStartDate,"YYYY-MM-DD",Be).startOf("day"):null,v=s.filterEndDate?De.tz(s.filterEndDate,"YYYY-MM-DD",Be).endOf("day"):null;if(x&&l.isBefore(x))return console.log(`Date ${t} is before the allowed start ${s.filterStartDate}`),false;if(v&&l.isAfter(v))return console.log(`Date ${t} is after the allowed end ${s.filterEndDate}`),false}console.log(`
|
|
4
4
|
===== Checking date availability for ${i} guests on ${t} =====`),console.log("Restaurant data floors:",e.floors?"present":"missing"),console.log("Table settings:",JSON.stringify(e["table-settings"]||{},null,2));let r=e?.["table-settings"]||{},m=r.isInstalled===true&&r.assignmentMode==="automatic"&&e.floors&&Array.isArray(e.floors);if(console.log(`Table assignment is ${m?"ENABLED":"DISABLED"} for date ${t}`),!Ma(e,t,n,i,a))return console.log(`Date ${t} fails basic availability check`),false;if(!m)return console.log(`Table assignment disabled, date ${t} is available`),true;console.log(`Getting available timeblocks for ${t}`);let c=Da(e,t,n,i);if(console.log(`Found ${Object.keys(c).length} available timeblocks before table check`),Object.keys(c).length===0)return console.log(`No available timeblocks on ${t}, date is unavailable`),false;console.log(`Checking table availability for each timeblock on ${t}`);let d=false,o=0;for(let l of Object.keys(c)){if(o++,a&&!za(e,t,l,a)){console.log(`Time ${l} doesn't match giftcard meal requirements`);continue}if(console.log(`Checking table availability for ${l} on ${t} for ${i} guests`),Ba(e,t,l,i,n)){console.log(`Found available time ${l} with table assignment!`),d=true;break}}return console.log(`Checked ${o}/${Object.keys(c).length} timeblocks`),console.log(`Date ${t} with table check: ${d?"Available":"Unavailable"}`),d}sn.exports={isDateAvailableWithTableCheck:Pa};});var mn=I(()=>{var{isTimeAvailable:Oa}=Xe(),qa={_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"}},ja=[{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 cn="2024-12-10",un=1e3,Ya=["12:00","12:15","13:00","19:00","20:00","20:15"];Ya.forEach(e=>{let t=Oa(qa,cn,e,ja,un);console.log(`Is ${e} on ${cn} available for ${un} guests?`,t);});});var fn=I((as,pn)=>{var dn=Tt("moment-timezone"),{shifts:is,parseTime:it,getMealTypeByTime:Ha}=Me();function La(){let e=dn().tz("Europe/Brussels");return e.hours()*60+e.minutes()}function Wa(e,t,n){let i=dn().tz("Europe/Brussels").format("YYYY-MM-DD");if(n!==i)return e;console.log(`Applying stop time filter for today (${n})`);let a=t?.["general-settings"]||{},s=La(),r=a.ontbijtStop||null,m=a.lunchStop||null,u=a.dinerStop||null,c=r?it(r):null,d=m?it(m):null,o=u?it(u):null,l={},x=0,v=0,b=0;for(let p in e){if(!e.hasOwnProperty(p))continue;let f=Ha(p),y=false;f==="breakfast"&&c!==null&&!isNaN(c)&&s>=c?(y=true,x++):f==="lunch"&&d!==null&&!isNaN(d)&&s>=d?(y=true,v++):f==="dinner"&&o!==null&&!isNaN(o)&&s>=o&&(y=true,b++),y||(l[p]=e[p]);}return x>0&&console.log(`Stop time filter removed ${x} breakfast slots.`),v>0&&console.log(`Stop time filter removed ${v} lunch slots.`),b>0&&console.log(`Stop time filter removed ${b} dinner slots.`),l}pn.exports={filterTimeblocksByStopTimes:Wa};});var bn=I((rs,gn)=>{function Va(e){let t=parseInt(e.split(":")[0],10);return t>=4&&t<11?"breakfast":t>=11&&t<16?"lunch":t>=16&&t<23?"dinner":null}function _a(e){if(!e)return null;if(e.$numberInt)return parseInt(e.$numberInt,10);if(typeof e=="number")return e;if(typeof e=="string"){let t=parseInt(e,10);return isNaN(t)?null:t}return null}function Ra(e,t,n){return e.filter(i=>i.date===t&&i.time===n).reduce((i,a)=>i+(parseInt(a.guests,10)||0),0)}function Za(e,t,n,i,a){let s={};for(let[r,m]of Object.entries(n)){let u=Va(r);if(!u){s[r]=m;continue}let c=e[`max-arrivals-${u}`];if(!c){s[r]=m;continue}let d=_a(c[r]);if(d===null){s[r]=m;continue}Ra(i,t,r)+a<=d&&(s[r]=m);}return s}gn.exports={filterTimeblocksByMaxArrivals:Za};});var xn=I((os,yn)=>{function at(e){let t=parseInt(e.split(":")[0],10);return t>=4&&t<11?"breakfast":t>=11&&t<16?"lunch":t>=16&&t<23?"dinner":null}function P(e,...t){console.log(`[MaxGroupsFilter] ${e}`,...t);}function Ka(e){if(e==null)return null;if(typeof e=="object"&&e!==null&&"$numberInt"in e){let t=parseInt(e.$numberInt,10);return isNaN(t)?null:t}if(typeof e=="number")return Number.isInteger(e)?e:null;if(typeof e=="string"){let t=parseInt(e,10);return isNaN(t)?null:t}return null}function Ja(e,t,n,i,a){P(`--- Running MaxGroupsFilter for Date: ${t}, Guests: ${a} ---`);let s=Object.keys(e).filter(d=>d.startsWith("max-groups-"));P("Received restaurantData max-group keys:",s.length>0?s:"None found");let r={},m=parseInt(a,10);if(isNaN(m)||m<=0)return P(`Invalid guest count (${a}). Returning all ${Object.keys(n).length} input blocks unfiltered.`),n;let u=i.filter(d=>d.date===t);P(`Relevant reservations on ${t}: ${u.length}`),P(`Input timeblocks count: ${Object.keys(n).length}`);let c={};u.forEach(d=>{let o=at(d.time);o&&(c[o]||(c[o]=[]),c[o].push(d));}),P("Reservations grouped by meal type:",c);for(let[d,o]of Object.entries(n)){let l=at(d);if(P(`
|
|
5
|
-
Checking Time: ${d} -> Determined Meal: ${l}`),!l){P(` Time ${d} has no associated meal type. Keeping block.`),r[d]=o;continue}let x=`max-groups-${l}`,v=e[x];if(P(` Looking for settings using key: "${x}"`),!v||typeof v!="object"){P(` No settings found for key "${x}". Filter doesn't apply. Keeping block.`),r[d]=o;continue}P(` Found settings for ${l}:`,JSON.stringify(v));let b=true,p=Object.keys(v).map(f=>parseInt(f,10)).filter(f=>!isNaN(f)&&f>0).sort((f,y)=>f-y);P(` Defined numeric limit sizes to check for ${l}: [${p.join(", ")}]`);for(let f of p){let y=String(f);if(P(` Checking Limit Condition: Groups of size >= ${f}`),m>=f){P(` Applicable: Booking guests (${m}) >= Limit threshold (${f})`);let g=Ka(v[y]);if(P(` Max groups allowed for >=${f} is: ${g} (raw setting: ${JSON.stringify(v[y])})`),g===null||g<0){P(` Skipping check: Invalid or non-positive max count defined for size ${f}.`);continue}let N=(c[l]||[]).filter(h=>{let k=parseInt(h.guests,10);return !isNaN(k)&&k>=f}).length;if(P(` Count of existing groups >=${f} found in ${l}: ${N}`),N+1>g){P(` *** VIOLATION DETECTED *** for limit >=${f}.`),P(` (Existing Groups: ${N} + New Group: 1 = ${N+1}, which is > Max Allowed: ${g})`),P(` Blocking time ${d} due to this violation.`),b=false;break}else P(` OK: Limit for >=${f} not exceeded. (Existing: ${N} + New: 1 <= Max: ${g})`);}else P(` Not Applicable: Booking guests (${m}) < Limit threshold (${f}). Skipping this check.`);}b?(P(` \u2705 Result for time ${d}: ALLOWED (passed all applicable checks)`),r[d]=o):P(` \u274C Result for time ${d}: BLOCKED (failed at least one limit check)`);}return P(`--- MaxGroupsFilter Finished. Output timeblocks count: ${Object.keys(r).length} ---`),r}yn.exports={filterTimeblocksByMaxGroups:Ja,getMealType:at};});var pe=I((ss,vn)=>{function Qa(e,t){if(e==null)return t;if(typeof e=="object"&&e!==null&&"$numberInt"in e){try{let n=parseInt(e.$numberInt,10);if(!isNaN(n))return n}catch{}return t}if(typeof e=="number"&&!isNaN(e))return e;if(typeof e=="string")try{let n=parseInt(e,10);if(!isNaN(n))return n}catch{}return t}vn.exports=Qa;});var he=I((ls,hn)=>{function Xa(e,t,n){if(!e||!/^([01]\d|2[0-3]):([0-5]\d)$/.test(e))return [];let[a,s]=e.split(":").map(Number),r=a*60+s;if(n<=0)return [r];let m=Math.ceil(t/n),u=[];for(let c=0;c<m;c++)u.push(r+c*n);return u}hn.exports=Xa;});var rt=I((cs,kn)=>{function er(e){if(!e||typeof e!="string")return NaN;let t=e.split(":");if(t.length!==2)return NaN;let n=parseInt(t[0],10),i=parseInt(t[1],10);return isNaN(n)||isNaN(i)||n<0||n>23||i<0||i>59?NaN:n*60+i}kn.exports=er;});var ot=I((us,Tn)=>{var tr={breakfast:{start:"07:00",end:"11:00"},lunch:{start:"11:00",end:"16:00"},dinner:{start:"16:00",end:"23:00"}};Tn.exports={shifts:tr};});var lt=I((ms,Nn)=>{var st=rt(),{shifts:nr}=ot();function ir(e){let t=st(e);if(isNaN(t))return null;for(let[n,i]of Object.entries(nr)){let a=st(i.start),s=st(i.end);if(!(isNaN(a)||isNaN(s))&&t>=a&&t<s)return n}return null}Nn.exports=ir;});var fe=I((ds,wn)=>{var ar=lt();function rr(e,t,n){if(!e.isTemporary)return true;if(!e.startDate||!e.endDate||t<e.startDate||t>e.endDate)return false;let i=ar(n);return !(!i||e.application!==i)}wn.exports=rr;});var Fe=I((ps,An)=>{function or(e,t=null){let n=[];return e?.floors&&Array.isArray(e.floors)?e.floors.forEach(i=>{i?.tables&&Array.isArray(i.tables)&&i.tables.forEach(a=>{let s=a.tableNumber?.$numberInt??a.tableNumber,r=a.minCapacity?.$numberInt??a.minCapacity,m=a.maxCapacity?.$numberInt??a.maxCapacity,u=a.priority?.$numberInt??a.priority,c=a.x?.$numberInt??a.x,d=a.y?.$numberInt??a.y;t&&t.trim()!==""&&a.zitplaats!==t||(a.objectType==="Tafel"&&s!==void 0&&r!==void 0&&m!==void 0&&u!==void 0&&c!==void 0&&d!==void 0?n.push({tableId:a.id,tableNumber:parseInt(s,10),minCapacity:parseInt(r,10),maxCapacity:parseInt(m,10),priority:parseInt(u,10),x:parseInt(c,10),y:parseInt(d,10),isTemporary:a.isTemporary===true,startDate:a.startDate||null,endDate:a.endDate||null,application:a.application||null,zitplaats:a.zitplaats||null}):a.objectType==="Tafel"&&console.warn(`Skipping table due to missing essential properties: ${JSON.stringify(a)}`));});}):console.warn("Restaurant data is missing 'floors' array."),n.sort((i,a)=>i.maxCapacity!==a.maxCapacity?i.maxCapacity-a.maxCapacity:i.priority!==a.priority?i.priority-a.priority:i.minCapacity-a.minCapacity),n=n.filter(i=>!isNaN(i.tableNumber)&&!isNaN(i.minCapacity)&&!isNaN(i.maxCapacity)&&!isNaN(i.priority)&&!isNaN(i.x)&&!isNaN(i.y)),n}An.exports=or;});var In=I((fs,Sn)=>{var sr=pe();function lr(e){return Array.isArray(e)?e.map(t=>sr(t,null)).filter(t=>t!==null):[]}Sn.exports=lr;});var ct=I((gs,Cn)=>{var cr=In();function ur(e){return e.tables&&Array.isArray(e.tables)?cr(e.tables):[]}Cn.exports=ur;});var ke=I((bs,En)=>{function mr(e,t,n){let i=n[e]||new Set;for(let a of t)if(i.has(a))return false;return true}En.exports=mr;});var ut=I((ys,$n)=>{function dr(e,t){if(e?.x===void 0||e?.y===void 0||t?.x===void 0||t?.y===void 0)return 1/0;let n=e.x-t.x,i=e.y-t.y;return Math.sqrt(n*n+i*i)}$n.exports=dr;});var Ge=I((xs,Fn)=>{var Mn=fe(),Dn=ke(),pr=ut();function Bn(e,t,n,i,a,s,r,m,u){if(t<=0){let d=0;for(let o=0;o<i.length;o++)for(let l=o+1;l<i.length;l++)d+=pr(i[o],i[l]);(i.length<a.tableCount||i.length===a.tableCount&&d<a.minDistance)&&(a.minDistance=d,a.tables=[...i],a.tableCount=i.length);return}if(n>=e.length||i.length>=a.tableCount&&a.tableCount!==1/0)return;let c=0;for(let d=n;d<e.length;d++){let o=e[d];Mn(o,m,u)&&Dn(o.tableNumber,s,r)&&(c+=o.maxCapacity);}if(!(c<t))for(let d=n;d<e.length;d++){let o=e[d];if(!Mn(o,m,u)||!Dn(o.tableNumber,s,r))continue;let l=Math.min(o.maxCapacity,t);l<o.minCapacity&&l<t||l<=0||(i.push(o),Bn(e,t-l,d+1,i,a,s,r,m,u),i.pop());}}Fn.exports=Bn;});var ze=I((vs,zn)=>{var Gn=pe(),fr=he(),gr=Fe(),br=fe(),yr=Ge(),xr=ke();function vr(e,t,n,i,a,s=null){let r=e["general-settings"]||{};typeof r.duurReservatie=="object"&&r.duurReservatie?.$numberInt,typeof r.intervalReservatie=="object"&&r.intervalReservatie?.$numberInt;let m=120,u=15;if(m=Gn(r.duurReservatie,120),u=Gn(r.intervalReservatie,15),u<=0)return console.error("Invalid interval settings."),[];let c=fr(n,m,u);if(!c||c.length===0)return console.error(`Could not compute required slots for ${n}`),[];let d=gr(e,s);for(let l of d)if(br(l,t,n)&&l.minCapacity<=i&&i<=l.maxCapacity&&xr(l.tableNumber,c,a))return [l.tableNumber];let o={minDistance:1/0,tables:[],tableCount:1/0};return yr(d,i,0,[],o,c,a,t,n),o.tables.length>0,o.tables.map(l=>l.tableNumber)}zn.exports=vr;});var Pe=I((hs,qn)=>{var Pn=pe(),On=he(),hr=fe(),kr=Fe(),Tr=ct(),Nr=ze(),wr=ke(),Ar=Ge();function Sr(e,t,n,i,a,s=null){i<0&&(i=2);let r=e?.["table-settings"]||{};if(!(r.isInstalled===true&&r.assignmentMode==="automatic"))return true;try{if(!e?.floors||!Array.isArray(e.floors))return console.error(`[isTimeAvailableSync] Missing floors data for ${t} ${n}`),!1;if(i<=0)return console.error(`[isTimeAvailableSync] Invalid guest count: ${i}`),!1;let u=e["general-settings"]||{},c=120,d=15;if(c=Pn(u.duurReservatie,120),d=Pn(u.intervalReservatie,15),d<=0)return console.error(`[isTimeAvailableSync] Invalid interval settings for ${t} ${n}`),!1;let o=On(n,c,d);if(!o||o.length===0)return console.error(`[isTimeAvailableSync] Could not compute required slots for ${t} ${n}`),!1;let l={},x=a.filter(f=>f.date===t&&f.time&&f.guests>0).sort((f,y)=>{let g=f.time.split(":").map(Number),T=y.time.split(":").map(Number);return g[0]*60+g[1]-(T[0]*60+T[1])});for(let f of x){let y=Tr(f),g=[];if(y.length>0?g=y:g=Nr(e,f.date,f.time,f.guests,l),g.length>0){let T=On(f.time,c,d);if(!T||T.length===0)continue;g.forEach(N=>{l[N]||(l[N]=new Set),T.forEach(h=>l[N].add(h));});}}let v=kr(e,s);for(let f of v)if(hr(f,t,n)&&f.minCapacity<=i&&i<=f.maxCapacity&&wr(f.tableNumber,o,l))return !0;let b={minDistance:1/0,tables:[],tableCount:1/0};Ar(v,i,0,[],b,o,l,t,n);let p=b.tables.length>0;return p}catch{return false}}qn.exports=Sr;});var mt=I((ks,Hn)=>{var jn=pe(),Yn=he(),Ir=Fe(),Cr=fe(),Er=ct(),$r=ze();function Mr(e,t,n,i,a,s=null){try{i<0&&(i=0);let r=e?.["table-settings"]||{};if(!(r.isInstalled===!0&&r.assignmentMode==="automatic"))return [];if(!e?.floors||!Array.isArray(e.floors))return [];if(i<=0)return [];let u=e["general-settings"]||{},c=jn(u.duurReservatie,120),d=jn(u.intervalReservatie,15);if(d<=0)return [];let o=Yn(n,c,d);if(!o||o.length===0)return [];let l={},x=a.filter(p=>p.date===t&&p.time&&p.guests>0).sort((p,f)=>{let y=p.time.split(":").map(Number),g=f.time.split(":").map(Number);return y[0]*60+y[1]-(g[0]*60+g[1])});for(let p of x){let f=Er(p),y=[];if(f.length>0?y=f:y=$r(e,p.date,p.time,p.guests,l,null),y.length>0){let g=Yn(p.time,c,d);if(!g||g.length===0)continue;y.forEach(T=>{l[T]||(l[T]=new Set),g.forEach(N=>l[T].add(N));});}}let v=Ir(e,s),b=[];for(let p of v)Cr(p,t,n)&&p.minCapacity<=i&&i<=p.maxCapacity&&(l&&o&&Array.isArray(o),(function(){let y=l[p.tableNumber]||new Set;for(let g of o)if(y.has(g))return !1;return !0})()&&b.push(p));return b.sort((p,f)=>p.tableNumber-f.tableNumber),b}catch{return []}}Hn.exports=Mr;});var dt=I((Ts,Ln)=>{var Dr=Pe();function Br(e,t,n,i,a,s=null){i<0&&(i=0);let r=e?.["table-settings"]||{};if(!(r.isInstalled===true&&r.assignmentMode==="automatic"))return n;let u={},c=0,d=0;for(let o in n)Dr(e,t,o,i,a,s)?(u[o]=n[o],c++):d++;return u}Ln.exports=Br;});var _n=I((Ns,Vn)=>{var Fr=Pe(),Gr=mt(),Wn=dt(),zr=(e,t,n,i,a,s=null)=>Wn(e,t,n,i,a,s);Vn.exports={isTimeAvailableSync:Fr,filterTimeblocksByTableAvailability:Wn,getAvailableTimeblocksWithTableCheck:zr,getAvailableTablesForTime:Gr};});var Oe=I((ws,Rn)=>{var Pr={...Re(),...Ie(),...Ce()},Or={..._e()},qr={...Se(),...de()},jr={...Zt(),...Ee(),...Ze(),...Qe(),...Xe(),...nt(),...ln(),...Me(),...mn()},Yr={...fn(),...bn(),...xn()},Hr={..._n(),...Pe(),...mt(),...Ge(),...dt(),...ze(),...pe(),...fe(),...ke(),...ut(),...ot().shifts,...rt(),...lt(),...he()};Rn.exports={...Pr,...Or,...qr,...jr,...Yr,...Hr};});function z(e,{insertAt:t}={}){if(!e||typeof document>"u")return;let n=document.head||document.getElementsByTagName("head")[0],i=document.createElement("style");i.type="text/css",t==="top"&&n.firstChild?n.insertBefore(i,n.firstChild):n.appendChild(i),i.styleSheet?i.styleSheet.cssText=e:i.appendChild(document.createTextNode(e));}z(`.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}
|
|
6
|
-
`);var Mi=({setGuests:e,value:t,onChange:n})=>{let i=[1,2,3,"4+"],[a,s]=D.useState(t||""),[r,m]=D.useState(false),u=o=>{o==="4+"?(m(true),s(4),e(4),n({target:{name:"guests",value:4}})):(m(false),s(o),e(o),n({target:{name:"guests",value:o}}));},c=o=>{let l=o.target.value;s(l),e(l),n({target:{name:"guests",value:l}});},d=o=>{let l=o.target.value;s(l),e(l),n({target:{name:"guests",value:l}});};return D__default.default.createElement("div",{className:"value-selector",translate:"no"},D__default.default.createElement("div",{className:"predefined-values"},i.map(o=>D__default.default.createElement("button",{key:o,type:"button",className:`predefined-value-button ${a==o||o==="4+"&&r?"active":""}`,onClick:()=>u(o)},o==="4+"?"4+":`${o} p`))),D__default.default.createElement(framerMotion.AnimatePresence,null,r&&D__default.default.createElement(framerMotion.motion.div,{className:"slider-container",initial:{opacity:0,height:0},animate:{opacity:1,height:"auto"},exit:{opacity:0,height:0}},D__default.default.createElement("input",{type:"range",min:"4",max:"15",step:"1",value:a,onChange:c,className:"slider non-absolute"}),D__default.default.createElement("input",{type:"number",name:"guests",value:a,onChange:d,className:"value-input",min:"4",max:"100",step:"1"}))))},wt=Mi;var At=e=>{let t=
|
|
7
|
-
`);var ie=Ve(Oe());var re={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."}}};ce__default.default.locale("nl");var Wr=({guests:e,selectedDate:t,onSelectDate:n,autoExpand:i,reservationMode:a,restaurantData:s,startDate:r,onWeekChange:m,reservations:u,giftcard:c,zitplaats:d})=>{let o=localStorage.getItem("preferredLanguage")||"nl",l=re[o].calendar,[x,v]=D.useState(i||false),[b,p]=D.useState(false),f=D.useRef(null),y=D.useRef(null),g=ce__default.default().tz("Europe/Amsterdam").add(1,"year").endOf("day");D.useEffect(()=>{i&&v(true);},[i]),D.useEffect(()=>{let w=G=>{f.current&&!f.current.contains(G.target)&&(v(false),p(false));};return document.addEventListener("mousedown",w),()=>{document.removeEventListener("mousedown",w);}},[]),D.useEffect(()=>()=>{y.current&&(clearTimeout(y.current),y.current=null);},[]);let T=()=>{y.current&&(clearTimeout(y.current),y.current=null),p(true);},N=(w=1e3)=>{y.current&&clearTimeout(y.current),y.current=setTimeout(()=>{p(false),y.current=null;},w);},h=(w,G)=>{if(w.isBefore(G,"day")||w.isAfter(g,"day"))return 0;let F=w.format("YYYY-MM-DD");if(b){let L=s?.["table-settings"]||{},Y=L.isInstalled===true&&L.assignmentMode==="automatic",W=0;for(let U=1;U<=21;U++){let ne;Y?ne=(0, ie.isDateAvailableWithTableCheck)(s,F,u,U,c||null):ne=(0, ie.isDateAvailable)(s,F,u,U,c||null),ne&&(W=U);}return W}if(a==="vrije_keuze")return 21;if(a!=="met_limieten")return (0, ie.isDateAvailable)(s,F,u,-1e4,null)?21:0;let A=s?.["table-settings"]||{},M=A.isInstalled===true&&A.assignmentMode==="automatic"&&a==="met_limieten",O=0;for(let L=1;L<=21;L++){let Y;M?Y=(0, ie.isDateAvailableWithTableCheck)(s,F,u,L,c||null):Y=(0, ie.isDateAvailable)(s,F,u,L,c||null),Y&&(O=L);}return O},k=w=>{let G=[],F=ce__default.default().tz("Europe/Amsterdam").startOf("day"),A=w.clone().startOf("month"),M=w.clone().endOf("month"),O=s?.["table-settings"]||{},L=O.isInstalled===true&&O.assignmentMode==="automatic"&&a==="met_limieten",Y=A.clone();for(;Y.isSameOrBefore(M,"day");){let W=Y.format("YYYY-MM-DD"),U;if(a==="vrije_keuze")U=Y.isBetween(F,g,null,"[]");else {let we=a!=="met_limieten"?-1e4:e;L?U=(0, ie.isDateAvailableWithTableCheck)(s,W,u,we,a==="met_limieten"?c:null):U=(0, ie.isDateAvailable)(s,W,u,we,a==="met_limieten"?c:null);}let ne=h(Y,F);G.push({date:Y.clone(),isPast:Y.isBefore(F,"day"),isFuture:Y.isAfter(g,"day"),isAvailable:U,maxGuestsAvailable:ne}),Y.add(1,"day");}return G},C=w=>{w.isAvailable&&!w.isPast&&!w.isFuture&&(n(w.date.format("YYYY-MM-DD")),v(false),p(false));},E=()=>{let w=r.clone().subtract(1,"month").startOf("month"),G=ce__default.default().tz("Europe/Amsterdam").startOf("day");if(w.clone().endOf("month").isBefore(G,"day")){console.log("Cannot go to previous month. It is in the past.");return}m(w);},R=()=>{let w=r.clone().add(1,"month").startOf("month");m(w);},j=()=>{if(!t)return l.selectDatePlaceholder;let w=ce__default.default(t,"YYYY-MM-DD").tz("Europe/Amsterdam").startOf("day"),G=ce__default.default().tz("Europe/Amsterdam").startOf("day"),F=G.clone().add(1,"day");return w.isSame(G,"day")?l.today:w.isSame(F,"day")?l.tomorrow:w.format("dddd D MMMM YYYY")},Z=w=>{let F=r.clone().startOf("month").day(),A=F===0?6:F-1,M=[];for(let W=0;W<A;W++)M.push(null);M.push(...w);let O=M.length,L=Math.ceil(O/7);for(;M.length<L*7;)M.push(null);let Y=[];for(let W=0;W<L;W++){let U=M.slice(W*7,W*7+7);Y.push(U);}return Y},$=r?k(r):[],B=r?Z($):[],S=l.dayHeaders,Q=w=>w>=21?"20+":String(w);return D__default.default.createElement("div",{className:"calendar-container",ref:f},D__default.default.createElement("div",{className:"calendar-display",onClick:()=>v(!x)},D__default.default.createElement("span",null,j()),D__default.default.createElement("span",{className:"arrow"},D__default.default.createElement("svg",{width:"12",height:"12",viewBox:"0 0 24 24",style:{transform:x?"rotate(180deg)":"rotate(0deg)",transition:"transform 0.2s"}},D__default.default.createElement("path",{d:"M7 10l5 5 5-5",fill:"none",stroke:"currentColor",strokeWidth:"2"})))),x&&r&&D__default.default.createElement("div",{className:"calendar"},D__default.default.createElement("div",{className:"calendar-header"},D__default.default.createElement("button",{type:"button",onClick:E,"aria-label":l.prevWeek},"<"),D__default.default.createElement("span",null,r.format("MMMM YYYY")),D__default.default.createElement("button",{type:"button",onClick:R,"aria-label":l.nextWeek},">"),D__default.default.createElement("button",{type:"button",className:`availability-hold-btn ${b?"active":""}`,"aria-pressed":b,"aria-label":"Houd ingedrukt om beschikbaarheden te tonen",onMouseDown:T,onMouseUp:()=>N(1e3),onMouseLeave:()=>N(1e3),onTouchStart:T,onTouchEnd:()=>N(1e3),onTouchCancel:()=>N(1e3),onKeyDown:w=>{(w.key===" "||w.key==="Enter")&&T();},onKeyUp:w=>{(w.key===" "||w.key==="Enter")&&N(1e3);},style:{fontSize:"15px",color:"gray",fontWeight:"450",textDecoration:"underline"}},l.seatsQuestion)),D__default.default.createElement("div",{className:"calendar-weeks-wrapper"},D__default.default.createElement("table",{className:"calendar-table"},D__default.default.createElement("thead",null,D__default.default.createElement("tr",{translate:"no"},S.map((w,G)=>D__default.default.createElement("th",{key:G},w)))),D__default.default.createElement("tbody",null,B.map((w,G)=>D__default.default.createElement("tr",{key:G,translate:"no"},w.map((F,A)=>{if(!F)return D__default.default.createElement("td",{key:A,className:"empty-day"});let M=t&&St(F.date,ce__default.default(t,"YYYY-MM-DD").tz("Europe/Amsterdam")),O=[];return F.isPast?O.push("gray-out"):F.isAvailable?O.push("available"):O.push("unavailable"),M&&O.push("selected"),D__default.default.createElement("td",{key:A,className:O.join(" "),onClick:()=>C(F),style:{"--animation-order":A+G*7}},D__default.default.createElement("div",{className:`day-square ${b?"showing-availabilities":""}`},D__default.default.createElement("span",{className:"day-number"},b?Q(F.maxGuestsAvailable):F.date.date())))}))))))))},Kn=Wr;var Vr=({guests:e,formData:t,handleChange:n,resetFormDataFields:i,restaurantData:a,reservations:s,startDate:r,onWeekChange:m,reservationMode:u})=>{let c=o=>{let l=ce__default.default(o).format("YYYY-MM-DD");console.log("Selected date:",l),n({target:{name:"date",value:l}}),i(["time"]);},d=r?r.clone().startOf("month"):ce__default.default().startOf("month");return D__default.default.createElement("div",{className:"form-group date-selector-container"},D__default.default.createElement(Kn,{guests:e,selectedDate:t.date||null,onSelectDate:c,autoExpand:false,reservationMode:u,restaurantData:a,startDate:d,onWeekChange:m,reservations:s,giftcard:t.giftcard,zitplaats:t.zitplaats}))},Xn=Vr;z(`.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}}
|
|
8
|
-
`);var qe=Ve(Oe()),Rr=({guests:e,formData:t,handleChange:n,field:i,selectedDate:a,expanded:s,setCurrentExpandedField:r,restaurantData:m,reservations:u,reservationMode:c})=>{let d=localStorage.getItem("preferredLanguage")||"nl",o=re[d].timeSelector,[l,x]=D.useState(s||false),[v,b]=D.useState([]),[p,f]=D.useState(null),y=D.useRef(null),g={breakfast:{start:"07:00",end:"11:00",label:o.shifts.breakfast},lunch:{start:"11:00",end:"16:00",label:o.shifts.lunch},dinner:{start:"16:00",end:"23:00",label:o.shifts.dinner}};D.useEffect(()=>{if(!a||!e){b([]);return}if(c==="vrije_keuze")if(p){let k=g[p],C=
|
|
5
|
+
Checking Time: ${d} -> Determined Meal: ${l}`),!l){P(` Time ${d} has no associated meal type. Keeping block.`),r[d]=o;continue}let x=`max-groups-${l}`,v=e[x];if(P(` Looking for settings using key: "${x}"`),!v||typeof v!="object"){P(` No settings found for key "${x}". Filter doesn't apply. Keeping block.`),r[d]=o;continue}P(` Found settings for ${l}:`,JSON.stringify(v));let b=true,p=Object.keys(v).map(f=>parseInt(f,10)).filter(f=>!isNaN(f)&&f>0).sort((f,y)=>f-y);P(` Defined numeric limit sizes to check for ${l}: [${p.join(", ")}]`);for(let f of p){let y=String(f);if(P(` Checking Limit Condition: Groups of size >= ${f}`),m>=f){P(` Applicable: Booking guests (${m}) >= Limit threshold (${f})`);let g=Ka(v[y]);if(P(` Max groups allowed for >=${f} is: ${g} (raw setting: ${JSON.stringify(v[y])})`),g===null||g<0){P(` Skipping check: Invalid or non-positive max count defined for size ${f}.`);continue}let N=(c[l]||[]).filter(h=>{let k=parseInt(h.guests,10);return !isNaN(k)&&k>=f}).length;if(P(` Count of existing groups >=${f} found in ${l}: ${N}`),N+1>g){P(` *** VIOLATION DETECTED *** for limit >=${f}.`),P(` (Existing Groups: ${N} + New Group: 1 = ${N+1}, which is > Max Allowed: ${g})`),P(` Blocking time ${d} due to this violation.`),b=false;break}else P(` OK: Limit for >=${f} not exceeded. (Existing: ${N} + New: 1 <= Max: ${g})`);}else P(` Not Applicable: Booking guests (${m}) < Limit threshold (${f}). Skipping this check.`);}b?(P(` \u2705 Result for time ${d}: ALLOWED (passed all applicable checks)`),r[d]=o):P(` \u274C Result for time ${d}: BLOCKED (failed at least one limit check)`);}return P(`--- MaxGroupsFilter Finished. Output timeblocks count: ${Object.keys(r).length} ---`),r}yn.exports={filterTimeblocksByMaxGroups:Ja,getMealType:at};});var de=I((ss,vn)=>{function Qa(e,t){if(e==null)return t;if(typeof e=="object"&&e!==null&&"$numberInt"in e){try{let n=parseInt(e.$numberInt,10);if(!isNaN(n))return n}catch{}return t}if(typeof e=="number"&&!isNaN(e))return e;if(typeof e=="string")try{let n=parseInt(e,10);if(!isNaN(n))return n}catch{}return t}vn.exports=Qa;});var he=I((ls,hn)=>{function Xa(e,t,n){if(!e||!/^([01]\d|2[0-3]):([0-5]\d)$/.test(e))return [];let[a,s]=e.split(":").map(Number),r=a*60+s;if(n<=0)return [r];let m=Math.ceil(t/n),u=[];for(let c=0;c<m;c++)u.push(r+c*n);return u}hn.exports=Xa;});var rt=I((cs,kn)=>{function er(e){if(!e||typeof e!="string")return NaN;let t=e.split(":");if(t.length!==2)return NaN;let n=parseInt(t[0],10),i=parseInt(t[1],10);return isNaN(n)||isNaN(i)||n<0||n>23||i<0||i>59?NaN:n*60+i}kn.exports=er;});var ot=I((us,Tn)=>{var tr={breakfast:{start:"07:00",end:"11:00"},lunch:{start:"11:00",end:"16:00"},dinner:{start:"16:00",end:"23:00"}};Tn.exports={shifts:tr};});var lt=I((ms,Nn)=>{var st=rt(),{shifts:nr}=ot();function ir(e){let t=st(e);if(isNaN(t))return null;for(let[n,i]of Object.entries(nr)){let a=st(i.start),s=st(i.end);if(!(isNaN(a)||isNaN(s))&&t>=a&&t<s)return n}return null}Nn.exports=ir;});var pe=I((ds,wn)=>{var ar=lt();function rr(e,t,n){if(!e.isTemporary)return true;if(!e.startDate||!e.endDate||t<e.startDate||t>e.endDate)return false;let i=ar(n);return !(!i||e.application!==i)}wn.exports=rr;});var Fe=I((ps,An)=>{function or(e,t=null){let n=[];return e?.floors&&Array.isArray(e.floors)?e.floors.forEach(i=>{i?.tables&&Array.isArray(i.tables)&&i.tables.forEach(a=>{let s=a.tableNumber?.$numberInt??a.tableNumber,r=a.minCapacity?.$numberInt??a.minCapacity,m=a.maxCapacity?.$numberInt??a.maxCapacity,u=a.priority?.$numberInt??a.priority,c=a.x?.$numberInt??a.x,d=a.y?.$numberInt??a.y;t&&t.trim()!==""&&a.zitplaats!==t||(a.objectType==="Tafel"&&s!==void 0&&r!==void 0&&m!==void 0&&u!==void 0&&c!==void 0&&d!==void 0?n.push({tableId:a.id,tableNumber:parseInt(s,10),minCapacity:parseInt(r,10),maxCapacity:parseInt(m,10),priority:parseInt(u,10),x:parseInt(c,10),y:parseInt(d,10),isTemporary:a.isTemporary===true,startDate:a.startDate||null,endDate:a.endDate||null,application:a.application||null,zitplaats:a.zitplaats||null}):a.objectType==="Tafel"&&console.warn(`Skipping table due to missing essential properties: ${JSON.stringify(a)}`));});}):console.warn("Restaurant data is missing 'floors' array."),n.sort((i,a)=>i.maxCapacity!==a.maxCapacity?i.maxCapacity-a.maxCapacity:i.priority!==a.priority?i.priority-a.priority:i.minCapacity-a.minCapacity),n=n.filter(i=>!isNaN(i.tableNumber)&&!isNaN(i.minCapacity)&&!isNaN(i.maxCapacity)&&!isNaN(i.priority)&&!isNaN(i.x)&&!isNaN(i.y)),n}An.exports=or;});var In=I((fs,Sn)=>{var sr=de();function lr(e){return Array.isArray(e)?e.map(t=>sr(t,null)).filter(t=>t!==null):[]}Sn.exports=lr;});var ct=I((gs,Cn)=>{var cr=In();function ur(e){return e.tables&&Array.isArray(e.tables)?cr(e.tables):[]}Cn.exports=ur;});var ke=I((bs,En)=>{function mr(e,t,n){let i=n[e]||new Set;for(let a of t)if(i.has(a))return false;return true}En.exports=mr;});var ut=I((ys,$n)=>{function dr(e,t){if(e?.x===void 0||e?.y===void 0||t?.x===void 0||t?.y===void 0)return 1/0;let n=e.x-t.x,i=e.y-t.y;return Math.sqrt(n*n+i*i)}$n.exports=dr;});var Ge=I((xs,Fn)=>{var Mn=pe(),Dn=ke(),pr=ut();function Bn(e,t,n,i,a,s,r,m,u){if(t<=0){let d=0;for(let o=0;o<i.length;o++)for(let l=o+1;l<i.length;l++)d+=pr(i[o],i[l]);(i.length<a.tableCount||i.length===a.tableCount&&d<a.minDistance)&&(a.minDistance=d,a.tables=[...i],a.tableCount=i.length);return}if(n>=e.length||i.length>=a.tableCount&&a.tableCount!==1/0)return;let c=0;for(let d=n;d<e.length;d++){let o=e[d];Mn(o,m,u)&&Dn(o.tableNumber,s,r)&&(c+=o.maxCapacity);}if(!(c<t))for(let d=n;d<e.length;d++){let o=e[d];if(!Mn(o,m,u)||!Dn(o.tableNumber,s,r))continue;let l=Math.min(o.maxCapacity,t);l<o.minCapacity&&l<t||l<=0||(i.push(o),Bn(e,t-l,d+1,i,a,s,r,m,u),i.pop());}}Fn.exports=Bn;});var ze=I((vs,zn)=>{var Gn=de(),fr=he(),gr=Fe(),br=pe(),yr=Ge(),xr=ke();function vr(e,t,n,i,a,s=null){let r=e["general-settings"]||{};typeof r.duurReservatie=="object"&&r.duurReservatie?.$numberInt,typeof r.intervalReservatie=="object"&&r.intervalReservatie?.$numberInt;let m=120,u=15;if(m=Gn(r.duurReservatie,120),u=Gn(r.intervalReservatie,15),u<=0)return console.error("Invalid interval settings."),[];let c=fr(n,m,u);if(!c||c.length===0)return console.error(`Could not compute required slots for ${n}`),[];let d=gr(e,s);for(let l of d)if(br(l,t,n)&&l.minCapacity<=i&&i<=l.maxCapacity&&xr(l.tableNumber,c,a))return [l.tableNumber];let o={minDistance:1/0,tables:[],tableCount:1/0};return yr(d,i,0,[],o,c,a,t,n),o.tables.length>0,o.tables.map(l=>l.tableNumber)}zn.exports=vr;});var Pe=I((hs,qn)=>{var Pn=de(),On=he(),hr=pe(),kr=Fe(),Tr=ct(),Nr=ze(),wr=ke(),Ar=Ge();function Sr(e,t,n,i,a,s=null){i<0&&(i=2);let r=e?.["table-settings"]||{};if(!(r.isInstalled===true&&r.assignmentMode==="automatic"))return true;try{if(!e?.floors||!Array.isArray(e.floors))return console.error(`[isTimeAvailableSync] Missing floors data for ${t} ${n}`),!1;if(i<=0)return console.error(`[isTimeAvailableSync] Invalid guest count: ${i}`),!1;let u=e["general-settings"]||{},c=120,d=15;if(c=Pn(u.duurReservatie,120),d=Pn(u.intervalReservatie,15),d<=0)return console.error(`[isTimeAvailableSync] Invalid interval settings for ${t} ${n}`),!1;let o=On(n,c,d);if(!o||o.length===0)return console.error(`[isTimeAvailableSync] Could not compute required slots for ${t} ${n}`),!1;let l={},x=a.filter(f=>f.date===t&&f.time&&f.guests>0).sort((f,y)=>{let g=f.time.split(":").map(Number),T=y.time.split(":").map(Number);return g[0]*60+g[1]-(T[0]*60+T[1])});for(let f of x){let y=Tr(f),g=[];if(y.length>0?g=y:g=Nr(e,f.date,f.time,f.guests,l),g.length>0){let T=On(f.time,c,d);if(!T||T.length===0)continue;g.forEach(N=>{l[N]||(l[N]=new Set),T.forEach(h=>l[N].add(h));});}}let v=kr(e,s);for(let f of v)if(hr(f,t,n)&&f.minCapacity<=i&&i<=f.maxCapacity&&wr(f.tableNumber,o,l))return !0;let b={minDistance:1/0,tables:[],tableCount:1/0};Ar(v,i,0,[],b,o,l,t,n);let p=b.tables.length>0;return p}catch{return false}}qn.exports=Sr;});var mt=I((ks,Hn)=>{var jn=de(),Yn=he(),Ir=Fe(),Cr=pe(),Er=ct(),$r=ze();function Mr(e,t,n,i,a,s=null){try{i<0&&(i=0);let r=e?.["table-settings"]||{};if(!(r.isInstalled===!0&&r.assignmentMode==="automatic"))return [];if(!e?.floors||!Array.isArray(e.floors))return [];if(i<=0)return [];let u=e["general-settings"]||{},c=jn(u.duurReservatie,120),d=jn(u.intervalReservatie,15);if(d<=0)return [];let o=Yn(n,c,d);if(!o||o.length===0)return [];let l={},x=a.filter(p=>p.date===t&&p.time&&p.guests>0).sort((p,f)=>{let y=p.time.split(":").map(Number),g=f.time.split(":").map(Number);return y[0]*60+y[1]-(g[0]*60+g[1])});for(let p of x){let f=Er(p),y=[];if(f.length>0?y=f:y=$r(e,p.date,p.time,p.guests,l,null),y.length>0){let g=Yn(p.time,c,d);if(!g||g.length===0)continue;y.forEach(T=>{l[T]||(l[T]=new Set),g.forEach(N=>l[T].add(N));});}}let v=Ir(e,s),b=[];for(let p of v)Cr(p,t,n)&&p.minCapacity<=i&&i<=p.maxCapacity&&(l&&o&&Array.isArray(o),(function(){let y=l[p.tableNumber]||new Set;for(let g of o)if(y.has(g))return !1;return !0})()&&b.push(p));return b.sort((p,f)=>p.tableNumber-f.tableNumber),b}catch{return []}}Hn.exports=Mr;});var dt=I((Ts,Ln)=>{var Dr=Pe();function Br(e,t,n,i,a,s=null){i<0&&(i=0);let r=e?.["table-settings"]||{};if(!(r.isInstalled===true&&r.assignmentMode==="automatic"))return n;let u={},c=0,d=0;for(let o in n)Dr(e,t,o,i,a,s)?(u[o]=n[o],c++):d++;return u}Ln.exports=Br;});var _n=I((Ns,Vn)=>{var Fr=Pe(),Gr=mt(),Wn=dt(),zr=(e,t,n,i,a,s=null)=>Wn(e,t,n,i,a,s);Vn.exports={isTimeAvailableSync:Fr,filterTimeblocksByTableAvailability:Wn,getAvailableTimeblocksWithTableCheck:zr,getAvailableTablesForTime:Gr};});var Oe=I((ws,Rn)=>{var Pr={...Re(),...Ie(),...Ce()},Or={..._e()},qr={...Se(),...me()},jr={...Zt(),...Ee(),...Ze(),...Qe(),...Xe(),...nt(),...ln(),...Me(),...mn()},Yr={...fn(),...bn(),...xn()},Hr={..._n(),...Pe(),...mt(),...Ge(),...dt(),...ze(),...de(),...pe(),...ke(),...ut(),...ot().shifts,...rt(),...lt(),...he()};Rn.exports={...Pr,...Or,...qr,...jr,...Yr,...Hr};});function z(e,{insertAt:t}={}){if(!e||typeof document>"u")return;let n=document.head||document.getElementsByTagName("head")[0],i=document.createElement("style");i.type="text/css",t==="top"&&n.firstChild?n.insertBefore(i,n.firstChild):n.appendChild(i),i.styleSheet?i.styleSheet.cssText=e:i.appendChild(document.createTextNode(e));}z(`.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}
|
|
6
|
+
`);var Mi=({setGuests:e,value:t,onChange:n})=>{let i=[1,2,3,"4+"],[a,s]=D.useState(t||""),[r,m]=D.useState(false),u=o=>{o==="4+"?(m(true),s(4),e(4),n({target:{name:"guests",value:4}})):(m(false),s(o),e(o),n({target:{name:"guests",value:o}}));},c=o=>{let l=o.target.value;s(l),e(l),n({target:{name:"guests",value:l}});},d=o=>{let l=o.target.value;s(l),e(l),n({target:{name:"guests",value:l}});};return D__default.default.createElement("div",{className:"value-selector",translate:"no"},D__default.default.createElement("div",{className:"predefined-values"},i.map(o=>D__default.default.createElement("button",{key:o,type:"button",className:`predefined-value-button ${a==o||o==="4+"&&r?"active":""}`,onClick:()=>u(o)},o==="4+"?"4+":`${o} p`))),D__default.default.createElement(framerMotion.AnimatePresence,null,r&&D__default.default.createElement(framerMotion.motion.div,{className:"slider-container",initial:{opacity:0,height:0},animate:{opacity:1,height:"auto"},exit:{opacity:0,height:0}},D__default.default.createElement("input",{type:"range",min:"4",max:"15",step:"1",value:a,onChange:c,className:"slider non-absolute"}),D__default.default.createElement("input",{type:"number",name:"guests",value:a,onChange:d,className:"value-input",min:"4",max:"100",step:"1"}))))},wt=Mi;var At=e=>{let t=ue__default.default().tz("Europe/Brussels").startOf("day");return e.clone().add(6,"days").endOf("day").isBefore(t)},St=(e,t)=>e.isSame(t,"day");z(`.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}}
|
|
7
|
+
`);var ie=Ve(Oe());var re={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 Wr=({guests:e,selectedDate:t,onSelectDate:n,autoExpand:i,reservationMode:a,restaurantData:s,startDate:r,onWeekChange:m,reservations:u,giftcard:c,zitplaats:d})=>{let o=localStorage.getItem("preferredLanguage")||"nl",l=re[o].calendar,[x,v]=D.useState(i||false),[b,p]=D.useState(false),f=D.useRef(null),y=D.useRef(null),g=ue__default.default().tz("Europe/Amsterdam").add(1,"year").endOf("day");D.useEffect(()=>{i&&v(true);},[i]),D.useEffect(()=>{let w=G=>{f.current&&!f.current.contains(G.target)&&(v(false),p(false));};return document.addEventListener("mousedown",w),()=>{document.removeEventListener("mousedown",w);}},[]),D.useEffect(()=>()=>{y.current&&(clearTimeout(y.current),y.current=null);},[]);let T=()=>{y.current&&(clearTimeout(y.current),y.current=null),p(true);},N=(w=1e3)=>{y.current&&clearTimeout(y.current),y.current=setTimeout(()=>{p(false),y.current=null;},w);},h=(w,G)=>{if(w.isBefore(G,"day")||w.isAfter(g,"day"))return 0;let F=w.format("YYYY-MM-DD");if(b){let L=s?.["table-settings"]||{},Y=L.isInstalled===true&&L.assignmentMode==="automatic",W=0;for(let U=1;U<=21;U++){let ne;Y?ne=(0, ie.isDateAvailableWithTableCheck)(s,F,u,U,c||null):ne=(0, ie.isDateAvailable)(s,F,u,U,c||null),ne&&(W=U);}return W}if(a==="vrije_keuze")return 21;if(a!=="met_limieten")return (0, ie.isDateAvailable)(s,F,u,-1e4,null)?21:0;let A=s?.["table-settings"]||{},M=A.isInstalled===true&&A.assignmentMode==="automatic"&&a==="met_limieten",O=0;for(let L=1;L<=21;L++){let Y;M?Y=(0, ie.isDateAvailableWithTableCheck)(s,F,u,L,c||null):Y=(0, ie.isDateAvailable)(s,F,u,L,c||null),Y&&(O=L);}return O},k=w=>{let G=[],F=ue__default.default().tz("Europe/Amsterdam").startOf("day"),A=w.clone().startOf("month"),M=w.clone().endOf("month"),O=s?.["table-settings"]||{},L=O.isInstalled===true&&O.assignmentMode==="automatic"&&a==="met_limieten",Y=A.clone();for(;Y.isSameOrBefore(M,"day");){let W=Y.format("YYYY-MM-DD"),U;if(a==="vrije_keuze")U=Y.isBetween(F,g,null,"[]");else {let we=a!=="met_limieten"?-1e4:e;L?U=(0, ie.isDateAvailableWithTableCheck)(s,W,u,we,a==="met_limieten"?c:null):U=(0, ie.isDateAvailable)(s,W,u,we,a==="met_limieten"?c:null);}let ne=h(Y,F);G.push({date:Y.clone(),isPast:Y.isBefore(F,"day"),isFuture:Y.isAfter(g,"day"),isAvailable:U,maxGuestsAvailable:ne}),Y.add(1,"day");}return G},C=w=>{w.isAvailable&&!w.isPast&&!w.isFuture&&(n(w.date.format("YYYY-MM-DD")),v(false),p(false));},E=()=>{let w=r.clone().subtract(1,"month").startOf("month"),G=ue__default.default().tz("Europe/Amsterdam").startOf("day");if(w.clone().endOf("month").isBefore(G,"day")){console.log("Cannot go to previous month. It is in the past.");return}m(w);},R=()=>{let w=r.clone().add(1,"month").startOf("month");m(w);},j=()=>{if(!t)return l.selectDatePlaceholder;let w=ue__default.default(t,"YYYY-MM-DD").tz("Europe/Amsterdam").startOf("day"),G=ue__default.default().tz("Europe/Amsterdam").startOf("day"),F=G.clone().add(1,"day");return w.isSame(G,"day")?l.today:w.isSame(F,"day")?l.tomorrow:w.format("dddd D MMMM YYYY")},Z=w=>{let F=r.clone().startOf("month").day(),A=F===0?6:F-1,M=[];for(let W=0;W<A;W++)M.push(null);M.push(...w);let O=M.length,L=Math.ceil(O/7);for(;M.length<L*7;)M.push(null);let Y=[];for(let W=0;W<L;W++){let U=M.slice(W*7,W*7+7);Y.push(U);}return Y},$=r?k(r):[],B=r?Z($):[],S=l.dayHeaders,Q=w=>w>=21?"20+":String(w);return D__default.default.createElement("div",{className:"calendar-container",ref:f},D__default.default.createElement("div",{className:"calendar-display",onClick:()=>v(!x)},D__default.default.createElement("span",null,j()),D__default.default.createElement("span",{className:"arrow"},D__default.default.createElement("svg",{width:"12",height:"12",viewBox:"0 0 24 24",style:{transform:x?"rotate(180deg)":"rotate(0deg)",transition:"transform 0.2s"}},D__default.default.createElement("path",{d:"M7 10l5 5 5-5",fill:"none",stroke:"currentColor",strokeWidth:"2"})))),x&&r&&D__default.default.createElement("div",{className:"calendar"},D__default.default.createElement("div",{className:"calendar-header"},D__default.default.createElement("button",{type:"button",onClick:E,"aria-label":l.prevWeek},"<"),D__default.default.createElement("span",null,r.format("MMMM YYYY")),D__default.default.createElement("button",{type:"button",onClick:R,"aria-label":l.nextWeek},">"),D__default.default.createElement("button",{type:"button",className:`availability-hold-btn ${b?"active":""}`,"aria-pressed":b,"aria-label":"Houd ingedrukt om beschikbaarheden te tonen",onMouseDown:T,onMouseUp:()=>N(1e3),onMouseLeave:()=>N(1e3),onTouchStart:T,onTouchEnd:()=>N(1e3),onTouchCancel:()=>N(1e3),onKeyDown:w=>{(w.key===" "||w.key==="Enter")&&T();},onKeyUp:w=>{(w.key===" "||w.key==="Enter")&&N(1e3);},style:{fontSize:"15px",color:"gray",fontWeight:"450",textDecoration:"underline"}},l.seatsQuestion)),D__default.default.createElement("div",{className:"calendar-weeks-wrapper"},D__default.default.createElement("table",{className:"calendar-table"},D__default.default.createElement("thead",null,D__default.default.createElement("tr",{translate:"no"},S.map((w,G)=>D__default.default.createElement("th",{key:G},w)))),D__default.default.createElement("tbody",null,B.map((w,G)=>D__default.default.createElement("tr",{key:G,translate:"no"},w.map((F,A)=>{if(!F)return D__default.default.createElement("td",{key:A,className:"empty-day"});let M=t&&St(F.date,ue__default.default(t,"YYYY-MM-DD").tz("Europe/Amsterdam")),O=[];return F.isPast?O.push("gray-out"):F.isAvailable?O.push("available"):O.push("unavailable"),M&&O.push("selected"),D__default.default.createElement("td",{key:A,className:O.join(" "),onClick:()=>C(F),style:{"--animation-order":A+G*7}},D__default.default.createElement("div",{className:`day-square ${b?"showing-availabilities":""}`},D__default.default.createElement("span",{className:"day-number"},b?Q(F.maxGuestsAvailable):F.date.date())))}))))))))},Kn=Wr;var Vr=({guests:e,formData:t,handleChange:n,resetFormDataFields:i,restaurantData:a,reservations:s,startDate:r,onWeekChange:m,reservationMode:u})=>{let c=o=>{let l=ue__default.default(o).format("YYYY-MM-DD");console.log("Selected date:",l),n({target:{name:"date",value:l}}),i(["time"]);},d=r?r.clone().startOf("month"):ue__default.default().startOf("month");return D__default.default.createElement("div",{className:"form-group date-selector-container"},D__default.default.createElement(Kn,{guests:e,selectedDate:t.date||null,onSelectDate:c,autoExpand:false,reservationMode:u,restaurantData:a,startDate:d,onWeekChange:m,reservations:s,giftcard:t.giftcard,zitplaats:t.zitplaats}))},Xn=Vr;z(`.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}}
|
|
8
|
+
`);var qe=Ve(Oe()),Rr=({guests:e,formData:t,handleChange:n,field:i,selectedDate:a,expanded:s,setCurrentExpandedField:r,restaurantData:m,reservations:u,reservationMode:c})=>{let d=localStorage.getItem("preferredLanguage")||"nl",o=re[d].timeSelector,[l,x]=D.useState(s||false),[v,b]=D.useState([]),[p,f]=D.useState(null),y=D.useRef(null),g={breakfast:{start:"07:00",end:"11:00",label:o.shifts.breakfast},lunch:{start:"11:00",end:"16:00",label:o.shifts.lunch},dinner:{start:"16:00",end:"23:00",label:o.shifts.dinner}};D.useEffect(()=>{if(!a||!e){b([]);return}if(c==="vrije_keuze")if(p){let k=g[p],C=ue__default.default.tz(`${a} ${k.start}`,"YYYY-MM-DD HH:mm","Europe/Brussels"),E=ue__default.default.tz(`${a} ${k.end}`,"YYYY-MM-DD HH:mm","Europe/Brussels"),R=[],j=C.clone();for(;j.isBefore(E);)R.push({value:j.format("HH:mm"),label:j.format("HH:mm")}),j.add(15,"minutes");b(R);}else b([]);else if(m&&u){let k=c!=="met_limieten"?-1e4:e,C=m?.["table-settings"]||{},E=c==="met_limieten"&&C.isInstalled===true&&C.assignmentMode==="automatic",R=c==="met_limieten"?t.giftcard:null,j=(0, qe.getAvailableTimeblocks)(m,a,u,k,R),Z=E?(0, qe.getAvailableTimeblocksWithTableCheck)(m,a,j,k,u):j,$=Object.keys(Z).map(B=>({value:B,label:Z[B].name||B}));$.sort((B,S)=>{let[Q,w]=B.value.split(":").map(Number),[G,F]=S.value.split(":").map(Number);return Q*60+w-(G*60+F)}),b($),t[i.id]&&!$.some(B=>B.value===t[i.id])&&n({target:{name:i.id,value:""}});}else b([]);},[a,e,m,u,c,i.id,p,t[i.id],n]),D.useEffect(()=>{c==="vrije_keuze"&&(f(null),t[i.id]&&n({target:{name:i.id,value:""}}));},[a,c]);let T=k=>{n({target:{name:i.id,value:k}}),x(false),r?.(null);},N=k=>{p!==k&&t[i.id]&&n({target:{name:i.id,value:""}}),f(k);},h=()=>{if(c==="vrije_keuze")return p?t[i.id]?`${g[p].label} \u2013 ${t[i.id]}`:`${g[p].label} \u2013 ${o.selectTime}`:o.selectMeal;if(t[i.id]){let k=v.find(C=>C.value===t[i.id]);return k?k.label:o.selectTime}return o.selectTime};return i?D__default.default.createElement("div",{className:"form-group time-selector-container",ref:y},a?D__default.default.createElement(D__default.default.Fragment,null,D__default.default.createElement("div",{className:"time-display",onClick:()=>{x(!l),l||r?.(i.id);}},D__default.default.createElement("span",null,h()),D__default.default.createElement("span",{className:"arrow"},D__default.default.createElement("svg",{width:"12",height:"12",viewBox:"0 0 24 24",style:{transform:l?"rotate(180deg)":"rotate(0deg)",transition:"transform 0.2s"}},D__default.default.createElement("path",{d:"M7 10l5 5 5-5",fill:"none",stroke:"currentColor",strokeWidth:"2"})))),l&&D__default.default.createElement("div",{className:"time-selector"},c==="vrije_keuze"?p?D__default.default.createElement("div",{className:"time-period"},D__default.default.createElement("div",{className:"time-period-label"},g[p].label,D__default.default.createElement("button",{onClick:()=>f(null),style:{marginLeft:"10px",background:"none",border:"none",cursor:"pointer",color:"#006600",fontSize:"0.9rem",padding:0}},"\u2190 ",o.back)),D__default.default.createElement("div",{className:"time-options"},v.length===0?D__default.default.createElement("div",{className:"no-times"},o.noTimes):v.map(k=>D__default.default.createElement("div",{key:k.value,className:`time-option ${t[i.id]===k.value?"selected":""}`,onClick:()=>T(k.value)},k.label)))):D__default.default.createElement("div",{className:"time-options"},Object.keys(g).map(k=>D__default.default.createElement("div",{key:k,className:`time-option ${p===k?"selected":""}`,onClick:()=>N(k)},g[k].label))):D__default.default.createElement("div",{className:"time-options"},v.length===0?D__default.default.createElement("div",{className:"no-times"},o.noTimes):v.map(k=>D__default.default.createElement("div",{key:k.value,className:`time-option ${t[i.id]===k.value?"selected":""}`,onClick:()=>T(k.value)},k.label))))):D__default.default.createElement("p",{className:"info-text"},o.noDateSelected)):null},ni=Rr;z(`.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}
|
|
9
9
|
`);var Zr=({availableTables:e=[],isFetching:t=false,formData:n={},handleChange:i,setFormData:a})=>{let s=localStorage.getItem("preferredLanguage")||"nl",r=re?.[s]?.tableSelector||{},m={label:r.label||"Tafels",noTables:r.noTables||"Geen tafels beschikbaar voor deze selectie.",table:r.table||"Tafel",max:r.max||"Max"},u=Array.isArray(n.selectedTableNumbers)?n.selectedTableNumbers:[],c=Array.isArray(n.selectedTableIds)?n.selectedTableIds:[],d=(l,x)=>{if(typeof i=="function"){i({target:{multiple:true,updates:{selectedTableNumbers:l,selectedTableIds:x}}});return}typeof a=="function"&&a(v=>({...v,selectedTableNumbers:l,selectedTableIds:x}));},o=l=>x=>{let v=x.target.checked,b=e.find(y=>y.tableNumber===l);if(!b)return;let p=[...u],f=[...c];v?(p.includes(l)||p.push(l),f.includes(b.tableId)||f.push(b.tableId)):(p=p.filter(y=>y!==l),f=f.filter(y=>y!==b.tableId)),p.sort((y,g)=>y-g),d(p,f);};return t?D__default.default.createElement("div",{className:"form-group table-selector-container"},D__default.default.createElement("label",{className:"table-selector-label"},m.label),D__default.default.createElement("p",{className:"info-text"},"Laden\u2026")):!e||e.length===0?D__default.default.createElement("div",{className:"form-group table-selector-container"},D__default.default.createElement("label",{className:"table-selector-label"},m.label),D__default.default.createElement("p",{className:"info-text"},m.noTables)):D__default.default.createElement("div",{className:"form-group table-selector-container"},D__default.default.createElement("label",{className:"table-selector-label"},m.label),D__default.default.createElement("div",{className:"table-options"},e.map(l=>{let x=l.tableNumber,v=l.maxCapacity??l.capacity??l.seats??"-",b=u.includes(x);return D__default.default.createElement("div",{key:`${l.tableId||x}`,className:"table-option"},D__default.default.createElement("label",null,D__default.default.createElement("input",{type:"checkbox",value:x,checked:b,onChange:o(x)}),m.table," ",x," (",m.max,": ",v,")"))})))},ii=Zr;z(`.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}
|
|
10
|
-
`);var Kr=()=>{let e=D.useCallback(()=>localStorage.getItem("accessToken"),[]),t=D.useCallback((a,s={})=>{let{params:r,...m}=s,u=e();return ai__default.default.get(a,{...m,params:r,headers:{...m.headers,...u?{Authorization:`Bearer ${u}`}:{}}}).then(c=>c.data).catch(c=>{throw console.error("Error fetching data:",c),c})},[e]),n=D.useCallback((a,s,r=null,m={})=>{let u=e();return ai__default.default({method:a,url:s,data:r,...m,headers:{...m.headers,...u?{Authorization:`Bearer ${u}`}:{}}}).then(c=>c.data).catch(c=>{throw console.error(`Error with ${a} request:`,c),c})},[e]);return D.useMemo(()=>({get:t,post:(a,s,r)=>n("POST",a,s,r),put:(a,s,r)=>n("PUT",a,s,r),patch:(a,s,r)=>n("PATCH",a,s,r),delete:(a,s)=>n("DELETE",a,null,s)}),[t,n])},ue=Kr;var oi=Ve(Oe()),Xr=({formData:e,errors:t,handleChange:n,handleStepOneSubmit:i,setFormData:a,timeblocks:s,loadingTimeblocks:r,timeblocksError:m,restaurantData:u})=>{let c=localStorage.getItem("preferredLanguage")||"nl",d=re[c].reservationStepOne,[o,l]=D.useState(e.guests||2),[x,v]=D.useState(null),[b,p]=D.useState([]),[f,y]=D.useState([]),[g,T]=D.useState(false),N=ue(),h=D.useRef(false),k=D.useRef({numbers:e.selectedTableNumbers||[],ids:e.selectedTableIds||[]}),C=D.useCallback(A=>{a(M=>{let O={...M};return A.forEach(L=>{O[L]="";}),(A.includes("date")||A.includes("time")||A.includes("guests"))&&(O.selectedTableNumbers=[],O.selectedTableIds=[],y([]),k.current={numbers:[],ids:[]}),O});},[a]);D.useEffect(()=>{let M=ce__default.default().tz("Europe/Amsterdam").startOf("day").clone().startOf("isoWeek");for(;At(M);)M.add(1,"week");v(M);},[]),D.useEffect(()=>{(async()=>{if(x&&["met_limieten","zonder_regels"].includes(e.reservationMode)){let M=u?.["table-settings"]||{},O=M.isInstalled&&M.assignmentMode==="automatic";if(e.reservationMode==="met_limieten"||e.reservationMode==="zonder_regels"&&O){let L=x.format("YYYY-MM-DD"),Y=x.clone().add(13,"days").format("YYYY-MM-DD"),W=localStorage.getItem("username"),U=`${window.baseDomain}api/slots/${W}/${L}/${Y}`;try{let ne=await N.get(U,{noCache:!0});p(ne||[]);}catch(ne){console.error("Error fetching reservations:",ne),p([]);}}else p([]);}else p([]);})();},[x,N,e.reservationMode,u]);let E=A=>{v(A),C(["date","time","selectedTableNumbers","selectedTableIds"]);};D.useEffect(()=>{if(!h.current){let A={},M=false;e.reservationMode||(A.reservationMode="met_limieten",M=true),(!e.guests||e.guests==="")&&(A.guests=o,M=true),Array.isArray(e.selectedTableNumbers)||(A.selectedTableNumbers=[],M=true),Array.isArray(e.selectedTableIds)||(A.selectedTableIds=[],M=true),M&&setTimeout(()=>{n({target:{multiple:true,updates:A}});},0),h.current=true;}},[e,o,n]),D.useEffect(()=>{let A=u?.["table-settings"]||{};if(A.isInstalled&&A.assignmentMode==="automatic"&&e.date&&e.time&&e.guests>0&&u&&b){T(true);let O=(0, oi.getAvailableTablesForTime)(u,e.date,e.time,e.guests,b);y(O);let L=e.selectedTableNumbers||[],Y=e.selectedTableIds||[],W=[],U=[];L.forEach(ht=>{let We=O.find(Ti=>Ti.tableNumber===ht);We&&Y.includes(We.tableId)&&(W.push(ht),U.push(We.tableId));});let ne=W.toString()!==k.current.numbers.toString(),we=U.toString()!==k.current.ids.toString();(ne||we)&&(k.current={numbers:W,ids:U},n({target:{multiple:true,updates:{selectedTableNumbers:W,selectedTableIds:U}}})),T(false);}else y([]),k.current={numbers:[],ids:[]};},[e.date,e.time,e.guests,u,b,n]);let R=A=>{let M=parseInt(A.target.value,10)||1;l(M),n(A),C(["time","selectedTableNumbers","selectedTableIds"]);};D.useEffect(()=>{C(["date","time","selectedTableNumbers","selectedTableIds"]);},[e.reservationMode,C]);let j=A=>{A==="met_limieten"?n({target:{name:"reservationMode",value:"met_limieten"}}):A==="onbeperkt_parent"&&(["zonder_regels","vrije_keuze"].includes(e.reservationMode)||n({target:{name:"reservationMode",value:"zonder_regels"}}));},Z=A=>{n({target:{name:"reservationMode",value:A}});},$=e.reservationMode,B=["met_limieten","zonder_regels","vrije_keuze"].includes($),S=u?.["table-settings"]||{},Q=B&&e.date&&e.time&&e.guests>0&&S.isInstalled&&S.assignmentMode==="automatic"&&f.length>0,w=!!u?.["general-settings"]?.seatSelectionEnabled,G=["Terras","Restaurant"],F=A=>a(M=>({...M,zitplaats:A}));return m?D__default.default.createElement("div",null,d.errors.openingHoursNotSet," ",D__default.default.createElement("a",{href:"https://happychef.cloud/#/openinghours/dinner",target:"_blank",rel:"noopener noreferrer",style:{color:"var(--color-blue)",textDecoration:"underline"}},d.errors.clickHereToSet)):D__default.default.createElement("form",{className:"account-manage-form",noValidate:true},D__default.default.createElement("div",{className:"form-group reservation-mode"},D__default.default.createElement("div",{className:"reservation-modes-container"},D__default.default.createElement("button",{type:"button",className:`reservation-mode-button ${$==="met_limieten"?"active":""}`,onClick:()=>j("met_limieten"),"aria-pressed":$==="met_limieten"},d.modes.withLimits),D__default.default.createElement("button",{type:"button",className:`reservation-mode-button ${["onbeperkt_parent","zonder_regels","vrije_keuze"].includes($)?"active":""}`,onClick:()=>j("onbeperkt_parent"),"aria-pressed":["onbeperkt_parent","zonder_regels","vrije_keuze"].includes($)},d.modes.unlimited)),["onbeperkt_parent","zonder_regels","vrije_keuze"].includes($)&&D__default.default.createElement("div",{className:"reservation-modes-container sub-modes"},D__default.default.createElement("button",{type:"button",className:`reservation-mode-button ${$==="zonder_regels"?"active":""}`,onClick:()=>Z("zonder_regels"),"aria-pressed":$==="zonder_regels"},d.modes.openingHours),D__default.default.createElement("button",{type:"button",className:`reservation-mode-button ${$==="vrije_keuze"?"active":""}`,onClick:()=>Z("vrije_keuze"),"aria-pressed":$==="vrije_keuze"},d.modes.free))),["onbeperkt_parent","zonder_regels","vrije_keuze"].includes($)&&D__default.default.createElement("div",{className:"unlimited-mode-warning"},D__default.default.createElement("div",{className:"warning-text"},d.warnings?.unlimitedMode||(c==="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."))),D__default.default.createElement(wt,{value:e.guests||o,onChange:R,error:t.guests,setGuests:l}),B&&e.guests>0&&D__default.default.createElement(Xn,{guests:e.guests,formData:e,handleChange:n,resetFormDataFields:C,restaurantData:u,reservations:b,startDate:x,onWeekChange:E,reservationMode:$}),B&&e.date&&D__default.default.createElement(ni,{guests:e.guests,formData:e,handleChange:n,field:{id:"time",label:d.fields.time},selectedDate:e.date,setCurrentExpandedField:()=>{},restaurantData:u,reservations:b,reservationMode:$}),w&&D__default.default.createElement("div",{className:"form-row",style:{marginTop:12}},D__default.default.createElement("div",{className:"reservation-mode-buttons"},G.map(A=>D__default.default.createElement("button",{key:A,type:"button",className:`reservation-mode-button ${e.zitplaats===A?"active":""}`,onClick:()=>F(A),"aria-pressed":e.zitplaats===A},A))),t.zitplaats&&D__default.default.createElement("small",{className:"error"},t.zitplaats)),Q&&D__default.default.createElement(ii,{availableTables:f,isFetching:g,formData:e,setFormData:a,handleChange:n}))},bt=Xr;var yt=()=>localStorage.getItem("preferredLanguage")||"nl",te=(e,t,n="nl")=>{let i=yt();return (e[i]||e[n]||{})[t]||{}};var si={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 li={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"}}}};z(`.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)}
|
|
10
|
+
`);var Kr=()=>{let e=D.useCallback(()=>localStorage.getItem("accessToken"),[]),t=D.useCallback((a,s={})=>{let{params:r,...m}=s,u=e();return ai__default.default.get(a,{...m,params:r,headers:{...m.headers,...u?{Authorization:`Bearer ${u}`}:{}}}).then(c=>c.data).catch(c=>{throw console.error("Error fetching data:",c),c})},[e]),n=D.useCallback((a,s,r=null,m={})=>{let u=e();return ai__default.default({method:a,url:s,data:r,...m,headers:{...m.headers,...u?{Authorization:`Bearer ${u}`}:{}}}).then(c=>c.data).catch(c=>{throw console.error(`Error with ${a} request:`,c),c})},[e]);return D.useMemo(()=>({get:t,post:(a,s,r)=>n("POST",a,s,r),put:(a,s,r)=>n("PUT",a,s,r),patch:(a,s,r)=>n("PATCH",a,s,r),delete:(a,s)=>n("DELETE",a,null,s)}),[t,n])},ce=Kr;var oi=Ve(Oe()),Xr=({formData:e,errors:t,handleChange:n,handleStepOneSubmit:i,setFormData:a,timeblocks:s,loadingTimeblocks:r,timeblocksError:m,restaurantData:u})=>{let c=localStorage.getItem("preferredLanguage")||"nl",d=re[c].reservationStepOne,[o,l]=D.useState(e.guests||2),[x,v]=D.useState(null),[b,p]=D.useState([]),[f,y]=D.useState([]),[g,T]=D.useState(false),N=ce(),h=D.useRef(false),k=D.useRef({numbers:e.selectedTableNumbers||[],ids:e.selectedTableIds||[]}),C=D.useCallback(A=>{a(M=>{let O={...M};return A.forEach(L=>{O[L]="";}),(A.includes("date")||A.includes("time")||A.includes("guests"))&&(O.selectedTableNumbers=[],O.selectedTableIds=[],y([]),k.current={numbers:[],ids:[]}),O});},[a]);D.useEffect(()=>{let M=ue__default.default().tz("Europe/Amsterdam").startOf("day").clone().startOf("isoWeek");for(;At(M);)M.add(1,"week");v(M);},[]),D.useEffect(()=>{(async()=>{if(x&&["met_limieten","zonder_regels"].includes(e.reservationMode)){let M=u?.["table-settings"]||{},O=M.isInstalled&&M.assignmentMode==="automatic";if(e.reservationMode==="met_limieten"||e.reservationMode==="zonder_regels"&&O){let L=x.format("YYYY-MM-DD"),Y=x.clone().add(13,"days").format("YYYY-MM-DD"),W=localStorage.getItem("username"),U=`${window.baseDomain}api/slots/${W}/${L}/${Y}`;try{let ne=await N.get(U,{noCache:!0});p(ne||[]);}catch(ne){console.error("Error fetching reservations:",ne),p([]);}}else p([]);}else p([]);})();},[x,N,e.reservationMode,u]);let E=A=>{v(A),C(["date","time","selectedTableNumbers","selectedTableIds"]);};D.useEffect(()=>{if(!h.current){let A={},M=false;e.reservationMode||(A.reservationMode="met_limieten",M=true),(!e.guests||e.guests==="")&&(A.guests=o,M=true),Array.isArray(e.selectedTableNumbers)||(A.selectedTableNumbers=[],M=true),Array.isArray(e.selectedTableIds)||(A.selectedTableIds=[],M=true),M&&setTimeout(()=>{n({target:{multiple:true,updates:A}});},0),h.current=true;}},[e,o,n]),D.useEffect(()=>{let A=u?.["table-settings"]||{};if(A.isInstalled&&A.assignmentMode==="automatic"&&e.date&&e.time&&e.guests>0&&u&&b){T(true);let O=(0, oi.getAvailableTablesForTime)(u,e.date,e.time,e.guests,b);y(O);let L=e.selectedTableNumbers||[],Y=e.selectedTableIds||[],W=[],U=[];L.forEach(ht=>{let We=O.find(Ti=>Ti.tableNumber===ht);We&&Y.includes(We.tableId)&&(W.push(ht),U.push(We.tableId));});let ne=W.toString()!==k.current.numbers.toString(),we=U.toString()!==k.current.ids.toString();(ne||we)&&(k.current={numbers:W,ids:U},n({target:{multiple:true,updates:{selectedTableNumbers:W,selectedTableIds:U}}})),T(false);}else y([]),k.current={numbers:[],ids:[]};},[e.date,e.time,e.guests,u,b,n]);let R=A=>{let M=parseInt(A.target.value,10)||1;l(M),n(A),C(["time","selectedTableNumbers","selectedTableIds"]);};D.useEffect(()=>{C(["date","time","selectedTableNumbers","selectedTableIds"]);},[e.reservationMode,C]);let j=A=>{A==="met_limieten"?n({target:{name:"reservationMode",value:"met_limieten"}}):A==="onbeperkt_parent"&&(["zonder_regels","vrije_keuze"].includes(e.reservationMode)||n({target:{name:"reservationMode",value:"zonder_regels"}}));},Z=A=>{n({target:{name:"reservationMode",value:A}});},$=e.reservationMode,B=["met_limieten","zonder_regels","vrije_keuze"].includes($),S=u?.["table-settings"]||{},Q=B&&e.date&&e.time&&e.guests>0&&S.isInstalled&&S.assignmentMode==="automatic"&&f.length>0,w=!!u?.["general-settings"]?.seatSelectionEnabled,G=["Terras","Restaurant"],F=A=>a(M=>({...M,zitplaats:A}));return m?D__default.default.createElement("div",null,d.errors.openingHoursNotSet," ",D__default.default.createElement("a",{href:"https://happychef.cloud/#/openinghours/dinner",target:"_blank",rel:"noopener noreferrer",style:{color:"var(--color-blue)",textDecoration:"underline"}},d.errors.clickHereToSet)):D__default.default.createElement("form",{className:"account-manage-form",noValidate:true},D__default.default.createElement("div",{className:"form-group reservation-mode"},D__default.default.createElement("div",{className:"reservation-modes-container"},D__default.default.createElement("button",{type:"button",className:`reservation-mode-button ${$==="met_limieten"?"active":""}`,onClick:()=>j("met_limieten"),"aria-pressed":$==="met_limieten"},d.modes.withLimits),D__default.default.createElement("button",{type:"button",className:`reservation-mode-button ${["onbeperkt_parent","zonder_regels","vrije_keuze"].includes($)?"active":""}`,onClick:()=>j("onbeperkt_parent"),"aria-pressed":["onbeperkt_parent","zonder_regels","vrije_keuze"].includes($)},d.modes.unlimited)),["onbeperkt_parent","zonder_regels","vrije_keuze"].includes($)&&D__default.default.createElement("div",{className:"reservation-modes-container sub-modes"},D__default.default.createElement("button",{type:"button",className:`reservation-mode-button ${$==="zonder_regels"?"active":""}`,onClick:()=>Z("zonder_regels"),"aria-pressed":$==="zonder_regels"},d.modes.openingHours),D__default.default.createElement("button",{type:"button",className:`reservation-mode-button ${$==="vrije_keuze"?"active":""}`,onClick:()=>Z("vrije_keuze"),"aria-pressed":$==="vrije_keuze"},d.modes.free))),["onbeperkt_parent","zonder_regels","vrije_keuze"].includes($)&&D__default.default.createElement("div",{className:"unlimited-mode-warning"},D__default.default.createElement("div",{className:"warning-text"},d.warnings?.unlimitedMode||(c==="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."))),D__default.default.createElement(wt,{value:e.guests||o,onChange:R,error:t.guests,setGuests:l}),B&&e.guests>0&&D__default.default.createElement(Xn,{guests:e.guests,formData:e,handleChange:n,resetFormDataFields:C,restaurantData:u,reservations:b,startDate:x,onWeekChange:E,reservationMode:$}),B&&e.date&&D__default.default.createElement(ni,{guests:e.guests,formData:e,handleChange:n,field:{id:"time",label:d.fields.time},selectedDate:e.date,setCurrentExpandedField:()=>{},restaurantData:u,reservations:b,reservationMode:$}),w&&D__default.default.createElement("div",{className:"form-row",style:{marginTop:12}},D__default.default.createElement("div",{className:"reservation-mode-buttons"},G.map(A=>D__default.default.createElement("button",{key:A,type:"button",className:`reservation-mode-button ${e.zitplaats===A?"active":""}`,onClick:()=>F(A),"aria-pressed":e.zitplaats===A},A))),t.zitplaats&&D__default.default.createElement("small",{className:"error"},t.zitplaats)),Q&&D__default.default.createElement(ii,{availableTables:f,isFetching:g,formData:e,setFormData:a,handleChange:n}))},bt=Xr;var yt=()=>localStorage.getItem("preferredLanguage")||"nl",te=(e,t,n="nl")=>{let i=yt();return (e[i]||e[n]||{})[t]||{}};var si={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 li={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"}}}};z(`.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)}
|
|
11
11
|
`);var ro=({label:e,name:t,type:n="text",icon:i,value:a,onChange:s,onBlur:r,error:m,placeholder:u,halfWidth:c,options:d=[],selectPlaceholder:o,rightIcon:l,onRightIconClick:x,tooltipContent:v})=>{let b=te(li,"formField"),p=o||b.selectPlaceholder,[f,y]=D.useState(false),g=D.useRef(null),T=D.useRef(null),N=l,h=i;D.useEffect(()=>{let E=R=>{g.current&&!g.current.contains(R.target)&&(T.current&&clearTimeout(T.current),y(false));};return f&&document.addEventListener("mousedown",E),()=>document.removeEventListener("mousedown",E)},[f]);let k={name:t,value:a,onChange:s,onBlur:r,"aria-label":e,className:`form-control ${m?"input-error":""}`};return D__default.default.createElement("div",{className:`form-group ${c?"half-width":""}`,style:{position:"relative"}},D__default.default.createElement("div",{className:"input-container"},h&&D__default.default.createElement(h,{className:"input-icon"}),n==="select"?D__default.default.createElement("select",{...k},D__default.default.createElement("option",{value:""},p),d.map(E=>D__default.default.createElement("option",{key:E.value,value:E.value},E.label))):n==="textarea"?D__default.default.createElement("textarea",{...k,placeholder:u}):D__default.default.createElement("input",{type:n,...k,placeholder:u}),N&&D__default.default.createElement("div",{className:"magic-wand-container",onClick:x,onMouseEnter:()=>{T.current&&clearTimeout(T.current),y(true);},onMouseLeave:()=>{T.current=setTimeout(()=>y(false),1200);},style:{position:"absolute",top:"50%",right:"10px",transform:"translateY(-50%)",cursor:"pointer"}},D__default.default.createElement(N,{className:"magic-wand-icon",style:{color:"#B567C2"}}),f&&v&&D__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"}},D__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}},D__default.default.createElement(ao__default.default,{animationData:si,loop:true,style:{width:"100%",height:"100%",opacity:.5}})),D__default.default.createElement("div",{style:{position:"relative",zIndex:2,padding:"12px 20px"}},D__default.default.createElement("div",{style:{borderBottom:"1px solid #eee",marginBottom:"8px",paddingBottom:"4px"}},v),D__default.default.createElement("div",{style:{fontWeight:"bold",fontSize:"13px",textAlign:"center",marginTop:"8px"}},b.tooltip?.confirm),D__default.default.createElement("div",{style:{fontSize:"0.7rem",textAlign:"center",color:"#999",marginTop:"4px"}},b.tooltip?.source))))),m&&D__default.default.createElement("p",{className:"form-error"},m))},X=D__default.default.memo(ro);var ui={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"}}};z(`.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}
|
|
12
|
-
`);var pi=D__default.default.memo(({formData:e,errors:t,handleChange:n,setFormData:i,menuData:a})=>{let s=yt(),r=te(ui,"reservationStepTwoFiltering"),[m,u]=D.useState([]),[c,d]=D.useState(false),[o,l]=D.useState(null),x=
|
|
12
|
+
`);var pi=D__default.default.memo(({formData:e,errors:t,handleChange:n,setFormData:i,menuData:a})=>{let s=yt(),r=te(ui,"reservationStepTwoFiltering"),[m,u]=D.useState([]),[c,d]=D.useState(false),[o,l]=D.useState(null),x=ce(),v=fa.FaMagic,b=()=>{o&&f();};D.useEffect(()=>{if(ue__default.default.locale(s),!e.date||!e.time||!a.length)return u([]);let g=ue__default.default(`${e.date} ${e.time}`,"YYYY-MM-DD HH:mm"),T=a.filter(N=>{let h=g.isBetween(ue__default.default(N.startDate,"YYYY-MM-DD"),ue__default.default(N.endDate,"YYYY-MM-DD"),"day","[]"),k=ue__default.default(e.time,"HH:mm").isBetween(ue__default.default(N.startHour,"HH:mm"),ue__default.default(N.endHour,"HH:mm"),"minute","[]"),C=g.format("dddd").toLowerCase(),E=(N.daysOfWeek||[]).map(j=>j.toLowerCase()),R=!E.length||E.includes(C);return h&&k&&R});u(T);},[e.date,e.time,a,s]);let p=async()=>{if(c||o)return;let g=(e.email||"").trim().toLowerCase(),T=(e.phone||"").trim(),N=g&&[".com",".net",".be",".nl"].some(C=>g.endsWith(C)),h=!!T&&(T.startsWith("+32")?T.length>=12:T.length>=10);if(!N&&!h)return;let k=[];N&&k.push("email"),h&&k.push("phone");try{let C=await x.post(`${window.baseDomain}api/autofill`,{email:g,phone:T});C?.firstName&&C?.lastName&&C?.email&&C?.phone&&l({...C,sources:k});}catch{console.error("Autofill error");}};D.useEffect(()=>{p();},[e.email,e.phone]);let f=()=>{o&&(i(g=>({...g,firstName:o.firstName,lastName:o.lastName,email:o.email,phone:o.phone})),d(true),l(null));},y=D.useMemo(()=>{if(!o)return {email:{},phone:{}};let g=o.sources.includes("email")&&(e.email||"").trim().toLowerCase()===o.email.trim().toLowerCase(),T=o.sources.includes("phone")&&(e.phone||"").trim()===o.phone.trim(),N={rightIcon:v,onRightIconClick:b};return {email:g?{...N,tooltipContent:D__default.default.createElement("div",null,D__default.default.createElement("div",{style:{textAlign:"center",fontWeight:"bold"}},r.magic?.title),D__default.default.createElement("div",null,o.firstName," ",o.lastName),D__default.default.createElement("div",null,o.phone))}:{},phone:T?{...N,tooltipContent:D__default.default.createElement("div",null,D__default.default.createElement("div",{style:{textAlign:"center",fontWeight:"bold"}},r.magic?.title),D__default.default.createElement("div",null,o.firstName," ",o.lastName),D__default.default.createElement("div",null,o.email))}:{}}},[o,e.email,e.phone,r.magic?.title]);return D__default.default.createElement("div",{className:"reservation-step-two"},D__default.default.createElement("div",{className:"account-manage-form"},m.length>0&&D__default.default.createElement(X,{label:r.labels?.menu||"Menu",name:"menu",type:"select",options:m.map(g=>({value:g.name,label:g.name})),value:e.menu,onChange:n,error:t.menu}),D__default.default.createElement("div",{className:"name-fields"},D__default.default.createElement(X,{label:r.labels?.firstName||"Voornaam",name:"firstName",placeholder:r.placeholders?.firstName||"",value:e.firstName,onChange:n,error:t.firstName,icon:fa.FaUser}),D__default.default.createElement(X,{label:r.labels?.lastName||"Achternaam",name:"lastName",placeholder:r.placeholders?.lastName||"",value:e.lastName,onChange:n,error:t.lastName,icon:fa.FaUser})),D__default.default.createElement(X,{label:r.labels?.email||"Email",name:"email",type:"email",placeholder:r.placeholders?.email||"",value:e.email,onChange:n,onBlur:p,error:t.email,icon:fa.FaEnvelope,...y.email}),D__default.default.createElement(X,{label:r.labels?.phone||"Telefoon",name:"phone",type:"tel",placeholder:r.placeholders?.phone||"",value:e.phone,onChange:n,onBlur:p,error:t.phone,icon:fa.FaPhone,...y.phone}),D__default.default.createElement(X,{label:r.labels?.extraInfo||"Extra info",name:"extraInfo",type:"textarea",placeholder:r.placeholders?.extraInfo||"",value:e.extraInfo,onChange:n,error:t.extraInfo,icon:fa.FaInfoCircle})))});pi.displayName="ReservationStepTwo";var je=pi;var fi={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"}}};z(`.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}
|
|
13
13
|
`);var fo=({formData:e,onNewReservation:t})=>{let n=te(fi,"reservationSummary");return D__default.default.createElement("div",{className:"reservation-summary"},D__default.default.createElement("ul",{className:"reservation-details"},D__default.default.createElement("li",null,D__default.default.createElement("strong",null,n.title)),D__default.default.createElement("li",null,D__default.default.createElement("strong",null,n.guests,":")," ",e.guests),D__default.default.createElement("li",null,D__default.default.createElement("strong",null,n.date,":")," ",e.date),D__default.default.createElement("li",null,D__default.default.createElement("strong",null,n.time,":")," ",e.time),D__default.default.createElement("li",null,D__default.default.createElement("strong",null,n.firstName,":")," ",e.firstName),D__default.default.createElement("li",null,D__default.default.createElement("strong",null,n.lastName,":")," ",e.lastName),D__default.default.createElement("li",null,D__default.default.createElement("strong",null,n.email,":")," ",e.email),D__default.default.createElement("li",null,D__default.default.createElement("strong",null,n.phone,":")," ",e.phone),e.menu&&D__default.default.createElement("li",null,D__default.default.createElement("strong",null,n.menu,":")," ",e.menu),e.personeel&&D__default.default.createElement("li",null,D__default.default.createElement("strong",null,n.staff,":")," ",e.personeel),e.giftcard&&D__default.default.createElement("li",null,D__default.default.createElement("strong",null,n.giftcard,":")," ",e.giftcard),e.extraInfo&&D__default.default.createElement("li",null,D__default.default.createElement("strong",null,n.extraInfo,":")," ",e.extraInfo),e.zitplaats&&D__default.default.createElement("li",null,D__default.default.createElement("strong",null,n.seatPlace,":")," ",e.zitplaats)),D__default.default.createElement("button",{className:"button-style-3",onClick:t},n.newReservationButton))},Ye=fo;var gi={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"}}}};z(`.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}
|
|
14
14
|
`);var xo=({restaurantData:e,formData:t,handleChange:n,resetFormDataFields:i})=>{let a=te(gi,"giftcardSelection"),[s,r]=D.useState([]);if(D.useEffect(()=>{if(!e)return;let c=["breakfast","lunch","dinner"],d=new Set;c.forEach(o=>{let l=e[`openinghours-${o}`]?.schemeSettings||{};Object.values(l).forEach(x=>{x?.giftcardsEnabled&&Array.isArray(x.giftcards)&&x.giftcards.forEach(v=>v?.trim()&&d.add(v));});}),r([...d]);},[e]),!s.length)return null;let m=s.map(c=>({value,label:c})),u=c=>{n({target:{name:"giftcard",value:c.target.value}}),i(["date","time"]);};return D__default.default.createElement("div",{className:"giftcard-selection"},D__default.default.createElement(X,{label:a.labels?.giftcard||"Giftcard",name:"giftcard",type:"select",options:m,value:t.giftcard||"",onChange:u,selectPlaceholder:a.options?.noGiftcard||"Geen giftcard"}))},He=xo;var yi={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"}}}};z(`.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}
|
|
15
15
|
`);var To=({restaurantData:e,formData:t,handleChange:n,resetFormDataFields:i})=>{let[a,s]=D.useState([]),r=te(yi,"zitplaatsSelection");D.useEffect(()=>{if(!e?.floors||!Array.isArray(e.floors))return;let d=new Set;e.floors.forEach(o=>(o.tables||[]).forEach(l=>l.zitplaats?.trim()&&d.add(l.zitplaats))),s([...d].sort());},[e]);let m=d=>{let{value:o}=d.target;n({target:{name:"zitplaats",value:o}}),i(["date","time","selectedTableNumbers","selectedTableIds"]);},u=e?.["table-settings"]||{};return !(u.isInstalled===true&&u.assignmentMode==="automatic")||a.length===0?null:D__default.default.createElement("div",{className:"zitplaats-selection"},D__default.default.createElement("label",{htmlFor:"zitplaats",className:"form-label"},r.labels?.seating||"Zitplaats"),D__default.default.createElement("div",{className:"input-container select-field"},D__default.default.createElement("select",{id:"zitplaats",name:"zitplaats",value:t.zitplaats||"",onChange:m},D__default.default.createElement("option",{value:""},r.options?.noPreference||"Geen voorkeur"),a.map(d=>D__default.default.createElement("option",{key:d,value:d,className:"notranslate",translate:"no"},d)))))},Le=To;var xi={nl:{reservationSidebar:{saveButton:"Opslaan",saveButtonLoading:"Opslaan..."}},en:{reservationSidebar:{saveButton:"Save",saveButtonLoading:"Saving..."}},fr:{reservationSidebar:{saveButton:"Enregistrer",saveButtonLoading:"Enregistrement..."}}};z(`.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}
|
|
16
|
-
`);var Ao=({isOpen:e,onClose:t,formData:n,errors:i,handleChange:a,handleFinalSubmit:s,setFormData:r,isSubmitting:m,reservationSubmitted:u,onNewReservation:c,apiBaseDomain:d})=>{D.useEffect(()=>{d&&!window.baseDomain&&(window.baseDomain=d);},[d]);let o=
|
|
17
|
-
`);exports.FormField=X;exports.GiftcardSelection=He;exports.ReservationSidebar=So;exports.ReservationStepOne=bt;exports.ReservationStepTwo=je;exports.ReservationSummary=Ye;exports.ZitplaatsSelection=Le;exports.getPreferredLanguage=yt;exports.getSection=te;exports.useApi=
|
|
16
|
+
`);var Ao=({isOpen:e,onClose:t,formData:n,errors:i,handleChange:a,handleFinalSubmit:s,setFormData:r,isSubmitting:m,reservationSubmitted:u,onNewReservation:c,apiBaseDomain:d})=>{D.useEffect(()=>{d&&!window.baseDomain&&(window.baseDomain=d);},[d]);let o=ce(),[l,x]=D.useState([]),[v,b]=D.useState(false),[p,f]=D.useState(null),[y,g]=D.useState([]),[T,N]=D.useState({}),[h,k]=D.useState([]),C=D.useMemo(()=>te(xi,"reservationSidebar"),[]),E=D.useCallback(Z=>{r($=>{let B={...$};return Z.forEach(S=>{B[S]="";}),B});},[r]);D.useEffect(()=>{if(!e)return;b(true),(async()=>{try{let $=window.baseDomain||"",[B,S]=await Promise.all([o.get(`${$}api/auth-restaurant/`,{noCache:!0}),o.get(`${$}api/personeel`,{noCache:!0})]);x(B.timeblocks||[]),window.timeblocks=B.timeblocks||[],window.generalSettings=B["general-settings"]||{},g(B.menu||[]),N(B||{});let Q=ue__default.default().tz("Europe/Amsterdam").startOf("day"),w=(S||[]).filter(G=>{let F=ue__default.default(G.startDate,"YYYY-MM-DD").tz("Europe/Amsterdam").startOf("day"),A=ue__default.default(G.endDate,"YYYY-MM-DD").tz("Europe/Amsterdam").endOf("day");return Q.isBetween(F,A,null,"[]")});k(w);}catch($){f($),console.error("Error fetching data:",$);}finally{b(false);}})();},[e,o]);let R=D.useCallback(()=>{r({guest:2,date:"",time:"",firstName:"",lastName:"",email:"",phone:"",extraInfo:"",menu:"",personeel:"",giftcard:"",zitplaats:"",selectedTableNumbers:[],selectedTableIds:[],reservationMode:"met_limieten"}),c();},[c,r]),j=D.useMemo(()=>!!T?.["general-settings"]?.seatSelectionEnabled,[T]);return D__default.default.createElement("div",{className:`reservation-sidebar-component ${e?"open":""}`},D__default.default.createElement("div",{className:"reservation-sidebar-content"},D__default.default.createElement("h2",{className:"admin-title"},"Admin Reservatie"),D__default.default.createElement("button",{className:"close-sidebar-button",onClick:t,"aria-label":"Sluiten"},D__default.default.createElement(fa.FaTimes,{size:20,color:"#000"})),u?D__default.default.createElement(Ye,{formData:n,onNewReservation:R}):D__default.default.createElement(D__default.default.Fragment,null,T&&Object.keys(T).length>0&&D__default.default.createElement("div",{className:"sidebar-section-giftcard"},D__default.default.createElement(He,{restaurantData:T,formData:n,handleChange:a,resetFormDataFields:E})),T&&Object.keys(T).length>0&&j&&D__default.default.createElement("div",{className:"sidebar-section-zitplaats"},D__default.default.createElement(Le,{restaurantData:T,formData:n,handleChange:a,resetFormDataFields:E})),h.length>0&&D__default.default.createElement("div",{className:"sidebar-section-personeel"},D__default.default.createElement(X,{label:"",name:"personeel",type:"select",options:h.map(Z=>{let $=`${Z.voornaam} ${Z.achternaam}`;return {value:Z.id,label:$}}),value:n.personeel,onChange:a,error:i.personeel,selectPlaceholder:"Toewijzen aan persoon"})),D__default.default.createElement("div",{className:"sidebar-section-one"},D__default.default.createElement(bt,{formData:n,errors:i,handleChange:a,setFormData:r,timeblocks:l,loadingTimeblocks:v,timeblocksError:p,restaurantData:T})),D__default.default.createElement("div",{className:"sidebar-section-two"},D__default.default.createElement(je,{formData:n,errors:i,handleChange:a,setFormData:r,isSubmitting:m,menuData:y})),D__default.default.createElement("div",{className:"reservation-footer"},D__default.default.createElement("button",{type:"button",className:"store-reservation-button",onClick:s,disabled:m},m?C.saveButtonLoading||"Opslaan...":C.saveButton||"Opslaan")))))},So=Ao;z(`.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}
|
|
17
|
+
`);exports.FormField=X;exports.GiftcardSelection=He;exports.ReservationSidebar=So;exports.ReservationStepOne=bt;exports.ReservationStepTwo=je;exports.ReservationSummary=Ye;exports.ZitplaatsSelection=Le;exports.getPreferredLanguage=yt;exports.getSection=te;exports.useApi=ce;
|