1import{A as e,Dn as t,J as n,Jr as r,O as i,Si as a,_ as o,_t as s,bi as c,cr as l,di as u,ht as d,ir as f,j as p,li as m,nr as h,pi as g,pt as _,r as v,ri as y,rr as b,ui as x,ur as S,vn as C,wi as w,yr as T}from"./I18nContext-DpOHf3wB.js";import{c as E,f as D,m as O,s as k}from"./AppSettingsContext-FD_CI3WH.js";import{a as A}from"./SailingApi-DS5IfF2K.js";import{r as j}from"./index.es-y2Y3e86k.js";import{U as M}from"./DateWithoutTimeFormatter-BC8Byimo.js";import{i as N,n as P}from"./ContinueButton-CYnA_-20.js";import{t as F}from"./lodash-DPrdimZK.js";import{t as I}from"./MainContentCardy-D7nlvatD.js";import{t as L}from"./SailingDepartedInfoBanner-hO80xx2E.js";import{d as R,m as ee,o as z}from"./PassengerDetailsEventFactory-rfW3WF3A.js";import{o as te,s as B}from"./PartyDetailsBrowserHistoryStateSynchronizer-CoXUlJtY.js";import{n as ne}from"./UseHasAnySailingDeparted-B1xk0HCw.js";import{t as re}from"./NoItemsCardContent-C5vXbjLA.js";import{n as ie,r as ae,t as oe}from"./VehicleRegistrationMissing-BP8_pAhv.js";var se=F(),V={vehicleList:`_vehicleList_dswlp_1`},H=a();await w(`react`);var U=({children:e})=>(0,H.jsx)(`ul`,{className:V.vehicleList,children:e});await w(`react`);var W={vehicleRegistrationNumber:``,trailerRegistrationNumber:``},G=({vehicleTypeName:e,trailerTypeName:t,value:n,onValueChange:i,hasTrailer:a,validationErrorMessages:o})=>{let s=v();return(0,H.jsxs)(u,{gap:2,children:[(0,H.jsxs)(r,{alignItems:`center`,justifyContent:`space-between`,gap:2,children:[(0,H.jsx)(g,{variant:`bold`,size:`large`,children:s(`VehicleDetails.Edit.Form.VehicleHeading`)}),(0,H.jsx)(C,{label:e,icon:T,size:`small`,variant:`info`})]}),(0,H.jsx)(x,{children:(0,H.jsx)(B,{label:s(`VehicleDetails.Edit.Form.RegistrationNumber`),value:n?.vehicleRegistrationNumber??``,onValueChange:e=>i?.({...n,vehicleRegistrationNumber:e}),visited:!0,showErrorsOverride:!1,variant:o?.vehicleRegistrationNumber?`error`:`normal`})}),a&&(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(r,{alignItems:`center`,justifyContent:`space-between`,gap:2,children:[(0,H.jsx)(g,{variant:`bold`,size:`medium`,children:s(`VehicleDetails.Edit.Form.TrailerHeading`)}),(0,H.jsx)(C,{label:t,icon:T,size:`small`,variant:`info`})]}),(0,H.jsx)(x,{children:(0,H.jsx)(B,{label:s(`VehicleDetails.Edit.Form.RegistrationNumber`),value:n?.trailerRegistrationNumber??``,onValueChange:e=>i?.({...n,trailerRegistrationNumber:e}),visited:!0,showErrorsOverride:!1,variant:o?.trailerRegistrationNumber?`error`:`normal`})})]})]})};await w(`react`);var K=({vehicleName:e,onSubmit:t,onCancel:n,renderForm:r})=>{let i=v();return(0,H.jsx)(E,{"data-comp":`EditVehicleModal`,"data-vehicle":e,maxWidth:`756px`,children:(0,H.jsxs)(k,{gap:4,children:[(0,H.jsx)(D,{heading:i(`VehicleDetails.Edit.Modal.Heading`),onClickClose:n,headingSize:`large`,headingLevel:`h2`,closeButtonAriaLabel:i(`Common.Close`)}),(0,H.jsx)(y,{children:i(`VehicleDetails.Edit.Modal.IntroText`)}),(0,H.jsx)(I,{children:(0,H.jsx)(S,{children:r()})}),(0,H.jsx)(u,{gap:3,children:(0,H.jsx)(b,{label:i(`Common.Done`),size:`larger`,variant:`heavy`,onClick:t})})]})})};await w(`react`);var{useCallback:q,useMemo:J,useState:Y}=await w(`react`),ce=_(` 2 query EditVehicleButtonValidation( 3 $routeId: ID! 4 $localeId: ID! 5 $vehicleDetails: VehicleDetailsInput! 6 ) { 7 validation { 8 validateVehicleDetails( 9 routeId: $routeId 10 vehicleDetails: $vehicleDetails 11 ) { 12 __typename 13 vehicleResult { 14 __typename 15 ... on ValidateVehicleDetailsInvalid { 16 registrationNumber { 17 __typename 18 ... on ValidateVehicleFieldInvalid { 19 messages { 20 text(localeId: $localeId) 21 } 22 } 23 } 24 } 25 } 26 trailerResult { 27 __typename 28 ... on ValidateTrailerDetailsInvalid { 29 registrationNumber { 30 __typename 31 ... on ValidateTrailerFieldInvalid { 32 messages { 33 text(localeId: $localeId) 34 } 35 } 36 } 37 } 38 } 39 } 40 } 41 } 42`),le=e=>e.partyDetails,ue=({departureId:t,vehicleId:n,localeId:r,routeId:a,vehicleName:o,vehicleTypeId:c,vehicleTypeLabel:l,hasTrailer:u,trailerTypeLabel:d,registrationMissing:f,isRegistrationNumberMandatory:m})=>{let g=v(),_=g(`VehicleDetails.Overview.EditVehicleButtonAriaLabel`).replace(`{vehicleName}`,o),y=e(),x=p(le).userSelection.byDeparture[t],[S,C]=Y(!1),[w,T]=Y(W),E=J(()=>{let e=x?.vehicles.find(e=>e.vehicleId===n);return{vehicleId:n,vehicleTypeId:c,registrationNumber:e?.form.vehicleRegistrationNumber??``,registrationNumberIsUnknown:!e?.form.vehicleRegistrationNumber||e?.form.vehicleRegistrationNumber===`TBA`,trailer:{registrationNumber:e?.trailer?.form.trailerRegistrationNumber??``,registrationNumberIsUnknown:!e?.trailer?.form.trailerRegistrationNumber||e?.trailer?.form.trailerRegistrationNumber===`TBA`}}},[x?.vehicles,n,c]),[{data:D}]=s({query:ce,variables:{routeId:a,localeId:r,vehicleDetails:E},pause:!S}),k=J(()=>{if(D?.validation.validateVehicleDetails)return de(D.validation.validateVehicleDetails)},[D?.validation.validateVehicleDetails]),A=q(()=>{let e=x?.vehicles.find(e=>e.vehicleId===n);T({vehicleRegistrationNumber:e?.form.vehicleRegistrationNumber??``,trailerRegistrationNumber:e?.trailer?.form.trailerRegistrationNumber??``}),C(!0)},[x,n]),j=q(()=>
42{y(ee({departureId:t,vehicleId:n,fields:{vehicleRegistrationNumber:w.vehicleRegistrationNumber}})),u&&y(R({departureId:t,vehicleId:n,fields:{trailerRegistrationNumber:w.trailerRegistrationNumber}})),C(!1)},[y,t,n,w.vehicleRegistrationNumber,w.trailerRegistrationNumber,u]),M=q(()=>{C(!1)},[]),N=x?.vehicles.find(e=>e.vehicleId===n),P=i(N?.form.vehicleRegistrationNumber)||i(N?.trailer?.form.trailerRegistrationNumber);return!m&&!P?null:(0,H.jsxs)(H.Fragment,{children:[f?(0,H.jsx)(b,{label:g(`VehicleDetails.Overview.EditVehicleButton`),"aria-label":_,variant:`heavy`,onClick:A}):(0,H.jsx)(h,{label:g(`VehicleDetails.Overview.EditVehicleButton`),"aria-label":_,variant:`heavy`,onClick:A}),(0,H.jsx)(O,{isOpen:S,onRequestClose:M,children:(0,H.jsx)(K,{vehicleName:o,onSubmit:j,onCancel:M,renderForm:()=>(0,H.jsx)(G,{hasTrailer:u,vehicleTypeName:l,trailerTypeName:d,value:w,onValueChange:T,validationErrorMessages:k})})})]})},de=e=>{let t={vehicleRegistrationNumber:void 0,trailerRegistrationNumber:void 0};return e.vehicleResult.__typename===`ValidateVehicleDetailsInvalid`&&e.vehicleResult.registrationNumber.__typename===`ValidateVehicleFieldInvalid`&&(t.vehicleRegistrationNumber=e.vehicleResult.registrationNumber.messages.map(e=>e.text)),e.trailerResult?.__typename===`ValidateTrailerDetailsInvalid`&&e.trailerResult.registrationNumber.__typename===`ValidateTrailerFieldInvalid`&&(t.trailerRegistrationNumber=e.trailerResult.registrationNumber.messages.map(e=>e.text)),t},X={detailsRow:`_detailsRow_14eyz_1`};await w(`react`);var fe=({index:e,id:t,isRegistrationNumberMandatory:n,renderEditVehicleModalButton:i,vehicleRegistrationNumber:a,trailerRegistrationNumber:o,vehicleTypeName:s,trailerTypeLabel:l,hasTrailer:d,hasUnsavedChanges:f})=>{let p=v(),h=`${s} ${e}`,_=`${t}-name`,y=oe(a,d,o,n);return(0,H.jsx)(`li`,{children:(0,H.jsx)(`article`,{"aria-labelledby":_,children:(0,H.jsxs)(r,{alignItems:`center`,justifyContent:`space-between`,flexWrap:`wrap`,gap:2,children:[(0,H.jsxs)(u,{children:[(0,H.jsx)(m,{id:_,variant:`h4`,children:h}),(0,H.jsxs)(u,{"data-piimask":!0,children:[(n||a)&&(0,H.jsxs)(`dl`,{className:X.detailsRow,children:[(0,H.jsx)(`dt`,{hidden:!0,children:p(`VehicleDetails.Overview.RegistrationNumberScreenReaderLabel`)}),` `,(0,H.jsx)(`dd`,{children:(0,H.jsx)(g,{color:c(`--swui-text-disabled-color`),children:a||p(`VehicleDetails.Overview.NoRegistrationNumberTagLabel`)})})]}),d&&(0,H.jsx)(H.Fragment,{children:(0,H.jsx)(`dl`,{className:X.detailsRow,children:n||o?(0,H.jsxs)(`dt`,{children:[(0,H.jsxs)(g,{variant:`bold`,children:[l,`:\xA0`]}),(0,H.jsx)(g,{color:c(`--swui-text-disabled-color`),children:o||p(`VehicleDetails.Overview.NoRegistrationNumberTagLabel`)})]}):(0,H.jsx)(`dt`,{children:(0,H.jsx)(g,{variant:`bold`,children:l})})})}),(f||y)&&(0,H.jsxs)(r,{gap:1,alignItems:`center`,flexWrap:`wrap`,children:[f&&(0,H.jsx)(te,{}),y&&(0,H.jsx)(ie,{})]})]})]}),(0,H.jsx)(u,{children:i(h,y)})]})})})},pe=_(` 43 query VehicleRegistrationNumberMandatoryForSailing( 44 $routeId: ID! 45 $salesOwnerId: ID! 46 $sailingId: ID! 47 ) { 48 vehicleType { 49 all( 50 routeId: $routeId 51 salesOwnerId: $salesOwnerId 52 salesChannelCode: "PIB" 53 ) { 54 id 55 config( 56 routeId: $routeId 57 salesOwnerId: $salesOwnerId 58 salesChannelCode: "PIB" 59 ) { 60 id 61 isVehicleRegistrationNumberMandatory(outwardSailingId: $sailingId) 62 } 63 } 64 } 65 } 66`),me=({routeId:e,sailingId:t})=>`${t}::${e}`,he=e=>{let t=new Map;for(let n of e)t.set(me(n),n);return[...t.values()]},ge=async(e,t,{routeId:n,sailingId:r})=>{let{data:i,error:a}=await e.query(pe,{routeId:n,salesOwnerId:t,sailingId:r}).toPromise();if(a)throw a;return(i?.vehicleType.all??[]).some(e=>e.config.isVehicleRegistrationNumberMandatory)},_e=async(e,t,n)=>{let r=await Promise.all(he(n).map(async n=>[n.sailingId,await ge(e,t,n)]));return Object.fromEntries(r)},ve=e=>i(e.vehicleRegistrationNumber)||i(e.trailerRegistrationNumber),ye=e=>e.some(e=>e.vehicles.some(ve)),be=e=>Object.values(e).some(Boolean),xe=({anyRegistrationNumberPresent:e,vehicleRegistrationNumberMandatoryForAnySailing:t,loading:n,error:r})=>e||r!=null?!0:!n&&t===!0;await w(`react`);var{useEffect:Se,useState:Z}=await w(`react`),Ce=({salesOwnerId:e,sailings:t,render:n})=>{let r=d(),[i,a]=Z({value:void 0,loading:!0,error:void 0});return Se(()=>{let n=!0;return a(e=>({...e,loading:!0,error:void 0})),_e(r,e,t).then(e=>{n&&a({value:be(e),loading:!1,error:void 0})}).catch(e=>{n&&a({value:void 0,loading:!1,error:e})}),()=>{n=!1}},[r,e,t]),(0,H.jsx)(H.Fragment,{children:n({vehicleRegistrationNumberMandatoryForAnySailing:i.value,loading:i.loading,error:i.error})})},we=(e,t,n)=>t?e.flatMap(e=>{let r=t.find(t=>
66t.id===e.departureId)?.route.id;if(!r)return[];let i=(n[e.departureId]?.vehicles??[]).map(e=>({vehicleRegistrationNumber:e.form.vehicleRegistrationNumber,trailerRegistrationNumber:e.trailer?.form.trailerRegistrationNumber}));return[{routeId:r,sailingId:e.departureId,vehicles:i}]}):[],Q=await w(`react`),{useMemo:$}=await w(`react`),Te=e=>e.partyDetails,Ee=({renderBelow:r,bookingProjectionAfterPageEvents:i,editEnabled:a,localeId:s,changedVehicleIds:c,changedTrailerIds:d,renderLoading:m,renderError:h})=>{let g=v(),_=M(),y=p(Te),{data:b,isFetching:x,error:C}=A({sailingIds:i.departures.map(e=>e.departureId)}),{hasAnySailingDeparted:w,departedByDepartureId:T}=ne(i.departures.map(e=>e.departureId)),E=e(),D=p(o),O=(0,se.first)(i.departures),k=$(()=>{if(!y.vehicleDetailsSameOnAllDepartures||!y.vehicleDetailsSameOnAllDeparturesTargetDepartureId)return i.departures;let e=i.departureById[y.vehicleDetailsSameOnAllDeparturesTargetDepartureId];return e?[e]:i.departures},[i.departureById,i.departures,y.vehicleDetailsSameOnAllDepartures,y.vehicleDetailsSameOnAllDeparturesTargetDepartureId]),F=$(()=>we(i.departures,b,y.userSelection.byDeparture),[b,i.departures,y.userSelection.byDeparture]),I=$(()=>F.map(({routeId:e,sailingId:t})=>({routeId:e,sailingId:t})),[F]);if(x)return m();if(i.departures.length===0||C||!b||b.length===0)return h();let R=ye(F);return(0,H.jsxs)(t,{children:[k.map((e,t)=>{let r=b.find(t=>t.id===e.departureId)?.route.id,o=T[e.departureId];return r?(0,H.jsxs)(Q.Fragment,{children:[!y.vehicleDetailsSameOnAllDepartures&&(0,H.jsx)(P,{departureId:e.departureId,languageId:_.languageCode,salesOwnerId:_.salesOwnerId,render:e=>(0,H.jsx)(N,{localeId:s,...e})}),(0,H.jsx)(f,{children:(0,H.jsx)(S,{children:(0,H.jsxs)(u,{gap:3,children:[e.vehicles.length===0?(0,H.jsx)(re,{text:g(`VehicleDetails.Overview.Vehicle.NoVehiclesText`),icon:l,variant:`small`}):(0,H.jsx)(U,{children:e.vehicles.map((t,n)=>{let i=y.userSelection.byDeparture[e.departureId]?.vehicles.find(e=>e.vehicleId===t.vehicleId);if(i==null)return null;let l=(c?.has(i.vehicleId)??!1)||i.trailer!=null&&(d?.has(i.trailer.trailerId)??!1);return(0,H.jsx)(ae,{routeId:r,sailingId:e.departureId,salesOwnerId:_.salesOwnerId,localeId:s,vehicleTypeId:i.vehicleTypeCode,trailerTypeId:i.trailer?.trailerTypeCode,renderVehicle:(t,c,u)=>(0,H.jsx)(fe,{id:i.vehicleId,hasUnsavedChanges:l,"data-piimask":!0,vehicleTypeName:t,trailerTypeLabel:g(`VehicleDetails.Overview.Trailer.Description`),vehicleRegistrationNumber:i.form.vehicleRegistrationNumber,trailerRegistrationNumber:i.trailer?.form.trailerRegistrationNumber,isRegistrationNumberMandatory:c,hasTrailer:i.trailer!=null,index:n+1,renderEditVehicleModalButton:(n,l)=>a&&!o&&(0,H.jsx)(ue,{localeId:s,routeId:r,vehicleTypeId:i.vehicleTypeCode,departureId:e.departureId,vehicleId:i.vehicleId,vehicleName:n,vehicleTypeLabel:t,hasTrailer:!!i.trailer,trailerTypeLabel:u,isRegistrationNumberMandatory:c,registrationMissing:l})})},i.vehicleId)})}),o&&(0,H.jsx)(L,{})]})})}),a&&t===0&&!w&&i.departures.length>1&&i.isSameVehicleStructureOnAllDepartures&&!D&&O&&(0,H.jsx)(Ce,{salesOwnerId:_.salesOwnerId,sailings:I,render:({vehicleRegistrationNumberMandatoryForAnySailing:e,loading:t,error:n})=>xe({anyRegistrationNumberPresent:R,vehicleRegistrationNumberMandatoryForAnySailing:e,loading:t,error:n})?(0,H.jsx)(j,{label:g(`PartyDetails.VehicleDetailsPerDeparture`),value:!y.vehicleDetailsSameOnAllDepartures,onValueChange:()=>{y.vehicleDetailsSameOnAllDepartures?E(z.setVehicleDetailsPerDeparture()):E(z.setVehicleDetailsSameOnAllDepartures({targetDepartureId:O.departureId}))}}):null})]},e.departureId):(0,H.jsx)(Q.Fragment,{children:(0,H.jsx)(n,{heading:g(`EmptyState.CouldNotFindRouteForDeparture`)})},e.departureId)}),r?.()]})};export{Ee as t};
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.