1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[446],{446:(e,t,l)=>{l.r(t),l.d(t,{default:()=>f});var n=l(95155),a=l(12115),r=l(2821),i=l(12758),s=l.n(i),o=l(3418),u=l(36157),d=l(20063),c=l(62032),p=l(71303);let m=function(e){for(var t=arguments.length,l=Array(t>1?t-1:0),n=1;n<t;n++)l[n-1]=arguments[n];for(let t of l){let l=null==e?void 0:e[t];if(null!=l&&""!==l)return l}},g=e=>{var t,l;let n=m(e,"startsAt","timeFrom","starts_at","time_from")||"",a=m(e,"endsAt","timeUntil","ends_at","time_until")||"",r=(e=>{let t=String(e||"").toLowerCase();return t&&"insert"!==t?"accepted"===t?"approved":"canceled"===t?"cancelled":t:"pending"})(null==e?void 0:e.status),i=new Date(a||n);return{...e,unitName:m(e,"appResourceName","appResourceServiceName","eventName","app_resource_name","app_resource_service_name")||"",venueName:m(e,"appLocationName","venueName","app_location_name")||"",positionName:m(e,"appLocationPositionName","positionName","app_location_position_name","position_name")||"",startsAt:n,endsAt:a,nights:(0,p.AS)(n,a),guests:null!=(t=null==e?void 0:e.seats)?t:"",status:r,rawStatus:null!=(l=null==e?void 0:e.status)?l:"",isUpcoming:!Number.isNaN(i.getTime())&&i.getTime()>Date.now()&&"cancelled"!==r&&"rejected"!==r}},h=e=>{let{children:t,className:l,wrappers:a}=e;return a?(0,n.jsx)("div",{className:l,children:t}):(0,n.jsx)(n.Fragment,{children:t})},v=e=>{let{children:t,elementName:l,classes:i,data:{type:s="list",idParam:m="id",locationIds:v="",state:f="all",limit:y=50,orderBy:N="ab.starts_at desc",wrappers:w=!0,title:_=""}={},shouldFetch:b=!0,setFetchFinished:D}=e,S=(0,c.K)(),A=D||S.setFetchFinished,{onGetPorterBookings:F,onRefreshPorterBookings:T,isAuthenticated:x}=(0,u.aB)(),M=(0,d.useSearchParams)(),[j,k]=a.useState(!1),[E,L]=a.useState([]),R=a.useCallback(async()=>{try{let e=await F({limit:Number(y)||50,orderBy:N});L(Array.isArray(e)?e.map(g):[])}catch(e){console.error("BookingRenderer: load failed",e),L([])}finally{k(!0),"function"==typeof A&&A(l)}},[F,y,N,A,l]);a.useEffect(()=>{if(b){if(!x){L([]),k(!0);return}R()}},[R,b,x]),a.useEffect(()=>{let e=()=>{"function"==typeof T&&T(),R()};return window.addEventListener("bookings-updated",e),()=>window.removeEventListener("bookings-updated",e)},[T,R]);let I=a.useMemo(()=>{let e=(0,p.hG)(v),t=E;if(e.length&&(t=t.filter(t=>{var l,n;return e.includes(String(null!=(n=null!=(l=null==t?void 0:t.appLocationId)?l:null==t?void 0:t.app_location_id)?n:""))})),"upcoming"===f&&(t=t.filter(e=>e.isUpcoming)),"past"===f&&(t=t.filter(e=>!e.isUpcoming)),"single"===s){var l;let e=null==M||null==(l=M.get)?void 0:l.call(M,m);return e&&t.find(t=>String(null==t?void 0:t.id)===String(e))||null}return t},[E,v,f,s,m,M]),U=a.Children.toArray(t),B=U.find(e=>{var t;return(null==e||null==(t=e.props)?void 0:t.elementType)==="Loading"}),C=U.find(e=>{var t;return(null==e||null==(t=e.props)?void 0:t.elementType)==="Empty"}),O=U.filter(e=>e!==B&&e!==C),z="single"===s?!I:0===I.length,P=(0,r.A)(l,{[i]:i&&""!==i});return j?z?(0,n.jsx)(h,{className:P,wrappers:w,children:C||null}):(0,n.jsxs)(h,{className:P,wrappers:w,children:[_?(0,n.jsx)("h3",{className:(0,r.A)("".concat(l,"Title"),{["".concat(i,"Title")]:i&&""!==i}),children:_}):null,O.map((e,t)=>(0,n.jsx)(h,{className:(0,r.A)("".concat(l,"DWrapper"),{["".concat(i,"DWrapper")]:i&&""!==i}),wrappers:w,children:(0,n.jsx)(o.A,{element:e.props,items:I})},t))]}):(0,n.jsx)(h,{className:P,wrappers:w,children:B||null})};v.propTypes={children:s().node,elementName:s().string,classes:s().string,shouldFetch:s().bool,setFetchFinished:s().func,data:s().shape({type:s().oneOf(["list","single"]),idParam:s().string,locationIds:s().string,state:s().oneOf(["all","upcoming","past"]),limit:s().oneOfType([s().number,s().string]),orderBy:s().string,wrappers:s().bool,title:s().string})};let f=v},71303:(e,t,l)=>{l.d(t,{AS:()=>p,Qw:()=>d,RI:()=>i,Uh:()=>c,Z5:()=>m,f9:()=>h,hG:()=>s,vy:()=>u,z6:()=>o});var n=l(92839);let a=e=>"".concat(e.getFullYear(),"-").concat(String(e.getMonth()+1).padStart(2,"0"),"-").concat(String(e.getDate()).padStart(2,"0")),r=e=>{let t=String(e||"").match(/^(\d{4}-\d{2}-\d{2})/);return t?t[1]:""},i=(e,t)=>{let l=parseInt(e,10);return Number.isFinite(l)?l:t},s=e=>String(e||"").split(",").map(e=>
1e.trim()).filter(Boolean),o=e=>(e||"").split("/").filter(Boolean).pop()||"",u=e=>{for(let[t,l]of[...e.entries()])(""===l||l.includes("{{"))&&e.delete(t)},d=(e,t)=>{if(null==t)return;let l=new Date,n=new Date(l);n.setDate(n.getDate()+Number(t)),e.set("dateFrom",a(l)),e.set("dateUntil",a(n))},c=e=>{let t=new Set;return(e||[]).flatMap(e=>((null==e?void 0:e.slots)||[]).map(t=>({...t,dayDate:null==e?void 0:e.dayDate}))).filter(e=>{var l;let n=null!=(l=null==e?void 0:e.appResourceId)?l:null==e?void 0:e.id;return null==n||!t.has(n)&&(t.add(n),!0)}).map(e=>({...e,dateText:(0,n.Oj)(e),timeRange:(0,n.zq)(e)}))},p=(e,t)=>{let l=r(e),n=r(t);if(!l||!n)return null;let a=Math.round((new Date("".concat(n,"T00:00:00"))-new Date("".concat(l,"T00:00:00")))/864e5);return Number.isFinite(a)&&a>0?a:null},m=(e,t)=>{var l,n,s,o;let{fromParam:u,untilParam:d,adultsParam:c,childrenParam:m,defaultNights:g}=t,h=a(new Date),v=r(null==e||null==(l=e.get)?void 0:l.call(e,u))||h,f=r(null==e||null==(n=e.get)?void 0:n.call(e,d));null==p(v,f)&&(f=((e,t)=>{let l=new Date("".concat(e,"T00:00:00"));return l.setDate(l.getDate()+t),a(l)})(v,Math.max(1,i(g,1))));let y=(null==e||null==(s=e.has)?void 0:s.call(e,c))?i(e.get(c),0):null,N=(null==e||null==(o=e.has)?void 0:o.call(e,m))?i(e.get(m),0):null;return{dateFrom:v,dateUntil:f,nights:p(v,f),adults:null!=y?y:"",children:null!=N?N:"",party:Math.max(1,(null!=y?y:0)+(null!=N?N:0))}},g=(e,t)=>{var l;return t.includes(String(null!=(l=null==e?void 0:e.appLocationId)?l:""))},h=(e,t,l)=>{let{bedLocationIds:a,checkInTime:r,checkOutTime:s}=l,o=(Array.isArray(e)?e:[]).slice(0,t.nights||1),u=new Map,d=new Map,c=new Map;return o.forEach(e=>((null==e?void 0:e.slots)||[]).forEach(l=>{var n;let r=null!=(n=null==l?void 0:l.appResourceId)?n:null==l?void 0:l.id;if(null==r)return;let s=((e,t,l)=>{let n=null==e?void 0:e.positions;if(!Array.isArray(n)||0===n.length)return i(null==e?void 0:e.positionsFree,0);let a=g(e,t)?1:l;return n.filter(e=>(null==e?void 0:e.bookable)!==!1&&!(null==e?void 0:e.booked)&&((null==e?void 0:e.seats)==null||Number(e.seats)>=a)).length})(l,a,t.party);u.set(r,u.has(r)?Math.min(u.get(r),s):s),c.set(r,(c.get(r)||0)+1),d.has(r)||d.set(r,{...l,dayDate:null==e?void 0:e.dayDate})})),[...d.entries()].map(e=>{let[l,i]=e,d=c.get(l)<o.length?0:u.get(l),p=g(i,a),m=Number(null==i?void 0:i.price);return{...i,...t,isBed:p,positionsAvailable:d,unitsDefault:p?Math.max(1,Math.min(t.party,d||t.party)):1,stayTotal:Number.isFinite(m)&&t.nights?Math.round(m*t.nights*100)/100:"",startsAt:"".concat(t.dateFrom,"T").concat(r,":00"),endsAt:"".concat(t.dateUntil,"T").concat(s,":00"),dateText:(0,n.Oj)(i),timeRange:(0,n.zq)(i)}})}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.