1import{j as n,c as u,P as t,F as p,S as O}from"./componentLoader.jsx-2026.09.09-3cefc4ce.js";import{r as g}from"./logger-3e1e3eff.js";import{P as E,a as F}from"./Page-4b335602.js";import{c as M}from"./createAxiosInstance-650ff559.js";import{T as L}from"./TextField-3930079d.js";import{B as y}from"./Button-ad9712a3.js";import{C as d}from"./Card-3a1b3235.js";import{B}from"./Banner-09ca2b24.js";import{C as b}from"./ChoiceGroup-8bc54c41.js";import{a as A}from"./DateRangePicker-9969c921.js";import{D as C}from"./DropDown2-ecd6eae7.js";import{g as _}from"./constants-9e5fc5e0.js";import{T as G}from"./Title-bc4116fa.js";import{E as N}from"./Link-0005ddf4.js";import{L as D}from"./List-3d3404f0.js";import{a as k}from"./Grid-63374a37.js";import{a as W}from"./index-213dd4d3.js";import{a as H}from"./staffside.js-2026.09.09-3cefc4ce.js";import"./vendor-21ae10b1.js";import"./brand-387037d2.js";import"./universe.js-2026.09.09-3cefc4ce.js";import"./moment-3238fc2d.js";import"./index-e642497c.js";I.propTypes={bookingCode:t.string,setBookingCode:t.func.isRequired,setBooking:t.func.isRequired};function I({bookingCode:o,setBookingCode:e,setBooking:i}){const[c,a]=g.useState(!1),s=M();async function m(){try{a(!1);const{data:{data:r}}=await s.get(`/bookings/${o}?with[]=lineItems`);i(r)}catch(r){a(!0),i(null)}}return n(d,{customClass:"margin-bottom-4",children:u(d.Section,{heading:"Select Booking",children:[n(L,{id:"bookingCode",name:"bookingCode",label:"Booking Code",value:o,onChange:r=>e(r)}),n("div",{className:"margin-top-4",children:n(y,{onClick:m,disabled:!o,customClass:"margin-right-2",children:"Submit"})}),c&&n(B,{type:"error",children:"Problem retrieving booking"})]})})}S.propTypes={booking:t.object,selectedItem:t.object,setSelectedItem:t.func.isRequired};function S({booking:o,selectedItem:e,setSelectedItem:i}){function c(a){i(o.lineItems.find(s=>s.lineId===a))}return n(p,{children:o&&n(d,{customClass:"margin-bottom-4",children:n(d.Section,{heading:"Select Item",children:n(b,{id:"choiceGroup",selected:e==null?void 0:e.lineId,onChange:c,children:o.lineItems.map(a=>n(b.Item,{id:a.lineId,label:`${a.lineId} - ${a.name} [${a.dateDescription}]`,value:a.lineId},a.lineId))})})})})}R.propTypes={selectedItem:t.object,recurrence:t.object,setRecurrence:t.func.isRequired,createBookings:t.func.isRequired};function R({selectedItem:o,recurrence:e,setRecurrence:i,createBookings:c}){function a({startDate:l,endDate:h}){i({...e,startDate:l?s(l):null,endDate:s(h||l)})}function s(l){return l?l.format(_):null}function m(l){i({...e,frequency:l})}function r(l){i({...e,bucket:l})}return n(p,{children:o&&n(d,{customClass:"margin-bottom-4",children:u(d.Section,{heading:"Select Recurrence",children:[n(A,{id:"dateRange",label:"Date Range",displayFormat:"ll",startDate:e==null?void 0:e.startDate,endDate:e==null?void 0:e.endDate,className:"margin-bottom-5",onDatesChange:a,datePickerOptions:{startDatePlaceholderText:"Start Date",endDatePlaceholderText:"End Date",isOutsideRange:()=>!1},inModal:!0,required:!0}),n(C,{name:"frequency",label:"Frequency",value:e.frequency,options:[{label:"Daily",value:"daily"},{label:"Weekly",value:"weekly"},{label:"Monthly",value:"monthly"}],onChange:m,menuPortal:!0}),n(C,{name:"bucket",label:"Booking Bucket",value:e.bucket,options:[{label:"One Booking",value:"oneBooking"},{label:"One Booking per Item",value:"perItem"},{label:"One Booking per Week",value:"perWeek"},{label:"One Booking per Month",value:"perMonth"}],onChange:r,menuPortal:!0}),n(y,{onClick:c,disabled:!(e.startDate&&e.endDate),customClass:"margin-right-2 margin-top-5",children:"Create Bookings"})]})})})}T.propTypes={bookingResults:t.array,isLoading:t.bool};function T({bookingResults:o,isLoading:e}){return u(p,{children:[e&&n(O,{}),!e&&o&&n(d,{customClass:"margin-bottom-4",children:n(d.Section,{heading:"Booking Results",children:o.map((i,c)=>n(v,{booking:i},`${i.bookingCode}-${c}`))})})]})}v.propTypes={booking:t.object,key:t.string};function v({booking:o,key:e}){return n(p,{children:n(d,{customClass:"margin-bottom-4",children:u(d.Section,{heading:u(N,{url:`/booking/${o.bookingCode}`,children:[n(G,{children:o.bookingCode},e)," "]}),children:[n(q,{booking:o}),n(x,{booking:o})]})})})}q.propTypes={booking:t.object};function q({booking:o}){return n(D,{children:o.items.map(e=>n(k.Row,{children:u(k.Col,{children:[e.lineId," - ",e.name," [",e.date,"]"]})},`${o.bookingCode}-${e.lineId}`))})}x.propTypes={booking:t.object};function x({booking:o}){return n(p,{children:!!o.failures.length&&u(B,{type:"error",children:["Could not book the following items:",n(D,{children:o.failures.map(e=>n(k.Row,{children:u(k.Col,{children:[e.name," [",e.date,"]"]})},`${o.bookingCode}-${e.lineId}-${e.date}`))})]})})}z.propTypes={csrfToken:t.string};function z({csrfToken:o}){const[e,i]=g.useState(""),[c,a]=g.useState(null),[s,m]=g.useState(null),[r,l]=g.useState({startDate:null,endD
1ate:null,frequency:{label:"Daily",value:"daily"},bucket:{label:"One Booking",value:"oneBooking"}}),[h,P]=g.useState(null),[$,f]=g.useState(!1);async function j(){f(!0);const{data:{data:w}}=await W.post("/helm/recurring-bookings/",{bookingCode:e,lineId:s.lineId,startDate:r.startDate,endDate:r.endDate,frequency:r.frequency.value,bucket:r.bucket.value},H(o));P(w),f(!1)}return u(E,{width:"sm",pageHeader:n(F.PageHeader,{title:"Recurring Bookings",subtitle:"Create recurring bookings based on an existing booking"}),children:[n(I,{bookingCode:e,setBookingCode:i,setBooking:a}),n(S,{booking:c,selectedItem:s,setSelectedItem:m}),n(R,{selectedItem:s,recurrence:r,setRecurrence:l,createBookings:j}),n(T,{bookingResults:h,isLoading:$})]})}export{z as default};
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.