PageSourceSearch

https://managebooking.stenaline.fr/assets/VehicleListComposer-BZXcjtSs.js

js stenaline.fr collected 2026-10-08 06:39:35 UTC 15,121 bytes, 86 lines download raw bytes

1import{$r as e,A as t,Ci as n,G as r,J as i,O as a,On as o,Ti as s,U as c,_ as l,ai as u,ar as d,br as f,dr as p,fi as m,gt as h,ii as g,ir as _,j as v,lr as y,mt as b,pi as x,r as S,rr as C,ti as w,vt as T,xi as E,yn as D}from"./I18nContext-D1VgHctP.js";import{c as O,f as k,m as A,s as j}from"./AppSettingsContext-D4BQj4EP.js";import{n as M,t as N}from"./ErrorTelemetryIds-DqDbXyP5.js";import{r as P}from"./index.es-CrQ_4T_0.js";import{j as ee}from"./DateWithoutTimeFormatter-CAe0wWuw.js";import{i as F,n as I}from"./ContinueButton-DDoy2wng.js";import{t as te}from"./lodash-D18PtC41.js";import{o as ne,t as re}from"./SailingDepartedInfoBanner-Dp_rccMl.js";import{t as ie}from"./MainContentCardy-rAx96HRY.js";import{d as ae,m as oe,o as L}from"./PassengerDetailsEventFactory-C2xRNZLp.js";import{o as se,s as R}from"./PartyDetailsBrowserHistoryStateSynchronizer-BNxiNBx6.js";import{n as z}from"./UseHasAnySailingDeparted-CXSGM0g7.js";import{t as B}from"./NoItemsCardContent-Coq8FOO5.js";import{n as V,t as H}from"./VehicleRegistrationMissing-BnxfK_Fs.js";var U=te(),W={vehicleList:`_vehicleList_dswlp_1`},G=n();await s(`react`);var K=({children:e})=>(0,G.jsx)(`ul`,{className:W.vehicleList,children:e});await s(`react`);var ce=b(`
2  query VehicleTypeDetailsFetcher(
3    $sailingId: ID!
4    $vehicleTypeId: ID!
5    $trailerTypeIds: [ID!]!
6    $localeId: ID!
7  ) {
8    generalVehicleType {
9      byId(vehicleTypeId: $vehicleTypeId) {
10        id
11        isVehicleRegistrationNumberMandatory(outwardSailingId: $sailingId)
12        translations(localeId: $localeId) {
13          id
14          nameOutsideGroup
15          name {
16            one
17            few
18          }
19        }
20      }
21    }
22    generalTrailerType {
23      byIds(trailerTypeIds: $trailerTypeIds) {
24        id
25        translations(localeId: $localeId) {
26          id
27          name
28          dimensionsDescription
29        }
30      }
31    }
32  }
33`),le=({sailingId:e,localeId:t,vehicleTypeId:n,renderVehicle:i,trailerTypeId:a})=>{let o=S(),[{error:s,fetching:l,data:u,stale:d}]=T({query:ce,variables:{sailingId:e,vehicleTypeId:n,trailerTypeIds:a==null?[]:[a],localeId:t}});if(l||d)return(0,G.jsx)(c,{});if(s||!u?.generalVehicleType.byId)return(0,G.jsx)(r,{heading:o(`VehicleDetails.ErrorLoadingVehicleDetails`)});let{translations:f,isVehicleRegistrationNumberMandatory:p}=u.generalVehicleType.byId,m=f.nameOutsideGroup??f.name.one??f.name.few??n,h=u.generalTrailerType.byIds.find(e=>e.id===a);return i(m,p,a==null?void 0:h?.translations.name??a,h?.translations.dimensionsDescription??void 0)};await s(`react`);var ue={vehicleRegistrationNumber:``,trailerRegistrationNumber:``},de=({vehicleTypeName:t,trailerTypeName:n,value:r,onValueChange:i,hasTrailer:a,validationErrorMessages:o})=>{let s=S();return(0,G.jsxs)(g,{gap:2,children:[(0,G.jsxs)(w,{alignItems:`center`,justifyContent:`space-between`,gap:2,children:[(0,G.jsx)(e,{variant:`bold`,size:`large`,children:s(`VehicleDetails.Edit.Form.VehicleHeading`)}),(0,G.jsx)(D,{label:t,icon:f,size:`small`,variant:`info`})]}),(0,G.jsx)(m,{children:(0,G.jsx)(R,{label:s(`VehicleDetails.Edit.Form.RegistrationNumber`),value:r?.vehicleRegistrationNumber??``,onValueChange:e=>i?.({...r,vehicleRegistrationNumber:e}),visited:!0,showErrorsOverride:!1,variant:o?.vehicleRegistrationNumber?`error`:`normal`})}),a&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(w,{alignItems:`center`,justifyContent:`space-between`,gap:2,children:[(0,G.jsx)(e,{variant:`bold`,size:`medium`,children:s(`VehicleDetails.Edit.Form.TrailerHeading`)}),(0,G.jsx)(D,{label:n,icon:f,size:`small`,variant:`info`})]}),(0,G.jsx)(m,{children:(0,G.jsx)(R,{label:s(`VehicleDetails.Edit.Form.RegistrationNumber`),value:r?.trailerRegistrationNumber??``,onValueChange:e=>i?.({...r,trailerRegistrationNumber:e}),visited:!0,showErrorsOverride:!1,variant:o?.trailerRegistrationNumber?`error`:`normal`})})]})]})};await s(`react`);var fe=({vehicleName:e,onSubmit:t,onCancel:n,renderForm:r})=>{let i=S();return(0,G.jsx)(O,{"data-comp":`EditVehicleModal`,"data-vehicle":e,maxWidth:`756px`,children:(0,G.jsxs)(j,{gap:4,children:[(0,G.jsx)(k,{heading:i(`VehicleDetails.Edit.Modal.Heading`),onClickClose:n,headingSize:`large`,headingLevel:`h2`,closeButtonAriaLabel:i(`Common.Close`)}),(0,G.jsx)(x,{children:i(`VehicleDetails.Edit.Modal.IntroText`)}),(0,G.jsx)(ie,{children:(0,G.jsx)(p,{children:r()})}),(0,G.jsx)(g,{gap:3,children:(0,G.jsx)(_,{label:i(`Common.Done`),size:`larger`,variant:`heavy`,onClick:t})})]})})};await s(`react`);var{useCallback:q,useMemo:J,useState:Y}=await s(`react`),pe=b(`
34  query EditVehicleButtonValidation(
35    $routeId: ID!
36    $localeId: ID!
37    $vehicleDetails: VehicleDetailsInput!
38  ) {
39    validation {
40      validateVehicleDetails(
41        routeId: $routeId
42        vehicleDetails: $vehicleDetails
43      ) {
44        __typename
45        vehicleResult {
46          __typename
47          ... on ValidateVehicleDetailsInvalid {
48            registrationNumber {
49              __typename
50              ... on ValidateVehicleFieldInvalid {
51                messages {
52                  text(localeId: $localeId)
53                }
54              }
55            }
56          }
57        }
58        trailerResult {
59          __typename
60          ... on ValidateTrailerDetailsInvalid {
61            registrationNumber {
62              __typename
63              ... on ValidateTrailerFieldInvalid {
64                messages {
65                  text(localeId: $localeId)
66                }
67              }
68            }
69          }
70        }
71      }
72    }
73  }
74`),me=e=>e.partyDetails,he=({departureId:e,vehicleId:n,localeId:r,routeId:i,vehicleName:o,vehicleTypeId:s,vehicleTypeLabel:c,hasTrailer:l,trailerTypeLabel:u,registrationMissing:d,isRegistrationNumberMandatory:f})=>{let p=S(),m=p(`VehicleDetails.Overview.EditVehicleButtonAriaLabel`).replace(`{vehicleName}`,o),h=t(),g=v(me).userSelection.byDeparture[e],[y,b]=Y(!1),[x,w]=Y(ue),E=J(()=>{let e=g?.vehicles.find(e=>e.vehicleId===n);return{vehicleId:n,vehicleTypeId:s,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`}}},[g?.vehicles,n,s]),[{data:D}]=T({query:pe,variables:{routeId:i,localeId:r,vehicleDetails:E},pause:!y}),O=J(()=>{if(D?.validation.validateVehicleDetails)return ge(D.validation.validateVehicleDetails)},[D?.validation.validateVehicleDetails]),k=q(()=>{let e=g?.vehicles.find(e=>e.vehicleId===n);w({vehicleRegistrationNumber:e?.form.vehicleRegistrationNumber??``,trailerRegistrationNumber:e?.trailer?.form.trailerRegistrationNumber??``}),b(!0)},[g,n]),j=q(()=>{h(oe({departureId:e,vehicleId:n,fields:{vehicleRegistrationNumber:x.vehicleRegistrationNumber}})),l&&h(ae({departureId:e,vehicleId:n,fields:{trailerRegistrationNumber:x.trailerRegistrationNumber}})),b(!1)},[h,e,n,x.vehicleRegistrationNumber,x.trailerRegistrationNumber,l]),M=q(()=>{b(!1)},[]),N=g?.vehicles.find(e=>e.vehicleId===n),P=a(N?.form.vehicleRegistrationNumber)||a(N?.trailer?.form.trailerRegistrationNumber);return!f&&!P?null:(0,G.jsxs)(G.Fragment,{children:[d?(0,G.jsx)(_,{label:p(`VehicleDetails.Overview.EditVehicleButton`),"aria-label":m,variant:`heavy`,onClick:k}):(0,G.jsx)(C,{label:p(`VehicleDetails.Overview.EditVehicleButton`),"aria-label":m,variant:`heavy`,onClick:k}),(0,G.jsx)(A,{isOpen:y,onRequestClose:M,children:(0,G.jsx)(fe,{vehicleName:o,onSubmit:j,onCancel:M,renderForm:()=>(0,G.jsx)(de,{hasTrailer:l,vehicleTypeName:c,trailerTypeName:u,value:x,onValueChange:w,validationErrorMessages:O})})})]})},ge=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 s(`react`);var _e=({index:t,id:n,isRegistrationNumberMandatory:r,renderEditVehicleModalButton:i,vehicleRegistrationNumber:a,trailerRegistrationNumber:o,vehicleTypeName:s,trailerTypeLabel:c,hasTrailer:l,hasUnsavedChanges:d})=>{let f=S(),p=`${s} ${t}`,m=`${n}-name`,h=H(a,l,o,r);return(0,G.jsx)(`li`,{children:(0,G.jsx)(`article`,{"aria-labelledby":m,children:(0,G.jsxs)(w,{alignItems:`center`,justifyContent:`space-between`,flexWrap:`wrap`,gap:2,children:[(0,G.jsxs)(g,{children:[(0,G.jsx)(u,{id:m,variant:`h4`,children:p}),(0,G.jsxs)(g,{"data-piimask":!0,children:[(r||a)&&(0,G.jsxs)(`dl`,{className:X.detailsRow,children:[(0,G.jsx)(`dt`,{hidden:!0,children:f(`VehicleDetails.Overview.RegistrationNumberScreenReaderLabel`)}),` `,(0,G.jsx)(`dd`,{children:(0,G.jsx)(e,{color:E(`--swui-text-disabled-color`),children:a||f(`VehicleDetails.Overview.NoRegistrationNumberTagLabel`)})})]}),l&&(0,G.jsx)(G.Fragment,{children:(0,G.jsx)(`dl`,{className:X.detailsRow,children:r||o?(0,G.jsxs)(`dt`,{children:[(0,G.jsxs)(e,{variant:`bold`,children:[c,`:\xA0`]}),(0,G.jsx)(e,{color:E(`--swui-text-disabled-color`),children:o||f(`VehicleDetails.Overview.NoRegistrationNumberTagLabel`)})]}):(0,G.jsx)(`dt`,{children:(0,G.jsx)(e,{variant:`bold`,children:c})})})}),(d||h)&&(0,G.jsxs)(w,{gap:1,alignItems:`center`,flexWrap:`wrap`,children:[d&&(0,G.jsx)(se,{}),h&&(0,G.jsx)(V,{})]})]})]}),(0,G.jsx)(g,{children:i(p,h)})]})})})},ve=b(`
75  query VehicleRegistrationNumberMandatoryForSailing(
76    $sailingId: ID!
77    $vehicleTypeIds: [ID!]!
78  ) {
79    generalVehicleType {
80      byIds(vehicleTypeIds: $vehicleTypeIds) {
81        id
82        isVehicleRegistrationNumberMandatory(outwardSailingId: $sailingId)
83      }
84    }
85  }
86`),ye=e=>{let t=new Map;for(let{sailingId:n,vehicleTypeIds:r}of e){let e=t.get(n)??new Set;r.forEach(t=>e.add(t)),t.set(n,e)}return[...t].map(([e,t])=>({sailingId:e,vehicleTypeIds:[...t].toSorted()}))},be=async(e,{sailingId:t,vehicleTypeIds:n})=>{if(n.length===0)return!1;let{data:r,error:i}=await e.query(ve,{sailingId:t,vehicleTypeIds:[...n]}).toPromise();if(i)throw i;return(r?.generalVehicleType.byIds??[]).some(e=>e.isVehicleRegistrationNumberMandatory)},xe=async(e,t)=>{let n=await Promise.all(ye(t).map(async t=>[t.sailingId,await be(e,t)]));return Object.fromEntries(n)},Se=e=>a(e.vehicleRegistrationNumber)||a(e.trailerRegistrationNumber),Z=e=>e.some(e=>e.vehicles.some(Se)),Ce=e=>Object.values(e).some(Boolean),we=({anyRegistrationNumberPresent:e,vehicleRegistrationNumberMandatoryForAnySailing:t,loading:n,error:r})=>e||r!=null?!0:!n&&t===!0;await s(`react`);var{useEffect:Te,useState:Ee}=await s(`react`),De=({sailings:e,render:t})=>{let n=h(),{trackError:r}=M(),[i,a]=Ee({value:void 0,loading:!0,error:void 0});return Te(()=>{let t=!0;return a(e=>({...e,loading:!0,error:void 0})),xe(n,e).then(e=>{t&&a({value:Ce(e),loading:!1,error:void 0})}).catch(e=>{r(N.FETCH_VEHICLE_REGISTRATION_MANDATORY_ERROR,e),t&&a({value:void 0,loading:!1,error:e})}),()=>{t=!1}},[n,e,r]),(0,G.jsx)(G.Fragment,{children:t({vehicleRegistrationNumberMandatoryForAnySailing:i.value,loading:i.loading,error:i.error})})},Oe=(e,t)=>
86e.map(e=>({sailingId:e.departureId,vehicles:(t[e.departureId]?.vehicles??[]).map(e=>({vehicleTypeCode:e.vehicleTypeCode,vehicleRegistrationNumber:e.form.vehicleRegistrationNumber,trailerRegistrationNumber:e.trailer?.form.trailerRegistrationNumber}))})),Q=await s(`react`),{useMemo:$}=await s(`react`),ke=e=>e.partyDetails,Ae=({renderBelow:e,bookingProjectionAfterPageEvents:n,editEnabled:r,localeId:a,changedVehicleIds:s,changedTrailerIds:c,renderLoading:u,renderError:f})=>{let m=S(),h=ee(),_=v(ke),{data:b,isFetching:x,error:C}=ne({sailingIds:n.departures.map(e=>e.departureId)}),{hasAnySailingDeparted:w,departedByDepartureId:T}=z(n.departures.map(e=>e.departureId)),E=t(),D=v(l),O=(0,U.first)(n.departures),k=$(()=>{if(!_.vehicleDetailsSameOnAllDepartures||!_.vehicleDetailsSameOnAllDeparturesTargetDepartureId)return n.departures;let e=n.departureById[_.vehicleDetailsSameOnAllDeparturesTargetDepartureId];return e?[e]:n.departures},[n.departureById,n.departures,_.vehicleDetailsSameOnAllDepartures,_.vehicleDetailsSameOnAllDeparturesTargetDepartureId]),A=$(()=>Oe(n.departures,_.userSelection.byDeparture),[n.departures,_.userSelection.byDeparture]),j=$(()=>A.map(({sailingId:e,vehicles:t})=>({sailingId:e,vehicleTypeIds:t.map(e=>e.vehicleTypeCode)})),[A]);if(x)return u();if(n.departures.length===0||C||!b||b.length===0)return f();let M=Z(A);return(0,G.jsxs)(o,{children:[k.map((e,t)=>{let o=b.find(t=>t.id===e.departureId)?.route.id,l=T[e.departureId];return o?(0,G.jsxs)(Q.Fragment,{children:[!_.vehicleDetailsSameOnAllDepartures&&(0,G.jsx)(I,{departureId:e.departureId,languageId:h.languageCode,salesOwnerId:h.salesOwnerId,render:e=>(0,G.jsx)(F,{localeId:a,...e})}),(0,G.jsx)(d,{children:(0,G.jsx)(p,{children:(0,G.jsxs)(g,{gap:3,children:[e.vehicles.length===0?(0,G.jsx)(B,{text:m(`VehicleDetails.Overview.Vehicle.NoVehiclesText`),icon:y,variant:`small`}):(0,G.jsx)(K,{children:e.vehicles.map((t,n)=>{let i=_.userSelection.byDeparture[e.departureId]?.vehicles.find(e=>e.vehicleId===t.vehicleId);if(i==null)return null;let u=(s?.has(i.vehicleId)??!1)||i.trailer!=null&&(c?.has(i.trailer.trailerId)??!1);return(0,G.jsx)(le,{sailingId:e.departureId,localeId:a,vehicleTypeId:i.vehicleTypeCode,trailerTypeId:i.trailer?.trailerTypeCode,renderVehicle:(t,s,c)=>(0,G.jsx)(_e,{id:i.vehicleId,hasUnsavedChanges:u,"data-piimask":!0,vehicleTypeName:t,trailerTypeLabel:m(`VehicleDetails.Overview.Trailer.Description`),vehicleRegistrationNumber:i.form.vehicleRegistrationNumber,trailerRegistrationNumber:i.trailer?.form.trailerRegistrationNumber,isRegistrationNumberMandatory:s,hasTrailer:i.trailer!=null,index:n+1,renderEditVehicleModalButton:(n,u)=>r&&!l&&(0,G.jsx)(he,{localeId:a,routeId:o,vehicleTypeId:i.vehicleTypeCode,departureId:e.departureId,vehicleId:i.vehicleId,vehicleName:n,vehicleTypeLabel:t,hasTrailer:!!i.trailer,trailerTypeLabel:c,isRegistrationNumberMandatory:s,registrationMissing:u})})},i.vehicleId)})}),l&&(0,G.jsx)(re,{})]})})}),r&&t===0&&!w&&n.departures.length>1&&n.isSameVehicleStructureOnAllDepartures&&!D&&O&&(0,G.jsx)(De,{sailings:j,render:({vehicleRegistrationNumberMandatoryForAnySailing:e,loading:t,error:n})=>we({anyRegistrationNumberPresent:M,vehicleRegistrationNumberMandatoryForAnySailing:e,loading:t,error:n})?(0,G.jsx)(P,{label:m(`PartyDetails.VehicleDetailsPerDeparture`),value:!_.vehicleDetailsSameOnAllDepartures,onValueChange:()=>{_.vehicleDetailsSameOnAllDepartures?E(L.setVehicleDetailsPerDeparture()):E(L.setVehicleDetailsSameOnAllDepartures({targetDepartureId:O.departureId}))}}):null})]},e.departureId):(0,G.jsx)(Q.Fragment,{children:(0,G.jsx)(i,{heading:m(`EmptyState.CouldNotFindRouteForDeparture`)})},e.departureId)}),e?.()]})};export{Ae 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.