1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7696],{78413:function(e,t,a){a.d(t,{E:function(){return k}});var n=a(85893),r=a(67294),l=a(32866),i=a(94184),s=a.n(i),o=a(50899),c=a(87536),d=a(30296),u=a(62867),m=a(39019),f=a(14327),p=a(11597),h=a(96574),b=a(48418);let x=/[\da-z]/gi,g=/^[\da-z]$/i,v=/[^\da-z]/gi,T=e=>e.slice(0,10),j=e=>e.replace(v,""),y=e=>T(j(e)),C=e=>"string"==typeof e&&(""===e||g.test(e)),k=e=>{let{id:t,name:a,classes:i,renderLabel:g,placeholder:v,rules:T,hint:j={},dataTestId:k="confirmation-input"}=e,{t:N}=(0,o.$G)(),{trigger:M,getValues:S,setValue:R,formState:{errors:I}}=(0,c.Gc)(),[E,w]=(0,r.useState)(!0),[_,L]=(0,r.useState)(!1),B="".concat(t,".masked"),A="".concat(t,".unmasked"),D="".concat(a,".masked"),O="".concat(a,".unmasked"),P=[D,O],[F,G]=(0,c.qo)({name:P}),q=!F||!G,H=E?m._:u.b,Z=E?B:A,$={type:"text",placeholder:v,isError:!!I[a],autoComplete:"off"},{icon:K}=j;return(0,n.jsxs)("div",{"data-testid":"".concat(k,"-container"),children:[g?g(Z):null,(0,n.jsxs)("div",{className:"relative",children:[(0,n.jsx)(p.R,{...$,mask:"**********",maskPlaceholder:null,classes:{input:(0,f.cn)(null==i?void 0:i.input,{hidden:!E},{"pr-48":!!K||!q,"pr-88":!!K&&!q})},id:B,name:D,onPaste:e=>(e.preventDefault(),!1),onCopy:e=>(e.preventDefault(),!1),onBlur:()=>{M(O)},beforeMaskedStateChange:e=>{var t;let a=S(O),n=e.nextState,r=n.enteredString,l=null===(t=e.previousState)||void 0===t?void 0:t.selection;if(l&&C(r)){let t=(0,b.G6)({value:a,enteredString:r,nextSelection:n.selection,previousSelection:l});return R(O,y(t),{shouldTouch:!0}),{...e.nextState,value:(0,b.T7)(t,4,x)}}return{...e.nextState,value:(0,b.T7)(a,4,x)}},dataTestId:k}),(0,n.jsx)(h.H,{...$,classes:{input:s()(null==i?void 0:i.input,{hidden:E})},rules:T,id:A,name:O,transform:{input:y},onChange:e=>{let t=y(e.target.value);R(D,(0,b.T7)(t,4,x),{shouldTouch:!0})},dataTestId:k}),(0,n.jsxs)("div",{className:"absolute top-1/2 -translate-y-1/2 right-8 flex items-center gap-x-16",children:[K&&(0,n.jsx)("button",{type:"button","aria-label":j.ariaLabel,className:"cx-custom-outline",onClick:()=>L(e=>!e),"aria-pressed":_,"data-testid":k?"".concat(k,"-hint-btn"):"hint-btn",children:(0,n.jsx)(K,{className:"fill-global-black","data-testid":k?"".concat(k,"-hint-icon"):"hint-icon"})}),(0,n.jsx)("button",{className:s()("outline-neutral-700 cx-custom-outline",{hidden:q}),type:"button","aria-pressed":!E,"aria-controls":Z,onClick:()=>{w(e=>!e),M(P)},"aria-label":N("TRM445"),"data-testid":k?"".concat(k,"-mask-btn"):"mask-btn",children:(0,n.jsx)(H,{className:"fill-global-black","data-testid":k?"".concat(k,"-mask-icon"):"mask-icon"})})]})]}),_&&j.content?j.content:null,(0,n.jsx)(l.B,{render:e=>{let{message:t}=e;return(0,n.jsx)(d.ValidationError,{error:t,className:"mt-8"})},name:O})]})}},42707:function(e,t,a){a.d(t,{F:function(){return r}});var n=a(85893);let r=e=>{let{children:t}=e;return(0,n.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-x-16 gap-y-[44px] empty:hidden",children:t})}},82526:function(e,t,a){a.d(t,{y:function(){return i}});var n=a(85893),r=a(87536),l=a(32032);let i=e=>{let{name:t,onChange:a,onBlur:i,rules:s,defaultValue:o,transform:{input:c,output:d}={},id:u,dataTestId:m="form-input",...f}=e,{field:{value:p,onChange:h,onBlur:b},fieldState:{error:x}}=(0,r.bc)({name:t,defaultValue:o,rules:s});return(0,n.jsx)(l.U,{...f,id:u,onBlur:e=>{b(),i&&i(e)},name:t,value:d?d(p):p,onChange:e=>{let t=e.target.value;h(c?c(t):t),a&&a(e)},dataTestId:m,error:null==x?void 0:x.message})}},16457:function(e,t,a){a.d(t,{_:function(){return i}});var n=a(85893),r=a(87536),l=a(42078);let i=e=>{let{name:t,onChange:a,onBlur:i,rules:s,defaultValue:o,transform:{input:c,output:d}={},id:u,dataTestId:m="form-input-with-hint",...f}=e,{field:{value:p,onChange:h,onBlur:b},fieldState:{error:x}}=(0,r.bc)({name:t,defaultValue:o,rules:s});return(0,n.jsx)(l.m,{...f,id:u,onBlur:e=>{b(),i&&i(e)},name:t,value:d?d(p):p,onChange:e=>{let t=e.target.value;h(c?c(t):t),a&&a(e)},dataTestId:m,error:null==x?void 0:x.message})}},11597:function(e,t,a){a.d(t,{R:function(){return i}});var n=a(85893),r=a(87536),l=a(38818);let i=e=>{let{onChange:t,onBlur:a,name:i,defaultValue:s,rules:o,transform:{input:c,output:
1d}={},dataTestId:u,...m}=e,{field:{onChange:f,value:p,onBlur:h}}=(0,r.bc)({name:i,defaultValue:s,rules:o});return(0,n.jsx)(l.InputWithMask,{...m,onBlur:e=>{h(),a&&a(e)},name:i,value:d?d(p):p,onChange:e=>{let a=e.target.value;f(c?c(a):a),t&&t(e)},dataTestId:u})}},28902:function(e,t,a){a.d(t,{K:function(){return o}});var n=a(85893),r=a(50899),l=a(73353),i=a(23973);let s=e=>e.replaceAll(/\D/g,""),o=e=>{let{rules:t,transform:a,...o}=e,{t:c}=(0,r.$G)();return(0,n.jsx)(l.C,{type:"tel",inputMode:"tel",mask:i.Cl,maskPlaceholder:i.Lj,rules:{pattern:{value:i.d0,message:c("userAccount.phoneError")},...t},transform:{...a,input:e=>s(e)},...o})}},70181:function(e,t,a){a.d(t,{m:function(){return d}});var n=a(85893),r=a(67294),l=a(87536),i=a(57632),s=a(76877),o=a(66887),c=a(29832);let d=e=>{let{name:t,rules:a,translations:d}=e,[u,m]=(0,r.useState)((0,i.Z)()),f=(0,c.i)();(0,r.useEffect)(()=>{m((0,i.Z)())},[f]);let p=(0,r.useRef)(null),{field:{onChange:h},fieldState:{error:b}}=(0,l.bc)({name:t,rules:a}),{setError:x,clearErrors:g,resetField:v,formState:{isSubmitSuccessful:T}}=(0,l.Gc)(),j=(0,r.useCallback)(()=>{g(t)},[t,g]),y=(0,r.useCallback)(()=>{p.current&&(p.current.reset(),m((0,i.Z)()),v(t))},[p,t,v]),C=(0,r.useCallback)(e=>{j(),h(e)},[j,h]),k=(0,r.useCallback)(()=>{y(),x(t,{message:d.error})},[t,d.error,x,y]);return(0,r.useEffect)(()=>{T&&y()},[T,y]),(0,n.jsx)(s.w,{siteKey:o.publicEnv.GOOGLE_CAPTCHA_CLIENT_KEY,locale:f,recaptchaRef:p,onChange:C,onErrored:k,onExpired:k,error:null==b?void 0:b.message},u)}},76648:function(e,t,a){a.d(t,{m:function(){return n.m}});var n=a(70181)},1894:function(e,t,a){a.d(t,{Z:function(){return o}});var n=a(85893),r=a(87536),l=a(34153),i=a(47153),s=a(14327);let o=e=>{let{customClasses:t,disabled:a,hideLabelDuringSubmit:o=!1,label:c,...d}=e,{isSubmitting:u}=(0,r.cl)();return(0,n.jsx)(l.Button,{...d,label:o&&u?"":c,customClasses:(0,s.cn)("flex flex-row items-center justify-center gap-8 disabled:pointer-events-none disabled:text-common-disabled disabled:bg-neutral-300 group",t),disabled:u||a,children:u&&(0,n.jsx)(i.Loader,{className:"animate-spin fill-global-white group-disabled:fill-common-disabled","data-testid":"loader"})})}},87696:function(e,t,a){a.r(t),a.d(t,{ContactlessInformation:function(){return J}});var n=a(85893),r=a(33299),l=a(50899),i=a(77078),s=a(65782),o=a(12201),c=a(78351),d=a(91631),u=a(68500),m=a(44211),f=a(67294),p=a(87536),h=a(73555),b=a(16678),x=a(67825),g=a(85505),v=a(36153),T=a(57191),j=a(74582),y=a(95810),C=a(78413),k=a(42707),N=a(82526),M=a(16457),S=a(28902),R=a(76648),I=a(1894),E=a(77450),w=a(26471),_=a(23973),L=a(71017),B=a(57517),A=a(57150),D=a(60824);let O=e=>e.replace(/\D/g,"");var P=a(3106);let F="service-guarantee-contactless-payment",G=e=>{let{onSubmit:t}=e,{t:a}=(0,l.$G)(),{getContentByKey:r}=(0,B.r)(),{getPageBaseURL:i}=(0,A.O)(),{handleSubmit:s}=(0,p.Gc)(),o=(0,f.useRef)(null);(0,f.useEffect)(()=>{(0,P.Z)(o.current)},[]);let c=i(L.bT.ServiceGuaranteeWebformPage),d=r("page.0.personal_information.trip_eligible_banner",null),u=r("page.0.personal_information.consent",{}),m={required:a("TRM293")};return(0,n.jsxs)("form",{noValidate:!0,onSubmit:s(t),"data-testid":(0,j.getTestId)("form",F),children:[d&&(0,n.jsx)("div",{ref:o,className:"mb-56 sm:mb-64",children:(0,n.jsx)(h.b,{type:"success",icon:v.SuccessIcon,heading:d.headline,message:(0,n.jsx)(x.RichText,{content:d.description,path:"rich_text_basic",styleClasses:{linkColor:"text-global-black",bodyColor:"text-global-black"},wrapperClasses:"w-full empty:hidden"}),testIdPrefix:"eligibility"})}),(0,n.jsx)("h3",{className:"cx-headline-400 mb-[44px]","data-testid":(0,j.getTestId)("form-heading",F),children:a("TRM872")}),(0,n.jsxs)("div",{className:"flex flex-col gap-y-[44px]",children:[(0,n.jsxs)(k.F,{children:[(0,n.jsx)(N.y,{name:"firstName",type:"text",id:"".concat(F,"-first-name-field"),placeholder:a("TRM276"),maxLength:_.vC,rules:{...m,maxLength:{value:_.vC,message:a("userAccount.firstNameInvalidError")},pattern:{value:_.HT,message:a("userAccount.firstNamePatternError")}},renderLabel:e=>(0,n.jsx)(w._,{...e,children:a("TRM275")}),transform:{input:e=>(0,D.C)(e)},dataTestId:"".concat(F,"-first-name-field")}),(0,n.jsx)(N.y,{name:"lastName",type:"text",id:"".concat(F,"-last-name-field"),placeholder:a("TRM235"),maxLength:_.vC,rules:{...m,maxLength:{value:_.vC,message:a("userAccount.lastNameInvalidError")},pattern:{value:_.HT,message:a("userAccount.lastNamePatternError")}},renderLabel:e=>(0,n.jsx)(w._,{...e,children:a("TRM234")}),transform:{input:e=>(0,D.C)(e)},dataTestId:"".concat(F,"-last-name-field")})]}),(0,n.jsxs)(k.F,{children:[(0,n.jsx)(C.E,{id:"".concat(F,"-confirmation-id-field"),name:"confirmationId",placeholder:a("TRM528"),renderLabel:e=>(0,n.jsx)(w._,{className:"mb-12",htmlFor:e,"data-testid":"confirmation-id-label",children:a("TRM527")}),rules:{...m,pattern:{value:_.qu,message:a("TRM539")}},hint:{icon:g.Info,content:(0,n.jsx)(E.k,{className:"text-neutral-700 flex flex-col gap-y-16",testIdPrefix:"".concat(F,"-confirmation-id"),children:(0,n.jsx)("p",{children:a("TRM537")})}),ariaLabel:a("TRM445")},dataTestId:"".concat(F,"-confirmation-id-field")}),(0,n.jsx)(M._,{name:"lastFourDigits",type:"text",inputMode:"numeric",id:"".concat(F,"-last-four-digits-field"),placeholder:a("TRM881"),maxLength:_.yd,rules:{...m,pattern:{value:_._K,message:a("TRM887")}},renderLabel:e=>(0,n.jsx)(w._,{...e,children:a("TRM880")}),transform:{input:e=>O(e)},dataTestId:"".concat(F,"-last-four-digits-field"),hint:{icon:g.Info,content:(0,n.jsx)(E.k,{className:"text-neutral-700 flex flex-col gap-y-16",testIdPrefix:"".concat(F,"-last-four-digits-field"),children:(0,n.jsx)("p",{children:a("TRM882")})}),ariaLabel:a("TRM445")}})]}),(0,n.jsx)(k.F,{children:(0,n.jsx)(N.y,{name:"email",type:"email",id:"".concat(F,"-email-field"),placeholder:a("TRM876"),maxLength:_.mw,rules:{...m,maxLength:{value:_.mw,message:a("TRM095")},pattern:{value:_.CU,message:a("TRM095")}},renderLabel:e=>(0,n.jsx)(w._,{...e,"data-testid":"email-input-label",children:a("TRM875")}),dataTestId:"".concat(F,"-email-field")})}),(0,n.jsx)(k.F,{children:(0,n.jsx)(S.K,{name:"phone",id:"".concat(F,"-phone-field"),label:(0,n.jsx)(w._,{"data-testid":"phone-input-label",isOptional:!0,className:"mb-12",children:a("userAccount.phone")}),placeholder:a("userAccount.phonePlaceholder"),hint:{icon:g.Info,content:(0,n.jsx)(E.k,{className:"text-neutral-700",children:(0,n.jsx)("p",{"data-testid":"".concat(F,"-phone-input-hint-text"),children:a("userAccount.phoneHint")})}),ariaLabel:a("TRM445")},dataTestId:"".concat(F,"-phone-field")})}),(0,n.jsx)(y.Q,{name:"consent",id:"".concat(F,"-consent-field"),"aria-labelledby":"".concat(F,"-consent-label"),label:(0,n.jsx)(x.RichText,{id:"".concat(F,"-consent-label"),content:u,path:"rich_text_basic",styleClasses:{linkColor:"text-neutral-700 !cx-body-text-small !font-normal",bodyColor:"text-neutral-700",paragraphClasses:"!cx-body-text-small text-16"},wrapperClasses:"w-full empty:hidden"}),rules:m,dataTestId:"".concat(F,"-consent-field"),classes:{checkboxContainer:"items-center"}}),(0,n.jsx)(R.m,{name:"recaptcha",rules:m,translations:{error:a("userAccount.fieldSessionError")}}),(0,n.jsxs)("div",{className:"flex flex-col gap-y-24 sm:w-[156px]",children:[(0,n.jsx)(I.Z,{type:"submit",mode:"primary",hideLabelDuringSubmit:!0,label:a("TRM877"),"aria-label":a("TRM877"),"data-testid":(0,j.getTestId)("submit-button",F)}),(0,n.jsx)(b.LinkButton,{href:c,mode:"secondary",label:a("TRM878"),"aria-label":a("TRM878"),customClasses:"w-full inline-flex flex-row-reverse justify-center items-center gap-x-8 border border-go-primary-base",icon:(0,n.jsx)(T.C,{className:"fill-go-primary-base"}),"data-testid":(0,j.getTestId)("go-back-button",F)})]})]})]})},q=e=>{let{onSuccess:t}=e,{t:a}=(0,l.$G)(),{data:f}=(0,r.useSession)(),{values:p}=(0,u.q)(),{trigger:h}=(0,o.R)({token:(0,d.h)(f)}),b=async e=>{try{if(!p.date||!p.departureStation||!p.arrivalStation||!p.tripDetails||!p.paymentMethod)throw Error("Missing required fields");let a=(0,m.Dc)(p.departureStation),n=(0,m.Dc)(p.arrivalStation),r=(0,m.h$)(p.tripDetails),{data:l}=await h({paymentMethod:s.B3.CONTACTLESS,firstName:e.firstName,lastName:e.lastName,lastFourDigits:e.lastFourDigits,recaptchaToken:e.recaptcha,confirmationId:e.confirmationId.unmasked,email:e.email,phone:e.phone,date:p.date,preferredContactMethod:s.OD.EMAIL,departTime:r.departTime,tripNumber:r.tripNumber,departureStationCode:a.code,departureStationName:a.name,arrivalStationCode:n.code,arrivalStationName:n.name});t(l)}catch(e){(0,m.Y$)(e)?i.Toast.failure(a("TRM931")):(c.Z.error("Failed to submit a service guarantee claim paid by the C
1ontactless method",e),i.Toast.failure(a("TRM230")))}};return(0,n.jsx)(G,{onSubmit:b})};var H=a(94059),Z=a(45837),$=a(13011);let K={firstName:"",lastName:"",confirmationId:{cardId:"",masked:"",unmasked:""},lastFourDigits:"",consent:!1,recaptcha:"",email:"",phone:""},Y=e=>{let{children:t,defaultFormValues:a=K}=e,{status:l}=(0,r.useSession)(),{isMounted:i}=(0,H.useMounted)(),{userContext:s}=(0,Z.H2)(),o=(0,f.useMemo)(()=>{var e,t;if(!i||!(0,$.$)(l))return;let n=null==s?void 0:null===(t=s.data)||void 0===t?void 0:null===(e=t.response)||void 0===e?void 0:e.user;if(!n)return;let{firstName:r,lastName:o,email:c,phone:d}=n;return{...a,firstName:r,lastName:o,email:c,phone:d||a.phone}},[i,l,s,a]),c=(0,p.cI)({defaultValues:a,...o&&{values:o},mode:"onBlur",reValidateMode:"onBlur"});return(0,n.jsx)(p.RV,{...c,children:t})},J=e=>{let{onSuccess:t}=e;return(0,n.jsx)(Y,{children:(0,n.jsx)(q,{onSuccess:t})})}},44211:function(e,t,a){a.d(t,{Y$:function(){return h},Dc:function(){return u},h$:function(){return m},Cq:function(){return f},cO:function(){return p}});var n=a(42705),r=a.n(n),l=a(54609),i=a(83225);class s extends Error{constructor(e,t){super(e),this.name="JsonParseError",(null==t?void 0:t.cause)&&(this.cause=t.cause)}}let o=e=>{try{return JSON.parse(e)}catch(e){throw new s("Invalid JSON string",{cause:e})}},c=r().object({code:r().string().required(),name:r().string().required()}),d=r().object({tripNumber:r().string().required(),departTime:r().string().required()}),u=e=>{let{error:t,value:a}=c.validate(o(e));if(t)throw Error(t.message);return a},m=e=>{let{error:t,value:a}=d.validate(o(e));if(t)throw Error(t.message);return a},f=e=>JSON.stringify({code:e.code,name:e.name}),p=e=>JSON.stringify({tripNumber:e.tripNumber,departTime:e.departTime}),h=e=>(0,i.D)(e)&&e.status===l.HttpStatusCode.CONFLICT},12201:function(e,t,a){a.d(t,{R:function(){return h}});var n=a(75362),r=a(67204),l=a(54609),i=a(60913),s=a(65782),o=a(57293),c=a(29580);let d=e=>(0,r.Z)(e,"yyyy-MM-dd"),u=e=>{if(e.paymentMethod===s.B3.PAPER_TICKET&&e.files.length>0){let t=new FormData,{date:a,files:n,...r}=e;return Object.entries(r).forEach(e=>{let[a,n]=e;t.append(a,n)}),t.append("date",d(a)),n.forEach(e=>t.append("files",e)),{body:t}}let{date:t,...a}=e;return{headers:{"Content-Type":"application/json"},body:JSON.stringify({...a,date:d(t)})}},m=async e=>{let t=(0,o.l)("/service-guarantee/claims"),{accessToken:a,...n}=e,{headers:r,body:s}=u(n),d=await fetch(t,{method:l.HttpMethod.POST,headers:{...r,...a?(0,c.B)(a):{}},body:s});if(!d.ok)throw new i.HttpError("Failed to create the service guarantee claim",{status:d.status});return await d.json()};var f=a(29832);let p=e=>["create-service-guarantee-claim",e],h=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=(0,f.i)();return(0,n.Z)(p({...e,locale:a}),(e,t)=>{let[,n]=e,{arg:r}=t;return m({...r,accessToken:n.token,locale:a})},t)}},16268:function(e,t,a){a.d(t,{Em:function(){return n},l7:function(){return l},tq:function(){return r}});let n=e=>/(tablet|ipad|playbook|silk)|(android(?!.*mobi))/i.test(e),r=e=>/Mobile|iP(hone|od)|Android|BlackBerry|IEMobile|Kindle|Silk-Accelerated|(hpw|web)OS|Opera M(obi|ini)/.test(e),l=()=>{let e=navigator.userAgent;return n(e)?"tablet":r(e)?"mobile":"desktop"}},60824:function(e,t,a){a.d(t,{C:function(){return r}});var n=a(23973);let r=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:n.PY;return e.trimStart().replace(t,"")}},48418:function(e,t,a){a.d(t,{G6:function(){return l},I8:function(){return n},T7:function(){return r}});let n=e=>e.replace(/\s/g,""),r=(e,t,a)=>{let r=n(e),l=r.slice(-Math.abs(t));return(r.length>t?r.slice(0,r.length-t):"").replace(a,"*")+l},l=e=>{let{value:t,previousSelection:a,nextSelection:n,enteredString:r}=e,l=t.split("");return a.start===a.end&&"number"==typeof(null==n?void 0:n.start)&&""===r?l.splice(n.start,1):l.splice(a.start,a.end-a.start,r),l.join("")}},3106:function(e,t,a){a.d(t,{Z:function(){return i}});var n=a(3173),r=a(16268);let l=e=>{if(!e)return;let t=(0,r.l7)(),a=e.getBoundingClientRect().top;if("tablet"===t||"desktop"===t){var l;let e=a-((null===(l=document.getElementsByTagName("nav")[0])||void 0===l?void 0:l.clientHeight)||0)-10;window.scrollBy({top:e-(e>0?0:n.Y.topRow),behavior:"smooth"})}else window.scrollBy({top:a-10-n.Y.mobile-n.Y.topRow,behavior:"smooth"})},i=e=>{setTimeout(()=>{l(e)},500)}}}]);
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.