@sartech/ai-chat-agent 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs ADDED
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const r=require("react/jsx-runtime"),T=require("react"),gt=require("react-icons/fi"),Ot=require("react-icons/io5"),xs=require("react-icons/md"),Ht=require("react-icons/rx"),hn=require("react-icons/bs"),ws=require("react-icons/fa6"),Rt=require("react-icons/fa"),Wn=require("react-datepicker"),ei=require("react-select");require("react-datepicker/dist/react-datepicker.css");const pn=require("date-fns"),ti=require("react-icons/ai"),Wt=require("react-icons/hi"),ni=require("react-dom"),vs=require("react-icons/lu"),ri=require("react-secure-storage"),rr=T.createContext(null);function sr(){const e=T.useContext(rr);if(e==null)throw new Error("[@sartech/ai-chat-agent] Missing socket. Wrap the tree with <AIChatAgent socket={yourSocketIoClient}> (or set SocketContext.Provider).");return e}const Nn=[{code:"AI",english:"Air India"},{code:"6E",english:"IndiGo"},{code:"SG",english:"SpiceJet"},{code:"UK",english:"Vistara"},{code:"IX",english:"Air India Express"},{code:"I5",english:"Air India Express"},{code:"AK",english:"AirAsia"},{code:"QP",english:"Akasa Air"},{code:"G8",english:"GoAir"},{code:"S5",english:"Star Air"},{code:"EK",english:"Emirates Airlines"},{code:"EY",english:"Etihad Airways"},{code:"QR",english:"Qatar Airways"},{code:"GF",english:"Gulf Air"},{code:"SV",english:"Saudi Arabian Airlines"},{code:"WY",english:"Oman Air"},{code:"MS",english:"Egypt Air"},{code:"TK",english:"Turkish Airlines"},{code:"LH",english:"Lufthansa"},{code:"BA",english:"British Airways"},{code:"AF",english:"Air France"},{code:"KL",english:"KLM Royal Dutch Airlines"},{code:"LX",english:"Swiss Air"},{code:"OS",english:"Austrian Airlines"},{code:"IB",english:"Iberia Airlines"},{code:"AZ",english:"Alitalia"},{code:"SN",english:"Brussels Airlines"},{code:"LO",english:"LOT Polish Airlines"},{code:"SU",english:"Aeroflot Russian International Airlines"},{code:"TK",english:"Turkish Airlines"},{code:"UA",english:"United Airlines"},{code:"AA",english:"American Airlines"},{code:"DL",english:"Delta Airlines"},{code:"WN",english:"Southwest Airlines"},{code:"AS",english:"Alaska Airlines"},{code:"B6",english:"JetBlue"},{code:"AC",english:"Air Canada"},{code:"WS",english:"WestJet"},{code:"FZ",english:"Flydubai Airways"},{code:"J9",english:"Jazeera Airways"},{code:"XY",english:"Flynas"},{code:"MH",english:"Malaysian Airlines"},{code:"SQ",english:"Singapore Airlines"},{code:"TG",english:"Thai Airways International"},{code:"FD",english:"Thai AirAsia"},{code:"SL",english:"Thai Lion"},{code:"VJ",english:"Vietjet Air"},{code:"VN",english:"Vietnam Airlines"},{code:"CX",english:"Cathay Pacific Airways"},{code:"HX",english:"Hongkong Airlines"},{code:"JL",english:"Japan Air Lines"},{code:"NH",english:"All Nippon Airways"},{code:"7C",english:"Jeju Air"},{code:"KE",english:"Korean Air"},{code:"OZ",english:"Asiana Airlines"}];function bn(e){if(Array.isArray(e))return e.map(n=>String(n||"").trim()).filter(Boolean);const t=String(e||"").trim();return t?[t]:[]}function _n(e){const t=String(e||"INR").trim().toUpperCase()||"INR";return{INR:"₹",USD:"$",EUR:"€",GBP:"£",AED:"د.إ",SAR:"﷼",JPY:"¥",CNY:"¥",AUD:"A$",CAD:"C$",SGD:"S$"}[t]||t}function si(e,t){if(!e||!t||Number(e.payloadIndex)!==Number(t.payloadIndex))return null;const n=bn(e==null?void 0:e.rmkey),s=bn(t==null?void 0:t.rmkey),i=[...n,...s].filter((a,f,y)=>a&&y.indexOf(a)===f),o=String((e==null?void 0:e.rukey)||(t==null?void 0:t.rukey)||"").trim(),c=String((e==null?void 0:e.apcoup)??"0"),u=String((t==null?void 0:t.apcoup)??(t==null?void 0:t.rtapcoup)??(e==null?void 0:e.rtapcoup)??"0");return{ukey:String((e==null?void 0:e.ukey)||"").trim(),rukey:o,rmkey:i,rtrmkey:s,styp:String((e==null?void 0:e.styp)||"Normal").trim(),apcoup:c,rtapcoup:u}}function ii(){const e={};return Nn.forEach(t=>{t!=null&&t.code&&(e[String(t.code).toUpperCase()]=t.english)}),e}function ai(e={}){const t=[e==null?void 0:e.code,e==null?void 0:e.iata,e==null?void 0:e.airportCode,e==null?void 0:e.ac].find(n=>String(n||"").trim());return String(t||"").trim().toUpperCase()}function oi(e={}){const t=[e==null?void 0:e.name,e==null?void 0:e.airportName,e==null?void 0:e.airport,e==null?void 0:e.label,e==null?void 0:e.value,e==null?void 0:e.nm,e==null?void 0:e.english].find(n=>String(n||"").trim());return String(t||"").trim()}function Ss(e){const t={};return Array.isArray(e)&&e.forEach(n=>{if(!n||typeof n!="object")return;const s=ai(n),i=oi(n);s&&i&&(t[s]=i)}),t}function js(e={},t){const n=String(t||"").trim().toUpperCase();return n?String((e==null?void 0:e[n])||"").trim():""}function li({adt:e=1,chd:t=0,inf:n=0,passportRequired:s=!1}){const i=[];for(let o=1;o<=Number(e);o+=1)i.push({sno:o,tl:"",typ:"ADT",ldpax:o===1,fn:"",ln:"",dob:null,nat:"",isc:"",num:"",expdt:null,issdt:null,dtyp:"P",extbag:[],meal:[],seat:[]});for(let o=1;o<=Number(t);o+=1)i.push({sno:Number(e)+o,tl:"",typ:"CHD",ldpax:!1,fn:"",ln:"",dob:null,nat:"",isc:"",num:"",expdt:null,issdt:null,dtyp:"P",extbag:[],meal:[],seat:[]});for(let o=1;o<=Number(n);o+=1)i.push({sno:Number(e)+Number(t)+o,tl:"",typ:"INF",ldpax:!1,fn:"",ln:"",dob:null,nat:"",isc:"",num:"",expdt:null,issdt:null,dtyp:"P"});return i}function ci(e,t){var H,P,D,$,O,j,b,L,Y,W,te,oe;const n=(e==null?void 0:e.payload)||e||{},s=(n==null?void 0:n.trps)||{},i=Array.isArray(s)?s[0]||{}:s,o=(i==null?void 0:i.deps)||{},c=Array.isArray(o)?o[0]||{}:o,u=Array.isArray(c==null?void 0:c.seg)?c.seg:[],a=(n==null?void 0:n.rttrps)||{},f=Array.isArray(a)?a[0]||{}:a,y=(f==null?void 0:f.deps)||{},d=Array.isArray(y)?y[0]||{}:y,g=Array.isArray(d==null?void 0:d.seg)?d.seg:[],S=(i==null?void 0:i.arrs)||{},x=Array.isArray(S)?S[0]||{}:S,w=Array.isArray(x==null?void 0:x.seg)?x.seg:[],m=g.length?g:w,N=(i==null?void 0:i.pr)||{},h=(f==null?void 0:f.pr)||{},A=Array.isArray(N==null?void 0:N.taxs)?N.taxs.reduce((B,Z)=>B+Number((Z==null?void 0:Z.pr)||0),0):0,v=Array.isArray(h==null?void 0:h.taxs)?h.taxs.reduce((B,Z)=>B+Number((Z==null?void 0:Z.pr)||0),0):0,U=String((n==null?void 0:n.ps)||"").toUpperCase()==="Y"||String((n==null?void 0:n.sectyp)||"").toLowerCase()==="int",_=!!String((n==null?void 0:n.rukey)||"").trim(),l=m.length>0,p=Number((n==null?void 0:n.tt)||1)===2||_||l,k=p?"2":"1";return{ukey:(n==null?void 0:n.ukey)||"",ptyp:"CD",prd:"F",em:"radha.k@sartecheasy.com",ph:"8888888888",adt:String((n==null?void 0:n.adt)??1),chd:String((n==null?void 0:n.chd)??0),inf:String((n==null?void 0:n.inf)??0),rukey:String((n==null?void 0:n.rukey)||"").trim()||null,tt:k,styp:(n==null?void 0:n.styp)||"",rmkey:(N==null?void 0:N.rmkey)||"",chnl:"B2C",fareBreakup:{onwardSt:Number((N==null?void 0:N.st)??0),returnSt:Number((h==null?void 0:h.st)??0),onwardTax:Number(A||0),returnTax:Number(v||0)},selectedFlight:{airlineCode:((H=u==null?void 0:u[0])==null?void 0:H.ma)||((P=u==null?void 0:u[0])==null?void 0:P.ac)||"",airlineName:t[String(((D=u==null?void 0:u[0])==null?void 0:D.ma)||(($=u==null?void 0:u[0])==null?void 0:$.ac)||"").toUpperCase()]||String(((O=u==null?void 0:u[0])==null?void 0:O.ma)||((j=u==null?void 0:u[0])==null?void 0:j.ac)||"").toUpperCase()||"N/A",sectors:u.map(B=>({from:(B==null?void 0:B.da)||"",to:(B==null?void 0:B.ar)||"",departureDate:(B==null?void 0:B.dd)||"",arrivalDate:(B==null?void 0:B.ad)||"",departureTime:(B==null?void 0:B.dt)||"",arrivalTime:(B==null?void 0:B.at)||"",duration:(B==null?void 0:B.fdur)||"",flightNumber:(B==null?void 0:B.fn)||"",stops:Number((B==null?void 0:B.st)??0)})),fare:{baseFare:Number((N==null?void 0:N.bf)??0),totalFare:Number((N==null?void 0:N.tf)??0),surcharges:Number((N==null?void 0:N.st)??0),currency:(n==null?void 0:n.cur)||"INR"}},selectedReturnFlight:p&&m.length?{airlineCode:((b=m==null?void 0:m[0])==null?void 0:b.ma)||((L=m==null?void 0:m[0])==null?void 0:L.ac)||"",airlineName:t[String(((Y=m==null?void 0:m[0])==null?void 0:Y.ma)||((W=m==null?void 0:m[0])==null?void 0:W.ac)||"").toUpperCase()]||String(((te=m==null?void 0:m[0])==null?void 0:te.ma)||((oe=m==null?void 0:m[0])==null?void 0:oe.ac)||"").toUpperCase()||"N/A",sectors:m.map(B=>({from:(B==null?void 0:B.da)||"",to:(B==null?void 0:B.ar)||"",departureDate:(B==null?void 0:B.dd)||"",arrivalDate:(B==null?void 0:B.ad)||"",departureTime:(B==null?void 0:B.dt)||"",arrivalTime:(B==null?void 0:B.at)||"",duration:(B==null?void 0:B.fdur)||"",flightNumber:(B==null?void 0:B.fn)||"",stops:Number((B==null?void 0:B.st)??0)})),fare:{baseFare:Number((h==null?void 0:h.bf)??0),totalFare:Number((h==null?void 0:h.tf)??0),surcharges:Number((h==null?void 0:h.st)??0),currency:(n==null?void 0:n.cur)||"INR"}}:null,uid:(n==null?void 0:n.uid)??null,agid:(n==null?void 0:n.agid)??null,trvlrs:li({adt:n==null?void 0:n.adt,chd:n==null?void 0:n.chd,inf:n==null?void 0:n.inf,passportRequired:U})}}const ui="Service fee : 300/pax";function Cs({isNonRefundable:e=!1,policyRows:t=null,showServiceFee:n=!0,loading:s=!1}){const i=e?"Non Refundable":"Refer to Airline Policy";if(s)return r.jsx("div",{className:"fdContent",children:r.jsx("div",{className:"cpLoading",children:r.jsx("div",{className:"cpSpinner"})})});const o=Array.isArray(t)&&t.length>0?t:[{timeline:"0 to 365 days",penalty:i}];return r.jsx("div",{className:"fdContent",children:r.jsxs("div",{className:"frRulesBlock",children:[r.jsx("div",{className:"frRulesHeader",children:"Cancellation Changes Per Pax"}),o.map((c,u)=>r.jsxs("div",{className:"frRulesRow",children:[r.jsxs("div",{className:"frRulesCol",children:[r.jsx("div",{className:"lbl",children:"Timeline"}),r.jsx("div",{className:"val",children:c.timeline})]}),r.jsx("div",{className:"frRulesDivider","aria-hidden":"true"}),r.jsxs("div",{className:"frRulesCol",children:[r.jsx("div",{className:"lbl",children:"Penalty"}),r.jsx("div",{className:"val",children:c.penalty})]})]},u)),n&&r.jsx("div",{className:"frRulespill",children:ui})]})})}function ir({card:e,isCheapest:t=!1,isRecommended:n=!1,disableBook:s,bookingFlightId:i,hoveredBookId:o,onHoverChange:c=()=>{},onBookClick:u=()=>{},legTagText:a=null,selectionMode:f=!1,isSelected:y=!1,onSelectClick:d=()=>{},dimmed:g=!1,displayMode:S="compact",isDetailsOpen:x=!1,onToggleDetails:w=()=>{},onBookFlight:m=null,cardPositionIndex:N=0}){var De,ke,Ne,ve;const[h,A]=T.useState(!1),[v,U]=T.useState(!1),[_,l]=T.useState(!1),[p,k]=T.useState(null),H=_n(e==null?void 0:e.currency),P=Number.isFinite(Number(e==null?void 0:e.price))?new Intl.NumberFormat("en-IN",{maximumFractionDigits:0}).format(Number(e.price)):(e==null?void 0:e.price)||"--",D=Number(e==null?void 0:e.stops)===0?"Non-stop":Number(e==null?void 0:e.stops)===1?"1 stop":`${e==null?void 0:e.stops} stops`,$=["flight-card",S==="expanded"?"flight-card--expanded":"",g?"flight-card--dimmed":"",y?"flight-card--selected":""].filter(Boolean).join(" "),O=(e==null?void 0:e.travelClass)||"Economy",j=(e==null?void 0:e.cabinBaggage)||"7 Kg per adult",b=(e==null?void 0:e.checkInBaggage)||"15 Kg (1 Piece only) per adult",L=(e==null?void 0:e.fareType)||"Published",Y=String(L).toLowerCase(),W=/non[-\s]?refund|no\s*refund|nonrefund/i.test(Y),te=/\brefund/.test(Y),oe=W?"Non-refundable":te?"Refundable":"As per fare rules",B=W?"negative":te?"positive":"neutral",Z=F=>{if(!s){if(typeof m=="function"){m(F);return}u(F)}},se=Array.isArray(e==null?void 0:e.moreFares)?e.moreFares.filter(F=>{var ue;return((ue=F==null?void 0:F.pr)==null?void 0:ue.dis)===1}):[],re=(()=>{if(Number(e==null?void 0:e.stops)<=0)return"";const F=Array.isArray(e==null?void 0:e.segments)?e.segments:[];if(F.length>1){const ue=F.slice(0,-1).map(Fe=>String((Fe==null?void 0:Fe.destination)||"").trim().toUpperCase()).filter(Boolean),_e=[...new Set(ue)];if(_e.length>0)return`via ${_e.join(", ")}`}return""})();T.useEffect(()=>{if(!h)return;const F=ue=>{ue.key==="Escape"&&A(!1)};return window.addEventListener("keydown",F),()=>window.removeEventListener("keydown",F)},[h]),T.useEffect(()=>{if(!v)return;const F=ue=>{ue.key==="Escape"&&U(!1)};return window.addEventListener("keydown",F),()=>window.removeEventListener("keydown",F)},[v]),T.useEffect(()=>{if(!_)return;const F=ue=>{ue.key==="Escape"&&l(!1)};return window.addEventListener("keydown",F),()=>window.removeEventListener("keydown",F)},[_]);const[ye,Ae]=T.useState("fare"),Ie=()=>{const F=(e==null?void 0:e.paxPrices)||[];if(!F.length)return r.jsx("div",{className:"fare-panel__empty",children:"No breakup data available"});const ue=F.find(Me=>Me.ptyp==="ADT"),_e=F.find(Me=>Me.ptyp==="CHD"),Fe=F.find(Me=>Me.ptyp==="INF"),He=Number(e.baseFare||0),Xe=Number(e.taxAmount||0);return r.jsx("div",{className:"fare-details-content",children:r.jsxs("div",{className:"fare-details-price-container",children:[r.jsxs("div",{className:"price-breackup-row",children:[r.jsx("span",{className:"lbl",children:"Base Fare"}),r.jsxs("span",{className:"val",children:[H," ",new Intl.NumberFormat("en-IN").format(He)]})]}),e.adt>0&&ue&&r.jsxs("div",{className:"price-breackup-row",children:[r.jsxs("span",{className:"lbl",children:["Adults (",e.adt," X ",H,new Intl.NumberFormat("en-IN").format(Number(ue.bf)-Number(ue.madisc||0)),")"]}),r.jsxs("span",{className:"val",children:[H," ",new Intl.NumberFormat("en-IN").format(e.adt*(Number(ue.bf)-Number(ue.madisc||0)))]})]}),e.chd>0&&_e&&r.jsxs("div",{className:"price-breackup-row",children:[r.jsxs("span",{className:"lbl",children:["Child (",e.chd," X ",H,new Intl.NumberFormat("en-IN").format(Number(_e.bf)-Number(_e.madisc||0)),")"]}),r.jsxs("span",{className:"val",children:[H," ",new Intl.NumberFormat("en-IN").format(e.chd*(Number(_e.bf)-Number(_e.madisc||0)))]})]}),e.inf>0&&Fe&&r.jsxs("div",{className:"price-breackup-row",children:[r.jsxs("span",{className:"lbl",children:["Infant (",e.inf," X ",H,new Intl.NumberFormat("en-IN").format(Number(Fe.bf)),")"]}),r.jsxs("span",{className:"val",children:[H," ",new Intl.NumberFormat("en-IN").format(e.inf*Number(Fe.bf))]})]}),r.jsxs("div",{className:"price-breackup-row",children:[r.jsx("span",{className:"lbl",children:"Taxes & Surcharges"}),r.jsxs("span",{className:"val",children:[H," ",new Intl.NumberFormat("en-IN").format(Xe)]})]}),r.jsxs("div",{className:"fare-details-price-total",children:[r.jsx("span",{className:"lbl",children:"Total Payable"}),r.jsxs("span",{className:"val",children:[H," ",P]})]})]})})},Ee=()=>{var _e;const F=p||e,ue=/\bnon[-\s]?refund|no\s*refund|nonrefund\b/i.test(String((F==null?void 0:F.fareType)||((_e=F==null?void 0:F.pr)==null?void 0:_e.re)||"").toLowerCase());return r.jsx(Cs,{isNonRefundable:ue,policyRows:(F==null?void 0:F.policyRows)||void 0})};return r.jsxs("div",{className:$,"data-ui-flight-card":"true","data-flight-id":(e==null?void 0:e.id)||"","data-flight-leg":(e==null?void 0:e.legType)||"","data-flight-airline":String((e==null?void 0:e.airline)||"").trim(),"data-flight-number":String((e==null?void 0:e.flightNumber)||"").trim(),"data-flight-departure-date":String((e==null?void 0:e.departureDate)||"").trim(),"data-flight-arrival-date":String((e==null?void 0:e.arrivalDate)||"").trim(),"data-flight-departure-time":String((e==null?void 0:e.departureTime)||"").trim(),"data-flight-arrival-time":String((e==null?void 0:e.arrivalTime)||"").trim(),"data-flight-price":String((e==null?void 0:e.price)??"").trim(),"data-flight-position":String(Number(N)+1),"data-flight-payload-index":String((e==null?void 0:e.payloadIndex)??"").trim(),children:[r.jsxs("div",{className:"flight-card__inner",children:[" ",r.jsxs("div",{className:"flight-card__left",children:[r.jsxs("div",{className:"flight-card__airline-row",children:[e.airlineLogo?r.jsx("img",{src:e.airlineLogo,alt:e.airline,className:"flight-card__logo",onError:F=>{F.currentTarget.style.display="none"}}):r.jsx("div",{className:"flight-card__logo-fallback",children:e.airlineCode}),r.jsxs("div",{className:"flight-card__airline-name",children:[e.airline,r.jsx("span",{className:"flight-card__airline-flight-number",children:e.flightNumber||"N/A"})]})]}),r.jsxs("div",{className:"flight-card__time",children:[e.departureTime," - ",e.arrivalTime]}),r.jsx("div",{className:"flight-card__date",children:r.jsxs("span",{className:"flight-card__date-pill",children:[e.departureDate||"--",e.arrivalDate?` | ${e.arrivalDate}`:""]})}),a?r.jsx("div",{className:"flight-card__leg-tag",children:a}):null]}),r.jsxs("div",{className:"flight-card__mid",children:[r.jsx("div",{className:"flight-card__duration",children:e.duration}),r.jsxs("div",{className:"flight-card__route",children:[e.origin," → ",e.destination]})]}),r.jsxs("div",{className:"flight-card__mid flight-card__mid--stops",children:[r.jsx("div",{className:"flight-card__stop-count",children:D}),r.jsx("div",{className:"flight-card__stop-city",children:re})]}),r.jsxs("div",{className:"flight-card__right",children:[r.jsxs("div",{className:"flight-card__price",children:[H," ",P]}),t?r.jsx("div",{className:"flight-card__cheapest-tag",children:"CHEAPEST"}):null,n?r.jsxs("div",{className:"flight-card__recommended-tag",children:[r.jsx(xs.MdStar,{})," RECOMMENDED"]}):null,((De=e==null?void 0:e.moreFares)==null?void 0:De.length)>1&&r.jsx("button",{type:"button",className:"flight-card__more-fares-btn","data-ui-action":"more-fares","data-flight-id":(e==null?void 0:e.id)||"",onClick:F=>{s||(F.stopPropagation(),U(!0))},disabled:s,children:"+ More Fares"})]}),r.jsx("div",{className:"flight-card__action",children:f?r.jsxs("div",{className:"flight-card__action-content flight-card__action-content--selection",children:[r.jsxs("div",{className:"flight-card__action-buttons",children:[r.jsx("button",{type:"button",className:`flight-card__book-btn ${y?"flight-card__book-btn--selected":""}`,"data-ui-action":"select-flight","data-voice-action":"select-flight","data-flight-id":e.id,"data-flight-leg":(e==null?void 0:e.legType)||"","data-recommended":n?"true":"false","data-cheapest":t?"true":"false",onMouseEnter:()=>c(e.id),onMouseLeave:()=>c(null),onClick:()=>{g||s||d(e)},disabled:g||s,children:y?"Selected":"Select"}),r.jsx("button",{type:"button",className:`flight-card__details-toggle ${x?"flight-card__details-toggle--open":""}`,"data-ui-action":"toggle-details",onClick:w,"aria-label":x?"Hide flight details":"Show flight details",children:x?r.jsx(Ot.IoChevronUp,{className:"flight-card__details-chevron","aria-hidden":"true"}):r.jsx(Ot.IoChevronDown,{className:"flight-card__details-chevron","aria-hidden":"true"})})]}),r.jsx("button",{type:"button",className:"flight-card__fare-type-btn","data-ui-action":"open-fare-details",onClick:()=>A(!0),"aria-expanded":h,"aria-controls":`fare-panel-${(e==null?void 0:e.id)||"flight"}`,disabled:s,children:r.jsx("span",{className:"flight-card__fare-type",children:"Fare details"})})]}):r.jsxs("div",{className:"flight-card__action-content",children:[r.jsxs("div",{className:"flight-card__action-buttons",children:[r.jsx("button",{type:"button",className:`flight-card__book-btn ${o===e.id?"flight-card__book-btn--hover":""}`,"data-ui-action":"book-flight","data-voice-action":"book-flight","data-flight-id":e.id,"data-flight-leg":(e==null?void 0:e.legType)||"","data-recommended":n?"true":"false","data-cheapest":t?"true":"false",onMouseEnter:()=>c(e.id),onMouseLeave:()=>c(null),onClick:()=>{Z(e)},disabled:s||i===e.id,children:i===e.id?"Loading...":"Book"}),r.jsx("button",{type:"button",className:`flight-card__details-toggle ${x?"flight-card__details-toggle--open":""}`,"data-ui-action":"toggle-details",onClick:w,"aria-label":x?"Hide flight details":"Show flight details",children:x?r.jsx(Ot.IoChevronUp,{className:"flight-card__details-chevron","aria-hidden":"true"}):r.jsx(Ot.IoChevronDown,{className:"flight-card__details-chevron","aria-hidden":"true"})})]}),r.jsx("button",{type:"button",className:"flight-card__fare-type-btn","data-ui-action":"open-fare-details",onClick:()=>A(!0),"aria-expanded":h,"aria-controls":`fare-panel-${(e==null?void 0:e.id)||"flight"}`,disabled:s,children:r.jsx("span",{className:"flight-card__fare-type",children:"Fare details"})})]})})]}),h?r.jsx("div",{className:"flight-card__fare-panel-overlay",onClick:()=>A(!1),role:"presentation",children:r.jsxs("aside",{className:`flight-card__fare-panel fare-details-drawer flight-card__fare-panel--${ye}`,onClick:F=>F.stopPropagation(),role:"dialog","aria-modal":"true","aria-label":"Fare type details",id:`fare-panel-${(e==null?void 0:e.id)||"flight"}`,children:[r.jsxs("div",{className:"fare-details-tabs",children:[r.jsxs("div",{className:"fare-details-tabs-bar",children:[r.jsx("div",{className:"fare-details-tabs-list",children:[{key:"fare",label:"Flight Details"},{key:"breakup",label:"Price Breakup"},{key:"rules",label:"Fare Rules"}].map(F=>r.jsxs("button",{type:"button",className:`fare-details-tab-btn${ye===F.key?" fare-details-tab-btn--active":""}`,onClick:()=>Ae(F.key),children:[F.label,ye===F.key&&r.jsx("span",{className:"fare-details-tab-btn-line","aria-hidden":"true"})]},F.key))}),r.jsx("button",{type:"button",className:"fare-details-drawer-close",onClick:()=>A(!1),"aria-label":"Close fare details panel",children:r.jsx(Ht.RxCross2,{size:20})})]}),r.jsxs("div",{className:`fare-details-tab-content fare-details-tab-content--${ye}`,children:[r.jsx("div",{className:`fare-details-tab-panel${ye==="fare"?" fare-details-tab-panel--active":""}`,children:ye==="fare"&&r.jsx("div",{className:"fare-details-content",children:r.jsxs("div",{className:"fare-details-leg",children:[r.jsxs("div",{className:"fare-details-leg-header-block",children:[r.jsxs("div",{className:"fare-details-flight-route",children:[r.jsx("span",{className:"fare-details-route-city",children:e.origin||"--"}),r.jsx(hn.BsArrowRight,{size:18,weight:"bold"}),r.jsx("span",{className:"fare-details-route-city",children:e.destination||"--"})]}),r.jsxs("div",{className:"fare-details-flight-meta-row",children:[r.jsx("span",{className:"fare-details-meta-text",children:qt((Ne=(ke=e.segments)==null?void 0:ke[0])==null?void 0:Ne.departureDate)||"-"}),r.jsx("span",{className:"fare-details-meta-dot",children:"・"}),r.jsx("span",{className:"fare-details-meta-text",children:O}),r.jsx("span",{className:"fare-details-meta-dot",children:"・"}),r.jsx("span",{className:B==="positive"?"fare-details-meta-text fare-details-refund-status fare-details-refundable":"fare-details-meta-text fare-details-refund-status fare-details-non-refundable",children:oe})]})]}),r.jsx("div",{className:"fare-details-flight-details-container",children:(ve=e.segments)==null?void 0:ve.map((F,ue)=>{const _e=ue===e.segments.length-1;return r.jsxs(T.Fragment,{children:[r.jsxs("div",{className:"fare-details-flight-segment",children:[r.jsxs("div",{className:"fare-details-airline-info",children:[F.airlineLogo?r.jsx("img",{src:F.airlineLogo,alt:F.airline,className:"fare-details-airline-logo",onError:Fe=>{Fe.currentTarget.style.display="none"}}):r.jsx("div",{className:"fare-details-airline-logo-fallback",children:F.airlineCode}),r.jsxs("div",{className:"fare-details-airline-details",children:[r.jsx("span",{className:"fare-details-airline-name",children:F.airline}),r.jsx("span",{className:"fare-details-flight-number",children:F.flightNumber})]})]}),r.jsxs("div",{className:"fare-details-flight-timeline-wrapper",children:[r.jsxs("div",{className:"fare-details-flight-timeline",children:[r.jsxs("div",{className:"fare-details-timeline-block fare-details-departure",children:[r.jsx("div",{className:"fare-details-timeline-date",children:qt(F.departureDate)}),r.jsx("div",{className:"fare-details-timeline-time",children:F.departureTime}),r.jsxs("div",{className:"fare-details-timeline-location",children:[F.originName||F.origin," ","(",F.origin,")"]}),r.jsx("div",{className:"fare-details-timeline-airport",children:rn(F.origin,F.departureAirportName,F.airportMappings||(e==null?void 0:e.airportMappings))})]}),r.jsxs("div",{className:"fare-details-timeline-duration",children:[r.jsx("div",{className:"fare-details-duration-text",children:F.duration}),r.jsx("div",{className:"fare-details-duration-line","aria-hidden":"true",children:r.jsxs("svg",{className:"fare-details-duration-svg",viewBox:"0 0 212 12",width:"100%",height:"6",xmlns:"http://www.w3.org/2000/svg",children:[r.jsx("line",{x1:"6",y1:"6",x2:"206",y2:"6",stroke:"#E3E4E6",strokeWidth:"1.2",vectorEffect:"non-scaling-stroke"}),r.jsx("circle",{cx:"6",cy:"6",r:"6",fill:"#E3E4E6"}),r.jsx("circle",{cx:"206",cy:"6",r:"6",fill:"#E3E4E6"})]})})]}),r.jsxs("div",{className:"fare-details-timeline-block fare-details-arrival",children:[r.jsx("div",{className:"fare-details-timeline-date",children:qt(F.arrivalDate)}),r.jsx("div",{className:"fare-details-timeline-time",children:F.arrivalTime}),r.jsxs("div",{className:"fare-details-timeline-location",children:[F.destinationName||F.destination," ","(",F.destination,")"]}),r.jsx("div",{className:"fare-details-timeline-airport",children:rn(F.destination,F.arrivalAirportName,F.airportMappings||(e==null?void 0:e.airportMappings))})]})]}),r.jsx("div",{className:"fare-details-baggage-divider"}),r.jsxs("div",{className:"fare-details-baggage-info",children:[r.jsxs("div",{className:"fare-details-baggage-item",children:[r.jsx("span",{className:"fare-details-baggage-icon fare-details-icon-cabin","aria-hidden":"true"}),r.jsxs("div",{className:"fare-details-baggage-details",children:[r.jsx("div",{className:"fare-details-baggage-label",children:"Cabin:"}),r.jsx("div",{className:"fare-details-baggage-value",children:j})]})]}),r.jsxs("div",{className:"fare-details-baggage-item",children:[r.jsx("span",{className:"fare-details-baggage-icon fare-details-icon-checkin","aria-hidden":"true"}),r.jsxs("div",{className:"fare-details-baggage-details",children:[r.jsx("div",{className:"fare-details-baggage-label",children:"Check-in:"}),r.jsx("div",{className:"fare-details-baggage-value",children:b})]})]})]})]})]}),!_e&&r.jsxs("div",{className:"fare-details-layover-container",children:[r.jsxs("div",{className:"fare-details-layover-timeline",children:[r.jsx("div",{className:"fare-details-layover-line"}),r.jsxs("div",{className:"fare-details-layover-badge",children:[r.jsx("span",{className:"fare-details-layover-type",children:"Change of planes"}),r.jsx("span",{className:"fare-details-layover-dot",children:"・"}),r.jsxs("span",{className:"fare-details-layover-duration",children:[F.layoverDuration?`${F.layoverDuration} layover in `:"Layover in ",F.destinationName||F.destination]})]}),r.jsx("div",{className:"fare-details-layover-line"})]}),r.jsx("div",{className:"fare-details-layover-baggage-spacer","aria-hidden":"true"})]})]},F.id||F.flightNumber||ue)})})]})})}),r.jsx("div",{className:`fare-details-tab-panel${ye==="breakup"?" fare-details-tab-panel--active":""}`,children:ye==="breakup"&&Ie()}),r.jsx("div",{className:`fare-details-tab-panel${ye==="rules"?" fare-details-tab-panel--active":""}`,children:ye==="rules"&&Ee()})]})]}),r.jsxs("div",{className:"fare-details-footer",children:[r.jsxs("div",{className:"fare-details-drawer-fare",children:[r.jsx("div",{className:"fare-details-drawer-fare-label",children:"Total Amount"}),r.jsxs("div",{className:"fare-details-drawer-fare-value",children:[H," ",P]})]}),r.jsx("button",{type:"button",className:"fare-details-drawer-proceed",onClick:()=>{A(!1),Z(e)},disabled:s||i===e.id,children:i===e.id?"Loading...":"Book Now"})]})]})}):null,_?r.jsx("div",{className:"flight-card__fare-panel-overlay fare-rules-overlay",onClick:()=>{l(!1),k(null)},role:"presentation",children:r.jsxs("aside",{className:"flight-card__fare-panel fare-rules-modal",onClick:F=>F.stopPropagation(),role:"dialog","aria-modal":"true","aria-label":"Fare rules",children:[r.jsxs("div",{className:"fare-details-tabs-bar",children:[r.jsx("div",{className:"fare-details-tabs-list",children:r.jsxs("div",{className:"fare-details-tab-btn fare-details-tab-btn--active",children:["Fare Rules",r.jsx("span",{className:"fare-details-tab-btn-line","aria-hidden":"true"})]})}),r.jsx("button",{type:"button",className:"fare-details-drawer-close",onClick:()=>{l(!1),k(null)},"aria-label":"Close fare rules",children:r.jsx(Ht.RxCross2,{size:20})})]}),r.jsx("div",{className:"fare-rules-modal-body",children:Ee()})]})}):null,v?r.jsx("div",{className:"flight-card__fare-panel-overlay",onClick:()=>U(!1),role:"presentation",children:r.jsxs("aside",{className:"flight-card__fare-panel fare-details-drawer more-fares-drawer",onClick:F=>F.stopPropagation(),role:"dialog","aria-modal":"true","aria-label":"More fare options",children:[r.jsxs("div",{className:"fare-details-tabs-bar",children:[r.jsx("div",{className:"fare-details-tabs-list",children:r.jsxs("div",{className:"fare-details-tab-btn fare-details-tab-btn--active",children:["More Fare Options",r.jsx("span",{className:"fare-details-tab-btn-line","aria-hidden":"true"})]})}),r.jsx("button",{type:"button",className:"fare-details-drawer-close",onClick:()=>U(!1),"aria-label":"Close more fares panel",children:r.jsx(Ht.RxCross2,{size:20})})]}),r.jsx("div",{className:"more-fares-panel-header",children:r.jsxs("div",{children:[r.jsx("div",{className:"flight-card__fare-panel-title",children:"More Fare Options"}),r.jsxs("div",{className:"airlData",children:[e!=null&&e.origin&&(e!=null&&e.destination)?r.jsxs("div",{className:"more-fares-panel-subtitle",children:[e.originName||e.origin," ",r.jsx(ws.FaArrowRightLong,{})," ",e.destinationName||e.destination]}):null,r.jsxs("div",{className:"more-fares-panel-flight-meta",children:[e.airlineLogo?r.jsx("img",{src:e.airlineLogo,alt:e.airline||"Airline",className:"more-fares-panel-airline-logo",onError:F=>{F.currentTarget.style.display="none"}}):null,r.jsxs("span",{className:"more-fares-panel-airline-text",children:[e.airline||"Airline"," ",e.flightNumber||""]})]})]})]})}),r.jsx("div",{className:"more-fares-content",children:r.jsx("div",{className:"more-fares-list",children:se.map((F,ue)=>{var Be,Se,ze,Re,he,ie,ce,be,Pe;const _e=Number(((Be=F==null?void 0:F.pr)==null?void 0:Be.tf)||0)-Number(((Se=F==null?void 0:F.pr)==null?void 0:Se.madisc)||0),Fe=((ze=F==null?void 0:F.pr)==null?void 0:ze.altftyp)||((Re=F==null?void 0:F.pr)==null?void 0:Re.fareType)||"Published",He=((he=F==null?void 0:F.pr)==null?void 0:he.selpr)===!0,Xe=(ie=F==null?void 0:F.bag)==null?void 0:ie[0],Me=(ce=F==null?void 0:F.bag)==null?void 0:ce[1],E=((be=F==null?void 0:F.pr)==null?void 0:be.re)==="Non-Refundable"?"Non-Refundable":"Refundable",Ve=((Pe=F==null?void 0:F.pr)==null?void 0:Pe.re)!=="Non-Refundable";return r.jsxs("div",{className:`more-fare-option-card ${He?"more-fare-option-card--selected":""}`,children:[r.jsxs("div",{className:"more-fare-option-top",children:[r.jsxs("div",{className:"more-fare-option-price",children:[H," ",new Intl.NumberFormat("en-IN").format(_e)]}),r.jsx("div",{className:"more-fare-option-type",children:Fe})]}),r.jsxs("div",{className:"more-fare-option-section",children:[r.jsx("div",{className:"more-fare-option-section-title",children:"Baggage"}),Xe?r.jsxs("div",{className:"more-fare-option-item",children:[r.jsx("span",{className:"more-fare-option-check",children:"✓"}),Xe.adt," ",Xe.typ]}):null,Me?r.jsxs("div",{className:"more-fare-option-item",children:[r.jsx("span",{className:"more-fare-option-check",children:"✓"}),Me.adt," ",Me.typ]}):null]}),r.jsxs("div",{className:"more-fare-option-section",children:[r.jsx("div",{className:"more-fare-option-section-title",children:"Cancellation & Date Change"}),r.jsxs("div",{className:`more-fare-option-item ${Ve?"":"more-fare-option-item--non"}`,children:[r.jsx("span",{className:"more-fare-option-check",children:Ve?"✓":"✕"}),E]}),r.jsx("button",{type:"button",className:"more-fare-option-fare-rules","data-ui-action":"open-fare-rules",onClick:Ue=>{Ue.stopPropagation(),k(F),l(!0)},children:"Fare Rules"})]}),r.jsx("button",{type:"button",className:"more-fare-option-book-btn","data-ui-action":"book-more-fare",onClick:()=>{var Ue,Ge,Qe,ct,yt;U(!1),Z({...e,price:_e,fareType:Fe,rmkey:((Ue=F==null?void 0:F.pr)==null?void 0:Ue.rmkey)||e.rmkey,paxPrices:(F==null?void 0:F.paxpr)||e.paxPrices,baseFare:((Ge=F==null?void 0:F.pr)==null?void 0:Ge.bf)||e.baseFare,taxAmount:Number(((Qe=F==null?void 0:F.pr)==null?void 0:Qe.tf)||0)-Number(((ct=F==null?void 0:F.pr)==null?void 0:ct.bf)||0),discount:((yt=F==null?void 0:F.pr)==null?void 0:yt.madisc)||0})},disabled:s,children:"Select & Book"})]},ue)})})})]})}):null,x?e.segments.map(F=>r.jsx("div",{className:"flight-card__details",children:r.jsxs("div",{className:"flight-card__details-top",children:[r.jsxs("div",{className:"flight-card__details-airline",children:[F.airlineLogo?r.jsx("img",{src:F.airlineLogo,alt:F.airline,className:"flight-card__details-logo",onError:ue=>{ue.currentTarget.style.display="none"}}):r.jsx("div",{className:"flight-card__logo-fallback",children:F.airlineCode}),r.jsxs("div",{className:"flight-card__details-airline-meta",children:[r.jsx("div",{className:"flight-card__details-airline-name",children:F.airline}),r.jsxs("div",{className:"flight-card__details-airline-sub",children:[r.jsx("span",{children:F.flightNumber})," ",r.jsx("span",{children:O})]})]})]}),r.jsxs("div",{className:"flight-card__details-itinerary",children:[r.jsxs("div",{className:"flight-card__details-itinerary-top",children:[" ",r.jsxs("div",{className:"flight-card__details-leg flight-card__details-leg--left",children:[r.jsx("div",{className:"flight-card__details-date",children:qt(F.departureDate)}),r.jsx("div",{className:"flight-card__details-time",children:F.departureTime}),r.jsx("div",{className:"flight-card__details-code",children:F.origin}),r.jsx("div",{className:"flight-card__details-airport",children:rn(F.origin,F.departureAirportName,F.airportMappings||(e==null?void 0:e.airportMappings))})]}),r.jsxs("div",{className:"flight-card__details-duration",children:[r.jsx("div",{className:"flight-card__details-duration-text",children:F.duration}),r.jsx("div",{className:"flight-card__details-duration-line"})]}),r.jsxs("div",{className:"flight-card__details-leg flight-card__details-leg--right",children:[r.jsx("div",{className:"flight-card__details-date",children:qt(F.arrivalDate)}),r.jsx("div",{className:"flight-card__details-time",children:F.arrivalTime}),r.jsx("div",{className:"flight-card__details-code",children:F.destination}),r.jsx("div",{className:"flight-card__details-airport",children:rn(F.destination,F.arrivalAirportName,F.airportMappings||(e==null?void 0:e.airportMappings))})]})]}),r.jsxs("div",{className:"flight-card__details-bottom",children:[r.jsxs("div",{className:"flight-card__details-bottom-chips",children:[r.jsxs("span",{className:"flight-card__details-chip",children:[r.jsx(gt.FiLock,{className:"flight-card__details-chip-icon","aria-hidden":"true"}),"Cabin: ",r.jsx("span",{children:j})]}),r.jsxs("span",{className:"flight-card__details-chip",children:[r.jsx(gt.FiBriefcase,{className:"flight-card__details-chip-icon","aria-hidden":"true"}),"Check-in: ",r.jsx("span",{children:b})]})]}),r.jsx("span",{className:"flight-card__details-refund-badge",children:oe})]})]})]})},F.id||F.flightNumber)):null]})}function qt(e){const t=String(e||"").trim();if(!t)return"--";const n=/^\d{2}-\d{2}-\d{4}$/.test(t)?new Date(t.split("-").reverse().join("-")):new Date(t);if(Number.isNaN(n.getTime()))return t;const s=n.getDate(),i=n.toLocaleString("en-US",{month:"short"}),o=s%10===1&&s%100!==11?"st":s%10===2&&s%100!==12?"nd":s%10===3&&s%100!==13?"rd":"th";return`${s}${o} ${i}`}function rn(e,t,n){const s=js(n,e);if(s)return s;const i=String(t||"").trim();if(i)return i;const o=String(e||"").trim().toUpperCase();return o?`${o} Airport`:"Origin Airport"}function di(e){return r.jsx(ir,{...e,legTagText:null})}function fi(e){return r.jsx(ir,{...e,legTagText:"Onward"})}function mi(e){return r.jsx(ir,{...e,legTagText:"Return"})}function hi({card:e,disableBook:t=!1,bookingFlightId:n=null,onBookFlight:s=()=>{},renderFareDetails:i=()=>null,children:o}){var _;const[c,u]=T.useState(!1),[a,f]=T.useState(!1),[y,d]=T.useState(!1),[g,S]=T.useState(null),[x,w]=T.useState("fare"),m=_n(e==null?void 0:e.currency),N=Number.isFinite(Number(e==null?void 0:e.price))?new Intl.NumberFormat("en-IN",{maximumFractionDigits:0}).format(Number(e==null?void 0:e.price)):(e==null?void 0:e.price)||"--",h=Array.isArray(e==null?void 0:e.moreFares)?e.moreFares.filter(l=>{var p;return((p=l==null?void 0:l.pr)==null?void 0:p.dis)===1}):[],A=(e==null?void 0:e.fareType)||"Published";String(A).toLowerCase(),T.useEffect(()=>{if(!c&&!a&&!y)return;const l=p=>{p.key==="Escape"&&(u(!1),f(!1),d(!1),S(null))};return window.addEventListener("keydown",l),()=>window.removeEventListener("keydown",l)},[c,a,y]);const v=()=>{const l=(e==null?void 0:e.paxPrices)||[];if(!l.length)return r.jsx("div",{className:"fare-panel__empty",children:"No breakup data available"});const p=l.find($=>$.ptyp==="ADT"),k=l.find($=>$.ptyp==="CHD"),H=l.find($=>$.ptyp==="INF"),P=Number((e==null?void 0:e.baseFare)||0),D=Number((e==null?void 0:e.taxAmount)||0);return r.jsx("div",{className:"fare-details-content",children:r.jsxs("div",{className:"fare-details-price-container",children:[r.jsxs("div",{className:"price-breackup-row",children:[r.jsx("span",{className:"lbl",children:"Base Fare"}),r.jsxs("span",{className:"val",children:[m," ",new Intl.NumberFormat("en-IN").format(P)]})]}),(e==null?void 0:e.adt)>0&&p?r.jsxs("div",{className:"price-breackup-row",children:[r.jsxs("span",{className:"lbl",children:["Adults (",e.adt," X ",m,new Intl.NumberFormat("en-IN").format(Number(p.bf)-Number(p.madisc||0)),")"]}),r.jsxs("span",{className:"val",children:[m," ",new Intl.NumberFormat("en-IN").format(e.adt*(Number(p.bf)-Number(p.madisc||0)))]})]}):null,(e==null?void 0:e.chd)>0&&k?r.jsxs("div",{className:"price-breackup-row",children:[r.jsxs("span",{className:"lbl",children:["Child (",e.chd," X ",m,new Intl.NumberFormat("en-IN").format(Number(k.bf)-Number(k.madisc||0)),")"]}),r.jsxs("span",{className:"val",children:[m," ",new Intl.NumberFormat("en-IN").format(e.chd*(Number(k.bf)-Number(k.madisc||0)))]})]}):null,(e==null?void 0:e.inf)>0&&H?r.jsxs("div",{className:"price-breackup-row",children:[r.jsxs("span",{className:"lbl",children:["Infant (",e.inf," X ",m,new Intl.NumberFormat("en-IN").format(Number(H.bf)),")"]}),r.jsxs("span",{className:"val",children:[m," ",new Intl.NumberFormat("en-IN").format(e.inf*Number(H.bf))]})]}):null,r.jsxs("div",{className:"price-breackup-row",children:[r.jsx("span",{className:"lbl",children:"Taxes & Surcharges"}),r.jsxs("span",{className:"val",children:[m," ",new Intl.NumberFormat("en-IN").format(D)]})]}),r.jsxs("div",{className:"fare-details-price-total",children:[r.jsx("span",{className:"lbl",children:"Total Payable"}),r.jsxs("span",{className:"val",children:[m," ",N]})]})]})})},U=()=>{var k;const l=g||e,p=/\bnon[-\s]?refund|no\s*refund|nonrefund\b/i.test(String((l==null?void 0:l.fareType)||((k=l==null?void 0:l.pr)==null?void 0:k.re)||"").toLowerCase());return r.jsx(Cs,{isNonRefundable:p,policyRows:(l==null?void 0:l.policyRows)||void 0})};return r.jsxs(r.Fragment,{children:[o({openFareDetails:()=>{t||u(!0)},openMoreFares:()=>{t||f(!0)},fareType:A,hasMoreFares:((_=e==null?void 0:e.moreFares)==null?void 0:_.length)>1}),c?r.jsx("div",{className:"flight-card__fare-panel-overlay",onClick:()=>u(!1),role:"presentation",children:r.jsxs("aside",{className:`flight-card__fare-panel fare-details-drawer flight-card__fare-panel--${x}`,onClick:l=>l.stopPropagation(),role:"dialog","aria-modal":"true","aria-label":"Fare type details",id:`fare-panel-${(e==null?void 0:e.id)||"flight"}`,children:[r.jsxs("div",{className:"fare-details-tabs",children:[r.jsxs("div",{className:"fare-details-tabs-bar",children:[r.jsx("div",{className:"fare-details-tabs-list",children:[{key:"fare",label:"Flight Details"},{key:"breakup",label:"Price Breakup"},{key:"rules",label:"Fare Rules"}].map(l=>r.jsxs("button",{type:"button",className:`fare-details-tab-btn${x===l.key?" fare-details-tab-btn--active":""}`,onClick:()=>w(l.key),children:[l.label,x===l.key?r.jsx("span",{className:"fare-details-tab-btn-line","aria-hidden":"true"}):null]},l.key))}),r.jsx("button",{type:"button",className:"fare-details-drawer-close",onClick:()=>u(!1),"aria-label":"Close fare details panel",children:r.jsx(Ht.RxCross2,{size:20})})]}),r.jsxs("div",{className:`fare-details-tab-content fare-details-tab-content--${x}`,children:[r.jsx("div",{className:`fare-details-tab-panel${x==="fare"?" fare-details-tab-panel--active":""}`,children:x==="fare"?i():null}),r.jsx("div",{className:`fare-details-tab-panel${x==="breakup"?" fare-details-tab-panel--active":""}`,children:x==="breakup"?v():null}),r.jsx("div",{className:`fare-details-tab-panel${x==="rules"?" fare-details-tab-panel--active":""}`,children:x==="rules"?U():null})]})]}),r.jsxs("div",{className:"fare-details-footer",children:[r.jsxs("div",{className:"fare-details-drawer-fare",children:[r.jsx("div",{className:"fare-details-drawer-fare-label",children:"Total Amount"}),r.jsxs("div",{className:"fare-details-drawer-fare-value",children:[m," ",N]})]}),r.jsx("button",{type:"button",className:"fare-details-drawer-proceed",onClick:()=>{t||(u(!1),s(e))},disabled:t||n===e.id,children:n===e.id?"Loading...":"Book Now"})]})]})}):null,y?r.jsx("div",{className:"flight-card__fare-panel-overlay fare-rules-overlay",onClick:()=>{d(!1),S(null)},role:"presentation",children:r.jsxs("aside",{className:"flight-card__fare-panel fare-rules-modal",onClick:l=>l.stopPropagation(),role:"dialog","aria-modal":"true","aria-label":"Fare rules",children:[r.jsxs("div",{className:"fare-details-tabs-bar",children:[r.jsx("div",{className:"fare-details-tabs-list",children:r.jsxs("div",{className:"fare-details-tab-btn fare-details-tab-btn--active",children:["Fare Rules",r.jsx("span",{className:"fare-details-tab-btn-line","aria-hidden":"true"})]})}),r.jsx("button",{type:"button",className:"fare-details-drawer-close",onClick:()=>{d(!1),S(null)},"aria-label":"Close fare rules",children:r.jsx(Ht.RxCross2,{size:20})})]}),r.jsx("div",{className:"fare-rules-modal-body",children:U()})]})}):null,a?r.jsx("div",{className:"flight-card__fare-panel-overlay",onClick:()=>f(!1),role:"presentation",children:r.jsxs("aside",{className:"flight-card__fare-panel fare-details-drawer more-fares-drawer",onClick:l=>l.stopPropagation(),role:"dialog","aria-modal":"true","aria-label":"More fare options",children:[r.jsxs("div",{className:"fare-details-tabs-bar",children:[r.jsx("div",{className:"fare-details-tabs-list",children:r.jsxs("div",{className:"fare-details-tab-btn fare-details-tab-btn--active",children:["More Fare Options",r.jsx("span",{className:"fare-details-tab-btn-line","aria-hidden":"true"})]})}),r.jsx("button",{type:"button",className:"fare-details-drawer-close",onClick:()=>f(!1),"aria-label":"Close more fares panel",children:r.jsx(Ht.RxCross2,{size:20})})]}),r.jsx("div",{className:"more-fares-panel-header",children:r.jsxs("div",{children:[r.jsx("div",{className:"flight-card__fare-panel-title",children:"More Fare Options"}),r.jsxs("div",{className:"airlData",children:[e!=null&&e.origin&&(e!=null&&e.destination)?r.jsxs("div",{className:"more-fares-panel-subtitle",children:[e.originName||e.origin," ",r.jsx(ws.FaArrowRightLong,{})," ",e.destinationName||e.destination]}):null,r.jsxs("div",{className:"more-fares-panel-flight-meta",children:[e.airlineLogo?r.jsx("img",{src:e.airlineLogo,alt:e.airline||"Airline",className:"more-fares-panel-airline-logo",onError:l=>{l.currentTarget.style.display="none"}}):null,r.jsxs("span",{className:"more-fares-panel-airline-text",children:[e.airline||"Airline"," ",e.flightNumber||""]})]})]})]})}),r.jsx("div",{className:"more-fares-content",children:r.jsx("div",{className:"more-fares-list",children:h.map((l,p)=>{var b,L,Y,W,te,oe,B,Z,se;const k=Number(((b=l==null?void 0:l.pr)==null?void 0:b.tf)||0)-Number(((L=l==null?void 0:l.pr)==null?void 0:L.madisc)||0),H=((Y=l==null?void 0:l.pr)==null?void 0:Y.altftyp)||((W=l==null?void 0:l.pr)==null?void 0:W.fareType)||"Published",P=((te=l==null?void 0:l.pr)==null?void 0:te.selpr)===!0,D=(oe=l==null?void 0:l.bag)==null?void 0:oe[0],$=(B=l==null?void 0:l.bag)==null?void 0:B[1],O=((Z=l==null?void 0:l.pr)==null?void 0:Z.re)==="Non-Refundable"?"Non-Refundable":"Refundable",j=((se=l==null?void 0:l.pr)==null?void 0:se.re)!=="Non-Refundable";return r.jsxs("div",{className:`more-fare-option-card ${P?"more-fare-option-card--selected":""}`,children:[r.jsxs("div",{className:"more-fare-option-top",children:[r.jsxs("div",{className:"more-fare-option-price",children:[m," ",new Intl.NumberFormat("en-IN").format(k)]}),r.jsx("div",{className:"more-fare-option-type",children:H})]}),r.jsxs("div",{className:"more-fare-option-section",children:[r.jsx("div",{className:"more-fare-option-section-title",children:"Baggage"}),D?r.jsxs("div",{className:"more-fare-option-item",children:[r.jsx("span",{className:"more-fare-option-check",children:"✓"}),D.adt," ",D.typ]}):null,$?r.jsxs("div",{className:"more-fare-option-item",children:[r.jsx("span",{className:"more-fare-option-check",children:"✓"}),$.adt," ",$.typ]}):null]}),r.jsxs("div",{className:"more-fare-option-section",children:[r.jsx("div",{className:"more-fare-option-section-title",children:"Cancellation & Date Change"}),r.jsxs("div",{className:`more-fare-option-item ${j?"":"more-fare-option-item--non"}`,children:[r.jsx("span",{className:"more-fare-option-check",children:j?"✓":"✕"}),O]}),r.jsx("button",{type:"button",className:"more-fare-option-fare-rules","data-ui-action":"open-fare-rules",onClick:re=>{re.stopPropagation(),S(l),d(!0)},children:"Fare Rules"})]}),r.jsx("button",{type:"button",className:"more-fare-option-book-btn","data-ui-action":"book-more-fare",onClick:()=>{var re,ye,Ae,Ie,Ee;t||(f(!1),s({...e,price:k,fareType:H,rmkey:((re=l==null?void 0:l.pr)==null?void 0:re.rmkey)||e.rmkey,paxPrices:(l==null?void 0:l.paxpr)||e.paxPrices,baseFare:((ye=l==null?void 0:l.pr)==null?void 0:ye.bf)||e.baseFare,taxAmount:Number(((Ae=l==null?void 0:l.pr)==null?void 0:Ae.tf)||0)-Number(((Ie=l==null?void 0:l.pr)==null?void 0:Ie.bf)||0),discount:((Ee=l==null?void 0:l.pr)==null?void 0:Ee.madisc)||0}))},disabled:t,children:"Select & Book"})]},p)})})})]})}):null]})}function pi({card:e,cardPositionIndex:t=0,isCheapest:n=!1,isRecommended:s=!1,disableBook:i,bookingFlightId:o,hoveredBookId:c,onHoverChange:u=()=>{},onBookClick:a=()=>{},displayMode:f="compact",isDetailsOpen:y=!1,onToggleDetails:d=()=>{}}){const g=_n(e==null?void 0:e.currency),S=Number.isFinite(Number(e==null?void 0:e.price))?new Intl.NumberFormat("en-IN",{maximumFractionDigits:0}).format(Number(e==null?void 0:e.price)):(e==null?void 0:e.price)||"--",x=(e==null?void 0:e.travelClass)||"Economy",w=(e==null?void 0:e.cabinBaggage)||"7 Kg per adult",m=(e==null?void 0:e.checkInBaggage)||"15 Kg (1 Piece only) per adult",N=(e==null?void 0:e.fareType)||"Published",h=String(N).toLowerCase(),A=/non[-\s]?refund|no\s*refund|nonrefund/i.test(h),v=/\brefund/.test(h),U=A?"Non-refundable":v?"Refundable":"As per fare rules",_=A?"negative":v?"positive":"neutral",l=T.useMemo(()=>{var P,D;return[...Array.isArray((P=e==null?void 0:e.onwardLeg)==null?void 0:P.segments)?e.onwardLeg.segments:[],...Array.isArray((D=e==null?void 0:e.returnLeg)==null?void 0:D.segments)?e.returnLeg.segments:[]]},[e]),p=()=>{var P;return r.jsx("div",{className:"fare-details-content",children:r.jsxs("div",{className:"fare-details-leg",children:[r.jsxs("div",{className:"fare-details-leg-header-block",children:[r.jsxs("div",{className:"fare-details-flight-route",children:[r.jsx("span",{className:"fare-details-route-city",children:(e==null?void 0:e.origin)||"--"}),r.jsx(hn.BsArrowRight,{size:18}),r.jsx("span",{className:"fare-details-route-city",children:((P=e==null?void 0:e.returnLeg)==null?void 0:P.destination)||(e==null?void 0:e.destination)||"--"})]}),r.jsxs("div",{className:"fare-details-flight-meta-row",children:[r.jsx("span",{className:"fare-details-meta-text",children:x}),r.jsx("span",{className:"fare-details-meta-dot",children:"•"}),r.jsx("span",{className:_==="positive"?"fare-details-meta-text fare-details-refund-status fare-details-refundable":"fare-details-meta-text fare-details-refund-status fare-details-non-refundable",children:U})]})]}),r.jsx("div",{className:"fare-details-flight-details-container",children:l.map((D,$)=>{const O=$===l.length-1;return r.jsxs(T.Fragment,{children:[r.jsxs("div",{className:"fare-details-flight-segment",children:[r.jsxs("div",{className:"fare-details-airline-info",children:[D.airlineLogo?r.jsx("img",{src:D.airlineLogo,alt:D.airline,className:"fare-details-airline-logo",onError:j=>{j.currentTarget.style.display="none"}}):r.jsx("div",{className:"fare-details-airline-logo-fallback",children:D.airlineCode}),r.jsxs("div",{className:"fare-details-airline-details",children:[r.jsx("span",{className:"fare-details-airline-name",children:D.airline}),r.jsx("span",{className:"fare-details-flight-number",children:D.flightNumber})]})]}),r.jsxs("div",{className:"fare-details-flight-timeline-wrapper",children:[r.jsxs("div",{className:"fare-details-flight-timeline",children:[r.jsxs("div",{className:"fare-details-timeline-block fare-details-departure",children:[r.jsx("div",{className:"fare-details-timeline-date",children:$r(D.departureDate)}),r.jsx("div",{className:"fare-details-timeline-time",children:D.departureTime}),r.jsxs("div",{className:"fare-details-timeline-location",children:[D.originName||D.origin," (",D.origin,")"]}),r.jsx("div",{className:"fare-details-timeline-airport",children:Ir(D.origin,D.departureAirportName,D.airportMappings||(e==null?void 0:e.airportMappings))})]}),r.jsxs("div",{className:"fare-details-timeline-duration",children:[r.jsx("div",{className:"fare-details-duration-text",children:D.duration}),r.jsx("div",{className:"fare-details-duration-line","aria-hidden":"true",children:r.jsxs("svg",{className:"fare-details-duration-svg",viewBox:"0 0 212 12",width:"100%",height:"6",xmlns:"http://www.w3.org/2000/svg",children:[r.jsx("line",{x1:"6",y1:"6",x2:"206",y2:"6",stroke:"#E3E4E6",strokeWidth:"1.2",vectorEffect:"non-scaling-stroke"}),r.jsx("circle",{cx:"6",cy:"6",r:"6",fill:"#E3E4E6"}),r.jsx("circle",{cx:"206",cy:"6",r:"6",fill:"#E3E4E6"})]})})]}),r.jsxs("div",{className:"fare-details-timeline-block fare-details-arrival",children:[r.jsx("div",{className:"fare-details-timeline-date",children:$r(D.arrivalDate)}),r.jsx("div",{className:"fare-details-timeline-time",children:D.arrivalTime}),r.jsxs("div",{className:"fare-details-timeline-location",children:[D.destinationName||D.destination," (",D.destination,")"]}),r.jsx("div",{className:"fare-details-timeline-airport",children:Ir(D.destination,D.arrivalAirportName,D.airportMappings||(e==null?void 0:e.airportMappings))})]})]}),r.jsx("div",{className:"fare-details-baggage-divider"}),r.jsxs("div",{className:"fare-details-baggage-info",children:[r.jsxs("div",{className:"fare-details-baggage-item",children:[r.jsx("span",{className:"fare-details-baggage-icon fare-details-icon-cabin","aria-hidden":"true"}),r.jsxs("div",{className:"fare-details-baggage-details",children:[r.jsx("div",{className:"fare-details-baggage-label",children:"Cabin:"}),r.jsx("div",{className:"fare-details-baggage-value",children:w})]})]}),r.jsxs("div",{className:"fare-details-baggage-item",children:[r.jsx("span",{className:"fare-details-baggage-icon fare-details-icon-checkin","aria-hidden":"true"}),r.jsxs("div",{className:"fare-details-baggage-details",children:[r.jsx("div",{className:"fare-details-baggage-label",children:"Check-in:"}),r.jsx("div",{className:"fare-details-baggage-value",children:m})]})]})]})]})]}),O?null:r.jsxs("div",{className:"fare-details-layover-container",children:[r.jsxs("div",{className:"fare-details-layover-timeline",children:[r.jsx("div",{className:"fare-details-layover-line"}),r.jsxs("div",{className:"fare-details-layover-badge",children:[r.jsx("span",{className:"fare-details-layover-type",children:"Change of planes"}),r.jsx("span",{className:"fare-details-layover-dot",children:"•"}),r.jsxs("span",{className:"fare-details-layover-duration",children:["Layover in ",D.destinationName||D.destination]})]}),r.jsx("div",{className:"fare-details-layover-line"})]}),r.jsx("div",{className:"fare-details-layover-baggage-spacer","aria-hidden":"true"})]})]},D.id||D.flightNumber||$)})})]})})},k=(P,D,$=!1)=>{const O=Number((D==null?void 0:D.stops)||0),j=O===0?"Non-stop":O===1?"1 stop":`${O} stops`;return r.jsxs("div",{className:"flight-card__combined-leg",children:[r.jsxs("div",{className:"flight-card__combined-leg-header",children:[r.jsxs("div",{className:"flight-card__combined-leg-title",children:[r.jsx(Rt.FaPlane,{className:`flight-card__combined-plane ${$?"flight-card__combined-plane--return":""}`}),P,":"]}),r.jsx("div",{className:"flight-card__combined-date-chip",children:(D==null?void 0:D.departureDate)||"--"})]}),r.jsx("div",{className:"flight-card__combined-leg-route",children:r.jsxs("span",{className:"flight-card__combined-leg-route-text",children:[(D==null?void 0:D.origin)||"N/A"," → ",(D==null?void 0:D.destination)||"N/A"]})}),r.jsxs("div",{className:"flight-card__combined-leg-body",children:[r.jsxs("div",{className:"flight-card__combined-airline-block",children:[e.airlineLogo?r.jsx("img",{src:e.airlineLogo,alt:e.airline,className:"flight-card__logo",onError:b=>{b.currentTarget.style.display="none"}}):r.jsx("div",{className:"flight-card__logo-fallback",children:(D==null?void 0:D.airlineCode)||e.airlineCode}),r.jsxs("div",{children:[r.jsx("div",{className:"flight-card__combined-airline-name",children:e.airline||(D==null?void 0:D.airlineCode)||"N/A"}),r.jsx("div",{className:"flight-card__combined-flight-meta",children:(D==null?void 0:D.flightNumber)||"N/A"})]})]}),r.jsxs("div",{className:"flight-card__combined-time-block",children:[r.jsxs("div",{className:"flight-card__combined-time-text",children:[(D==null?void 0:D.departureTime)||"--:--"," ",r.jsx(hn.BsArrowRight,{})," ",(D==null?void 0:D.arrivalTime)||"--:--"]}),r.jsx("div",{className:"flight-card__combined-date-text",children:D!=null&&D.arrivalDate?`Arrival: ${D.arrivalDate}`:""})]}),r.jsxs("div",{className:"flight-card__combined-duration-block",children:[r.jsx("div",{className:"flight-card__combined-duration-text",children:(D==null?void 0:D.duration)||"N/A"}),r.jsx("div",{className:"flight-card__combined-stop-text",children:j})]})]})]})},H=(P,D)=>{const $=Array.isArray(D==null?void 0:D.segments)?D.segments:[];return r.jsxs("div",{className:"flight-card__combined-segment",children:[r.jsx("div",{className:"flight-card__combined-segment-title",children:P}),$.length?$.map(O=>r.jsxs("div",{className:"flight-card__combined-segment-row",children:[r.jsxs("div",{className:"flight-card__combined-segment-route",children:[O.origin," → ",O.destination]}),r.jsxs("div",{className:"flight-card__combined-segment-time",children:[O.departureTime," - ",O.arrivalTime]}),r.jsxs("div",{className:"flight-card__combined-segment-meta",children:[O.flightNumber," | ",O.duration]})]},`${P}-${O.id}`)):r.jsx("div",{className:"flight-card__combined-segment-empty",children:"No segment details available"})]})};return r.jsx(hi,{card:e,disableBook:i,bookingFlightId:o,onBookFlight:a,renderFareDetails:p,children:({openFareDetails:P,openMoreFares:D,hasMoreFares:$})=>r.jsxs("div",{className:`flight-card flight-card--combined ${f==="expanded"?"flight-card--expanded":""}`,"data-ui-flight-card":"true","data-flight-id":(e==null?void 0:e.id)||"","data-flight-leg":(e==null?void 0:e.legType)||"","data-flight-airline":String((e==null?void 0:e.airline)||"").trim(),"data-flight-number":String((e==null?void 0:e.flightNumber)||"").trim(),"data-flight-departure-date":String((e==null?void 0:e.departureDate)||"").trim(),"data-flight-arrival-date":String((e==null?void 0:e.arrivalDate)||"").trim(),"data-flight-departure-time":String((e==null?void 0:e.departureTime)||"").trim(),"data-flight-arrival-time":String((e==null?void 0:e.arrivalTime)||"").trim(),"data-flight-price":String((e==null?void 0:e.price)??"").trim(),"data-flight-position":String(Number(t)+1),children:[r.jsxs("div",{className:"flight-card__inner flight-card__inner--combined",children:[r.jsxs("div",{className:"flight-card__combined-content",children:[k("Onward",(e==null?void 0:e.onwardLeg)||{}),k("Return",(e==null?void 0:e.returnLeg)||{},!0)]}),r.jsxs("div",{className:"flight-card__combined-total",children:[r.jsxs("div",{className:"flight-card__combined-total-price",children:[r.jsxs("div",{className:"flight-card__price",children:[g," ",S]}),s?r.jsxs("div",{className:"flight-card__recommended-tag",children:[r.jsx(xs.MdStar,{})," RECOMMENDED"]}):"",n?r.jsx("div",{className:"flight-card__cheapest-tag",children:"CHEAPEST"}):null,$?r.jsx("button",{type:"button",className:"flight-card__more-fares-btn","data-ui-action":"more-fares","data-flight-id":(e==null?void 0:e.id)||"",onClick:()=>D(),disabled:i,children:"+ More Fares"}):null]}),r.jsxs("div",{className:"flight-card__combined-total-actions",children:[r.jsx("button",{type:"button",className:`flight-card__book-btn ${c===e.id?"flight-card__book-btn--hover":""}`,"data-ui-action":"book-flight","data-voice-action":"book-flight","data-flight-id":e.id,"data-recommended":s?"true":"false","data-cheapest":n?"true":"false",onMouseEnter:()=>u(e.id),onMouseLeave:()=>u(null),onClick:()=>{i||a(e)},disabled:i||o===e.id,children:o===e.id?"Loading...":"Book"}),r.jsx("button",{type:"button",className:`flight-card__details-toggle flight-card__details-toggle--combined ${y?"flight-card__details-toggle--open":""}`,onClick:d,"aria-label":y?"Hide flight details":"Show flight details",children:y?r.jsx(Ot.IoChevronUp,{className:"flight-card__details-chevron","aria-hidden":"true"}):r.jsx(Ot.IoChevronDown,{className:"flight-card__details-chevron","aria-hidden":"true"})})]}),r.jsx("button",{type:"button",className:"flight-card__fare-type-btn","data-ui-action":"open-fare-details",onClick:P,"aria-controls":`fare-panel-${(e==null?void 0:e.id)||"flight"}`,disabled:i,children:r.jsx("span",{className:"flight-card__fare-type",children:"Fare Details"})})]})]}),y?r.jsxs("div",{className:"flight-card__combined-segments",children:[H("Onward Details",e==null?void 0:e.onwardLeg),H("Return Details",e==null?void 0:e.returnLeg)]}):null]})})}function $r(e){const t=String(e||"").trim();if(!t)return"--";const n=/^\d{2}-\d{2}-\d{4}$/.test(t)?new Date(t.split("-").reverse().join("-")):new Date(t);if(Number.isNaN(n.getTime()))return t;const s=n.getDate(),i=n.toLocaleString("en-US",{month:"short"}),o=s%10===1&&s%100!==11?"st":s%10===2&&s%100!==12?"nd":s%10===3&&s%100!==13?"rd":"th";return`${s}${o} ${i}`}function Ir(e,t,n){const s=js(n,e);if(s)return s;const i=String(t||"").trim();if(i)return i;const o=String(e||"").trim().toUpperCase();return o?`${o} Airport`:"Origin Airport"}function gn({cards:e=[],airlinesMap:t={},disableBook:n=!1,disableViewAll:s=!1,recommendationCriteria:i=null,onAvailabilitySuccess:o=()=>{},onAvailabilityReset:c=()=>{},sectionTitle:u="",cardVariant:a="oneway",sectionClassName:f="",selectionMode:y=!1,selectedId:d=null,onSelectCard:g=()=>{},peerSelectedPayloadIndex:S=null}){const[x,w]=T.useState(!1),[m,N]=T.useState(null),[h,A]=T.useState(""),[v,U]=T.useState(()=>({})),_=T.useMemo(()=>e.reduce((b,L)=>{const Y=Number(L==null?void 0:L.price);return Number.isFinite(Y)&&Y<b?Y:b},Number.POSITIVE_INFINITY),[e]),l=T.useMemo(()=>{if(!Number.isFinite(_))return null;const b=e.find(L=>Number(L==null?void 0:L.price)===_);return(b==null?void 0:b.id)||null},[e,_]),p=T.useMemo(()=>{if(!e.length)return null;const b=e.find(L=>gi(L,i));return(b==null?void 0:b.id)||null},[e,i]);T.useEffect(()=>{if(!x)return;const b=document.body.style.overflow,L=Y=>{Y.key==="Escape"&&w(!1)};return document.body.style.overflow="hidden",window.addEventListener("keydown",L),()=>{document.body.style.overflow=b,window.removeEventListener("keydown",L)}},[x]);const k=(b,L={})=>({airline:String((b==null?void 0:b.airline)||(L==null?void 0:L.airline)||"").trim()||"Unknown airline",flightNumber:String((b==null?void 0:b.flightNumber)||(L==null?void 0:L.flightNumber)||"").trim()||"N/A",departureTime:String((b==null?void 0:b.departureTime)||(L==null?void 0:L.departureTime)||"").trim()||"--:--",arrivalTime:String((b==null?void 0:b.arrivalTime)||(L==null?void 0:L.arrivalTime)||"").trim()||"--:--",stops:Number((b==null?void 0:b.stops)!==void 0&&(b==null?void 0:b.stops)!==null?b.stops:(L==null?void 0:L.stops)||0)}),H=b=>{if(n)return;x&&$();const L=bn(b==null?void 0:b.rmkey),Y=bn(b==null?void 0:b.rtrmkey),W=bi({flight:b,cardVariant:a,rmkeyList:L,rtRmkeyList:Y});if(!String((W==null?void 0:W.ukey)||"").trim()||!Array.isArray(W==null?void 0:W.rmkey)||W.rmkey.length===0||!String((W==null?void 0:W.styp)||"").trim()){A("Grip key missing for selected flight.");return}A("");const oe=a==="combined"||(b==null?void 0:b.onwardLeg)&&(b==null?void 0:b.returnLeg)||Number((b==null?void 0:b.tt)||0)===2?{type:"split_roundtrip",onward:k(b==null?void 0:b.onwardLeg,b),return:k(b==null?void 0:b.returnLeg,{})}:k(b);window.dispatchEvent(new CustomEvent("flight-booking:confirm-request",{detail:{flightId:String((b==null?void 0:b.id)||""),cardVariant:a,fareAvailabilityPayload:W,summary:oe}}))},P=e.slice(0,3),D=a==="onward"?fi:a==="return"?mi:a==="combined"?pi:di,$=()=>w(!1),O=b=>{U(L=>({...L,[b]:!L[b]}))},j=b=>{n||(g(b),x&&$())};return r.jsxs(r.Fragment,{children:[r.jsxs("div",{className:`flight-results__section ${f}`.trim(),children:[u?r.jsx("div",{className:"flight-results__section-title",children:u}):null,r.jsx("div",{className:`flight-results__cards-scroll ${x?"flight-results__cards-scroll--expanded":""}`.trim(),children:(x?e:P).map((b,L)=>{const Y=S!=null&&Number(b.payloadIndex)!==Number(S);return r.jsx(D,{card:b,cardPositionIndex:L,cheapestPrice:_,isCheapest:b.id===l,isRecommended:b.id===p,disableBook:n,bookingFlightId:null,hoveredBookId:m,onHoverChange:N,onBookClick:H,selectionMode:y,isSelected:y&&b.id===d,onSelectClick:j,dimmed:y&&Y,displayMode:"compact",isDetailsOpen:!!v[b.id],onToggleDetails:()=>O(b.id)},b.id)})}),!y&&h?r.jsx("div",{className:"flight-results__error-text",children:h}):null,e.length>3&&!x?r.jsx("button",{type:"button",className:"flight-results__toggle-btn","data-flight-leg":a==="onward"||a==="return"?a:void 0,disabled:s,onClick:()=>{s||w(!0)},children:`View All (${e.length})`}):null]}),x?r.jsx("div",{className:"flight-results__inline-expanded-footer",children:r.jsx("button",{type:"button",className:"flight-results__inline-expanded-close",onClick:$,"aria-label":"Collapse flight list",children:"View Less"})}):null]})}function bi({flight:e,cardVariant:t,rmkeyList:n,rtRmkeyList:s}){const i=Number((e==null?void 0:e.tt)||1),o=String((e==null?void 0:e.styp)||"").trim().toLowerCase(),c={ukey:String((e==null?void 0:e.ukey)||"").trim(),rmkey:n,rtrmkey:s,rukey:String((e==null?void 0:e.rukey)||"").trim(),apcoup:String((e==null?void 0:e.apcoup)??"0"),styp:String((e==null?void 0:e.styp)||"").trim()};if(i!==2)return c;if(o==="split")return t==="return"?{...c,ukey:String((e==null?void 0:e.ukey)||(e==null?void 0:e.rukey)||"").trim(),rmkey:n,apcoup:String((e==null?void 0:e.rtapcoup)??(e==null?void 0:e.apcoup)??"0")}:{...c,apcoup:String((e==null?void 0:e.apcoup)??"0")};if(o==="combined"){const u=[...n,...s].filter((a,f,y)=>a&&y.indexOf(a)===f);return{ukey:String((e==null?void 0:e.ukey)||"").trim(),rmkey:u,rukey:"",apcoup:String((e==null?void 0:e.apcoup)??"0"),rtapcoup:String((e==null?void 0:e.rtapcoup)??"0"),styp:String((e==null?void 0:e.styp)||"").trim()}}return c}function gi(e,t){if(!e||!t||![t.airlineCode,t.departureTime,t.origin,t.destination,t.departureDate,t.price].some(f=>f!==""&&f!==null&&f!==void 0))return!1;const s=t.airlineCode?String((e==null?void 0:e.airlineCode)||"").trim().toUpperCase()===String(t.airlineCode).trim().toUpperCase():!0,i=t.departureTime?Rr(e==null?void 0:e.departureTime)===Rr(t.departureTime):!0,o=t.origin?String((e==null?void 0:e.origin)||"").trim().toUpperCase()===String(t.origin).trim().toUpperCase():!0,c=t.destination?String((e==null?void 0:e.destination)||"").trim().toUpperCase()===String(t.destination).trim().toUpperCase():!0,u=t.departureDate?Mr(e==null?void 0:e.departureDate)===Mr(t.departureDate):!0,a=typeof t.price=="number"?Number.isFinite(Number(e==null?void 0:e.price))&&Math.abs(Number(e==null?void 0:e.price)-t.price)<.01:!0;return s&&i&&o&&c&&u&&a}function Rr(e){const t=String(e||"").trim();if(!t)return"";const n=t.match(/^([0-2]?\d):([0-5]\d)$/);return n?`${String(Number(n[1])).padStart(2,"0")}:${n[2]}`:""}function Mr(e){const t=String(e||"").trim();if(!t)return"";if(/^\d{4}-\d{2}-\d{2}$/.test(t))return t;if(/^\d{2}-\d{2}-\d{4}$/.test(t)){const[s,i,o]=t.split("-");return`${o}-${i}-${s}`}const n=new Date(t);return Number.isNaN(n.getTime())?"":n.toISOString().slice(0,10)}function yi({payload:e=[],airlinesMap:t={},flightImagesBaseUrl:n="",recommendationCriteria:s=null,onAvailabilitySuccess:i,onAvailabilityReset:o,disableBook:c}){const u=T.useMemo(()=>e.flatMap((a,f)=>(Array.isArray(a==null?void 0:a.trps)?a.trps:[]).map((d,g)=>{var H,P,D,$,O;const S=Ss(a==null?void 0:a.mappings),x=(H=d==null?void 0:d.deps)==null?void 0:H[0],w=Array.isArray(x==null?void 0:x.seg)?x.seg:[],m=w[0]||{},N=w[w.length-1]||m,h=((D=(P=d==null?void 0:d.prc)==null?void 0:P[0])==null?void 0:D.pr)||{},A=(h==null?void 0:h.cbn)||(h==null?void 0:h.cabin)||(h==null?void 0:h.cabinBag)||"",v=(h==null?void 0:h.checkin)||(h==null?void 0:h.checkIn)||(h==null?void 0:h.checkinBag)||"",U=String((h==null?void 0:h.fareType)||(h==null?void 0:h.ft)||(h==null?void 0:h.refundable)||(h==null?void 0:h.rfnd)||"").trim(),_=U||(Number((h==null?void 0:h.rf)||0)===1?"Refundable":"Published"),l=String((m==null?void 0:m.ma)||(m==null?void 0:m.ac)||"N/A").toUpperCase(),p=t[l]||(m==null?void 0:m.airlineName)||l,k=n.endsWith("/")?n:`${n}/`;return{id:`${(a==null?void 0:a.ukey)||f}-oneway-${g}`,ukey:(a==null?void 0:a.ukey)||"",rmkey:(h==null?void 0:h.rmkey)||[],apcoup:(h==null?void 0:h.apcoup)??(a==null?void 0:a.apcoup)??"0",styp:(a==null?void 0:a.styp)||"",tt:Number((a==null?void 0:a.tt)||1),legType:"onward",isCombinedRoundTrip:!1,airline:p,airlineCode:l,flightNumber:(m==null?void 0:m.fn)||"N/A",airlineLogo:n?`${k}${l}.png`:"",origin:(m==null?void 0:m.da)||"N/A",destination:(N==null?void 0:N.ar)||"N/A",departureTime:String((m==null?void 0:m.dt)||"").trim()||"--:--",arrivalTime:String((N==null?void 0:N.at)||"").trim()||"--:--",departureDate:(m==null?void 0:m.dd)||"",arrivalDate:(N==null?void 0:N.ad)||"",duration:(x==null?void 0:x.tdur)||(m==null?void 0:m.fdur)||"N/A",stops:Math.max(w.length-1,0),price:(h==null?void 0:h.tf)??"N/A",departureAirportName:(m==null?void 0:m.dap)||(m==null?void 0:m.dnam)||(m==null?void 0:m.dnm)||`${(m==null?void 0:m.da)||"Origin"} Airport`,arrivalAirportName:(N==null?void 0:N.aap)||(N==null?void 0:N.anam)||(N==null?void 0:N.anm)||`${(N==null?void 0:N.ar)||"Destination"} Airport`,travelClass:(m==null?void 0:m.cc)||(m==null?void 0:m.cls)||(a==null?void 0:a.cls)||"Economy",cabinBaggage:String(A||"7 Kg per adult"),checkInBaggage:String(v||"15 Kg (1 Piece only) per adult"),fareType:_,airportMappings:S,segments:w.map((j,b)=>{const L=String((j==null?void 0:j.ma)||(j==null?void 0:j.ac)||l).toUpperCase();return{id:`${(a==null?void 0:a.ukey)||f}-${g}-seg-${b}`,airlineCode:L,airline:t[L]||(j==null?void 0:j.airlineName)||L,airlineLogo:n?`${k}${L}.png`:"",origin:(j==null?void 0:j.da)||"",destination:(j==null?void 0:j.ar)||"",departureAirportName:(j==null?void 0:j.dap)||(j==null?void 0:j.dnam)||(j==null?void 0:j.dnm)||`${(j==null?void 0:j.da)||"Origin"} Airport`,arrivalAirportName:(j==null?void 0:j.aap)||(j==null?void 0:j.anam)||(j==null?void 0:j.anm)||`${(j==null?void 0:j.ar)||"Destination"} Airport`,departureDate:(j==null?void 0:j.dd)||"",arrivalDate:(j==null?void 0:j.ad)||"",departureTime:(j==null?void 0:j.dt)||"",arrivalTime:(j==null?void 0:j.at)||"",duration:(j==null?void 0:j.fdur)||"",flightNumber:(j==null?void 0:j.fn)||"",airportMappings:S,layoverDuration:(j==null?void 0:j.ldur)||""}}),currency:String((a==null?void 0:a.cur)||(d==null?void 0:d.cur)||"INR").trim().toUpperCase()||"INR",adt:Number((a==null?void 0:a.adt)??1),chd:Number((a==null?void 0:a.chd)??0),inf:Number((a==null?void 0:a.inf)??0),paxPrices:((O=($=d==null?void 0:d.prc)==null?void 0:$[0])==null?void 0:O.paxpr)||[],baseFare:(h==null?void 0:h.bf)||0,taxAmount:Number((h==null?void 0:h.tf)||0)-Number((h==null?void 0:h.bf)||0),discount:(h==null?void 0:h.madisc)||0,passportRequired:String((a==null?void 0:a.ps)||"").toUpperCase()==="Y"||String((a==null?void 0:a.sectyp)||"").toLowerCase()==="int",payloadIndex:f,moreFares:Array.isArray(d==null?void 0:d.prc)?d.prc:[]}})),[e,t,n]);return r.jsx(gn,{cards:u,airlinesMap:t,disableBook:c,disableViewAll:c,recommendationCriteria:s,onAvailabilitySuccess:i,onAvailabilityReset:o,cardVariant:"oneway"})}function Br({trip:e,tripIndex:t,legType:n,item:s,payloadIndex:i,airlinesMap:o,flightImagesBaseUrl:c}){var v,U,_,l,p;const u=Ss(s==null?void 0:s.mappings),a=(v=e==null?void 0:e.deps)==null?void 0:v[0],f=Array.isArray(a==null?void 0:a.seg)?a.seg:[],y=f[0]||{},d=f[f.length-1]||y,g=((_=(U=e==null?void 0:e.prc)==null?void 0:U[0])==null?void 0:_.pr)||{},S=(g==null?void 0:g.cbn)||(g==null?void 0:g.cabin)||(g==null?void 0:g.cabinBag)||"",x=(g==null?void 0:g.checkin)||(g==null?void 0:g.checkIn)||(g==null?void 0:g.checkinBag)||"",w=String((g==null?void 0:g.fareType)||(g==null?void 0:g.ft)||(g==null?void 0:g.refundable)||(g==null?void 0:g.rfnd)||"").trim(),m=w||(Number((g==null?void 0:g.rf)||0)===1?"Refundable":"Published"),N=String((y==null?void 0:y.ma)||(y==null?void 0:y.ac)||"N/A").toUpperCase(),h=o[N]||(y==null?void 0:y.airlineName)||N,A=c.endsWith("/")?c:`${c}/`;return{id:`${(s==null?void 0:s.ukey)||i}-${n}-${t}`,ukey:n==="return"?(s==null?void 0:s.rukey)||(s==null?void 0:s.ukey)||"":(s==null?void 0:s.ukey)||"",rukey:(s==null?void 0:s.rukey)||"",rmkey:(g==null?void 0:g.rmkey)||[],rtrmkey:(g==null?void 0:g.rtrmkey)||[],apcoup:(g==null?void 0:g.apcoup)??(s==null?void 0:s.apcoup)??"0",rtapcoup:(g==null?void 0:g.rtcoup)??(s==null?void 0:s.rtapcoup)??"0",styp:(s==null?void 0:s.styp)||"",tt:Number((s==null?void 0:s.tt)||1),legType:n,isCombinedRoundTrip:!1,airline:h,airlineCode:N,flightNumber:(y==null?void 0:y.fn)||"N/A",airlineLogo:c?`${A}${N}.png`:"",origin:(y==null?void 0:y.da)||"N/A",destination:(d==null?void 0:d.ar)||"N/A",departureTime:String((y==null?void 0:y.dt)||"").trim()||"--:--",arrivalTime:String((d==null?void 0:d.at)||"").trim()||"--:--",departureDate:(y==null?void 0:y.dd)||"",arrivalDate:(d==null?void 0:d.ad)||"",duration:(a==null?void 0:a.tdur)||(y==null?void 0:y.fdur)||"N/A",stops:Math.max(f.length-1,0),price:(g==null?void 0:g.tf)??"N/A",departureAirportName:(y==null?void 0:y.dap)||(y==null?void 0:y.dnam)||(y==null?void 0:y.dnm)||`${(y==null?void 0:y.da)||"Origin"} Airport`,arrivalAirportName:(d==null?void 0:d.aap)||(d==null?void 0:d.anam)||(d==null?void 0:d.anm)||`${(d==null?void 0:d.ar)||"Destination"} Airport`,travelClass:(y==null?void 0:y.cc)||(y==null?void 0:y.cls)||(s==null?void 0:s.cls)||"Economy",cabinBaggage:String(S||"7 Kg per adult"),checkInBaggage:String(x||"15 Kg (1 Piece only) per adult"),fareType:m,airportMappings:u,segments:f.map((k,H)=>{const P=String((k==null?void 0:k.ma)||(k==null?void 0:k.ac)||N).toUpperCase();return{id:`${(s==null?void 0:s.ukey)||i}-${n}-${t}-seg-${H}`,airlineCode:P,airline:o[P]||(k==null?void 0:k.airlineName)||P,airlineLogo:c?`${A}${P}.png`:"",origin:(k==null?void 0:k.da)||"",destination:(k==null?void 0:k.ar)||"",departureAirportName:(k==null?void 0:k.dap)||(k==null?void 0:k.dnam)||(k==null?void 0:k.dnm)||`${(k==null?void 0:k.da)||"Origin"} Airport`,arrivalAirportName:(k==null?void 0:k.aap)||(k==null?void 0:k.anam)||(k==null?void 0:k.anm)||`${(k==null?void 0:k.ar)||"Destination"} Airport`,departureDate:(k==null?void 0:k.dd)||"",arrivalDate:(k==null?void 0:k.ad)||"",departureTime:(k==null?void 0:k.dt)||"",arrivalTime:(k==null?void 0:k.at)||"",duration:(k==null?void 0:k.fdur)||"",flightNumber:(k==null?void 0:k.fn)||"",airportMappings:u,layoverDuration:(k==null?void 0:k.ldur)||""}}),currency:String((s==null?void 0:s.cur)||(e==null?void 0:e.cur)||"INR").trim().toUpperCase()||"INR",adt:Number((s==null?void 0:s.adt)??1),chd:Number((s==null?void 0:s.chd)??0),inf:Number((s==null?void 0:s.inf)??0),paxPrices:((p=(l=e==null?void 0:e.prc)==null?void 0:l[0])==null?void 0:p.paxpr)||[],baseFare:(g==null?void 0:g.bf)||0,taxAmount:Number((g==null?void 0:g.tf)||0)-Number((g==null?void 0:g.bf)||0),discount:(g==null?void 0:g.madisc)||0,moreFares:Array.isArray(e==null?void 0:e.prc)?e.prc:[],payloadIndex:i}}function Ni({payload:e=[],airlinesMap:t={},flightImagesBaseUrl:n="",recommendationCriteria:s=null,onAvailabilitySuccess:i,onAvailabilityReset:o,disableBook:c}){const[u,a]=T.useState(null),[f,y]=T.useState(null),[d,g]=T.useState(""),[S,x]=T.useState(!1),w=T.useMemo(()=>e.flatMap((P,D)=>(Array.isArray(P==null?void 0:P.trps)?P.trps:[]).map((O,j)=>Br({trip:O,tripIndex:j,legType:"onward",item:P,payloadIndex:D,airlinesMap:t,flightImagesBaseUrl:n}))),[e,t,n]),m=T.useMemo(()=>e.flatMap((P,D)=>(Array.isArray(P==null?void 0:P.rttrps)?P.rttrps:[]).map((O,j)=>Br({trip:O,tripIndex:j,legType:"return",item:P,payloadIndex:D,airlinesMap:t,flightImagesBaseUrl:n}))),[e,t,n]),N=P=>{a(P),y(D=>D&&Number(D.payloadIndex)!==Number(P.payloadIndex)?null:D),g("")},h=P=>{y(P),a(D=>D&&Number(D.payloadIndex)!==Number(P.payloadIndex)?null:D),g("")},A=()=>{if(c)return;const P=si(u,f);if(!P){g("Select an onward and a return flight from the same result group (matching row).");return}if(!String(P.ukey||"").trim()||!Array.isArray(P.rmkey)||P.rmkey.length===0||!String(P.styp||"").trim()){g("Grip key missing for selected flights.");return}g(""),window.dispatchEvent(new CustomEvent("flight-booking:confirm-request",{detail:{fareAvailabilityPayload:P,summary:{type:"split_roundtrip",onward:u?{airline:String((u==null?void 0:u.airline)||"").trim(),flightNumber:String((u==null?void 0:u.flightNumber)||"").trim(),departureTime:String((u==null?void 0:u.departureTime)||"").trim(),arrivalTime:String((u==null?void 0:u.arrivalTime)||"").trim(),stops:Number((u==null?void 0:u.stops)||0)}:null,return:f?{airline:String((f==null?void 0:f.airline)||"").trim(),flightNumber:String((f==null?void 0:f.flightNumber)||"").trim(),departureTime:String((f==null?void 0:f.departureTime)||"").trim(),arrivalTime:String((f==null?void 0:f.arrivalTime)||"").trim(),stops:Number((f==null?void 0:f.stops)||0)}:null}}}))},v=c||!u||!f,U=!!(u||f),_=Number(u==null?void 0:u.price),l=Number(f==null?void 0:f.price),p=Number.isFinite(_)&&Number.isFinite(l)?_+l:null,k=_n((u==null?void 0:u.currency)||(f==null?void 0:f.currency)||"INR"),H=P=>Number.isFinite(P)?new Intl.NumberFormat("en-IN",{maximumFractionDigits:0}).format(P):"--";return r.jsxs("div",{children:[r.jsx(gn,{cards:w,airlinesMap:t,disableBook:c,disableViewAll:c,recommendationCriteria:s,onAvailabilitySuccess:i,onAvailabilityReset:o,sectionTitle:"Round Trip - Onward",sectionClassName:"flight-results__section--split",cardVariant:"onward",selectionMode:!0,selectedId:(u==null?void 0:u.id)||null,onSelectCard:N,peerSelectedPayloadIndex:f!=null?f.payloadIndex:null}),r.jsx(gn,{cards:m,airlinesMap:t,disableBook:c,disableViewAll:c,recommendationCriteria:s,onAvailabilitySuccess:i,onAvailabilityReset:o,sectionTitle:"Round Trip - Return",sectionClassName:"flight-results__section--split",cardVariant:"return",selectionMode:!0,selectedId:(f==null?void 0:f.id)||null,onSelectCard:h,peerSelectedPayloadIndex:u!=null?u.payloadIndex:null}),U?r.jsxs("div",{className:"flight-split__sticky-wrap",children:[r.jsxs("div",{className:"flight-split__book-bar",children:[r.jsxs("div",{className:"flight-split__selection-card",children:[r.jsx("div",{className:"flight-split__leg-label",children:"Onward"}),r.jsx("div",{className:"flight-split__selection-route",children:u?`${u.origin} -> ${u.destination}`:"--"}),r.jsx("div",{className:"flight-split__selection-time",children:u?`${u.departureTime} -> ${u.arrivalTime}`:"Select onward flight"}),r.jsx("div",{className:"flight-split__selection-fare",children:u?`${k} ${H(_)}`:`${k} --`})]}),r.jsxs("div",{className:"flight-split__selection-card",children:[r.jsx("div",{className:"flight-split__leg-label",children:"Return"}),r.jsx("div",{className:"flight-split__selection-route",children:f?`${f.origin} -> ${f.destination}`:"--"}),r.jsx("div",{className:"flight-split__selection-time",children:f?`${f.departureTime} -> ${f.arrivalTime}`:"Select return flight"}),r.jsx("div",{className:"flight-split__selection-fare",children:f?`${k} ${H(l)}`:`${k} --`})]}),r.jsxs("div",{className:"flight-split__total-card",children:[r.jsxs("div",{className:"flight-split__total-amount",children:[k," ",H(p)]}),r.jsx("div",{className:"flight-split__book-hint",children:"Select one onward and one return from the same row, then continue."}),r.jsx("button",{type:"button",className:`flight-split__book-btn ${v?"flight-split__book-btn--disabled":""}`,"data-voice-action":"book-split-flight",disabled:v,onClick:A,children:"Book Now"})]})]}),d?r.jsx("div",{className:"flight-results__error-text",children:d}):null]}):null]})}function _i({payload:e=[],airlinesMap:t={},flightImagesBaseUrl:n="",recommendationCriteria:s=null,onAvailabilitySuccess:i,onAvailabilityReset:o,disableBook:c}){const u=y=>Array.isArray(y)?y:y&&typeof y=="object"?[y]:[],a=(y,d={})=>String((y==null?void 0:y.styp)||(d==null?void 0:d.styp)||"").trim().toLowerCase(),f=T.useMemo(()=>{const y=(d=[],g="")=>{const S=d[0]||{},x=d[d.length-1]||S,w=n.endsWith("/")?n:`${n}/`;return{airlineCode:String((S==null?void 0:S.ma)||(S==null?void 0:S.ac)||g||"N/A").toUpperCase(),airline:t[String((S==null?void 0:S.ma)||(S==null?void 0:S.ac)||g||"N/A").toUpperCase()]||String((S==null?void 0:S.ma)||(S==null?void 0:S.ac)||g||"N/A").toUpperCase(),flightNumber:(S==null?void 0:S.fn)||"N/A",origin:(S==null?void 0:S.da)||"N/A",destination:(x==null?void 0:x.ar)||"N/A",departureTime:String((S==null?void 0:S.dt)||"").trim()||"--:--",arrivalTime:String((x==null?void 0:x.at)||"").trim()||"--:--",departureDate:(S==null?void 0:S.dd)||"",arrivalDate:(x==null?void 0:x.ad)||"",departureAirportName:(S==null?void 0:S.dap)||(S==null?void 0:S.dnam)||(S==null?void 0:S.dnm)||`${(S==null?void 0:S.da)||"Origin"} Airport`,arrivalAirportName:(x==null?void 0:x.aap)||(x==null?void 0:x.anam)||(x==null?void 0:x.anm)||`${(x==null?void 0:x.ar)||"Destination"} Airport`,duration:(S==null?void 0:S.fdur)||"N/A",stops:Math.max(d.length-1,0),segments:d.map((m,N)=>({id:`${(m==null?void 0:m.ma)||"XX"}-${(m==null?void 0:m.fn)||N}`,airlineCode:String((m==null?void 0:m.ma)||(m==null?void 0:m.ac)||g||"N/A").toUpperCase(),airline:t[String((m==null?void 0:m.ma)||(m==null?void 0:m.ac)||g||"N/A").toUpperCase()]||String((m==null?void 0:m.ma)||(m==null?void 0:m.ac)||g||"N/A").toUpperCase(),airlineLogo:n?`${w}${String((m==null?void 0:m.ma)||(m==null?void 0:m.ac)||g||"N/A").toUpperCase()}.png`:"",flightNumber:(m==null?void 0:m.fn)||"N/A",origin:(m==null?void 0:m.da)||"N/A",destination:(m==null?void 0:m.ar)||"N/A",departureTime:String((m==null?void 0:m.dt)||"").trim()||"--:--",arrivalTime:String((m==null?void 0:m.at)||"").trim()||"--:--",departureDate:(m==null?void 0:m.dd)||"",arrivalDate:(m==null?void 0:m.ad)||"",departureAirportName:(m==null?void 0:m.dap)||(m==null?void 0:m.dnam)||(m==null?void 0:m.dnm)||`${(m==null?void 0:m.da)||"Origin"} Airport`,arrivalAirportName:(m==null?void 0:m.aap)||(m==null?void 0:m.anam)||(m==null?void 0:m.anm)||`${(m==null?void 0:m.ar)||"Destination"} Airport`,duration:(m==null?void 0:m.fdur)||"N/A",layoverDuration:(m==null?void 0:m.ldur)||""}))}};return e.flatMap((d,g)=>{const S=u(d==null?void 0:d.trps),x=u(d==null?void 0:d.rttrps);return S.map((w,m)=>{var B,Z,se,re,ye,Ae,Ie,Ee,De,ke,Ne,ve,F,ue,_e,Fe,He;const N=(B=w==null?void 0:w.deps)==null?void 0:B[0],h=Array.isArray(N==null?void 0:N.seg)?N.seg:[],A=Array.isArray((se=(Z=w==null?void 0:w.arrs)==null?void 0:Z[0])==null?void 0:se.seg)?w.arrs[0].seg:Array.isArray((re=w==null?void 0:w.arrs)==null?void 0:re.seg)?w.arrs.seg:[],v=Array.isArray((Ie=(Ae=(ye=x==null?void 0:x[m])==null?void 0:ye.deps)==null?void 0:Ae[0])==null?void 0:Ie.seg)?x[m].deps[0].seg:[],U=A.length?A:v,_=((De=(Ee=w==null?void 0:w.prc)==null?void 0:Ee[0])==null?void 0:De.pr)||(w==null?void 0:w.pr)||{},l=((ve=(Ne=(ke=x==null?void 0:x[m])==null?void 0:ke.prc)==null?void 0:Ne[0])==null?void 0:ve.pr)||((F=x==null?void 0:x[m])==null?void 0:F.pr)||{},p=(_==null?void 0:_.cbn)||(_==null?void 0:_.cabin)||(_==null?void 0:_.cabinBag)||(l==null?void 0:l.cbn)||(l==null?void 0:l.cabin)||(l==null?void 0:l.cabinBag)||"",k=(_==null?void 0:_.checkin)||(_==null?void 0:_.checkIn)||(_==null?void 0:_.checkinBag)||(l==null?void 0:l.checkin)||(l==null?void 0:l.checkIn)||(l==null?void 0:l.checkinBag)||"",H=String((_==null?void 0:_.fareType)||(_==null?void 0:_.ft)||(_==null?void 0:_.refundable)||(_==null?void 0:_.rfnd)||"").trim(),P=H||(Number((_==null?void 0:_.rf)||0)===1?"Refundable":"Published"),D=Number(_==null?void 0:_.tf),$=Number(l==null?void 0:l.tf),O=Number.isFinite(D)?D:Number.isFinite($)?$:"N/A",j=y(h),b=y(U),L=t[j.airlineCode]||j.airlineCode||"N/A",Y=n.endsWith("/")?n:`${n}/`,W=a(d,_),te=(l==null?void 0:l.rmkey)||(_==null?void 0:_.rtrmkey)||[],oe=(l==null?void 0:l.apcoup)??(_==null?void 0:_.rtcoup)??(d==null?void 0:d.rtapcoup)??"0";return W!=="combined"?null:{id:`${(d==null?void 0:d.ukey)||g}-round-combined-${m}`,ukey:(d==null?void 0:d.ukey)||"",rukey:(d==null?void 0:d.rukey)||"",rmkey:(_==null?void 0:_.rmkey)||[],rtrmkey:te,apcoup:(_==null?void 0:_.apcoup)??(d==null?void 0:d.apcoup)??"0",rtapcoup:oe,styp:(d==null?void 0:d.styp)||"",tt:Number((d==null?void 0:d.tt)||1),legType:"round-trip",isCombinedRoundTrip:!0,airline:L,airlineCode:j.airlineCode,flightNumber:j.flightNumber,airlineLogo:n?`${Y}${j.airlineCode}.png`:"",origin:j.origin,destination:j.destination,departureTime:j.departureTime,arrivalTime:j.arrivalTime,duration:j.duration,stops:j.stops,price:O,currency:String((d==null?void 0:d.cur)||(w==null?void 0:w.cur)||"INR").trim().toUpperCase()||"INR",adt:Number((d==null?void 0:d.adt)??1),chd:Number((d==null?void 0:d.chd)??0),inf:Number((d==null?void 0:d.inf)??0),paxPrices:((_e=(ue=w==null?void 0:w.prc)==null?void 0:ue[0])==null?void 0:_e.paxpr)||[],baseFare:(_==null?void 0:_.bf)||0,taxAmount:Number((_==null?void 0:_.tf)||0)-Number((_==null?void 0:_.bf)||0),discount:(_==null?void 0:_.madisc)||0,travelClass:((Fe=h==null?void 0:h[0])==null?void 0:Fe.cc)||((He=h==null?void 0:h[0])==null?void 0:He.cls)||(d==null?void 0:d.cls)||"Economy",cabinBaggage:String(p||"7 Kg per adult"),checkInBaggage:String(k||"15 Kg (1 Piece only) per adult"),fareType:P,passportRequired:String((d==null?void 0:d.ps)||"").toUpperCase()==="Y"||String((d==null?void 0:d.sectyp)||"").toLowerCase()==="int",onwardLeg:j,returnLeg:b,moreFares:Array.isArray(w==null?void 0:w.prc)?w.prc:[]}}).filter(Boolean)})},[e,t,n]);return r.jsx(gn,{cards:f,airlinesMap:t,disableBook:c,disableViewAll:c,recommendationCriteria:s,onAvailabilitySuccess:i,onAvailabilityReset:o,sectionTitle:"Round Trip (Combined)",cardVariant:"combined"})}const Cn=(e,t=!1)=>{const n=e.toLowerCase().trim(),s=null,i={stops:[],rtStops:[],price:null,airlines:[],rtAirlines:[],depTimes:[],arrTimes:[],rDepTimes:[],rArrTimes:[],clearAll:!1,sortBy:null,layover:[],rLayover:[],layoverDuration:null,rLayoverDuration:null};return Si(n,i),i.clearAll||(ji(n,i),Ci(s,n,i,t),Ai(s,n,i),ki(s,e,n,i,t),Ti(s,n,i,t),xi(n,i,t),wi(n,i),vi(e,n,i,t)),i},xi=(e,t,n)=>{const s=n&&/\b(return|returning|inbound|back|roundtrip|round trip|rt)\b/i.test(e),i=/\b(onward|outbound|oneway|one-way|one way|outward)\b/i.test(e),o=s&&!i?"rLayover":"layover",c=s&&!i?"rLayoverDuration":"layoverDuration",u=new Set(["for","and","the","all","any","with","via","lay","way","one","two","rt"]);(e.match(/\b(?:via|layover|stopover)\s+(?:(?:in|at)\s+)?([a-z]{3})\b/gi)||[]).forEach(_=>{const l=String(_.split(/\s+/).pop()||"").trim().toUpperCase();l&&/^[A-Z]{3}$/.test(l)&&!u.has(l.toLowerCase())&&!t[o].includes(l)&&t[o].push(l)});const f={hyderabad:"HYD",bangalore:"BLR",bengaluru:"BLR",delhi:"DEL",mumbai:"BOM",chennai:"MAA",kolkata:"CCU",ahmedabad:"AMD",cochin:"COK",kochi:"COK",goa:"GOI",pune:"PNQ"},y=/\b(return|returning|inbound|back|roundtrip|round trip|rt)\b/i,d=/\b(onward|outbound|oneway|one-way|one way|outward)\b/i,g=/\b(?:and|,|;)\b/i,S=/\b(layover|stopover|via)\b/i.test(e),x=n&&/\bboth\b/i.test(e)&&/\b(onward|outbound|oneway|one-way|one way|outward)\b/i.test(e)&&/\b(return|returning|inbound|back|roundtrip|round trip|rt)\b/i.test(e),w=String(e||"").split(g).map(_=>_.trim()).filter(Boolean),m=_=>{const l=String(_||"").toLowerCase().replace(/\s+airport\b/g,"").trim();return l?/^[a-z]{3}$/.test(l)?u.has(l)?"":l.toUpperCase():f[l]||"":""},N=_=>{const l=[],p=P=>{const D=m(P);D&&!l.includes(D)&&l.push(D)};return(_.match(/\b(?:via|layover|stopover|stop)\s+(?:in|at|with)?\s*([a-z][a-z .'-]{1,30}?)(?=\s+(?:for|under|over|between|onward|outbound|oneway|return|roundtrip|inbound|back)\b|[,.!?]|$)/gi)||[]).forEach(P=>{const D=P.replace(/\b(?:via|layover|stopover|stop)\s+(?:in|at|with)?\s*/i,"");p(D)}),(_.match(/\b([a-z][a-z .'-]{1,30}?)\s+(?:in|at|with)\s+(?:layover|stopover)\b/gi)||[]).forEach(P=>{const D=P.replace(/\s+(?:in|at|with)\s+(?:layover|stopover)\b/i,"");p(D)}),S&&(_.match(/\b([a-z][a-z .'-]{1,30}?)\s+(?:in|for)\s+(?:onward|outbound|oneway|one-way|one way|outward|return|returning|roundtrip|round trip|inbound|back)\b/gi)||[]).forEach(D=>{const $=D.replace(/\s+(?:in|for)\s+(?:onward|outbound|oneway|one-way|one way|outward|return|returning|roundtrip|round trip|inbound|back)\b/i,"");p($)}),S&&(_.match(/\b([a-z]{3})\b/gi)||[]).forEach(D=>{p(D)}),l};x?N(e).forEach(_=>{t.layover.includes(_)||t.layover.push(_),t.rLayover.includes(_)||t.rLayover.push(_)}):n&&s&&i&&w.length>1?w.forEach(_=>{const l=y.test(_),p=d.test(_),k=l&&p?["layover","rLayover"]:l?["rLayover"]:["layover"];N(_).forEach(P=>{k.forEach(D=>{t[D].includes(P)||t[D].push(P)})})}):N(e).forEach(_=>{t[o].includes(_)||t[o].push(_)});const h=e.match(/\blayover(?:\s+duration)?(?:\s+with)?\s+(?:under|below|less than|max(?:imum)?)\s+(\d+)\s*(h|hr|hrs|hour|hours|m|min|mins|minute|minutes)?\b/i),A=e.match(/\blayover(?:\s+duration)?(?:\s+with)?\s+(?:over|above|more than|min(?:imum)?)\s+(\d+)\s*(h|hr|hrs|hour|hours|m|min|mins|minute|minutes)?\b/i),v=e.match(/\blayover(?:\s+duration)?(?:\s+with)?\s+(?:between|from)\s+(\d+)\s*(h|hr|hrs|hour|hours|m|min|mins|minute|minutes)?\s+(?:and|to)\s+(\d+)\s*(h|hr|hrs|hour|hours|m|min|mins|minute|minutes)?\b/i),U=(_,l)=>{const p=Number(_);if(!Number.isFinite(p))return null;const k=String(l||"m").toLowerCase();return/h|hr|hour/.test(k)?Math.round(p*60):Math.round(p)};if(v){const _=U(v[1],v[2]),l=U(v[3],v[4]);if(_!==null&&l!==null){const p={min:Math.min(_,l),max:Math.max(_,l)};x?(t.layoverDuration=p,t.rLayoverDuration=p):t[c]=p}return}if(h){const _=U(h[1],h[2]);if(_!==null){const l={max:_};x?(t.layoverDuration=l,t.rLayoverDuration=l):t[c]=l}return}if(A){const _=U(A[1],A[2]);if(_!==null){const l={min:_};x?(t.layoverDuration=l,t.rLayoverDuration=l):t[c]=l}}},wi=(e,t)=>{/\b(refundable only|only refundable|refundable flights?)\b/i.test(e)&&(t.refundable=!0),/\b(non refundable|non-refundable)\b/i.test(e)&&(t.refundable=!1);const n=e.match(/\b(?:duration|journey|flight time)\s*(?:under|below|less than|max(?:imum)?)\s*(\d+)\s*(h|hr|hrs|hour|hours|m|min|mins|minute|minutes)\b/i);if(n){const s=Number(n[1]),i=String(n[2]||"").toLowerCase();Number.isFinite(s)&&(t.maxDuration=/h|hr|hour/.test(i)?Math.round(s*60):Math.round(s))}},vi=(e,t,n,s)=>{if(!s)return;const i=/\b(return|returning|inbound|back|roundtrip|round trip|rt)\b/i.test(t),o=/\b(onward|outbound|oneway|one-way|one way|outward)\b/i.test(t);if(!i||!o)return;const c=/\b(?:and|,|;)\b/i,u=t.split(c).map(h=>h.trim()).filter(Boolean),a=e.split(c).map(h=>h.trim()).filter(Boolean);if(!u.length)return;const f=h=>/\b(return|returning|inbound|back|roundtrip|round trip|rt)\b/i.test(h)?"return":/\b(onward|outbound|oneway|one-way|one way|outward)\b/i.test(h)?"onward":null,y={nonStop:["non stop","nonstop","non-stop","direct","no stops","zero stops"],oneStop:["one stop","1 stop","1-stop","single stop","1stop"],twoPlus:["two stop","two stops","2 stop","2 stops","2-stop","2+ stops","multiple stops","many stops","2stop"]},d=[{pattern:/\bbefore\s*6\s*am\b/i,slot:"0-6"},{pattern:/\b6\s*am\s*(?:to|-)\s*12\s*pm\b/i,slot:"6-12"},{pattern:/\b12\s*pm\s*(?:to|-)\s*6\s*pm\b/i,slot:"12-18"},{pattern:/\bafter\s*6\s*pm\b/i,slot:"18-24"},{pattern:/\bearly morning\b/i,slot:"0-6"},{pattern:/\bmorning\b/i,slot:"6-12"},{pattern:/\bafternoon\b/i,slot:"12-18"},{pattern:/\bevening|night|late night\b/i,slot:"18-24"}],g=Nn,S={},x=new Set;g.forEach(h=>{const A=String((h==null?void 0:h.code)||"").toUpperCase().trim(),v=String((h==null?void 0:h.english)||"").toLowerCase().trim();A&&x.add(A),v&&A&&(S[v]=A)});const w=u.some(h=>/\bstop|stops|nonstop|non-stop|direct\b/i.test(h)&&f(h)),m=u.some(h=>/\bairline|airlines|flight|flights\b/i.test(h)&&f(h)),N=u.some(h=>/\bdeparture|depart|arrival|arrive|am|pm|morning|afternoon|evening|night|before|after\b/i.test(h)&&f(h));w&&(n.stops=[],n.rtStops=[]),m&&(n.airlines=[],n.rtAirlines=[]),N&&(n.depTimes=[],n.arrTimes=[],n.rDepTimes=[],n.rArrTimes=[]),u.forEach((h,A)=>{const v=f(h);if(!v)return;const U=a[A]||h,_=v==="return"?n.rtStops:n.stops,l=O=>{_.includes(O)||_.push(O)};y.nonStop.some(O=>h.includes(O))&&l(0),y.oneStop.some(O=>h.includes(O))&&l(1),y.twoPlus.some(O=>h.includes(O))&&l(2);const p=v==="return"?n.rtAirlines:n.airlines,k=O=>{p.includes(O)||p.push(O)};Object.entries(S).forEach(([O,j])=>{h.includes(O)&&k(j)}),(U.match(/\b([A-Z0-9]{2,3})\b/g)||[]).forEach(O=>{const j=String(O).toUpperCase();x.has(j)&&k(j)});const P=/\barrival|arrive\b/i.test(h),D=v==="return"?P?n.rArrTimes:n.rDepTimes:P?n.arrTimes:n.depTimes,$=O=>{D.includes(O)||D.push(O)};d.forEach(({pattern:O,slot:j})=>{O.test(h)&&$(j)})})},Si=(e,t)=>{["clear all","clear all filters","reset filters","reset all","clear filters","remove all filters","clear everything","reset everything","clear all filters","remove filters","clear","reset"].forEach(s=>{e.includes(s)&&(t.clearAll=!0)})},ji=(e,t)=>{const n=String(e||"").trim().toLowerCase();if(!n)return;const s=/\b(desc|dsc|descending|decending|high(?:est)?\s+to\s+low(?:est)?|reverse|highest first|max(?:imum)? first)\b/.test(n),i=/\b(asc|ascending|asending|low(?:est)?\s+to\s+high(?:est)?|lowest first|min(?:imum)? first)\b/.test(n),o=/\b(price|fare|cost|amount|budget)\b/.test(n),c=/\b(duration|time|timing|journey|travel time)\b/.test(n),u=/\b(departure|depart|takeoff)\b/.test(n),a=/\b(arrival|arrive|landing)\b/.test(n);if(/\b(first|earliest)\s+flight\b/.test(n)||/\bflight\s+first\b/.test(n)){t.sortBy="departure";return}if((o||/\bsort\b/.test(n))&&s){t.sortBy="expensive";return}if((o||/\bsort\b/.test(n))&&i){t.sortBy="cheapest";return}if(c&&s){t.sortBy="slowest";return}if(c&&i){t.sortBy="quickest";return}if(u&&s){t.sortBy="lateDeparture";return}if(u&&i){t.sortBy="departure";return}if(a&&s){t.sortBy="lateArrival";return}if(a&&i){t.sortBy="arrival";return}Object.entries({cheapest:"cheapest","lowest price":"cheapest","sort by price":"cheapest","price low to high":"cheapest","sort by cheapest":"cheapest",expensive:"expensive","highest price":"expensive","high to low":"expensive","price high to low":"expensive","sort by expensive":"expensive","most expensive":"expensive",best:"best",quickest:"quickest",fastest:"quickest","shortest flight":"quickest","sort by duration":"quickest",slowest:"slowest","longest flight":"slowest","duration high to low":"slowest",earliest:"departure","earliest departure":"departure","earliest flight":"departure","sort by departure":"departure","morning first":"departure","early departure":"departure",latest:"lateDeparture","latest departure":"lateDeparture","latest flight":"lateDeparture","evening first":"lateDeparture","late departure":"lateDeparture","earliest arrival":"arrival","early arrival":"arrival","sort by arrival":"arrival","latest arrival":"lateArrival","late arrival":"lateArrival"}).forEach(([d,g])=>{n.includes(d)&&(t.sortBy=g)})},Ci=(e,t,n,s)=>{const i=s&&/\b(return|returning|inbound|back|roundtrip|round trip|rt)\b/i.test(t),o=/\b(onward|outbound|oneway|one-way|one way|outward)\b/i.test(t),c=s?i?["rtStops"]:o?["stops"]:["stops","rtStops"]:["stops"],u=g=>{c.forEach(S=>{n[S].includes(g)||n[S].push(g)})},a=["non stop","nonstop","direct","no stops","zero stops","non-stop","direct flight","straight flight"],f=["one stop","1 stop","1 stops","1-stop","1-stop flights","1 stop flight","1 stop flights","single stop","one connection","1 connection","one layover","1 layover","one stopover","1 stopover","filter all 1-stop","show 1-stop","1 stop flights","1stop"],y=["two stop","two stops","2 stop","2 stops","2-stop","2-stop flight","2-stop flights","2 stop flight","2 stop flights","multiple stops","many stops","2+ stops","two connections","multiple connections","2stop"];if(/\b(except|avoid|without|exclude|not)\b/i.test(t)&&/\bstop|stops|flight|flights\b/i.test(t)){const g=[],S=a.some(m=>t.includes(m)),x=f.some(m=>t.includes(m)),w=y.some(m=>t.includes(m));if(S&&g.push(0),x&&g.push(1),w&&g.push(2),g.length>0){c.forEach(m=>{n[m]=[0,1,2].filter(N=>!g.includes(N))});return}}a.forEach(g=>{t.includes(g)&&u(0)}),f.forEach(g=>{t.includes(g)&&u(1)}),y.forEach(g=>{t.includes(g)&&u(2)}),t.includes("and")&&t.split("and").forEach(S=>{const x=S.trim();a.forEach(w=>{x.includes(w)&&u(0)}),f.forEach(w=>{x.includes(w)&&u(1)}),y.forEach(w=>{x.includes(w)&&u(2)})})},Ai=(e,t,n)=>{const s=t.replace(/,/g,""),i=/\b(layover|stopover|via)\b/i.test(s),o=/\b(h|hr|hrs|hour|hours|m|min|mins|minute|minutes)\b/i.test(s),c=/\b(under|below|less than|over|above|more than|min|minimum|max|maximum|between|from)\b/i.test(s);if(i&&(o||c))return;if([/under\s*[₹$]\s*(\d+)/i,/below\s*[₹$]\s*(\d+)/i,/less\s*than\s*[₹$]\s*(\d+)/i,/maximum\s*[₹$]\s*(\d+)/i,/max\s*[₹$]\s*(\d+)/i,/over\s*[₹$]\s*(\d+)/i,/above\s*[₹$]\s*(\d+)/i,/more\s*than\s*[₹$]\s*(\d+)/i,/minimum\s*[₹$]\s*(\d+)/i,/min\s*[₹$]\s*(\d+)/i,/between\s*[₹$]\s*(\d+)\s*and\s*[₹$]\s*(\d+)/i,/[₹$]\s*(\d+)\s*to\s*[₹$]\s*(\d+)/i,/[₹$]\s*(\d+)\s*-\s*[₹$]\s*(\d+)/i,/under\s*(\d+)/i,/below\s*(\d+)/i,/less\s*than\s*(\d+)/i,/maximum\s*(\d+)/i,/max\s*(\d+)/i,/over\s*(\d+)/i,/above\s*(\d+)/i,/more\s*than\s*(\d+)/i,/minimum\s*(\d+)/i,/min\s*(\d+)/i,/between\s*(\d+)\s*and\s*(\d+)/i,/from\s*(\d+)\s*to\s*(\d+)/i,/(\d+)\s*to\s*(\d+)/i,/(\d+)\s*-\s*(\d+)/i,/(\d+)\s*and\s*(\d+)/i].forEach(a=>{const f=s.match(a);f&&(a.source.includes("under")||a.source.includes("below")||a.source.includes("less")||a.source.includes("maximum")||a.source.includes("max")?n.price={max:parseInt(f[1])}:a.source.includes("over")||a.source.includes("above")||a.source.includes("more")||a.source.includes("minimum")||a.source.includes("min")?n.price={min:parseInt(f[1])}:(a.source.includes("between")||a.source.includes("to")||a.source.includes("-")||a.source.includes("and"))&&(n.price={min:parseInt(f[1]),max:parseInt(f[2])}))}),!n.price){if(i)return;const a=/(?:find|show|get|search|need|want|with|for)?\s*(?:flights?)?(?:\s*(?:of|under|below|around|near|about|upto|up to|max|maximum|price))?\s*[₹$]?\s*(\d{3,7})\s*(?:price|budget|fare|rs|rupees)?/i,f=s.match(a);if(f){const y=parseInt(f[1],10),d=/\b(under|below|less than|max|maximum|upto|up to)\b/i.test(s),g=/\b(over|above|more than|min|minimum)\b/i.test(s);d?n.price={max:y}:g?n.price={min:y}:n.price={min:y,max:y}}}},ki=(e,t,n,s,i)=>{const o=i&&/\b(return|returning|inbound|back|roundtrip|round trip|rt)\b/i.test(n),c=/\b(onward|outbound|oneway|one-way|one way|outward)\b/i.test(n),u=i?o?["rtAirlines"]:c?["airlines"]:["airlines","rtAirlines"]:["airlines"],a=N=>{u.forEach(h=>{s[h].includes(N)||s[h].push(N)})},f=new Set(["AM","PM","HR","HRS","MIN","MINS"]),y=Nn,d={},g=[];y.forEach(N=>{if(N.code&&N.english){const h=N.code,A=N.english.toLowerCase();Array.isArray(d[A])||(d[A]=[]),d[A].includes(h)||d[A].push(h),g.push(h);const v=[];A.includes("air india")&&v.push("air india","airindia"),A.includes("indigo")&&v.push("indigo"),A.includes("spicejet")&&v.push("spicejet","spice jet"),A.includes("vistara")&&v.push("vistara","vistara airlines"),(A.includes("go air")||A.includes("goair"))&&v.push("go air","goair"),(A.includes("air asia")||A.includes("airasia"))&&v.push("air asia","airasia"),(A.includes("jet airways")||A.includes("jetairways"))&&v.push("jet airways","jetairways"),v.forEach(U=>{Array.isArray(d[U])||(d[U]=[]),d[U].includes(h)||d[U].push(h)})}}),Object.entries(d).forEach(([N,h])=>{n.length>2&&n.includes(N)&&N.length>2&&(Array.isArray(h)?h:[h]).forEach(a)}),g.forEach(N=>{n.length>2&&n.includes(N)&&N.length>2&&a(N)});const S=/\b([A-Z0-9]{2,3})\s+(?:airline|airlines|flights|flight|code|codes)\b/gi,x=n.match(S);x&&x.forEach(N=>{const h=N.split(/\s+/)[0].toUpperCase();h.length>=2&&!f.has(h)&&g.includes(h)&&a(h)});const w=/\b([A-Z]{2,3})\b/g,m=t.match(w);m&&m.forEach(N=>{!u.some(h=>s[h].includes(N))&&!f.has(N)&&g.includes(N)&&N.length>=2&&N.length<=3&&a(N)})},Ti=(e,t,n,s)=>{const i=["0-6","6-12","12-18","18-24"],o=/\b(return|returning|inbound|back|roundtrip|round trip|rt)\b/i.test(t),c=/\b(arrival|arrive)\b/i.test(t),u=/\b(departure|depart)\b/i.test(t),a=/\b(onward|outbound|oneway|one-way|one way|outward)\b/i.test(t),f=()=>s&&o&&c?["rArrTimes"]:s&&o?["rDepTimes"]:s&&a&&c?["arrTimes"]:s&&a?["depTimes"]:c?["arrTimes"]:u?s?["depTimes","rDepTimes"]:["depTimes"]:s?["depTimes","rDepTimes"]:["depTimes"],y=(p,k)=>{n[p].includes(k)||n[p].push(k)},d=p=>{f().forEach(k=>y(k,p))},g=t.match(/\b(after|before)\s+(\d{1,2})(?::(\d{2}))?\s*(am|pm)?\b/i);if(g){const p=String(g[1]||"").toLowerCase();let k=Number(g[2]);const H=Number(g[3]||0),P=String(g[4]||"").toLowerCase();if(Number.isFinite(k)&&k>=0&&k<=24){if(P==="pm"&&k<12&&(k+=12),P==="am"&&k===12&&(k=0),H>0&&p==="after"&&k<24&&(k+=1),p==="after"){const D=[];k<6?D.push("0-6","6-12","12-18","18-24"):k<12?D.push("6-12","12-18","18-24"):k<18?D.push("12-18","18-24"):D.push("18-24"),D.forEach($=>d($))}else if(p==="before"){const D=[];k<=6?D.push("0-6"):k<=12?D.push("0-6","6-12"):k<=18?D.push("0-6","6-12","12-18"):D.push("0-6","6-12","12-18","18-24"),D.forEach($=>d($))}}}const S=/\b(price|fare|budget|cost|amount|rs|rupees|inr|₹|under|below|above|over|between|from|to)\b/i.test(t),x=/\b(am|pm)\b/i.test(t),w=/\b\d{3,}\s*(?:to|-|and)\s*\d{3,}\b/i.test(t);if(S&&w&&!x)return;const m=/\b(avoid|exclude|except|not|without|skip|no)\b/i.test(t),N=/\b(departure|depart|onward departure)\b/i.test(t)||!/\b(arrival|arrive|return)\b/i.test(t)&&/\bflight|flights|time|before|after|morning|afternoon|evening|night\b/i.test(t);if(m&&(N||s&&o&&!c||s&&o&&c)){const p=[];if(/\bbefore\s*6\s*am\b/i.test(t)&&p.push("0-6"),/\b6\s*am\s*(?:to|-)\s*12\s*pm\b/i.test(t)&&p.push("6-12"),/\b12\s*pm\s*(?:to|-)\s*6\s*pm\b/i.test(t)&&p.push("12-18"),/\bafter\s*6\s*pm\b/i.test(t)&&p.push("18-24"),(t.includes("early morning")||t.includes("before 6"))&&!p.includes("0-6")&&p.push("0-6"),p.length>0){f().forEach(H=>{n[H]=i.filter(P=>!p.includes(P))});return}}const v={"early morning":"0-6",morning:"6-12",afternoon:"12-18",evening:"18-24",night:"18-24","late night":"18-24","before 6":"0-6","before 6 am":"0-6","6 am to 12 pm":"6-12","6 am - 12 pm":"6-12","12 pm to 6 pm":"12-18","12 pm - 6 pm":"12-18","after 6 pm":"18-24","after 6":"18-24"};[/(\d{1,2})\s*am\s*to\s*(\d{1,2})\s*am/i,/(\d{1,2})\s*pm\s*to\s*(\d{1,2})\s*pm/i,/(\d{1,2})\s*(?:am|pm)\s*(?:to|-|until)\s*(\d{1,2})\s*(?:am|pm)/i,/(?:departure|depart)\s*(?:from|at)?\s*(\d{1,2})\s*(?:am|pm)\s*(?:to|-|until)\s*(\d{1,2})\s*(?:am|pm)/i,/(?:arrival|arrive)\s*(?:from|at)?\s*(\d{1,2})\s*(?:am|pm)\s*(?:to|-|until)\s*(\d{1,2})\s*(?:am|pm)/i,/(?:between|from)\s*(\d{1,2})\s*(?:am|pm)\s*(?:and|to)\s*(\d{1,2})\s*(?:am|pm)/i,/(\d{1,2})\s*(?:to|-|until)\s*(\d{1,2})(?:\s*(?:am|pm))?/i,/(?:departure|depart)\s*(?:from|at)?\s*(\d{1,2})\s*(?:to|-|until)\s*(\d{1,2})(?:\s*(?:am|pm))?/i,/(?:arrival|arrive)\s*(?:from|at)?\s*(\d{1,2})\s*(?:to|-|until)\s*(\d{1,2})(?:\s*(?:am|pm))?/i,/(?:between|from)\s*(\d{1,2})\s*(?:and|to)\s*(\d{1,2})(?:\s*(?:am|pm))?/i].forEach((p,k)=>{const H=t.match(p);if(H){const P=parseInt(H[1]),D=parseInt(H[2]);if(Number.isNaN(P)||Number.isNaN(D)||P>24||D>24)return;let $=P,O=D;const j=H[0];j.split(/\s*(?:to|-|until|and)\s*/i)[0].includes("pm")&&P<12&&($=P+12);const L=j.split(/\s*(?:to|-|until|and)\s*/i)[1];L&&L.includes("pm")&&D<12&&(O=D+12);let Y=null;$>=0&&O<=6?Y="0-6":$>=6&&O<=12?Y="6-12":$>=12&&O<=18?Y="12-18":$>=18&&O<=24?Y="18-24":$<6?Y="0-6":$<12?Y="6-12":$<18?Y="12-18":Y="18-24",d(Y)}}),[/(?:departure|depart)\s*(?:at|from)\s*(\d{1,2})(?:\s*(?:am|pm))?/i,/(?:arrival|arrive)\s*(?:at|from)\s*(\d{1,2})(?:\s*(?:am|pm))?/i,/(?:at|from)\s*(\d{1,2})(?:\s*(?:am|pm))?/i].forEach(p=>{const k=t.match(p);if(k){let H=parseInt(k[1]);if(Number.isNaN(H)||H>24)return;t.includes("pm")&&H<12&&(H=H+12);let P=null;H>=0&&H<6?P="0-6":H>=6&&H<12?P="6-12":H>=12&&H<18?P="12-18":P="18-24",d(P)}}),Object.entries(v).forEach(([p,k])=>{t.includes(p)&&!c&&d(k)}),Object.entries(v).forEach(([p,k])=>{(t.includes(`arrive ${p}`)||t.includes(`arrival ${p}`))&&d(k)}),[{pattern:/before\s*6\s*am/i,slot:"0-6"},{pattern:/6\s*am\s*to\s*12\s*pm/i,slot:"6-12"},{pattern:/12\s*pm\s*to\s*6\s*pm/i,slot:"12-18"},{pattern:/after\s*6\s*pm/i,slot:"18-24"}].forEach(({pattern:p,slot:k})=>{if(p.test(t)){if(!x&&S)return;const H=f();(!c||H.includes("arrTimes")||H.includes("rArrTimes"))&&d(k)}})},sn=(e,t)=>{if(!t||t.length===0)return!0;let n=null;if(e=String(e||"").trim(),e.includes(":")){const s=e.split(":");s[0].includes("T")?n=parseInt(s[0].split("T")[1],10):s[0].includes(" ")?n=parseInt(s[0].split(" ").pop(),10):n=parseInt(s[0],10)}else e.length===4&&!isNaN(e)?n=parseInt(e.substring(0,2),10):n=parseInt(e,10);return n===null||isNaN(n)?!0:t.some(s=>{if(s==="0-6")return n>=0&&n<6;if(s==="6-12")return n>=6&&n<12;if(s==="12-18")return n>=12&&n<18;if(s==="18-24")return n>=18&&n<=24;if(s.includes("-")){const[i,o]=s.split("-").map(c=>parseInt(c,10));if(!isNaN(i)&&!isNaN(o))return n>=i&&n<o}return!1})},As=(e,t)=>{if(!t||t.clearAll)return e;const{stops:n=[],rtStops:s=[],price:i=null,airlines:o=[],rtAirlines:c=[],depTimes:u=[],arrTimes:a=[],rDepTimes:f=[],rArrTimes:y=[],layover:d=[],rLayover:g=[],layoverDuration:S=null,rLayoverDuration:x=null}=t,w={};try{const b=Nn;Array.isArray(b)&&b.forEach(L=>{if(L.code&&L.english){const Y=L.english.toLowerCase(),W=L.code.toUpperCase();Array.isArray(w[Y])||(w[Y]=[]),w[Y].includes(W)||w[Y].push(W),w[L.code.toLowerCase()]=[W]}})}catch(b){console.error("Failed to load airline data:",b)}const m=b=>b.flatMap(L=>{const Y=String(L).toLowerCase().trim(),W=w[Y];return Array.isArray(W)&&W.length>0?W:[Y.toUpperCase()]}).filter(Boolean),N=m(o),h=m(c),A=new Set(N.map(b=>String(b).toUpperCase())),v=new Set(h.map(b=>String(b).toUpperCase())),U=(b={})=>{const L=String((b==null?void 0:b.ma)||(b==null?void 0:b.ac)||"").trim().toLowerCase();if(!L)return[];const Y=w[L];return Array.isArray(Y)&&Y.length>0?Y.map(W=>String(W).toUpperCase()):[L.toUpperCase()]},_=b=>{if(Array.isArray(b))return b.flatMap(Y=>String(Y||"").split(",")).map(Y=>Y.trim().toUpperCase()).filter(Boolean);const L=String(b||"").trim();return L?L.split(",").map(Y=>Y.trim().toUpperCase()).filter(Boolean):[]},l=_(d),p=_(g);if(!(n.length>0||i||N.length>0||u.length>0||a.length>0||l.length>0||S)&&s.length===0&&h.length===0&&f.length===0&&y.length===0&&p.length===0&&!x)return e;const H=b=>{if(b==null)return[];if(Array.isArray(b))return b.flatMap(W=>H(W));if(typeof b=="object")return[b==null?void 0:b.code,b==null?void 0:b.airportCode,b==null?void 0:b.iata,b==null?void 0:b.ar,b==null?void 0:b.da,b==null?void 0:b.via,b==null?void 0:b.lyovr,b==null?void 0:b.layover,b==null?void 0:b.stop].flatMap(W=>H(W)).filter(Boolean);const L=String(b||"").trim().toUpperCase();if(!L)return[];const Y=L.match(/\b[A-Z]{3}\b/g);return Y&&Y.length?Y:[L]},P=(b=[])=>Array.from(new Set(b.map(L=>String(L||"").trim().toUpperCase()).filter(Boolean))),D=(b={},L={},Y=[])=>{const W=Y.slice(0,Math.max(Y.length-1,0)).flatMap(Z=>H(Z==null?void 0:Z.ar)),te=Y.flatMap(Z=>H([Z==null?void 0:Z.stp,Z==null?void 0:Z.stops,Z==null?void 0:Z.stopover,Z==null?void 0:Z.layover,Z==null?void 0:Z.lyovr,Z==null?void 0:Z.via])),oe=H([L==null?void 0:L.stp,L==null?void 0:L.stops,L==null?void 0:L.stopover,L==null?void 0:L.layover,L==null?void 0:L.lyovr,L==null?void 0:L.via,L==null?void 0:L.cnx,L==null?void 0:L.conn,L==null?void 0:L.connections]),B=H([b==null?void 0:b.stp,b==null?void 0:b.stops,b==null?void 0:b.stopover,b==null?void 0:b.layover,b==null?void 0:b.lyovr,b==null?void 0:b.via,b==null?void 0:b.cnx,b==null?void 0:b.conn,b==null?void 0:b.connections]);return P([...W,...te,...oe,...B])},$=(b,L)=>{const Y=String(b||"").trim(),W=String(L||"").trim();if(!Y||!W)return null;const te=Y.match(/^(\d{2})-(\d{2})-(\d{4})$/),oe=W.match(/^(\d{1,2}):(\d{2})$/);if(!te||!oe)return null;const B=Number(te[1]),Z=Number(te[2]),se=Number(te[3]),re=Number(oe[1]),ye=Number(oe[2]),Ae=new Date(se,Z-1,B,re,ye,0,0);return Number.isNaN(Ae.getTime())?null:Ae},O=(b=[])=>{const L=[];for(let Y=0;Y<b.length-1;Y+=1){const W=b[Y]||{},te=b[Y+1]||{},oe=(W==null?void 0:W.ad)||(W==null?void 0:W.dd)||"",B=(te==null?void 0:te.dd)||(te==null?void 0:te.ad)||"",Z=(W==null?void 0:W.at)||"",se=(te==null?void 0:te.dt)||"",re=$(oe,Z),ye=$(B,se);if(!re||!ye)continue;const Ae=Math.round((ye.getTime()-re.getTime())/6e4);Number.isFinite(Ae)&&Ae>=0&&L.push(Ae)}return L},j=(b,L)=>{if(!L||typeof L!="object")return!0;const Y=(L==null?void 0:L.min)!==void 0?Number(L.min):null,W=(L==null?void 0:L.max)!==void 0?Number(L.max):null;return!Number.isFinite(Y)&&!Number.isFinite(W)?!0:!Array.isArray(b)||b.length===0?!1:b.some(te=>!(Number.isFinite(Y)&&te<Y||Number.isFinite(W)&&te>W))};return e.map(b=>{const Y=(Array.isArray(b.trps)?b.trps:[]).filter((te,oe)=>{var De,ke,Ne;const B=(De=te.deps)==null?void 0:De[0],Z=Array.isArray(B==null?void 0:B.seg)?B.seg:[],se=Z[0]||{},re=Z[Z.length-1]||se,Ae=(((Ne=(ke=te.prc)==null?void 0:ke[0])==null?void 0:Ne.pr)||{}).tf,Ie=Math.max(Z.length-1,0);if(n.length>0&&!n.map(Number).includes(Ie))return!1;if(i){const ve=Number(Ae);if(!isNaN(ve)&&(i.min!==void 0&&ve<Number(i.min)||i.max!==void 0&&ve>Number(i.max)))return!1}const Ee=U(se);if(N.length>0&&!Ee.some(ve=>A.has(ve))||u.length>0&&!sn(se.dt||"",u)||a.length>0&&!sn(re.at||"",a))return!1;if(l.length>0){const ve=D(te,B,Z);if(!l.every(ue=>ve.includes(ue)))return!1}if(S){const ve=O(Z);if(!j(ve,S))return!1}return!0});let W=b.rttrps;return Number(b.tt)===2&&(s.length>0||h.length>0||f.length>0||y.length>0||p.length>0||x)&&(W=(Array.isArray(b.rttrps)?b.rttrps:[]).filter(oe=>{var Ie,Ee,De;const B=(Ie=oe.deps)==null?void 0:Ie[0],Z=Array.isArray(B==null?void 0:B.seg)?B.seg:[],se=Z[0]||{},re=Z[Z.length-1]||se,ye=Math.max(Z.length-1,0);if(s.length>0&&!s.map(Number).includes(ye))return!1;const Ae=U(se);if(h.length>0&&!Ae.some(ke=>v.has(ke))||f.length>0&&!sn(se.dt||"",f)||y.length>0&&!sn(re.at||"",y))return!1;if(t.refundable===!0){const ke=((De=(Ee=oe.prc)==null?void 0:Ee[0])==null?void 0:De.pr)||{};if(!(Number(ke.rf||0)===1||/refundable/i.test(ke.ft||"")))return!1}if(t.maxDuration&&Number((B==null?void 0:B.tdur)||se.fdur||0)>t.maxDuration)return!1;if(p.length>0){const ke=D(oe,B,Z);if(!p.every(ve=>ke.includes(ve)))return!1}if(x){const ke=O(Z);if(!j(ke,x))return!1}return!0})),Y.length===0||Number(b.tt)===2&&Array.isArray(b.rttrps)&&b.rttrps.length>0&&W.length===0?null:{...b,trps:Y,rttrps:W}}).filter(Boolean)},ks=(e,t)=>{if(!t)return e;const n=u=>{var f,y,d;const a=(d=(y=(f=u.prc)==null?void 0:f[0])==null?void 0:y.pr)==null?void 0:d.tf;return isNaN(a)?1/0:Number(a)},s=u=>{var a,f,y,d;return((d=(y=(f=(a=u.deps)==null?void 0:a[0])==null?void 0:f.seg)==null?void 0:y[0])==null?void 0:d.dt)||"99:99"},i=u=>{var y,d;const a=((d=(y=u.deps)==null?void 0:y[0])==null?void 0:d.seg)||[];return(a[a.length-1]||{}).at||"99:99"},o=u=>{var a,f;return Number((f=(a=u.deps)==null?void 0:a[0])==null?void 0:f.td)||1/0},c=e.map(u=>{const a=[...u.trps||[]],f=[...u.rttrps||[]],y=(d,g)=>t==="cheapest"?n(d)-n(g):t==="expensive"?n(g)-n(d):t==="departure"?s(d).localeCompare(s(g)):t==="lateDeparture"?s(g).localeCompare(s(d)):t==="arrival"?i(d).localeCompare(i(g)):t==="lateArrival"?i(g).localeCompare(i(d)):t==="quickest"?o(d)-o(g):t==="slowest"?o(g)-o(d):0;return a.sort(y),f.sort(y),{...u,trps:a,rttrps:f}});return c.sort((u,a)=>{var d,g;const f=(d=u.trps)==null?void 0:d[0],y=(g=a.trps)==null?void 0:g[0];return f?y?t==="cheapest"?n(f)-n(y):t==="expensive"?n(y)-n(f):t==="departure"?s(f).localeCompare(s(y)):t==="lateDeparture"?s(y).localeCompare(s(f)):t==="arrival"?i(f).localeCompare(i(y)):t==="lateArrival"?i(y).localeCompare(i(f)):t==="quickest"?o(f)-o(y):t==="slowest"?o(y)-o(f):0:-1:1}),c};function Di({results:e=[],emptyMessage:t="",recommendationCriteria:n=null,onAvailabilitySuccess:s=()=>{},onAvailabilityReset:i=()=>{},disableBook:o=!1,extractedFilters:c=null,latestUserText:u="",isLatestResultsMessage:a=!1,onFilterCountChange:f=()=>{},onRecommendationChange:y=()=>{}}){const d=T.useMemo(()=>Array.isArray(e)?e:(e==null?void 0:e.payload)||[],[e]),g=process.env.REACT_APP_FLIGHT_IMAGES||process.env.FLIGHT_IMAGES||"",S=T.useMemo(()=>ii(),[]),[x,w]=T.useState(c),[m,N]=T.useState(!1),[h,A]=T.useState(!1),v=T.useRef(null);T.useEffect(()=>{w(c)},[c]);const U=T.useMemo(()=>{let $=As(d,x);return x!=null&&x.sortBy&&($=ks($,x.sortBy)),$},[d,x]),_=T.useMemo(()=>{const $=U[0]||d[0]||{};if(!$||typeof $!="object")return[];const O=[],j=Number(($==null?void 0:$.tt)||1)===2?"Round Trip":"One Way";O.push(`Trip: ${j}`);const b=String(($==null?void 0:$.cl)||"").trim().toLowerCase(),Y={ec:"Economy",bc:"Business",fc:"First",pc:"Premium Economy"}[b]||(b?b.toUpperCase():"Economy");O.push(`Cabin: ${Y}`);const W=Number(($==null?void 0:$.adt)||1),te=Number(($==null?void 0:$.chd)||0),oe=Number(($==null?void 0:$.inf)||0);O.push(`Travellers: ${Math.max(W+te+oe,1)}`);const B=String(($==null?void 0:$.agtyp)||"").trim().toLowerCase(),Z=String(($==null?void 0:$.utyp)||"").trim().toLowerCase(),se=["employee","manager","admin"].includes(Z);return B.includes("corporate")&&se&&O.push(`Corporate: ${Z.charAt(0).toUpperCase()}${Z.slice(1)}`),O},[U,d]);if(T.useEffect(()=>{f(U.length)},[U,f]),T.useEffect(()=>{y(Ei(U,x,S))},[U,x,S,y]),T.useEffect(()=>{var W;if(o||m||U.length!==1)return;const $=U[0];if((Array.isArray($==null?void 0:$.trps)?$.trps.length:0)!==1||!a||h||U.length<=3)return;const j=String(u||"").toLowerCase();if(!/\b(view all|show all|show more|more options|expand results)\b/i.test(j))return;const L=(W=v.current)==null?void 0:W.querySelector(".flight-results__toggle-btn");if(!L)return;A(!0),setTimeout(()=>{L.click()},200),/\b(book|reserve|take|select|choose|pick)\b/i.test(j)&&(N(!0),setTimeout(()=>{const te=document.querySelector('[data-voice-action="book-flight"]');te&&te.click()},500))},[U,u,h,a,o,m]),!d.length)return t?r.jsx("div",{className:"flight-results__empty",children:t}):null;const l=($={})=>{var Y,W;const O=String(($==null?void 0:$.styp)||"").trim();if(O)return O;const b=(Array.isArray($==null?void 0:$.trps)?$.trps:[$==null?void 0:$.trps].filter(Boolean))[0]||{},L=((W=(Y=b==null?void 0:b.prc)==null?void 0:Y[0])==null?void 0:W.pr)||(b==null?void 0:b.pr)||{};return String((L==null?void 0:L.styp)||"").trim()},p=U.filter($=>Number(($==null?void 0:$.tt)||1)===2),k=p.filter($=>String(l($)).toLowerCase()==="combined"),H=p.filter($=>String(l($)).toLowerCase()!=="combined"),P=p.length>0||d.some($=>Number($.tt)===2)&&U.length===0,D=k.length>0||d.some($=>String(l($)).toLowerCase()==="combined")&&U.length===0;return r.jsxs("div",{className:"flight-results-container",ref:v,children:[_.length?r.jsx("div",{className:"flight-results__context-bar",children:_.map($=>r.jsx("span",{className:"flight-results__context-chip",children:$},$))}):null,U.length===0?r.jsx("div",{className:"flight-results__empty",children:"No flights match your filters."}):r.jsx(r.Fragment,{children:P?D?r.jsx(_i,{payload:k,airlinesMap:S,flightImagesBaseUrl:g,recommendationCriteria:n,onAvailabilitySuccess:s,onAvailabilityReset:i,disableBook:o}):r.jsx(Ni,{payload:H,airlinesMap:S,flightImagesBaseUrl:g,recommendationCriteria:n,onAvailabilitySuccess:s,onAvailabilityReset:i,disableBook:o}):r.jsx(yi,{payload:U,airlinesMap:S,flightImagesBaseUrl:g,recommendationCriteria:n,onAvailabilitySuccess:s,onAvailabilityReset:i,disableBook:o})})]})}function Ei(e=[],t=null,n={}){var x;const s=Fi(e,n);if(!s.length)return"";const i=s.filter(w=>Number.isFinite(w.price)),o=(i.length?i:s).reduce((w,m)=>Number(m.price||Number.MAX_SAFE_INTEGER)<Number(w.price||Number.MAX_SAFE_INTEGER)?m:w),a=s.filter(w=>w.stops===0).reduce((w,m)=>{if(!w)return m;const N=Number(w.durationMins||Number.MAX_SAFE_INTEGER);return Number(m.durationMins||Number.MAX_SAFE_INTEGER)<N?m:w},null)||o,f=`${a.origin} to ${a.destination}`,y=a.departureDate||"selected date",d=a.currency||o.currency||((x=s[0])==null?void 0:x.currency)||"INR",g=a===o?`${a.airline} ${a.flightNumber} at ${a.departureTime} is currently the best pick for ${f} on ${y} (lowest fare ${Pr(a.price,d)}).`:`${a.airline} ${a.flightNumber} at ${a.departureTime} is the best convenience option for ${f} on ${y}, while ${o.airline} ${o.flightNumber} is cheapest at ${Pr(o.price,d)}.`,S=[];return t!=null&&t.sortBy&&S.push(`sorted by ${String(t.sortBy)}`),Array.isArray(t==null?void 0:t.depTimes)&&t.depTimes.length>0&&S.push(`departure window ${t.depTimes.join(", ")}`),Array.isArray(t==null?void 0:t.stops)&&t.stops.length>0&&S.push(`stops ${t.stops.join(", ")}`),S.length?`${g} (Applied filters: ${S.join(" | ")}.)`:g}function Fi(e=[],t={}){const n=[];return(Array.isArray(e)?e:[]).forEach(i=>{(Array.isArray(i==null?void 0:i.trps)?i.trps:[]).forEach(c=>{var x,w,m;const u=(x=c==null?void 0:c.deps)==null?void 0:x[0],a=Array.isArray(u==null?void 0:u.seg)?u.seg:[],f=a[0],y=a[a.length-1]||f;if(!f||!y)return;const d=((m=(w=c==null?void 0:c.prc)==null?void 0:w[0])==null?void 0:m.pr)||(c==null?void 0:c.pr)||{},g=String((f==null?void 0:f.ma)||(f==null?void 0:f.ac)||"").trim().toUpperCase(),S=String((f==null?void 0:f.an)||"").trim()||(t==null?void 0:t[g])||g||"Airline";n.push({origin:String((f==null?void 0:f.da)||"").toUpperCase()||"origin",destination:String((y==null?void 0:y.ar)||"").toUpperCase()||"destination",departureDate:String((f==null?void 0:f.dd)||"").trim(),departureTime:String((f==null?void 0:f.dt)||"").trim()||"--:--",airline:S,flightNumber:String((f==null?void 0:f.fn)||"").trim(),stops:Math.max(a.length-1,0),durationMins:Li((f==null?void 0:f.fdur)||(u==null?void 0:u.tdur)||""),price:Number(d==null?void 0:d.tf),currency:String((i==null?void 0:i.cur)||(d==null?void 0:d.cur)||(d==null?void 0:d.currency)||(c==null?void 0:c.cur)||(c==null?void 0:c.currency)||"").trim().toUpperCase()||"INR"})})}),n}function Li(e){const t=String(e||"").toLowerCase();if(!t)return null;if(/^\d+$/.test(t))return Number(t);const n=t.match(/(\d+)\s*h/),s=t.match(/(\d+)\s*m/),i=n?Number(n[1]):0,o=s?Number(s[1]):0,c=i*60+o;return c>0?c:null}function Pr(e,t="INR"){const n=Number(e),s=String(t||"INR").trim().toUpperCase()||"INR";return Number.isFinite(n)?`${s} ${n.toFixed(2)}`:"N/A"}const zr={passportRequired:!1,trvlrs:[]};function $i({prebookPayload:e,sessionId:t,isReadOnly:n=!1,onGoBack:s=()=>{},onVoiceAssistantMessage:i=()=>{},onPaymentSuccess:o=()=>{},onViewStateChange:c=()=>{}}){var dr,fr,mr,hr,pr,br,gr,yr,Nr,_r,xr,wr,vr,Sr,jr,Cr,Ar,kr,Tr,Dr,Er;const u=sr(),[a,f]=T.useState(e||zr),[y,d]=T.useState(!1),[g,S]=T.useState(!1),[x,w]=T.useState(""),[m,N]=T.useState({}),[h,A]=T.useState(""),[v,U]=T.useState(null),[_,l]=T.useState(null),[p,k]=T.useState(null),[H,P]=T.useState(!1),[D,$]=T.useState(!1),[O,j]=T.useState({charges:[],gateways:[],customerPg:[],promoCodes:[]}),[b,L]=T.useState(null),[Y,W]=T.useState(null),[te,oe]=T.useState(!1),[B,Z]=T.useState(""),[se,re]=T.useState(""),[ye,Ae]=T.useState(!1),[Ie,Ee]=T.useState(!1),[De,ke]=T.useState(""),[Ne,ve]=T.useState(!0),[F,ue]=T.useState(""),[_e,Fe]=T.useState({}),He=T.useRef(!1),Xe=T.useRef(null),Me=T.useRef(!1),E=T.useCallback((C,R="")=>{window.dispatchEvent(new CustomEvent("chat:action-loader",{detail:{status:!!C,text:String(R||"").trim()}}))},[]),Ve=T.useCallback(()=>{let C=null,R=null;return C=window.requestAnimationFrame(()=>{R=window.requestAnimationFrame(()=>{var Q;(Q=Xe.current)==null||Q.scrollIntoView({behavior:"smooth",block:"start"})})}),()=>{C&&window.cancelAnimationFrame(C),R&&window.cancelAnimationFrame(R)}},[]),Be=T.useCallback((C,R="")=>{window.dispatchEvent(new CustomEvent("chat:ui-loading",{detail:{isLoading:C,text:String(R||"").trim()}}))},[]),Se=String(h||"").trim()||String((v==null?void 0:v.bookingId)||(v==null?void 0:v.bookingid)||(v==null?void 0:v.bkid)||((dr=v==null?void 0:v.payload)==null?void 0:dr.bookingId)||((fr=v==null?void 0:v.payload)==null?void 0:fr.bookingid)||((mr=v==null?void 0:v.payload)==null?void 0:mr.bkid)||"").trim(),ze=String((v==null?void 0:v.status)||"").trim().toLowerCase()==="success",Re=!!(Se||ze),he=!n,ie=!Re&&he,ce=String((a==null?void 0:a.utyp)||"").trim().toLowerCase(),be=String((a==null?void 0:a.agtyp)||"").trim().toLowerCase(),Pe=String((a==null?void 0:a.cha)||(a==null?void 0:a.chnl)||(p==null?void 0:p.cha)||(p==null?void 0:p.chnl)||(_==null?void 0:_.cha)||(_==null?void 0:_.chnl)||((hr=v==null?void 0:v.payload)==null?void 0:hr.cha)||((pr=v==null?void 0:v.payload)==null?void 0:pr.chnl)||(v==null?void 0:v.cha)||(v==null?void 0:v.chnl)||"").trim().toLowerCase(),Ue=(be==="corporate flow"||be==="corporate"||Pe==="corp")&&["employee","manager","admin"].includes(ce),Ge=be==="b2b",Qe=Pe==="b2b",ct=Ue||Ge||Qe,yt=C=>Array.isArray(C)?C.map(R=>String(R||"").trim().toLowerCase()).filter(Boolean):typeof C=="string"&&C.trim()?[C.trim().toLowerCase()]:[],pe=(O==null?void 0:O.corporate)||null,Nt=yt(((br=pe==null?void 0:pe.outbound)==null?void 0:br.ptyp)||((gr=pe==null?void 0:pe.onward)==null?void 0:gr.ptyp)||((yr=pe==null?void 0:pe.ob)==null?void 0:yr.ptyp)),I=yt(((Nr=pe==null?void 0:pe.inbound)==null?void 0:Nr.ptyp)||((_r=pe==null?void 0:pe.return)==null?void 0:_r.ptyp)||((xr=pe==null?void 0:pe.ib)==null?void 0:xr.ptyp)),M=!!((wr=pe==null?void 0:pe.journey)!=null&&wr.hasInbound),V=Ii((a==null?void 0:a.isaprv)??(e==null?void 0:e.isaprv)??((vr=v==null?void 0:v.payload)==null?void 0:vr.isaprv)??(v==null?void 0:v.isaprv)??(pe==null?void 0:pe.isaprv)),q=Ue&&ce==="employee"&&V&&(M||I.includes("cl")||Nt.includes("cl")),J=Yr({charges:O==null?void 0:O.charges,selectedGateway:B,selectedPaymentMode:se}),ee=Kr(J),le=((jr=(Sr=_==null?void 0:_.selectedFlight)==null?void 0:Sr.fare)==null?void 0:jr.currency)||((Cr=v==null?void 0:v.payload)==null?void 0:Cr.cur)||((Ar=v==null?void 0:v.payload)==null?void 0:Ar.currency)||"INR",xe=Number(((Tr=(kr=_==null?void 0:_.selectedFlight)==null?void 0:kr.fare)==null?void 0:Tr.totalFare)||0)||0,Ke=Number(((Er=(Dr=_==null?void 0:_.selectedReturnFlight)==null?void 0:Dr.fare)==null?void 0:Er.totalFare)||0)||0,nn=Number((xe+Ke).toFixed(2)),_t=Y?(Number(Y.ondis)||0)+(Number(Y.rtdis)||0):0,vt=Number((nn+ee-_t).toFixed(2));T.useEffect(()=>{const C=e!=null&&e.__formState&&typeof e.__formState=="object"?e.__formState:null;f((C==null?void 0:C.payload)||e||zr),w(""),N({}),A(String((C==null?void 0:C.bookingId)||"")),U((C==null?void 0:C.prebookResponse)||null),l((C==null?void 0:C.confirmedPayload)||null),k((C==null?void 0:C.confirmedRequestPayload)||null),P(!!(C!=null&&C.showProceedToBook)),$(!!(C!=null&&C.isDetailsConfirmed));const R=(e==null?void 0:e.initialPaymentSummary)||{},Q=(C==null?void 0:C.paymentSummary)||null;j({charges:it((Q==null?void 0:Q.charges)??(R==null?void 0:R.charges)),gateways:it((Q==null?void 0:Q.gateways)??(R==null?void 0:R.gateways)),customerPg:it((Q==null?void 0:Q.customerPg)??(R==null?void 0:R.customerPg)),promoCodes:it((Q==null?void 0:Q.promoCodes)??(R==null?void 0:R.promoCodes)),corporate:(Q==null?void 0:Q.corporate)??(R==null?void 0:R.corporate)??null});const z=it((Q==null?void 0:Q.gateways)??(R==null?void 0:R.gateways));Z(String((C==null?void 0:C.selectedGateway)||"").trim()||(z.length>0?String(z[0]||"").trim():"")),re(String((C==null?void 0:C.selectedPaymentMode)||"").trim()),L((C==null?void 0:C.appliedPromocode)||null),W((C==null?void 0:C.promocodeDiscount)||null),Ae(!1),ve((C==null?void 0:C.showPayNow)===void 0?!0:!!C.showPayNow),ke(String((C==null?void 0:C.tripReason)||"")),ue(""),Fe({}),He.current=!1},[e]),T.useEffect(()=>{const C={...a||{},__formState:{payload:a,bookingId:h,prebookResponse:v,confirmedPayload:_,confirmedRequestPayload:p,showProceedToBook:H,isDetailsConfirmed:D,paymentSummary:O,appliedPromocode:b,promocodeDiscount:Y,selectedGateway:B,selectedPaymentMode:se,showPayNow:Ne,tripReason:De}};window.dispatchEvent(new CustomEvent("traveler-form:state-updated",{detail:{prebookPayload:C}}))},[a,h,v,_,p,H,D,O,b,Y,B,se,Ne,De]),T.useEffect(()=>{const C=Gi(O);C.length&&C.forEach(R=>{const Q=String(R||"").toLowerCase();if(Q.includes("razor")){const z=process.env.REACT_APP_RAZOR_CHECKOUT||"https://checkout.razorpay.com/v1/checkout.js";Dt("razorpay-checkout-sdk",z)}if(Q.includes("atom")){const z=process.env.REACT_APP_ATOM_SDK_URL||process.env.ATOM_SDK_URL||"";z&&Dt("atom-checkout-sdk",z)}if(Q.includes("ease")){const z=process.env.REACT_APP_EASE_BUZZ_CHECKOUT||process.env.EASE_BUZZ_CHECKOUT||"";z&&Dt("easebuzz-checkout-sdk",z)}})},[O]),T.useEffect(()=>{if(!Se||!Xe.current||!Me.current)return;const C=Ve();return Me.current=!1,()=>{C()}},[Se,O,Ve]),T.useEffect(()=>{!t||!Se||!Ue||a!=null&&a.agid&&(E(!0,"Fetching payment options..."),u.emit("chat:retrieve-payment-options",{sessionId:t,agid:a==null?void 0:a.agid,trmd:a==null?void 0:a.trmd,utyp:a==null?void 0:a.utyp,agtyp:a==null?void 0:a.agtyp},C=>{var Q;if(E(!1),!(C!=null&&C.ok))return;const R=((Q=C==null?void 0:C.data)==null?void 0:Q.payload)||(C==null?void 0:C.data)||null;!R||typeof R!="object"||j(z=>({...z,corporate:{...(z==null?void 0:z.corporate)||{},...R}}))}))},[E,Ue,a==null?void 0:a.agid,a==null?void 0:a.agtyp,a==null?void 0:a.trmd,a==null?void 0:a.utyp,Se,t]);const jt=T.useCallback(()=>{if(!t||!Se){w("Missing booking reference. Please pre-book again.");return}if(!De.trim()){w("Please enter trip reason before sending approval request.");return}Ee(!0),E(!0,"Sending approval request..."),u.emit("chat:approval-request",{sessionId:t,approvalPayload:{bkid:Se,pnr:"",fkempid:a==null?void 0:a.empid,fkuid:a==null?void 0:a.uid,noofaprl:1,sts:0,crby:a==null?void 0:a.uid,ukey:(p==null?void 0:p.ukey)||(a==null?void 0:a.ukey),rukey:(p==null?void 0:p.rukey)||(a==null?void 0:a.rukey),tt:(a==null?void 0:a.tt)||(p==null?void 0:p.tt)||1,typ:"Book",prdt:"F",fkapdsgid:a==null?void 0:a.fkapdsgid,fkagid:a==null?void 0:a.agid,rsn:De.trim()}},C=>{if(Ee(!1),E(!1),!(C!=null&&C.ok)){w((C==null?void 0:C.error)||"Unable to create approval request right now.");return}ve(!1),w("Approval request sent to manager successfully. Please wait for approval.")})},[E,p==null?void 0:p.rukey,p==null?void 0:p.tt,p==null?void 0:p.ukey,a==null?void 0:a.agid,a==null?void 0:a.empid,a==null?void 0:a.fkapdsgid,a==null?void 0:a.rukey,a==null?void 0:a.tt,a==null?void 0:a.uid,a==null?void 0:a.ukey,Se,t,De]);T.useEffect(()=>{const C=String(B||"").toLowerCase();if(C){if(C.includes("razor")){const R=process.env.REACT_APP_RAZOR_CHECKOUT||"https://checkout.razorpay.com/v1/checkout.js";Dt("razorpay-checkout-sdk",R).then(Q=>{ue(Q?"":"Razorpay SDK failed to load. Please refresh and retry.")})}if(C.includes("atom")){const R=process.env.REACT_APP_ATOM_SDK_URL||process.env.ATOM_SDK_URL||"";R?Dt("atom-checkout-sdk",R).then(Q=>{ue(Q?"":"Atom SDK failed to load. Please refresh and retry.")}):ue("Atom SDK URL is missing. Set REACT_APP_ATOM_SDK_URL.")}if(C.includes("ease")){const R=process.env.REACT_APP_EASE_BUZZ_CHECKOUT||process.env.EASE_BUZZ_CHECKOUT||"";R&&Dt("easebuzz-checkout-sdk",R)}}},[B]);const ae=T.useMemo(()=>{var C;return((C=a==null?void 0:a.trvlrs)==null?void 0:C[0])||null},[a]),fe=T.useMemo(()=>Array.isArray(a==null?void 0:a.trvlrs)?a.trvlrs:[],[a]),Oe=T.useMemo(()=>Ri(e==null?void 0:e.frequentTravellers),[e]),me=(C,R,Q)=>{f(z=>{const G={...z,trvlrs:[...z.trvlrs||[]]};return G.trvlrs[C]?(G.trvlrs[C]={...G.trvlrs[C],[R]:Q},G):z}),Fe(z=>{if(!Object.prototype.hasOwnProperty.call(z,C))return z;const G={...z};return delete G[C],G}),N(z=>{const G=`${C}.${R}`;if(!z[G])return z;const K={...z};return delete K[G],K})},Ce=T.useCallback((C,R)=>{if(!ie||!R)return;const Q=Ts(R);if(Object.entries(_e).find(([G,K])=>Number(G)!==Number(C)&&K===Q)){w("This frequent traveller is already selected for another traveler.");return}f(G=>{var we;const K={...G,trvlrs:[...(G==null?void 0:G.trvlrs)||[]]},ne=(we=K.trvlrs)==null?void 0:we[C];if(!ne)return G;const ge={...ne,fn:String((R==null?void 0:R.fn)||"").trim(),ln:String((R==null?void 0:R.ln)||"").trim(),tl:String((R==null?void 0:R.tl)||"").trim()||ne.tl,dob:(R==null?void 0:R.dob)||null};return K!=null&&K.passportRequired&&(ge.nat=String((R==null?void 0:R.nat)||"").trim(),ge.num=String((R==null?void 0:R.num)||"").trim(),ge.isc=String((R==null?void 0:R.isc)||(R==null?void 0:R.country)||"").trim(),ge.issdt=(R==null?void 0:R.issdt)||null,ge.expdt=(R==null?void 0:R.expdt)||null),K.trvlrs[C]=ge,K}),Fe(G=>({...G,[C]:Q})),N(G=>{const K={...G};return["fn","ln","tl","dob","nat","num","isc","issdt","expdt"].forEach(ne=>delete K[`${C}.${ne}`]),K})},[ie,_e]),ut=()=>{s()},dt=T.useCallback(()=>{const C={},R=!!(a!=null&&a.passportRequired);return(Array.isArray(a==null?void 0:a.trvlrs)?a.trvlrs:[]).forEach((z,G)=>{String((z==null?void 0:z.fn)||"").trim()||(C[`${G}.fn`]="First name is required."),String((z==null?void 0:z.ln)||"").trim()||(C[`${G}.ln`]="Last name is required."),["M","F"].includes(String((z==null?void 0:z.tl)||"").trim())||(C[`${G}.tl`]="Please select gender.");const K=Yt(z==null?void 0:z.dob);if(!K)C[`${G}.dob`]="Date of birth is required.";else{const ne=new Date;if(ne.setHours(0,0,0,0),new Date(K)>ne)C[`${G}.dob`]="Date of birth cannot be in the future.";else{const we=Oi(z==null?void 0:z.typ,K);we&&(C[`${G}.dob`]=we)}}if(R){String((z==null?void 0:z.nat)||"").trim()||(C[`${G}.nat`]="Nationality is required."),String((z==null?void 0:z.num)||"").trim()||(C[`${G}.num`]="Passport number is required.");const ne=Yt(z==null?void 0:z.issdt),ge=Yt(z==null?void 0:z.expdt);ne||(C[`${G}.issdt`]="Issue date is required."),ge||(C[`${G}.expdt`]="Expiry date is required."),ne&&ge&&new Date(ge)<=new Date(ne)&&(C[`${G}.expdt`]="Expiry date must be after issue date.")}}),C},[a]),ft=T.useCallback(C=>{var Ze,at,ot,nt,et,rt;if(!he||!t||!v||!C)return;const R=(v==null?void 0:v.payload)||v||{},Q=R==null?void 0:R.trps,z=Array.isArray(Q)?Q[0]:Q,G=R==null?void 0:R.rttrps,K=(_==null?void 0:_.styp)||((Ze=v==null?void 0:v.payload)==null?void 0:Ze.styp)||(p==null?void 0:p.styp)||"",ne=(_==null?void 0:_.uid)||((at=v==null?void 0:v.payload)==null?void 0:at.uid)||null,ge=K==="combined"?[(ot=z==null?void 0:z.pr)==null?void 0:ot.rmkey,(nt=z==null?void 0:z.pr)==null?void 0:nt.rtrmkey].filter(Boolean):[(et=z==null?void 0:z.pr)==null?void 0:et.rmkey,(rt=G==null?void 0:G.pr)==null?void 0:rt.rmkey].filter(Boolean),we=_!=null&&_.rmkey?[_.rmkey].flat().filter(Boolean):[],mt=ge.length>0?ge:we;oe(!0),E(!0,"Applying promo code..."),Be(!0,"Loading promo code details..."),u.emit("chat:apply-promocode",{sessionId:t,code:C,ukey:(R==null?void 0:R.ukey)||(_==null?void 0:_.ukey)||(p==null?void 0:p.ukey),rukey:(R==null?void 0:R.rukey)||(_==null?void 0:_.rukey)||(p==null?void 0:p.rukey)||"",rmkey:mt,em:(_==null?void 0:_.em)||(p==null?void 0:p.em),ph:(_==null?void 0:_.ph)||(p==null?void 0:p.ph),uid:ne,styp:K},Le=>{if(Be(!1),oe(!1),E(!1),Le!=null&&Le.ok){L(C),W(Le.data);const je=`Promo code ${C} applied successfully!`;w(je),i(je)}else{const je=(Le==null?void 0:Le.error)||"Failed to apply promo code.";w(je),i(je)}})},[E,he,t,v,_,p,i]),We=T.useCallback((C="")=>{var at,ot,nt,et,rt,Le;if(!he)return;const R=String(C||b||"").trim().toUpperCase();if(!t||!v||!R){const je="No promo code is currently applied.";w(je),i(je);return}const Q=(v==null?void 0:v.payload)||v||{},z=Q==null?void 0:Q.trps,G=Array.isArray(z)?z[0]:z,K=Q==null?void 0:Q.rttrps,ne=(_==null?void 0:_.styp)||((at=v==null?void 0:v.payload)==null?void 0:at.styp)||(p==null?void 0:p.styp)||"",ge=(_==null?void 0:_.uid)||((ot=v==null?void 0:v.payload)==null?void 0:ot.uid)||null,we=ne==="combined"?[(nt=G==null?void 0:G.pr)==null?void 0:nt.rmkey,(et=G==null?void 0:G.pr)==null?void 0:et.rtrmkey].filter(Boolean):[(rt=G==null?void 0:G.pr)==null?void 0:rt.rmkey,(Le=K==null?void 0:K.pr)==null?void 0:Le.rmkey].filter(Boolean),mt=_!=null&&_.rmkey?[_.rmkey].flat().filter(Boolean):[],Ze=we.length>0?we:mt;oe(!0),E(!0,"Removing promo code..."),Be(!0,"Loading promo code details..."),u.emit("chat:remove-promocode",{sessionId:t,code:R,ukey:(Q==null?void 0:Q.ukey)||(_==null?void 0:_.ukey)||(p==null?void 0:p.ukey),rukey:(Q==null?void 0:Q.rukey)||(_==null?void 0:_.rukey)||(p==null?void 0:p.rukey)||"",rmkey:Ze,uid:ge,styp:ne},je=>{if(Be(!1),oe(!1),E(!1),(je==null?void 0:je.ok)===!0||String((je==null?void 0:je.status)||"").toLowerCase()==="success"){L(null),W(null);const lt=`Promo code ${R} removed.`;w(lt),i(lt)}else{const lt=String((je==null?void 0:je.error)||"Failed to remove promo code.").trim(),xt=String(b||"").trim().toUpperCase();if(xt&&xt===R&&/(not applied|already removed|not found|invalid promo|promo.*does not exist)/i.test(lt)){L(null),W(null);const wt=`Promo code ${R} removed.`;w(wt),i(wt);return}w(lt),i(lt)}})},[E,he,t,v,b,_,p,i]),qe=T.useCallback((C=null)=>{if(!ie)return w("Already pre-booked. Payment options are now available."),Ve(),!1;const Q=C&&typeof C=="object"&&(typeof C.preventDefault=="function"||typeof C.stopPropagation=="function"||C.nativeEvent)?p:C||p;return!t||!Q?(w("Unable to continue. Please save details again."),!1):(Me.current=!0,S(!0),w("Continuing to the next step..."),E(!0,"Pre-booking traveler details..."),Be(!0,"Loading pre-book details..."),u.emit("chat:prebook",{sessionId:t,prebookPayload:Q},z=>{var mt,Ze,at,ot,nt,et,rt,Le,je;if(Be(!1),S(!1),E(!1),!(z!=null&&z.ok)){const X=(z==null?void 0:z.error)||"Failed to pre-book traveler details.";w(X),i(X);return}const G=(z==null?void 0:z.data)||null,K=z!=null&&z.payload&&typeof z.payload=="object"?z.payload:{},ne=(z==null?void 0:z.bookingId)||((mt=G==null?void 0:G.payload)==null?void 0:mt.bookingid)||((Ze=G==null?void 0:G.payload)==null?void 0:Ze.bkid)||((at=G==null?void 0:G.payload)==null?void 0:at.bookingId)||"";A(String(ne||"")),U(G),f(X=>({...X||{},cha:(K==null?void 0:K.cha)!==void 0?K.cha:X==null?void 0:X.cha,chnl:(K==null?void 0:K.chnl)!==void 0?K.chnl:X==null?void 0:X.chnl,agid:(K==null?void 0:K.agid)!==void 0?K.agid:X==null?void 0:X.agid,utyp:(K==null?void 0:K.utyp)!==void 0?K.utyp:X==null?void 0:X.utyp,agtyp:(K==null?void 0:K.agtyp)!==void 0?K.agtyp:X==null?void 0:X.agtyp,trmd:(K==null?void 0:K.trmd)!==void 0?K.trmd:X==null?void 0:X.trmd})),k(X=>({...X||{},cha:(K==null?void 0:K.cha)!==void 0?K.cha:X==null?void 0:X.cha,chnl:(K==null?void 0:K.chnl)!==void 0?K.chnl:X==null?void 0:X.chnl,agid:(K==null?void 0:K.agid)!==void 0?K.agid:X==null?void 0:X.agid,utyp:(K==null?void 0:K.utyp)!==void 0?K.utyp:X==null?void 0:X.utyp,agtyp:(K==null?void 0:K.agtyp)!==void 0?K.agtyp:X==null?void 0:X.agtyp,trmd:(K==null?void 0:K.trmd)!==void 0?K.trmd:X==null?void 0:X.trmd})),j({charges:it((ot=z==null?void 0:z.payment)==null?void 0:ot.charges),gateways:it((nt=z==null?void 0:z.payment)==null?void 0:nt.gateways),customerPg:it((et=z==null?void 0:z.payment)==null?void 0:et.customerPg),promoCodes:it((rt=z==null?void 0:z.payment)==null?void 0:rt.promoCodes),corporate:((Le=z==null?void 0:z.payment)==null?void 0:Le.corporate)||null});const ge=it((je=z==null?void 0:z.payment)==null?void 0:je.charges);if(ge.length>0){const X=ge[0];Z(String((X==null?void 0:X.gatetyp)||"").trim()),re(String((X==null?void 0:X.pm)||"").trim())}else Z(""),re("");P(!1);const we="Pre-book successful. Payment options are now available.";w(we),i(we),Ve()}),!0)},[ie,p,E,i,Ve,t]),Kt=T.useCallback(({continueAfterSave:C=!1}={})=>{if(!ie){w("Traveler details are locked after pre-booking. Click Cancel to edit again.");return}if(!t){w("Session missing. Please refresh and try again.");return}const R=dt();if(Object.keys(R).length>0){N(R),w("Please fix validation errors before saving.");return}d(!0),w("");const Q=Bi(a,{fallbackPayload:e,confirmedRequestPayload:p});d(!1),l(a),k(Q),P(!0),$(!0),U({status:"pending",message:"Traveler details confirmed. Click Proceed to Book to continue."}),w(C?"Traveler details confirmed. Continuing to the next step.":"Traveler details confirmed."),C&&qe(Q),w("Traveler details confirmed.")},[ie,p,qe,a,e,t,dt]),St=!!(a!=null&&a.passportRequired);T.useEffect(()=>{if(!ie||!ae||He.current)return;const C=`Please fill traveler details. ${qn(ae,St)} You can also paste fixed format: TRAVELLER 1; FN:John; LN:Doe; TL:M; DOB:1992-08-14; TYP:ADT; NAT:IN; NUM:K1234567; ISSDT:2018-01-01; EXPDT:2028-01-01`;w(C),i(C),He.current=!0},[ie,ae,i,St]);const Vt=T.useCallback(()=>{var lt,xt,Pt,wt;if(!he)return;if(!t||!Se){w("Missing booking reference. Please pre-book again.");return}if(!B||!se){w("Please select payment gateway and mode.");return}const C=Number(((xt=(lt=_==null?void 0:_.selectedFlight)==null?void 0:lt.fare)==null?void 0:xt.totalFare)||0)||0,R=Number(((wt=(Pt=_==null?void 0:_.selectedReturnFlight)==null?void 0:Pt.fare)==null?void 0:wt.totalFare)||0)||0,Q=Number((C+R).toFixed(2)),z=Yr({charges:O==null?void 0:O.charges,selectedGateway:B,selectedPaymentMode:se}),G=Kr(z),K=Y?(Number(Y.ondis)||0)+(Number(Y.rtdis)||0):0,ne=Number((Q+G-K).toFixed(2)),ge=String(B||"").toLowerCase(),we=String(se||"").toUpperCase().trim(),mt=ge.includes("razor")||we==="RP",Ze=ge.includes("ease"),at=ge.includes("atom"),ot=ge.includes("phone"),nt=we==="CA"||ge.includes("ccavenue")||ge.includes("ccav"),et=we==="BL"||ge.includes("balance"),rt=we==="CR"||ge.includes("crypto")||ge.includes("blockchain"),Le=fe[0]||{},je=`${(Le==null?void 0:Le.fn)||""} ${(Le==null?void 0:Le.ln)||""}`.trim()||"Traveler";let X={ukey:p==null?void 0:p.ukey,amt:ne,chnl:(p==null?void 0:p.chnl)||"B2C",tt:p==null?void 0:p.tt,typ:"book",em:p==null?void 0:p.em,bkid:Se,styp:(_==null?void 0:_.styp)||"",agid:(_==null?void 0:_.agid)??null,uid:(_==null?void 0:_.uid)??null};if(et)X={...X,paytyp:"CL",paymd:"BL",pm:"BL",gatetyp:"Balance"};else if(mt)X={...X,phno:p==null?void 0:p.ph,paymd:String(se||"").trim()};else if(at)X={...X,phno:p==null?void 0:p.ph,pc:String(se||"").trim()};else if(Ze)X={...X,ph:p==null?void 0:p.ph,nm:je,prdinf:"MagicFares",rmks:"",trnskey:new Date().toISOString(),show_payment_mode:String(se||"").trim(),skey:String((z==null?void 0:z.skey)||(_==null?void 0:_.skey)||"").trim(),uid:(_==null?void 0:_.uid)===void 0||(_==null?void 0:_.uid)===null?"":String(_==null?void 0:_.uid)};else if(ot)X={...X,amt:String(ne.toFixed(2)),ph:p==null?void 0:p.ph,nm:je,prdinf:"Book N Travel",rmks:"",trnskey:new Date().toISOString(),uid:(_==null?void 0:_.uid)===void 0||(_==null?void 0:_.uid)===null?"null":String(_==null?void 0:_.uid)};else if(nt){const Te=String(se||"").trim().toUpperCase(),tt=Te==="CC"?"OPTCRDC":Te==="DC"?"OPTDBCRD":Te==="NB"?"OPTNBK":Te==="UP"||Te==="UPI"?"OPTMOBP":"";X={...X,ph:p==null?void 0:p.ph,nm:je,paymd:"CA",pm:String(se||"").trim(),ptyp:tt,gatetyp:B,prdinf:"MagicFares",rmks:"",trnskey:new Date().toISOString()}}else rt?X={...X,ph:p==null?void 0:p.ph,nm:je,pm:"CR",gatetyp:"Crypto",prdinf:"MagicFares",rmks:"",trnskey:new Date().toISOString()}:X={...X,ph:p==null?void 0:p.ph,nm:je,prdinf:"Book N Travel",rmks:"",trnskey:new Date().toISOString(),gatetyp:B,pm:String(se||"").trim()};Ae(!0),w(""),E(!0,"Processing payment..."),Be(!0,"Loading payment gateway..."),u.emit("chat:pay",{sessionId:t,bookingId:Se,paymentGateway:B,paymentMode:se,bookingPayload:X},async Te=>{var Gt,Ft;if(Be(!1),Ae(!1),E(!1),!(Te!=null&&Te.ok)){w((Te==null?void 0:Te.error)||"Unable to start payment right now.");return}if(et){const ht=((Gt=Te==null?void 0:Te.data)==null?void 0:Gt.message)||"Booking confirmed successfully. Please check the confirmation details.";ve(!1),w(ht),i(ht),o({ukey:(p==null?void 0:p.ukey)||(X==null?void 0:X.ukey)||(a==null?void 0:a.ukey)||"",bookingId:Se,confirmation:((Ft=Te==null?void 0:Te.data)==null?void 0:Ft.payload)||(Te==null?void 0:Te.data)||null});return}const tt=await Ki({gateway:B,paymentMode:se,apiData:Te==null?void 0:Te.data,bookingPayload:X,onGatewayCallback:()=>{ve(!1);const ht="Payment got Completed.";w(ht),i(ht)},onGatewayDismiss:()=>{ve(!0)}});if(tt!=null&&tt.launched){const ht="Payment got Completed. Please check the confirmation page details.";w(ht),i(ht),o({ukey:(p==null?void 0:p.ukey)||(X==null?void 0:X.ukey)||(a==null?void 0:a.ukey)||"",bookingId:Se});return}if(tt!=null&&tt.reason){w(`Payment initiated but checkout did not open: ${tt.reason}`);return}w("Payment booking initiated successfully.")})},[he,_,p,E,o,i,O,a==null?void 0:a.ukey,Se,Y,B,se,t,fe]);return T.useEffect(()=>{if(n)return;const C=R=>{var et,rt,Le,je,X,lt,xt,Pt,wt,Te,tt,Gt,Ft,ht,Fr,Lr;const Q=String(((et=R==null?void 0:R.detail)==null?void 0:et.text)||"").trim();if(!Q)return;const z=String(Q||"").trim().match(/\b(?:traveller|traveler)\s*(\d+)\b/i),G=Math.min(z?Math.max(Number(z[1])-1,0):0,Math.max(fe.length-1,0)),K=ea(Q,{passportRequired:St,defaultTyp:(rt=fe[G])==null?void 0:rt.typ});if(K!=null&&K.isFixedFormat&&!(K!=null&&K.isValid)){(je=(Le=R.detail)==null?void 0:Le.appendUserMessage)==null||je.call(Le,Q),(lt=(X=R.detail)==null?void 0:X.markHandled)==null||lt.call(X);const de=`Invalid traveller format: ${K.error}. Use: ${ta(St)}`;w(de),i(de);return}if(K!=null&&K.isFixedFormat&&(K!=null&&K.isValid)){(Pt=(xt=R.detail)==null?void 0:xt.appendUserMessage)==null||Pt.call(xt,Q),(Te=(wt=R.detail)==null?void 0:wt.markHandled)==null||Te.call(wt);const de=Math.max(0,Math.min(Number((K==null?void 0:K.travellerIndex)||0),Math.max(fe.length-1,0)));if(!ie||!fe[de])return;const st=Gr(K==null?void 0:K.updates);f($t=>{const It={...$t,trvlrs:[...($t==null?void 0:$t.trvlrs)||[]]};return It.trvlrs[de]?(It.trvlrs[de]={...It.trvlrs[de],...st},It):$t}),N($t=>{const It={...$t};return Object.keys(st||{}).forEach(Qs=>{delete It[`${de}.${Qs}`]}),It});const Lt=`Updated Traveler ${de+1} from chat format.`;w(Lt),i(Lt);return}const ne=Wi(Q,{passportRequired:St,traveller:ae});if(!ne)return;if((Gt=(tt=R.detail)==null?void 0:tt.appendUserMessage)==null||Gt.call(tt,Q),(ht=(Ft=R.detail)==null?void 0:Ft.markHandled)==null||ht.call(Ft),ne!=null&&ne.blockedReason){w(ne.blockedReason),i(ne.blockedReason);return}if(ne.intent==="confirm_payment"){if(!Se){const de="Please complete traveller details and pre-book before paying.";w(de),i(de);return}window.dispatchEvent(new CustomEvent("traveler-form:confirm-payment-request"));return}if(ne.intent==="select_payment_mode"){const de=String(((Fr=ne==null?void 0:ne.updates)==null?void 0:Fr.paymentMode)||"").trim().toUpperCase(),st=ra(de);if(de&&st){Z(st),re(de);const Lt=`Selected payment mode as ${sa(de)}.`;w(Lt),i(Lt)}return}if(ne.intent==="apply_promo"){if(ne.updates.code)ft(ne.updates.code);else{const de="Please specify the promo code you want to apply.";w(de),i(de)}return}if(ne.intent==="remove_promo"){We((Lr=ne==null?void 0:ne.updates)==null?void 0:Lr.code);return}if(!ae)return;if(ne.intent==="save_details"){Kt({continueAfterSave:!1});return}if(ne.intent==="proceed_to_book"){window.dispatchEvent(new CustomEvent("traveler-form:confirm-proceed-request"));return}if(ne.intent==="edit_details"){$(!1),P(!1);const de="Form unlocked for editing.";w(de),i(de);return}if(ne.intent==="go_back"){const de="Going back to your previous flight results.";w(de),i(de),s();return}if(!ie)return;if(!ne.updates||Object.keys(ne.updates).length===0){const de=qn(ae,St);w(de),i(de);return}D&&($(!1),P(!1));const ge=Gr(ne.updates);if(!Object.keys(ge).length){const de="Traveler type cannot be changed. Please update other traveler details only.";w(de),i(de);return}const we=Zi(Q,fe);if(we!=null&&we.error){w(we.error),i(we.error);return}const mt=(we==null?void 0:we.index)!==null&&(we==null?void 0:we.index)!==void 0?we.index:ne.targetIndex!==null&&ne.targetIndex!==void 0?Math.max(0,Math.min(ne.targetIndex,fe.length-1)):fe.findIndex(de=>!String(de.fn||"").trim()),Ze=mt===-1?0:mt,at=fe[Ze]||ae||{};f(de=>{const st={...de,trvlrs:[...(de==null?void 0:de.trvlrs)||[]]};return st.trvlrs[Ze]?(st.trvlrs[Ze]={...st.trvlrs[Ze],...ge},st):de}),N(de=>{const st={...de};return Object.keys(ge).forEach(Lt=>{delete st[`${Ze}.${Lt}`]}),st});const ot={...at||{},...ge},nt=qi({traveller:ot,updates:ge,passportRequired:St});w(nt),i(nt)};return window.addEventListener("traveler-form:voice-input",C),()=>{window.removeEventListener("traveler-form:voice-input",C)}},[ie,n,ae,ft,We,qe,Kt,D,i,St,Vt,s,Re,Se,fe]),T.useEffect(()=>{if(!ie)return;const C=()=>{qe()};return window.addEventListener("traveler-form:proceed-book",C),()=>{window.removeEventListener("traveler-form:proceed-book",C)}},[ie,qe]),T.useEffect(()=>{const C=()=>{Vt()};return window.addEventListener("traveler-form:execute-pay-now",C),()=>{window.removeEventListener("traveler-form:execute-pay-now",C)}},[Vt]),T.useEffect(()=>{const C=R=>{var K;const Q=(K=R.detail)==null?void 0:K.index;if(typeof Q!="number"||!Oe[Q])return;const z=Oe[Q],G=fe.findIndex(ne=>!String(ne.fn||"").trim());Ce(G!==-1?G:0,z)};return window.addEventListener("traveler-form:apply-saved",C),()=>{window.removeEventListener("traveler-form:apply-saved",C)}},[Oe,fe,Ce]),T.useEffect(()=>{var G;if(D||!ie){window.dispatchEvent(new CustomEvent("traveler-form:update-options",{detail:{options:[]}}));return}const C=fe.findIndex(K=>!String(K.fn||"").trim());if(C===-1){window.dispatchEvent(new CustomEvent("traveler-form:update-options",{detail:{options:[]}}));return}const R=(G=fe[C])==null?void 0:G.typ,z=Oe.filter(K=>Ur(K,R)).slice(0,3).map(K=>{const ne=Oe.indexOf(K);return{label:`${K.fn||""} ${K.ln||""}`.trim(),value:`APPLY_SAVED_TRAVELLER:${ne}`}});window.dispatchEvent(new CustomEvent("traveler-form:update-options",{detail:{options:z}}))},[fe,Oe,D,ie]),T.useEffect(()=>{c({showSummary:!!((D||Re)&&he),showPayment:!!(Se&&he),showPayNow:!!(Se&&he&&Ne&&!q),summary:{payload:_,prebookResponse:v,convenienceFee:ee,appliedPromocode:b,promocodeDiscount:Y},proceed:{showProceedActions:!!(H&&D&&he),showEditButton:!Se,proceedButtonText:g?"Processing...":"Proceed to Book",disableEditButton:!!(g||Re||n),disableProceedButton:!!(g||Re||n||!ie),onEditDetails:()=>{$(!1),P(!1)},onProceedToBook:()=>window.dispatchEvent(new CustomEvent("traveler-form:confirm-proceed-request"))},payment:{paymentSummary:O,appliedPromocode:b,isApplyingPromo:te,handleRemovePromocode:We,handleApplyPromocode:ft,shouldShowInboundApprovalRequest:q,tripReason:De,setTripReason:ke,handleApprovalRequest:jt,isSubmittingApprovalRequest:Ie,selectedGateway:B,selectedPaymentMode:se,sdkWarning:F,fareCurrency:le,allowBalancePaymentOption:ct,combineOnlineOptions:Ue||Ge||Qe,setSelectedGateway:Z,setSelectedPaymentMode:re,totalPayableAmount:vt,handlePayNow:Vt,isPaying:ye}})},[c,D,Re,he,H,g,n,ie,Se,Ne,q,_,v,ee,b,Y,O,te,We,ft,De,ke,jt,Ie,B,se,F,le,ct,Ue,Ge,Qe,Z,re,vt,Vt,ye]),T.useEffect(()=>()=>c(null),[c]),ae?r.jsx(r.Fragment,{children:Re?null:r.jsxs("div",{className:"traveler-form","data-voice-traveler-form":"active","data-prebook-done":Re?"true":"false",children:[r.jsx("div",{className:"traveler-form__header-row",children:r.jsx("h3",{className:"traveler-form__header",children:"Travellers Details"})}),r.jsx("p",{className:"traveler-form__subtext",children:"Ensure traveler details accurately match their official ID."}),fe.map((C,R)=>{const Q=Ds(C==null?void 0:C.typ),z=Object.entries(_e).filter(([G])=>Number(G)!==Number(R)).map(([,G])=>G);return r.jsxs("div",{className:"traveler-form__traveller-block",children:[r.jsxs("div",{className:"traveler-form__header-row",children:[r.jsxs("h3",{className:"traveler-form__header",children:["Traveler ",R+1]}),r.jsxs("span",{className:"traveler-form__type-chip",children:["(",Q,")"]})]}),r.jsx("div",{className:"traveler-form__section-card",children:r.jsxs("div",{className:"traveler-form__grid traveler-form__grid--4",children:[r.jsx(zi,{label:"Gender *",value:(C==null?void 0:C.tl)||"",onChange:G=>me(R,"tl",G),options:[{value:"",label:"Select Gender"},{value:"M",label:"Male"},{value:"F",label:"Female"}],error:m[`${R}.tl`],disabled:!ie}),r.jsx(Pi,{label:"First Name *",value:(C==null?void 0:C.fn)||"",onChange:G=>me(R,"fn",G),onSelectFrequentTraveller:G=>Ce(R,G),frequentTravellers:Oe.filter(G=>Ur(G,C==null?void 0:C.typ)),excludedFrequentTravellerKeys:z,placeholder:"First Name",error:m[`${R}.fn`],disabled:!ie,type:(C==null?void 0:C.typ)||"ADT"}),r.jsx(kn,{label:"Last Name *",value:(C==null?void 0:C.ln)||"",onChange:G=>me(R,"ln",G.target.value),placeholder:"Last Name",error:m[`${R}.ln`],disabled:!ie}),r.jsx(Tn,{label:"Date of Birth *",value:C==null?void 0:C.dob,onChange:G=>me(R,"dob",G),error:m[`${R}.dob`],disabled:!ie,minDate:Hr(C==null?void 0:C.typ).minDate,maxDate:Hr(C==null?void 0:C.typ).maxDate})]})}),St&&r.jsxs(r.Fragment,{children:[r.jsxs("h3",{className:"traveler-form__header",children:["Passport Details - Traveler ",R+1]}),r.jsx("p",{className:"traveler-form__subtext",children:"Required for international travel"}),r.jsx("div",{className:"traveler-form__section-card",children:r.jsxs("div",{className:"traveler-form__grid traveler-form__grid--4",children:[r.jsx(kn,{label:"Nationality",value:(C==null?void 0:C.nat)||"",onChange:G=>me(R,"nat",G.target.value),placeholder:"Nationality",error:m[`${R}.nat`],disabled:!ie}),r.jsx(kn,{label:"Passport Number",value:(C==null?void 0:C.num)||"",onChange:G=>me(R,"num",G.target.value),placeholder:"Passport Number",error:m[`${R}.num`],disabled:!ie}),r.jsx(Tn,{label:"Issue Date",value:C==null?void 0:C.issdt,onChange:G=>me(R,"issdt",G),error:m[`${R}.issdt`],disabled:!ie,maxDate:new Date}),r.jsx(Tn,{label:"Expiry Date",value:C==null?void 0:C.expdt,onChange:G=>me(R,"expdt",G),error:m[`${R}.expdt`],disabled:!ie,minDate:new Date})]})})]})]},`traveller-${R}`)}),Re?null:r.jsxs("div",{className:"traveler-form__footer-actions",children:[r.jsx("button",{type:"button",className:"traveler-form__btn traveler-form__btn--cancel",onClick:ut,disabled:y||g||n,children:"Go Back"}),r.jsx("button",{type:"button",className:"traveler-form__btn traveler-form__btn--save",onClick:Kt,disabled:y||g||!ie,children:y?"Saving...":"Save Details"})]}),x?r.jsx("div",{className:"traveler-form__status-text",children:tn(x)}):null]})}):null}function it(e){return Array.isArray(e)?e:e&&Array.isArray(e.payload)?e.payload:e&&typeof e=="object"?[e]:[]}function Ii(e){if(typeof e=="boolean")return e;const t=String(e||"").trim().toLowerCase();return t?["true","1","y","yes"].includes(t):!1}function Ri(e){return Array.isArray(e)?e.filter(t=>t&&typeof t=="object"):[]}function Ur(e,t){const n=String((e==null?void 0:e.typ)||"").trim().toUpperCase(),s=String(t||"").trim().toUpperCase();return!s||!n?!1:n===s}function Ts(e={}){const t=String((e==null?void 0:e.fn)||"").trim().toLowerCase(),n=String((e==null?void 0:e.ln)||"").trim().toLowerCase(),s=String((e==null?void 0:e.dob)||"").trim(),i=String((e==null?void 0:e.typ)||"").trim().toUpperCase(),o=String((e==null?void 0:e.num)||"").trim().toUpperCase();return[t,n,s,i,o].join("|")}function An(e){if(!e)return null;const t=new Date(e);if(Number.isNaN(t.getTime()))return null;const n=t.getUTCFullYear(),s=String(t.getUTCMonth()+1).padStart(2,"0"),i=String(t.getUTCDate()).padStart(2,"0");return`${n}-${s}-${i}`}function Mi(e={}){const t=String((e==null?void 0:e.typ)||"ADT").trim().toUpperCase(),n={sno:Number((e==null?void 0:e.sno)||0),tl:String((e==null?void 0:e.tl)||"").trim(),typ:t,ldpax:!!(e!=null&&e.ldpax),fn:String((e==null?void 0:e.fn)||"").trim(),ln:String((e==null?void 0:e.ln)||"").trim(),dob:An(e==null?void 0:e.dob),nat:String((e==null?void 0:e.nat)||"").trim(),isc:String((e==null?void 0:e.isc)||"").trim(),num:String((e==null?void 0:e.num)||"").trim(),expdt:An(e==null?void 0:e.expdt),issdt:An(e==null?void 0:e.issdt),dtyp:String((e==null?void 0:e.dtyp)||"P").trim()||"P"};return t!=="INF"&&(n.extbag=Array.isArray(e==null?void 0:e.extbag)?e.extbag:[],n.meal=Array.isArray(e==null?void 0:e.meal)?e.meal:[],n.seat=Array.isArray(e==null?void 0:e.seat)?e.seat:[]),n}function Bi(e={},t={}){const n=t!=null&&t.fallbackPayload&&typeof t.fallbackPayload=="object"?t.fallbackPayload:{},s=t!=null&&t.confirmedRequestPayload&&typeof t.confirmedRequestPayload=="object"?t.confirmedRequestPayload:{},i=String((e==null?void 0:e.agtyp)||(n==null?void 0:n.agtyp)||(s==null?void 0:s.agtyp)||"").trim(),o=i.trim().toLowerCase(),c=String((e==null?void 0:e.chnl)||(e==null?void 0:e.cha)||"").trim().toLowerCase(),u=String((n==null?void 0:n.chnl)||(n==null?void 0:n.cha)||(s==null?void 0:s.chnl)||(s==null?void 0:s.cha)||"").trim().toLowerCase(),a=c||u,f=a==="b2b"||a==="corp"||o.includes("b2b")||o.includes("corporate")?"B2B":"B2C",d=(Array.isArray(e==null?void 0:e.trvlrs)?e.trvlrs:[]).map((A,v)=>{const U=Mi(A);return U.sno=U.sno>0?U.sno:v+1,U}),g=[],S=[],x=[];d.forEach(A=>{const v=String((A==null?void 0:A.typ)||"").toUpperCase();if(v==="INF"){x.push(A);return}if(v==="ADT"){g.push(A);return}S.push(A)});const w=g.map((A,v)=>{const U=x[v]||null;return U?{...A,inf:{...U,sno:Number((A==null?void 0:A.sno)||v+1)}}:A}),m=x.length>g.length?x.slice(g.length):[],N=[...w,...S,...m].map((A,v)=>({...A,sno:v+1})),h={ukey:String((e==null?void 0:e.ukey)||"").trim(),ptyp:String((e==null?void 0:e.ptyp)||"CD").trim()||"CD",prd:String((e==null?void 0:e.prd)||"F").trim()||"F",em:String((e==null?void 0:e.em)||"").trim(),ph:String((e==null?void 0:e.ph)||"").trim(),trvlrs:N,tt:String((e==null?void 0:e.tt)??"1").trim()||"1",chnl:f,cha:f,agid:(e==null?void 0:e.agid)??(n==null?void 0:n.agid)??(s==null?void 0:s.agid)??null,trmd:String((e==null?void 0:e.trmd)||(n==null?void 0:n.trmd)||(s==null?void 0:s.trmd)||"").trim(),utyp:String((e==null?void 0:e.utyp)||(n==null?void 0:n.utyp)||(s==null?void 0:s.utyp)||"").trim(),agtyp:i};return(e==null?void 0:e.cd)!==void 0&&(e==null?void 0:e.cd)!==null&&(h.cd=String(e.cd||"").trim()),(e==null?void 0:e.rukey)!==void 0&&(e==null?void 0:e.rukey)!==null&&(h.rukey=String(e.rukey||"").trim()),(e==null?void 0:e.gst)!==void 0&&(e==null?void 0:e.gst)!==null&&(h.gst=e.gst),h}function kn({label:e,error:t,...n}){const s=["traveler-form__input",t?"traveler-form__input--error":"",n.disabled?"traveler-form__input--disabled":""].filter(Boolean).join(" ");return r.jsxs("label",{className:"traveler-form__label-wrap",children:[r.jsx("span",{className:"traveler-form__label",children:e}),r.jsx("input",{className:s,...n}),t?r.jsx("span",{className:"traveler-form__error-text",children:tn(t)}):null]})}function Pi({label:e,value:t,onChange:n,onSelectFrequentTraveller:s,frequentTravellers:i=[],excludedFrequentTravellerKeys:o=[],placeholder:c="First Name",error:u,disabled:a=!1,type:f}){const y=["traveler-form__input",u?"traveler-form__input--error":"",a?"traveler-form__input--disabled":""].filter(Boolean).join(" "),[d,g]=T.useState(!1),[S,x]=T.useState(String(t||""));T.useEffect(()=>{x(String(t||""))},[t]);const m=i.map((N,h)=>{const A=Ts(N);if(o.includes(A))return null;const v=String((N==null?void 0:N.fn)||"").trim(),U=String((N==null?void 0:N.ln)||"").trim(),_=`${v} ${U}`.trim();return{value:`saved-${h}`,label:_||v||`Traveller ${h+1}`,firstName:v,savedTraveller:N}}).filter(Boolean).filter(N=>{const h=String(S||"").trim().toLowerCase()&&N.savedTraveller.typ===f;return h?String((N==null?void 0:N.firstName)||"").toLowerCase().includes(h)||String((N==null?void 0:N.label)||"").toLowerCase().includes(h):!0});return r.jsxs("div",{className:"traveler-form__label-wrap",children:[r.jsx("span",{className:"traveler-form__label",children:e}),r.jsxs("div",{style:{position:"relative"},children:[r.jsx("input",{className:y,value:S,onChange:N=>{const h=N.target.value;x(h),n(h),a||g(!0)},onFocus:()=>{a||g(!0)},onBlur:()=>{window.setTimeout(()=>g(!1),120)},placeholder:c,disabled:a,autoComplete:"off"}),d&&m.length>0?r.jsx("div",{style:{position:"absolute",top:"100%",left:0,right:0,zIndex:8,background:"#fff",border:"1px solid #d4d9e6",borderRadius:10,boxShadow:"0 8px 18px rgba(15, 23, 42, 0.08)",maxHeight:220,overflowY:"auto",marginTop:4},children:m.map(N=>r.jsx("button",{type:"button",onMouseDown:h=>h.preventDefault(),onClick:()=>{x(N.firstName),s(N.savedTraveller),g(!1)},style:{width:"100%",textAlign:"left",border:0,background:"transparent",padding:"10px 12px",cursor:"pointer"},children:N.label},N.value))}):null]}),u?r.jsx("span",{className:"traveler-form__error-text",children:tn(u)}):null]})}function zi({label:e,options:t,error:n,value:s,onChange:i,disabled:o=!1}){const c=["traveler-form__react-select",n?"traveler-form__react-select--error":"",o?"traveler-form__react-select--disabled":""].filter(Boolean).join(" "),u=t.find(a=>String(a.value)===String(s??""))||null;return r.jsxs("label",{className:"traveler-form__label-wrap",children:[r.jsx("span",{className:"traveler-form__label",children:e}),r.jsx(ei,{className:c,classNamePrefix:"traveler-form__react-select",value:u,onChange:a=>i((a==null?void 0:a.value)??""),options:t,isDisabled:o,isSearchable:!1,menuPlacement:"auto"}),n?r.jsx("span",{className:"traveler-form__error-text",children:tn(n)}):null]})}function Tn({label:e,error:t,value:n,onChange:s,disabled:i=!1,minDate:o=null,maxDate:c=null}){const u=["traveler-form__input",t?"traveler-form__input--error":"",i?"traveler-form__input--disabled":""].filter(Boolean).join(" ");return r.jsxs("label",{className:"traveler-form__label-wrap",children:[r.jsx("span",{className:"traveler-form__label",children:e}),r.jsx(Wn,{selected:Hi(n),onChange:a=>s(Yi(a)),dateFormat:"dd-MM-yyyy",placeholderText:"Please select a date",disabled:i,className:u,wrapperClassName:"traveler-form__datepicker-wrap",popperClassName:"traveler-form__datepicker-popper",calendarClassName:"traveler-form__datepicker-calendar",showPopperArrow:!1,popperPlacement:"bottom-start",showMonthDropdown:!0,showYearDropdown:!0,dropdownMode:"select",yearDropdownItemNumber:100,scrollableYearDropdown:!0,autoComplete:"off",minDate:o,maxDate:c}),t?r.jsx("span",{className:"traveler-form__error-text",children:tn(t)}):null]})}function Yt(e){if(!e)return"";const t=new Date(e);if(Number.isNaN(t.getTime()))return"";const n=t.getFullYear(),s=String(t.getMonth()+1).padStart(2,"0"),i=String(t.getDate()).padStart(2,"0");return`${n}-${s}-${i}`}function Zt(e,t){const n=new Date(e);return n.setFullYear(n.getFullYear()+t),n}function Or(e,t){const n=new Date(e);return n.setDate(n.getDate()+t),n}function Hr(e){const t=new Date;t.setHours(0,0,0,0);const n=String(e||"ADT").trim().toUpperCase();return n==="INF"?{minDate:Or(Zt(t,-2),1),maxDate:t}:n==="CHD"?{minDate:Or(Zt(t,-12),1),maxDate:Zt(t,-2)}:{minDate:Zt(t,-120),maxDate:Zt(t,-12)}}function Ui(e){const t=new Date(e);if(Number.isNaN(t.getTime()))return null;const n=new Date;let s=n.getFullYear()-t.getFullYear();const i=n.getMonth()-t.getMonth(),o=n.getDate()-t.getDate();return(i<0||i===0&&o<0)&&(s-=1),s}function Oi(e,t){const n=Ui(t);if(n===null)return null;const s=String(e||"ADT").trim().toUpperCase();return s==="INF"&&n>=2?"Infant age must be below 2 years.":s==="CHD"&&(n<2||n>=12)?"Child age must be between 2 and 11 years.":s==="ADT"&&n<12?"Adult age must be 12 years or above.":null}function Hi(e){if(!e)return null;const t=new Date(e);return Number.isNaN(t.getTime())?null:t}function Yi(e){return e?new Date(e).toISOString():null}async function Ki({gateway:e,paymentMode:t,apiData:n,bookingPayload:s,onGatewayCallback:i,onGatewayDismiss:o}){const c=String(e||"").toLowerCase(),u=String(t||"").trim().toUpperCase(),a=(n==null?void 0:n.payload)||{};if(c.includes("razor")){const y=(a==null?void 0:a.ordid)||(a==null?void 0:a.order_id)||(a==null?void 0:a.orderId),d=process.env.REACT_APP_RAZOR_KEY||process.env.REACT_APP_RAZORPAY_KEY||process.env.razor_key||"";if(!y)return{launched:!1,reason:"order id missing in response"};if(!d)return{launched:!1,reason:"Razorpay key missing in frontend env"};if(typeof(window==null?void 0:window.Razorpay)!="function"){const w=process.env.REACT_APP_RAZOR_CHECKOUT||"https://checkout.razorpay.com/v1/checkout.js";if(!await Dt("razorpay-checkout-sdk",w)||typeof(window==null?void 0:window.Razorpay)!="function")return{launched:!1,reason:"Razorpay SDK not loaded"}}const g=Math.round(Number((s==null?void 0:s.amt)||0))*100,S=process.env.REACT_APP_PAYMENT_GATEWAY_BASE_URL||process.env.REACT_APP_PG_BASE_URL||"http://localhost:3049",x={key:d,amount:g,currency:"INR",order_id:y,name:"Book N Travel",description:`Booking ${(s==null?void 0:s.bkid)||""}`.trim(),prefill:{email:(s==null?void 0:s.em)||"",contact:(s==null?void 0:s.phno)||(s==null?void 0:s.ph)||""},theme:{color:"#2563eb"},modal:{}};return await new Promise(w=>{let m=!1,N=!1;const h=A=>{m||(m=!0,w(A))};x.modal.ondismiss=()=>{!N&&typeof o=="function"&&o(),h({launched:!1,reason:"Checkout closed by user."})},x.handler=A=>{N=!0,typeof i=="function"&&i(),Vi({callbackBaseUrl:S,payload:{razorpay_payment_id:(A==null?void 0:A.razorpay_payment_id)||"",razorpay_order_id:(A==null?void 0:A.razorpay_order_id)||y,razorpay_signature:(A==null?void 0:A.razorpay_signature)||"",bkid:(s==null?void 0:s.bkid)||""}}).catch(()=>{}).finally(()=>{h({launched:!0,reason:"Payment completed."})})};try{const A=new window.Razorpay(x);A.on("payment.failed",v=>{var _,l,p;const U=((_=v==null?void 0:v.error)==null?void 0:_.description)||((l=v==null?void 0:v.error)==null?void 0:l.reason)||((p=v==null?void 0:v.error)==null?void 0:p.code)||"Payment failed.";h({launched:!1,reason:U})}),A.open()}catch(A){h({launched:!1,reason:`Razorpay open failed: ${(A==null?void 0:A.message)||"unknown error"}`})}})}if(c.includes("ccavenue")||c.includes("ccav")||["CC","DC","NB","UP","UPI","CA"].includes(u)){const y=process.env.REACT_APP_CCAVENUE_URL||process.env.CCAVENUE_URL||"",d=a!=null&&a.payload&&typeof a.payload=="object"?a.payload:a,g=(d==null?void 0:d.encryptedKey)||(d==null?void 0:d.encRequest)||(d==null?void 0:d.encReq)||"",S=(d==null?void 0:d.accessCode)||(d==null?void 0:d.access_code)||"";if(!y||!g)return{launched:!1,reason:"CCAvenue URL/encryptedKey missing in response"};const w=`${String(y).replace(/\/$/,"")}/transaction/transaction.do?command=initiateTransaction&encRequest=${encodeURIComponent(g)}`+(S?`&access_code=${encodeURIComponent(S)}`:""),m=460,N=720,h=Math.max(Math.round((window.screen.width-m)/2),0),A=Math.max(Math.round((window.screen.height-N)/2),0);return window.open(w,"ccavenuePayment",`popup=yes,width=${m},height=${N},left=${h},top=${A},resizable=yes,scrollbars=yes`)||(window.location.href=w),{launched:!0}}if(c.includes("ease")){const y=process.env.REACT_APP_EASE_BUZZ_PAY||process.env.EASE_BUZZ_PAY||"",d=process.env.REACT_APP_EASE_BUZZ_REDIRECT_URL||process.env.EASE_BUZZ_REDIRECT_URL||"",g=(a==null?void 0:a.data)||(a==null?void 0:a.token)||(a==null?void 0:a.key),S=(a==null?void 0:a.redirectUrl)||(a==null?void 0:a.redirect_url)||(a==null?void 0:a.url)||d;return S?(window.location.href=S,{launched:!0}):y&&g?(window.location.href=`${y}${g}`,{launched:!0}):!y&&!S?{launched:!1,reason:"EaseBuzz pay URL missing in frontend env"}:{launched:!1,reason:"EaseBuzz token/url missing"}}if(c.includes("phone")){const y=process.env.REACT_APP_PHONEPE_REDIRECT_URL||process.env.PHONEPE_REDIRECT_URL||"",d=(a==null?void 0:a.redirectUrl)||(a==null?void 0:a.redirect_url)||(n==null?void 0:n.redirectUrl)||y;return d?(window.location.href=d,{launched:!0}):{launched:!1,reason:"PhonePe redirect URL missing"}}if(c.includes("atom")){const y=process.env.REACT_APP_ATOM_REDIRECT_URL||process.env.ATOM_REDIRECT_URL||"",d=(a==null?void 0:a.redirectUrl)||(a==null?void 0:a.redirect_url)||(a==null?void 0:a.url)||y;if(d)return window.location.href=d,{launched:!0};const g=(a==null?void 0:a[0])||(a==null?void 0:a.token)||(a==null?void 0:a.atomTokenId)||(a==null?void 0:a.atomToken);if(g){const S=process.env.REACT_APP_ATOM_SDK_URL||process.env.ATOM_SDK_URL||"";if(typeof(window==null?void 0:window.AtomPaynetz)!="function"&&S&&(!await Dt("atom-checkout-sdk",S)||typeof(window==null?void 0:window.AtomPaynetz)!="function"))return{launched:!1,reason:"Atom SDK not loaded"};if(typeof(window==null?void 0:window.AtomPaynetz)!="function")return{launched:!1,reason:"Atom SDK missing in browser"};const x=process.env.REACT_APP_ATOM_MERCHANT_ID||process.env.MERCHENT_ID||"",w=process.env.REACT_APP_PAYMENT_REDIRECT_URL||process.env.REDIRECTION_URL||"";if(!x||!w)return{launched:!1,reason:"Atom merchant/redirect env missing"};const m={atomTokenId:g,merchId:x,custEmail:(s==null?void 0:s.em)||"",custMobile:(s==null?void 0:s.phno)||(s==null?void 0:s.ph)||"",returnUrl:`${w}/api/v1/atom/payment-response`,userAgent:"mobile_webView"};return new window.AtomPaynetz(m,"uat"),{launched:!0}}return{launched:!1,reason:"Atom token/redirect missing in response"}}return{launched:!1,reason:"Unsupported gateway launch flow"}}async function Vi({callbackBaseUrl:e,payload:t}){const n=String(e).replace(/\/$/,"");if(!n)return;const s=`${n}/api/v1/razorpay/payment-response`;await fetch(s,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t||{}),keepalive:!0})}function Dt(e,t){return t?document.getElementById(e)?Promise.resolve(!0):new Promise(s=>{const i=document.createElement("script");i.id=e,i.src=t,i.async=!0,i.onload=()=>s(!0),i.onerror=()=>s(!1),document.body.appendChild(i)}):Promise.resolve(!1)}function Gi(e){const t=new Set;return it(e==null?void 0:e.gateways).forEach(i=>{if(typeof i=="string"&&i.trim()){t.add(i.trim());return}if(Array.isArray(i==null?void 0:i.nm)){i.nm.forEach(c=>{const u=String(c||"").trim();u&&t.add(u)});return}const o=String((i==null?void 0:i.nm)||(i==null?void 0:i.name)||"").trim();o&&t.add(o)}),it(e==null?void 0:e.charges).forEach(i=>{const o=String((i==null?void 0:i.gatetyp)||"").trim();o&&t.add(o)}),Array.from(t)}function Yr({charges:e,selectedGateway:t,selectedPaymentMode:n}){const s=it(e),i=String(t||"").trim(),o=String(n||"").trim().toUpperCase();return o==="CA"?s.find(c=>String((c==null?void 0:c.gatetyp)||"").trim()===i&&String((c==null?void 0:c.pm)||"").trim().toUpperCase()==="DC")||null:s.find(c=>String((c==null?void 0:c.gatetyp)||"").trim()===i&&String((c==null?void 0:c.pm)||"").trim().toUpperCase()===o)||null}function Kr(e={}){const t=["cf","convFee","convenienceFee","gatewayFee","gwFee","fee","chg","charge"];for(const n of t){const s=Number(e==null?void 0:e[n]);if(Number.isFinite(s))return s}return 0}function Ds(e){const t=String(e||"ADT").trim().toUpperCase();return t==="CHD"?"Child":t==="INF"?"Infant":"Adult"}function Wi(e,{passportRequired:t=!1,traveller:n={}}={}){const s=String(e||"").trim(),i=s.toLowerCase();if(!i)return null;if(/\b(save details|save traveler details|save traveller details|save)\b/.test(i))return{intent:"save_details",updates:{}};if(/^\s*back\s*$/.test(i)||/\b(go back|back to results|show previous results|previous results)\b/.test(i))return{intent:"go_back",updates:{}};if(/\b(proceed to book|continue to book|continue booking)\b/.test(i))return{intent:"proceed_to_book",updates:{}};if(/^\s*pay\s*$/i.test(s)||/^\s*paye\s*$/i.test(s)||/^\s*payment\s*$/i.test(s)||/\b(pay now|make payment|complete payment)\b/.test(i))return{intent:"confirm_payment",updates:{}};if(/\b(edit details|edit traveler details|edit traveller details|modify details)\b/.test(i))return{intent:"edit_details",updates:{}};if(/\b(select|choose|set|use)\b.*\b(credit card|debit card|net banking|upi|razor ?pay|crypto)\b/.test(i)||/\b(credit card|debit card|net banking|upi|razor ?pay|crypto)\b/.test(i))return{intent:"select_payment_mode",updates:{paymentMode:na(i)}};const o=i.match(/\b(?:apply|use|add)\s+(?:promo|promocode|promocde|coupon|discount)\s+(?:code\s+)?(\w+)\b/),c=i.match(/\b(?:apply|use|add)\s+(\w+)\s+(?:promo|promocode|promocde|coupon|discount)\b/),u=(o==null?void 0:o[1])||(c==null?void 0:c[1])||"";if(u)return{intent:"apply_promo",updates:{code:u.toUpperCase()}};if(i.match(/\b(remove promo|remove promocode|remove promocde|remove coupon|clear promo|clear promocode|clear promocde|clear coupon|delete promo|delete promocode|delete promocde|delete coupon)\b/))return{intent:"remove_promo",updates:{}};const f=i.match(/\b(?:remove|clear|delete)\s+([a-z0-9_-]+)\s+(?:promo|promocode|promocde|coupon)\b/i);if(f!=null&&f[1])return{intent:"remove_promo",updates:{code:f[1].toUpperCase()}};const y=i.match(/\b(?:traveler|traveller|person)\s+(\d+)\b/),d=i.match(/\b(first|second|third|fourth|fifth|sixth|seventh|eighth|ninth|tenth)\s+(?:traveler|traveller|person)\b/);let g=null;y?g=parseInt(y[1],10)-1:d&&(g={first:0,second:1,third:2,fourth:3,fifth:4,sixth:5,seventh:6,eighth:7,ninth:8,tenth:9}[d[1].toLowerCase()]);const S={},x=Es(n,t),w=/\b(?:change|set|update|make)\b/.test(i)&&/\b(?:traveler|traveller|passenger)\b/.test(i)&&/\b(?:adult|child|infant)\b/.test(i),m=i.match(/\b(?:change|update|set|edit)\s+(.+?)\s+(?:to|is|as|=)\s+(.+)\b/);if(m){const l=m[1],p=Ct(m[2]);if(/\b(first name|given name)\b/.test(l))S.fn=Mt(p);else if(/\b(last name|surname|family name)\b/.test(l))S.ln=Mt(p);else if(/\b(gender|sex)\b/.test(l))/\bfemale\b/.test(p)?S.tl="F":/\bmale\b/.test(p)&&(S.tl="M");else if(/\b(date of birth|dob)\b/.test(l)){const k=zt(p);k&&(S.dob=k)}else/\b(nationality|citizenship)\b/.test(l)?S.nat=p.toUpperCase():/\b(passport number|passport)\b/.test(l)&&(S.num=p.toUpperCase())}const N=/\b(first name|last name|surname|family name|given name)\b/i.test(s),h=s.match(/\b(?:my name is|traveler name is|traveller name is|name is)\s+([A-Za-z]+)(?:\s+([A-Za-z]+))?\b/i);h&&!N&&(h[1]&&(S.fn=Mt(h[1])),h[2]&&(S.ln=Mt(h[2])));const A=s.match(/\b(?:first name|given name)\s+(?:is|as|to|=)\s+([A-Za-z]+)\b/i);A&&(S.fn=Mt(Ct(A[1])));const v=s.match(/\b(?:last name|surname|family name)\s+(?:is|as|to|=)\s+([A-Za-z]+)\b/i);v&&(S.ln=Mt(Ct(v[1]))),/\b(female|woman|girl)\b/i.test(i)?S.tl="F":/\b(male|man|boy)\b/i.test(i)&&(S.tl="M");const U=i.match(/\b(?:traveler type|traveller type|passenger type|type)\s+(?:is|as|to|=)\s+(adult|child|infant)\b/);if(U){const l=U[1];l==="adult"&&(S.typ="ADT"),l==="child"&&(S.typ="CHD"),l==="infant"&&(S.typ="INF")}const _=s.match(/\b(?:date of birth|dob|born on)\s+(?:is|as|to|=)?\s*(.+)$/i);if(_){const l=Ct(_[1]),p=zt(Vr(l)||l)||zt(Vr(s)||"");p&&(S.dob=p)}if(t){const l=s.match(/\b(?:nationality|citizenship)\s+(?:is|as|to|=)\s+([A-Za-z ]+)\b/i);l&&(S.nat=Ct(l[1]));const p=s.match(/\b(?:passport number|passport)\s+(?:is|as|to|=)\s+([A-Za-z0-9]+)\b/i);p&&(S.num=Ct(p[1]).toUpperCase());const k=s.match(/\b(?:issue date)\s+(?:is|as|to|=)?\s*(.+)$/i);if(k){const P=zt(Ct(k[1]));P&&(S.issdt=P)}const H=s.match(/\b(?:expiry date|expiration date)\s+(?:is|as|to|=)?\s*(.+)$/i);if(H){const P=zt(Ct(H[1]));P&&(S.expdt=P)}}return w?{intent:"fill_details",updates:{},targetIndex:g,blockedReason:"Traveler type cannot be changed. Please update other traveler details only."}:(Object.keys(S).length===0&&Ji(S,s,x),{intent:"fill_details",updates:S,targetIndex:g})}function qi({traveller:e,updates:t={},passportRequired:n=!1}){const s=[];t.fn&&s.push(`first name as ${t.fn}`),t.ln&&s.push(`last name as ${t.ln}`),t.tl&&s.push(`gender as ${t.tl==="F"?"female":"male"}`),t.dob&&s.push(`date of birth as ${En(t.dob)}`),t.typ&&s.push(`traveler type as ${Ds(t.typ)}`),t.nat&&s.push(`nationality as ${t.nat}`),t.num&&s.push("passport number"),t.issdt&&s.push(`passport issue date as ${En(t.issdt)}`),t.expdt&&s.push(`passport expiry date as ${En(t.expdt)}`);const i=qn(e,n);return s.length?`Updated ${ia(s)}. ${i}`:i}function qn(e={},t=!1){const n=Es(e,t);return n==="fn"?"What is the first name?":n==="ln"?"What is the last name?":n==="tl"?"What is the gender?":n==="dob"?"What is the date of birth?":n==="typ"?"What is the traveler type?":n==="nat"?"What is the nationality?":n==="num"?"What is the passport number?":n==="issdt"?"What is the passport issue date?":n==="expdt"?"What is the passport expiry date?":"All required traveler details are filled. You can say save details, or provide a correction."}function Es(e={},t=!1){if(!String(e.fn||"").trim())return"fn";if(!String(e.ln||"").trim())return"ln";if(!["M","F"].includes(String(e.tl||"").trim()))return"tl";if(!Yt(e.dob))return"dob";if(!String(e.typ||"").trim())return"typ";if(t){if(!String(e.nat||"").trim())return"nat";if(!String(e.num||"").trim())return"num";if(!Yt(e.issdt))return"issdt";if(!Yt(e.expdt))return"expdt"}return null}function Zi(e,t=[]){const n=String(e||"").trim().toLowerCase();if(!n)return{index:null,error:""};const s=n.match(/\b(?:(first|second|third|fourth|fifth|1st|2nd|3rd|4th|5th|1|2|3|4|5)\s+)?(adult|child|infant)\b/);if(!s)return{index:null,error:""};const o={first:1,second:2,third:3,fourth:4,fifth:5,"1st":1,"2nd":2,"3rd":3,"4th":4,"5th":5,1:1,2:2,3:3,4:4,5:5}[s[1]]||1,c=s[2]==="adult"?"ADT":s[2]==="child"?"CHD":"INF",u=t.map((f,y)=>({item:f,index:y})).filter(({item:f})=>String((f==null?void 0:f.typ)||"").trim().toUpperCase()===c).map(({index:f})=>f);if(!u.length)return{index:null,error:`No ${c==="CHD"?"child":c==="INF"?"infant":"adult"} travelers available.`};const a=u[o-1];if(a===void 0){const f=c==="CHD"?"child":c==="INF"?"infant":"adult";return{index:null,error:`Requested ${s[1]||"first"} ${f} traveler is not available.`}}return{index:a,error:""}}function Ji(e,t,n){if(n){if(n==="fn"||n==="ln"){const s=Xi(t);s&&(e[n]=s);return}if(n==="dob"||n==="issdt"||n==="expdt"){const s=zt(t);s&&(e[n]=s);return}if(n==="nat"){const s=Qi(t);s&&(e.nat=s);return}if(n==="num"){const s=t.match(/\b([A-Za-z0-9]{5,})\b/);s&&(e.num=s[1].toUpperCase())}}}function Xi(e){const t=String(e||"").replace(/\b(my|the|is|it's|it is|this is|name|first|last|given|family|surname)\b/gi," ").replace(/[^A-Za-z\s'-]/g," ").replace(/\s+/g," ").trim();if(!t)return"";const[n]=t.split(" ");return Mt(n)}function Qi(e){return String(e||"").replace(/\b(my|the|is|it's|it is|this is)\b/gi," ").replace(/\s+/g," ").trim()}function zt(e){const t=String(e||"").replace(/\b(\d{1,2})(st|nd|rd|th)\b/gi,"$1").replace(/,/g," ").trim();if(!t)return null;const n=["d MMMM yyyy","d MMM yyyy","MMMM d yyyy","MMM d yyyy","d MMMM yy","d MMM yy","MMMM d yy","MMM d yy","yyyy-MM-dd","MM/dd/yyyy","dd/MM/yyyy"];for(const i of n){const o=pn.parse(t,i,new Date);if(pn.isValid(o))return o.toISOString()}const s=new Date(t);return Number.isNaN(s.getTime())?null:s.toISOString()}function ea(e,{passportRequired:t=!1,defaultTyp:n=""}={}){const s=String(e||"").trim();if(!s)return{isFixedFormat:!1,isValid:!1};const i=s.replace(/\|/g,";");if(!/(traveller|traveler)/i.test(i)||!/[;:]/.test(i))return{isFixedFormat:!1,isValid:!1};const o=i.match(/\b(?:traveller|traveler)\s*(\d+)\b/i),c=o?Math.max(Number(o[1])-1,0):0,u=i.replace(/^\s*(?:traveller|traveler)\s*\d+\s*[:;]?\s*/i,""),a={};let f=!1;u.split(";").map(w=>w.trim()).filter(Boolean).forEach(w=>{const[m,...N]=w.split(":");if(!m||N.length===0)return;const h=String(m||"").trim().toLowerCase(),A=N.join(":").trim();if(A){if(["fn","firstname","first_name"].includes(h)){a.fn=A;return}if(["ln","lastname","last_name","surname"].includes(h)){a.ln=A;return}if(["tl","title","gender"].includes(h)){const v=String(A).trim().toUpperCase();(v==="M"||v==="F")&&(a.tl=v);return}if(["dob","dateofbirth","date_of_birth"].includes(h)){const v=Dn(A);v?a.dob=v:f=!0;return}if(["typ","type","travellertype","travelertype"].includes(h)){const v=String(A).trim().toUpperCase();["ADT","CHD","INF"].includes(v)&&(a.typ=v);return}if(["nat","nationality"].includes(h)){a.nat=A;return}if(["num","passport","passportno","passportnumber"].includes(h)){a.num=A;return}if(["isc","issuecountry","issue_country","country"].includes(h)){a.isc=A;return}if(["issdt","issuedate","issue_date"].includes(h)){const v=Dn(A);v?a.issdt=v:f=!0;return}if(["expdt","expirydate","expiry_date","expdate"].includes(h)){const v=Dn(A);v?a.expdt=v:f=!0}}});const d=String(n||"").trim().toUpperCase();if(!a.typ&&["ADT","CHD","INF"].includes(d)&&(a.typ=d),Object.keys(a).length===0)return{isFixedFormat:!0,isValid:!1,error:"No supported fields found. Include FN, LN, TL, DOB, and TYP at minimum."};const S=["fn","ln","tl","dob","typ"].filter(w=>!a[w]);if(S.length>0)return{isFixedFormat:!0,isValid:!1,error:`Missing required field(s): ${S.map(w=>w.toUpperCase()).join(", ")}`};if(f)return{isFixedFormat:!0,isValid:!1,error:"Invalid date value. Use YYYY-MM-DD or MM/DD/YYYY for DOB/ISSDT/EXPDT."};if(t){const w=["nat","num","issdt","expdt"].filter(m=>!a[m]);if(w.length>0)return{isFixedFormat:!0,isValid:!1,error:`Passport details required: ${w.map(m=>m.toUpperCase()).join(", ")}`}}return/(traveller|traveler)\s*\d+/i.test(i)?{isFixedFormat:!0,isValid:!0,intent:"fill_details",travellerIndex:c,updates:a}:{isFixedFormat:!0,isValid:!1,error:"Traveller index missing. Start with TRAVELLER 1"}}function ta(e=!1){return e?"TRAVELLER 1; FN:John; LN:Doe; TL:M; DOB:1992-08-14; TYP:ADT; NAT:IN; NUM:K1234567; ISSDT:2018-01-01; EXPDT:2028-01-01":"TRAVELLER 1; FN:John; LN:Doe; TL:M; DOB:1992-08-14; TYP:ADT"}function Dn(e){const t=String(e||"").trim();if(!t)return null;const n=["yyyy-MM-dd","MM/dd/yyyy","dd/MM/yyyy","d MMM yyyy","d MMMM yyyy"];for(const i of n){const o=pn.parse(t,i,new Date);if(pn.isValid(o))return o.toISOString()}const s=new Date(t);return Number.isNaN(s.getTime())?null:s.toISOString()}function En(e){const t=new Date(e);return Number.isNaN(t.getTime())?"the provided date":t.toLocaleDateString("en-US",{month:"long",day:"numeric",year:"numeric"})}function Mt(e){const t=String(e||"").trim().toLowerCase();return t?t.charAt(0).toUpperCase()+t.slice(1):""}function Ct(e){return String(e||"").replace(/^\s*(?:is|as|to|=)\s+/i,"").trim()}function Vr(e){const t=String(e||"");if(!t.trim())return"";const n=t.match(/\b\d{1,2}(?:st|nd|rd|th)?\s+[A-Za-z]{3,9}\s+\d{2,4}\b/i);if(n!=null&&n[0])return n[0];const s=t.match(/\b\d{4}-\d{2}-\d{2}\b/);if(s!=null&&s[0])return s[0];const i=t.match(/\b\d{1,2}[/-]\d{1,2}[/-]\d{2,4}\b/);return i!=null&&i[0]?i[0]:""}function Gr(e={}){if(!e||typeof e!="object")return{};const t={...e};return delete t.typ,t}function na(e){const t=String(e||"").toLowerCase();return/\bcredit card\b/.test(t)?"CC":/\bdebit card\b/.test(t)?"DC":/\bnet banking\b/.test(t)?"NB":/\bupi\b/.test(t)?"UP":/\brazor ?pay\b/.test(t)?"RP":/\bcrypto\b/.test(t)?"CR":""}function ra(e){const t=String(e||"").trim().toUpperCase();return t==="RP"?"Razorpay":t==="CR"?"Crypto":["CC","DC","NB","UP"].includes(t)?"Default":""}function sa(e){const t=String(e||"").trim().toUpperCase();return t==="CC"?"Credit Card":t==="DC"?"Debit Card":t==="NB"?"Net Banking":t==="UP"?"UPI":t==="RP"?"Pay with Razor Pay":t==="CR"?"Pay with Crypto":t||"payment mode"}function ia(e=[]){return e.length<=1?e[0]||"":e.length===2?`${e[0]} and ${e[1]}`:`${e.slice(0,-1).join(", ")}, and ${e[e.length-1]}`}function tn(e,t=""){if(typeof e=="string")return e;if(typeof e=="number"||typeof e=="boolean")return String(e);if(e&&typeof e=="object"){const n=(e==null?void 0:e.message)||(e==null?void 0:e.error)||(e==null?void 0:e.details)||(e==null?void 0:e.msg);if(n)return String(n);try{return JSON.stringify(e)}catch{return t}}return t}function aa({confirmation:e}){if(!e||typeof e!="object")return r.jsx("p",{className:"payment-confirmation__muted-text",children:"Confirmation details are unavailable."});const t=oa(e),n=Bt(t,["bkid","bookingid","bookingId"]),s=Bt(t,["bksts","status","bookingStatus"])||"-",i=Bt(t,["pnr","airlinePnr","gdsPnr"])||"-",o=Bt(t,["trps.pr.tf","tf","amount","amt"]),c=Bt(t,["cur","currency"])||"INR",u=process.env.REACT_APP_FLIGHT_IMAGES||process.env.FLIGHT_IMAGES||"",a=ua(t),f=da(t),y=fa(t),d=ha(t),g=Ls(t),S=ma(t,y),x=pa(t),w=la(s),m=ya(s);return r.jsxs("div",{className:"payment-confirmation",children:[w?r.jsxs("div",{className:`payment-confirmation__banner ${w.bannerClass}`,children:[r.jsx("div",{className:"payment-confirmation__banner-icon",children:String(s).toLowerCase().includes("confirm")?r.jsx(hn.BsCheckCircleFill,{}):r.jsx(ti.AiOutlineInfoCircle,{})}),r.jsxs("div",{className:"payment-confirmation__banner-content",children:[r.jsx("div",{className:"payment-confirmation__banner-title",children:w.title}),r.jsx("div",{className:"payment-confirmation__banner-text",children:w.text})]})]}):null,r.jsx("h3",{className:"payment-confirmation__summary-header",children:"Booking details"}),r.jsx("p",{className:"payment-confirmation__summary-subtext",children:"Flight itinerary and traveler details for this booking"}),S?r.jsxs("div",{className:"payment-confirmation__roundtrip-badge",children:["Round Trip Confirmed (",d||"combined"," / TT ",g||2,")"]}):null,r.jsxs("div",{className:"payment-confirmation__details-list",children:[r.jsx(ln,{label:"Booking ID",value:n||"-"}),r.jsx(ln,{label:"Status",value:s,valueClassName:m,valueAsTag:!0}),r.jsx(ln,{label:"PNR",value:i}),r.jsx(ln,{label:"Total",value:o!==""?`${c} ${ba(o).toFixed(2)}`:"-"})]}),r.jsxs("div",{className:"payment-confirmation__itinerary-card",children:[r.jsx("p",{className:"payment-confirmation__info-title",children:"Flight Details"}),r.jsx("p",{className:"payment-confirmation__info-subtext",children:"Itinerary and fare details for this booking"}),r.jsx("div",{className:"payment-confirmation__trip-label",children:"Onward Flight"}),f.length?f.map((N,h)=>{const A=Wr(u,N.airlineCode);return r.jsxs("div",{className:"payment-confirmation__sector-block",children:[r.jsxs("div",{className:"payment-confirmation__route-title",children:[N.from||"N/A"," ","→"," ",N.to||"N/A"]}),r.jsxs("div",{className:"payment-confirmation__leg-grid",children:[r.jsxs("div",{className:"payment-confirmation__airline-col",children:[A?r.jsx("img",{src:A,alt:N.airlineName,className:"payment-confirmation__logo-image",onError:v=>{v.currentTarget.style.display="none"}}):r.jsx("div",{className:"payment-confirmation__logo-badge",children:(N.airlineCode||N.airlineName||"FL").slice(0,2).toUpperCase()}),r.jsx("div",{className:"payment-confirmation__airline-text",children:N.airlineName||"-"}),r.jsx("div",{className:"payment-confirmation__flight-code",children:N.flightNumber||"-"})]}),r.jsxs("div",{className:"payment-confirmation__time-col",children:[r.jsx("div",{className:"payment-confirmation__date-text",children:on(N.departureDate)}),r.jsx("div",{className:"payment-confirmation__time-text",children:an(N.departureTime)}),r.jsx("div",{className:"payment-confirmation__airport-text",children:N.from||"-"})]}),r.jsxs("div",{className:"payment-confirmation__mid-col",children:[r.jsx("div",{className:"payment-confirmation__duration-text",children:N.duration||"N/A"}),r.jsxs("div",{className:"payment-confirmation__line-wrap",children:[r.jsx("span",{className:"payment-confirmation__dot"}),r.jsx("span",{className:"payment-confirmation__line"}),r.jsx("span",{className:"payment-confirmation__dot"})]}),r.jsx("div",{className:"payment-confirmation__stop-text",children:N.stopLabel})]}),r.jsxs("div",{className:"payment-confirmation__time-col-right",children:[r.jsx("div",{className:"payment-confirmation__date-text",children:on(N.arrivalDate)}),r.jsx("div",{className:"payment-confirmation__time-text",children:an(N.arrivalTime)}),r.jsx("div",{className:"payment-confirmation__airport-text",children:N.to||"-"})]})]})]},`${N.from}-${N.to}-${h}`)}):r.jsx("div",{className:"payment-confirmation__muted-text",children:"Flight details unavailable."}),S?r.jsxs(r.Fragment,{children:[r.jsx("div",{className:"payment-confirmation__trip-label",children:"Return Flight"}),y.length?y.map((N,h)=>{const A=Wr(u,N.airlineCode);return r.jsxs("div",{className:"payment-confirmation__sector-block",children:[r.jsxs("div",{className:"payment-confirmation__route-title",children:[N.from||"N/A"," ","→"," ",N.to||"N/A"]}),r.jsxs("div",{className:"payment-confirmation__leg-grid",children:[r.jsxs("div",{className:"payment-confirmation__airline-col",children:[A?r.jsx("img",{src:A,alt:N.airlineName,className:"payment-confirmation__logo-image",onError:v=>{v.currentTarget.style.display="none"}}):r.jsx("div",{className:"payment-confirmation__logo-badge",children:(N.airlineCode||N.airlineName||"FL").slice(0,2).toUpperCase()}),r.jsx("div",{className:"payment-confirmation__airline-text",children:N.airlineName||"-"}),r.jsx("div",{className:"payment-confirmation__flight-code",children:N.flightNumber||"-"})]}),r.jsxs("div",{className:"payment-confirmation__time-col",children:[r.jsx("div",{className:"payment-confirmation__date-text",children:on(N.departureDate)}),r.jsx("div",{className:"payment-confirmation__time-text",children:an(N.departureTime)}),r.jsx("div",{className:"payment-confirmation__airport-text",children:N.from||"-"})]}),r.jsxs("div",{className:"payment-confirmation__mid-col",children:[r.jsx("div",{className:"payment-confirmation__duration-text",children:N.duration||"N/A"}),r.jsxs("div",{className:"payment-confirmation__line-wrap",children:[r.jsx("span",{className:"payment-confirmation__dot"}),r.jsx("span",{className:"payment-confirmation__line"}),r.jsx("span",{className:"payment-confirmation__dot"})]}),r.jsx("div",{className:"payment-confirmation__stop-text",children:N.stopLabel})]}),r.jsxs("div",{className:"payment-confirmation__time-col-right",children:[r.jsx("div",{className:"payment-confirmation__date-text",children:on(N.arrivalDate)}),r.jsx("div",{className:"payment-confirmation__time-text",children:an(N.arrivalTime)}),r.jsx("div",{className:"payment-confirmation__airport-text",children:N.to||"-"})]})]})]},`${N.from}-${N.to}-return-${h}`)}):r.jsx("div",{className:"payment-confirmation__muted-text",children:"Return flight details unavailable."})]}):null]}),r.jsxs("div",{className:"payment-confirmation__info-card",children:[r.jsx("h4",{className:"payment-confirmation__info-title",children:"Traveler Details"}),r.jsx("p",{className:"payment-confirmation__info-subtext",children:"Travelers booked on this trip"}),r.jsx("div",{className:"payment-confirmation__inner-panel",children:a.length?a.map((N,h)=>r.jsxs("div",{className:"payment-confirmation__traveler-block",children:[r.jsx("div",{className:"payment-confirmation__traveler-name",children:[N==null?void 0:N.fn,N==null?void 0:N.ln].filter(Boolean).join(" ")||"Traveler"}),r.jsxs("div",{className:"payment-confirmation__traveler-grid",children:[r.jsx(At,{label:"Date of Birth",value:Fn(N==null?void 0:N.dob)}),r.jsx(At,{label:"Gender",value:ga(N==null?void 0:N.tl)}),r.jsx(At,{label:"Nationality",value:(N==null?void 0:N.nat)||"-"}),r.jsx(At,{label:"Passport No.",value:(N==null?void 0:N.num)||"-"}),r.jsx(At,{label:"Issue Date",value:Fn(N==null?void 0:N.issdt)}),r.jsx(At,{label:"Expiry Date",value:Fn(N==null?void 0:N.expdt)})]})]},`traveler-${h}`)):r.jsx("div",{className:"payment-confirmation__muted-text",children:"No traveler details available."})})]}),r.jsxs("div",{className:"payment-confirmation__info-card",children:[r.jsx("h4",{className:"payment-confirmation__info-title",children:"Contact Details"}),r.jsx("p",{className:"payment-confirmation__info-subtext",children:"Booking details and flight information will be sent here"}),r.jsx("div",{className:"payment-confirmation__inner-panel",children:r.jsxs("div",{className:"payment-confirmation__contact-grid",children:[r.jsx(At,{label:"Email",value:x.email||"-"}),r.jsx(At,{label:"Phone Number",value:x.phone||"-"})]})})]})]})}function oa(e){return e!=null&&e.payload&&typeof e.payload=="object"?e.payload:e}function la(e){const t=String(e).trim();return t?t==="Partially Confirmed"?{bannerClass:"payment-confirmation__banner--warning",title:"Thank you, your booking is Partially Confirmed!",text:"Your booking is currently in partially confirmed state."}:t==="Confirmed"?{bannerClass:"payment-confirmation__banner--success",title:"Thank you, your booking is complete!",text:"The booking confirmation has been sent to your email address."}:t==="Requested"?{bannerClass:"payment-confirmation__banner--warning",title:"Your booking is currently being processed and may take up to 30 minutes for confirmation.",text:"If the selected seats are unavailable or the fare is no longer applicable, your payment will be refunded to your online payment method. Please do not attempt to rebook during this time."}:{bannerClass:"payment-confirmation__banner--info",title:"Your booking is currently in a pending state.",text:"We are checking the availability of the selected seats and you can expect an update from us within the next 15 minutes."}:null}function Bt(e,t=[]){if(!e||typeof e!="object"||!Array.isArray(t))return"";for(const n of t){if(n.includes(".")){const i=ca(e,n);if(dn(i))return i;continue}const s=e==null?void 0:e[n];if(dn(s))return s}for(const n of t){const s=Fs(e,n);if(dn(s))return s}return""}function ca(e,t){return String(t||"").split(".").reduce((n,s)=>{if(!(!n||typeof n!="object"))return n==null?void 0:n[s]},e)}function Fs(e,t){if(!e||typeof e!="object")return"";if(Object.prototype.hasOwnProperty.call(e,t))return e[t];for(const n of Object.values(e)){if(!n||typeof n!="object")continue;const s=Fs(n,t);if(dn(s))return s}return""}function dn(e){return e==null?!1:typeof e=="string"?!!e.trim():!0}function ua(e){var n,s;const t=[e==null?void 0:e.trvlrs,e==null?void 0:e.travellers,e==null?void 0:e.travelerDetails,e==null?void 0:e.pax,e==null?void 0:e.passengers,(n=e==null?void 0:e.bkdtls)==null?void 0:n.trvlrs,(s=e==null?void 0:e.bkdtls)==null?void 0:s.travellers];for(const i of t)if(Array.isArray(i)&&i.length)return i;return[]}function da(e){var s,i;const t=Array.isArray((s=e==null?void 0:e.trps)==null?void 0:s.deps)?e.trps.deps[0]:(i=e==null?void 0:e.trps)==null?void 0:i.deps,n=t==null?void 0:t.seg;return Array.isArray(n)&&n.length?n.map(o=>({from:String((o==null?void 0:o.da)||"").trim(),to:String((o==null?void 0:o.ar)||"").trim(),airlineName:String((o==null?void 0:o.ma)||(o==null?void 0:o.ac)||"").trim()||"Airline",airlineCode:String((o==null?void 0:o.ac)||(o==null?void 0:o.ma)||"").trim(),flightNumber:String((o==null?void 0:o.fn)||"").trim(),departureDate:String((o==null?void 0:o.dd)||"").trim(),departureTime:String((o==null?void 0:o.dt)||"").trim(),arrivalDate:String((o==null?void 0:o.ad)||"").trim(),arrivalTime:String((o==null?void 0:o.at)||"").trim(),duration:String((o==null?void 0:o.fdur)||"").trim(),stopLabel:$s(o==null?void 0:o.st)})):[]}function fa(e){var i,o,c,u;const t=Array.isArray((i=e==null?void 0:e.rttrps)==null?void 0:i.deps)?e.rttrps.deps[0]:(o=e==null?void 0:e.rttrps)==null?void 0:o.deps,n=Array.isArray((c=e==null?void 0:e.trps)==null?void 0:c.arrs)?e.trps.arrs[0]:(u=e==null?void 0:e.trps)==null?void 0:u.arrs,s=(t==null?void 0:t.seg)||(n==null?void 0:n.seg);return Array.isArray(s)&&s.length?s.map(a=>({from:String((a==null?void 0:a.da)||"").trim(),to:String((a==null?void 0:a.ar)||"").trim(),airlineName:String((a==null?void 0:a.ma)||(a==null?void 0:a.ac)||"").trim()||"Airline",airlineCode:String((a==null?void 0:a.ac)||(a==null?void 0:a.ma)||"").trim(),flightNumber:String((a==null?void 0:a.fn)||"").trim(),departureDate:String((a==null?void 0:a.dd)||"").trim(),departureTime:String((a==null?void 0:a.dt)||"").trim(),arrivalDate:String((a==null?void 0:a.ad)||"").trim(),arrivalTime:String((a==null?void 0:a.at)||"").trim(),duration:String((a==null?void 0:a.fdur)||"").trim(),stopLabel:$s(a==null?void 0:a.st)})):[]}function ma(e,t=[]){return Ls(e)===2?!0:Array.isArray(t)&&t.length>0}function Ls(e){return Number((e==null?void 0:e.tt)||0)}function ha(e){return String((e==null?void 0:e.styp)||"").trim().toLowerCase()}function pa(e){return{email:Bt(e,["em","email"]),phone:Bt(e,["ph","phone","mobile"])}}function ba(e){const t=Number(e);return Number.isFinite(t)?t:0}function an(e){return String(e||"").trim()||"--:--"}function $s(e){const t=Number(e);return!Number.isFinite(t)||t<=0?"Non-stop":t===1?"1 stop":`${t} stops`}function on(e){const t=String(e||"").trim();if(!t)return"";const n=t.split("-");if(n.length===3){const[s,i,o]=n,c=new Date(`${o}-${i}-${s}`);if(!Number.isNaN(c.getTime()))return c.toLocaleDateString("en-US",{weekday:"short",day:"2-digit",month:"short"})}return t}function Fn(e){const t=String(e||"").trim();if(!t)return"-";const n=new Date(t);if(Number.isNaN(n.getTime()))return t;const s=String(n.getDate()).padStart(2,"0"),i=String(n.getMonth()+1).padStart(2,"0"),o=n.getFullYear();return`${s}/${i}/${o}`}function ga(e){const t=String(e||"").toUpperCase();return t==="M"?"M":t==="F"?"F":"-"}function Wr(e,t){const n=String(t||"").trim().toUpperCase();return!e||!n?"":`${e.endsWith("/")?e:`${e}/`}${n}.png`}function ya(e){const t=String(e).trim().toLowerCase();return t?t.includes("confirm")?"payment-confirmation__meta-value--success":t.includes("request")||t.includes("partial")?"payment-confirmation__meta-value--warning":t.includes("cancel")||t.includes("fail")||t.includes("reject")||t.includes("void")?"payment-confirmation__meta-value--danger":"payment-confirmation__meta-value--info":""}function ln({label:e,value:t,className:n="",valueClassName:s="",valueAsTag:i=!1}){const o=n?`payment-confirmation__meta-line ${n}`:"payment-confirmation__meta-line",c=i?`payment-confirmation__meta-value payment-confirmation__meta-value-tag ${s}`.trim():`payment-confirmation__meta-value ${s}`.trim();return r.jsxs("div",{className:o,children:[r.jsx("div",{className:"payment-confirmation__meta-label",children:e}),r.jsx("div",{className:c,children:t})]})}function At({label:e,value:t}){return r.jsxs("div",{className:"payment-confirmation__detail-item",children:[r.jsx("div",{className:"payment-confirmation__detail-label",children:e}),r.jsx("div",{className:"payment-confirmation__detail-value",children:t||"-"})]})}function Na({payload:e,prebookResponse:t,convenienceFee:n=0,appliedPromocode:s=null,promocodeDiscount:i=null}){var A,v,U,_;if(!e)return null;const o=_a(t,e),c=xa(t,e,n,i),u=wa(e),a=Is(e),f=Sa(e,t),y=Rs(e,t),d=va(e,t),g=((A=e==null?void 0:e.selectedFlight)==null?void 0:A.airlineName)||"Selected Airline",S=((v=e==null?void 0:e.selectedFlight)==null?void 0:v.airlineCode)||"",x=((U=e==null?void 0:e.selectedReturnFlight)==null?void 0:U.airlineName)||g,w=((_=e==null?void 0:e.selectedReturnFlight)==null?void 0:_.airlineCode)||S,m=process.env.REACT_APP_FLIGHT_IMAGES||process.env.FLIGHT_IMAGES||"",N=Jr(m,S),h=Jr(m,w);return r.jsxs("div",{className:"flight-summary",children:[r.jsx("h3",{className:"flight-summary__summary-header",children:"Flight & Fare Details"}),r.jsx("p",{className:"flight-summary__summary-subtext",children:"Itinerary and fare breakdown for this trip"}),d?r.jsxs("div",{className:"flight-summary__roundtrip-badge",children:["Round Trip Confirmed (",f||"combined"," / TT ",y||2,")"]}):null,r.jsxs("div",{className:"flight-summary__itinerary-card",children:[r.jsx("div",{className:"flight-summary__trip-label",children:"Onward Flight"}),u.length?u.map((l,p)=>r.jsxs("div",{className:"flight-summary__sector-block",children:[r.jsxs("div",{className:"flight-summary__route-title",children:[l.from||"N/A"," ","→"," ",l.to||"N/A"]}),r.jsxs("div",{className:"flight-summary__leg-grid",children:[r.jsxs("div",{className:"flight-summary__airline-col",children:[N?r.jsx("img",{src:N,alt:g,className:"flight-summary__logo-image",onError:k=>{k.currentTarget.style.display="none"}}):r.jsx("div",{className:"flight-summary__logo-badge",children:(S||g).slice(0,2).toUpperCase()}),r.jsx("div",{className:"flight-summary__airline-text",children:g}),r.jsx("div",{className:"flight-summary__flight-code",children:l.flightNumber||"-"})]}),r.jsxs("div",{className:"flight-summary__time-col",children:[r.jsx("div",{className:"flight-summary__date-text",children:un(l.departureDate)}),r.jsx("div",{className:"flight-summary__time-text",children:cn(l.departureTime)}),r.jsx("div",{className:"flight-summary__airport-text",children:l.from||"-"})]}),r.jsxs("div",{className:"flight-summary__mid-col",children:[r.jsx("div",{className:"flight-summary__duration-text",children:l.duration||"N/A"}),r.jsxs("div",{className:"flight-summary__line-wrap",children:[r.jsx("span",{className:"flight-summary__dot"}),r.jsx("span",{className:"flight-summary__line"}),r.jsx("span",{className:"flight-summary__dot"})]}),r.jsx("div",{className:"flight-summary__stop-text",children:l.stops===0?"Non Stop":`${l.stops} stop${l.stops>1?"s":""}`})]}),r.jsxs("div",{className:"flight-summary__time-col-right",children:[r.jsx("div",{className:"flight-summary__date-text",children:un(l.arrivalDate||l.departureDate)}),r.jsx("div",{className:"flight-summary__time-text",children:cn(l.arrivalTime)}),r.jsx("div",{className:"flight-summary__airport-text",children:l.to||"-"})]})]})]},`${l.from}-${l.to}-${p}`)):r.jsx("div",{className:"flight-summary__muted-text",children:"Flight details unavailable."}),d?r.jsxs(r.Fragment,{children:[r.jsx("div",{className:"flight-summary__trip-label",children:"Return Flight"}),a.length?a.map((l,p)=>r.jsxs("div",{className:"flight-summary__sector-block",children:[r.jsxs("div",{className:"flight-summary__route-title",children:[l.from||"N/A"," ","→"," ",l.to||"N/A"]}),r.jsxs("div",{className:"flight-summary__leg-grid",children:[r.jsxs("div",{className:"flight-summary__airline-col",children:[h?r.jsx("img",{src:h,alt:x,className:"flight-summary__logo-image",onError:k=>{k.currentTarget.style.display="none"}}):r.jsx("div",{className:"flight-summary__logo-badge",children:(w||x).slice(0,2).toUpperCase()}),r.jsx("div",{className:"flight-summary__airline-text",children:x}),r.jsx("div",{className:"flight-summary__flight-code",children:l.flightNumber||"-"})]}),r.jsxs("div",{className:"flight-summary__time-col",children:[r.jsx("div",{className:"flight-summary__date-text",children:un(l.departureDate)}),r.jsx("div",{className:"flight-summary__time-text",children:cn(l.departureTime)}),r.jsx("div",{className:"flight-summary__airport-text",children:l.from||"-"})]}),r.jsxs("div",{className:"flight-summary__mid-col",children:[r.jsx("div",{className:"flight-summary__duration-text",children:l.duration||"N/A"}),r.jsxs("div",{className:"flight-summary__line-wrap",children:[r.jsx("span",{className:"flight-summary__dot"}),r.jsx("span",{className:"flight-summary__line"}),r.jsx("span",{className:"flight-summary__dot"})]}),r.jsx("div",{className:"flight-summary__stop-text",children:l.stops===0?"Non Stop":`${l.stops} stop${l.stops>1?"s":""}`})]}),r.jsxs("div",{className:"flight-summary__time-col-right",children:[r.jsx("div",{className:"flight-summary__date-text",children:un(l.arrivalDate||l.departureDate)}),r.jsx("div",{className:"flight-summary__time-text",children:cn(l.arrivalTime)}),r.jsx("div",{className:"flight-summary__airport-text",children:l.to||"-"})]})]})]},`${l.from}-${l.to}-return-${p}`)):r.jsx("div",{className:"flight-summary__muted-text",children:"Return flight details unavailable."})]}):null]}),r.jsxs("div",{className:"flight-summary__fare-card",children:[r.jsx("h4",{className:"flight-summary__fare-title",children:"Fare Summary"}),r.jsx(Ln,{label:"Base Fare",value:Jt(c.baseFare,o)}),r.jsx(Ln,{label:"Convenience Fee",value:Jt(c.convenienceFee,o)}),r.jsx(Ln,{label:"Fees & Surcharges",value:Jt(c.feesAndSurcharges,o)}),i?r.jsxs("div",{className:"flight-summary__fare-row flight-summary__fare-row--discount",children:[r.jsxs("span",{className:"flight-summary__fare-row-label",children:["Promo Discount (",s,")"]}),r.jsxs("span",{className:"flight-summary__fare-row-value",children:["-",Jt($e(i.ondis)+$e(i.rtdis),o)]})]}):null,r.jsxs("div",{className:"flight-summary__total-row",children:[r.jsx("span",{className:"flight-summary__total-label",children:"Total Payable"}),r.jsx("span",{className:"flight-summary__total-value",children:Jt(c.totalPayable,o)})]})]}),r.jsxs("div",{className:"flight-summary__info-card",children:[r.jsx("h4",{className:"flight-summary__info-title",children:"Traveler Details"}),r.jsx("p",{className:"flight-summary__info-subtext",children:"Travelers booked on this trip"}),r.jsx("div",{className:"flight-summary__inner-panel",children:Array.isArray(e==null?void 0:e.trvlrs)&&e.trvlrs.length>0?e.trvlrs.map((l,p)=>r.jsxs("div",{className:"flight-summary__traveler-block",children:[r.jsx("div",{className:"flight-summary__traveler-name",children:[l==null?void 0:l.fn,l==null?void 0:l.ln].filter(Boolean).join(" ")||"Traveler"}),r.jsxs("div",{className:"flight-summary__traveler-grid",children:[r.jsx(kt,{label:"Date of Birth",value:In(l==null?void 0:l.dob)}),r.jsx(kt,{label:"Gender",value:ja(l==null?void 0:l.tl)}),r.jsx(kt,{label:"Nationality",value:(l==null?void 0:l.nat)||"-"}),r.jsx(kt,{label:"Passport No.",value:(l==null?void 0:l.num)||"-"}),r.jsx(kt,{label:"Issue Date",value:In(l==null?void 0:l.issdt)}),r.jsx(kt,{label:"Expiry Date",value:In(l==null?void 0:l.expdt)})]})]},`traveler-${p}`)):r.jsx("div",{className:"flight-summary__muted-text",children:"No traveler details available."})})]}),r.jsxs("div",{className:"flight-summary__info-card",children:[r.jsx("h4",{className:"flight-summary__info-title",children:"Contact Details"}),r.jsx("p",{className:"flight-summary__info-subtext",children:"Booking details and flight information will be sent here"}),r.jsx("div",{className:"flight-summary__inner-panel",children:r.jsxs("div",{className:"flight-summary__contact-grid",children:[r.jsx(kt,{label:"Email",value:(e==null?void 0:e.em)||"-"}),r.jsx(kt,{label:"Phone Number",value:(e==null?void 0:e.ph)||"-"})]})})]})]})}function Ln({label:e,value:t}){return r.jsxs("div",{className:"flight-summary__fare-row",children:[r.jsx("span",{className:"flight-summary__fare-row-label",children:e}),r.jsx("span",{className:"flight-summary__fare-row-value",children:t})]})}function kt({label:e,value:t}){return r.jsxs("div",{className:"flight-summary__detail-item",children:[r.jsx("div",{className:"flight-summary__detail-label",children:e}),r.jsx("div",{className:"flight-summary__detail-value",children:t||"-"})]})}function _a(e,t){var n,s,i,o;return((s=(n=t==null?void 0:t.selectedFlight)==null?void 0:n.fare)==null?void 0:s.currency)||((i=e==null?void 0:e.payload)==null?void 0:i.cur)||((o=e==null?void 0:e.payload)==null?void 0:o.currency)||(t==null?void 0:t.cur)||"INR"}function $e(e){const t=Number(e);return Number.isFinite(t)?t:0}function xa(e,t,n=0,s=null){var b,L,Y,W,te,oe,B,Z,se,re;const i=(e==null?void 0:e.payload)||e||{},o=i==null?void 0:i.trps,c=Array.isArray(o)?o[0]||{}:o||{},u=(i==null?void 0:i.rttrps)||null,a=((b=t==null?void 0:t.selectedFlight)==null?void 0:b.fare)||{},f=((L=t==null?void 0:t.selectedReturnFlight)==null?void 0:L.fare)||{},y=$e(i==null?void 0:i.adt),d=$e(i==null?void 0:i.chd),g=$e(i==null?void 0:i.inf),S=qr(c==null?void 0:c.paxpr,{adt:y,chd:d,inf:g}),x=qr(u==null?void 0:u.paxpr,{adt:y,chd:d,inf:g}),w=S+x,m=$e((Y=c==null?void 0:c.pr)==null?void 0:Y.bf)+$e((W=u==null?void 0:u.pr)==null?void 0:W.bf),N=$e(a==null?void 0:a.baseFare)+$e(f==null?void 0:f.baseFare),h=w||m||N,A=Zr((te=c==null?void 0:c.pr)==null?void 0:te.taxs),v=Zr((oe=u==null?void 0:u.pr)==null?void 0:oe.taxs),U=$e((B=t==null?void 0:t.fareBreakup)==null?void 0:B.onwardTax)+$e((Z=t==null?void 0:t.fareBreakup)==null?void 0:Z.returnTax),_=Math.max(A+v,U),l=$e((se=c==null?void 0:c.pr)==null?void 0:se.tf),p=$e((re=u==null?void 0:u.pr)==null?void 0:re.tf),k=l+p,H=$e(a==null?void 0:a.totalFare)+$e(f==null?void 0:f.totalFare),P=$e(n),D=_,$=k||H,O=s?$e(s.ondis)+$e(s.rtdis):0,j=$?$+P-O:h+D+P-O;return{baseFare:h,convenienceFee:P,feesAndSurcharges:D,totalPayable:j,discountAmount:O}}function qr(e,t){if(!Array.isArray(e)||e.length===0)return 0;const n=$n(e,"ADT"),s=$n(e,"CHD"),i=$n(e,"INF");return n*$e(t==null?void 0:t.adt)+s*$e(t==null?void 0:t.chd)+i*$e(t==null?void 0:t.inf)}function $n(e,t){const n=e.find(s=>String((s==null?void 0:s.ptyp)||"").toUpperCase()===String(t||"").toUpperCase());return $e(n==null?void 0:n.bf)}function Zr(e){return Array.isArray(e)?e.reduce((t,n)=>t+$e(n==null?void 0:n.pr),0):0}function wa(e){var t;return Array.isArray((t=e==null?void 0:e.selectedFlight)==null?void 0:t.sectors)?e.selectedFlight.sectors:[]}function Is(e){var t;return Array.isArray((t=e==null?void 0:e.selectedReturnFlight)==null?void 0:t.sectors)?e.selectedReturnFlight.sectors:[]}function va(e,t){return Rs(e,t)===2?!0:Is(e).length>0}function Rs(e,t){var n;return Number((e==null?void 0:e.tt)||((n=t==null?void 0:t.payload)==null?void 0:n.tt)||0)}function Sa(e,t){var n;return String((e==null?void 0:e.styp)||((n=t==null?void 0:t.payload)==null?void 0:n.styp)||"").trim().toLowerCase()}function cn(e){return String(e||"").trim()||"--:--"}function un(e){const t=String(e||"").trim();if(!t)return"";const n=t.split("-");if(n.length!==3)return t;const[s,i,o]=n,c=new Date(`${o}-${i}-${s}`);return Number.isNaN(c.getTime())?t:c.toLocaleDateString("en-US",{weekday:"short",day:"2-digit",month:"short"})}function Jt(e,t){const n=$e(e);return`${String(t).trim().toUpperCase()} ${n.toFixed(2)}`}function In(e){const t=String(e||"").trim();if(!t)return"-";const n=new Date(t);if(Number.isNaN(n.getTime()))return t;const s=String(n.getDate()).padStart(2,"0"),i=String(n.getMonth()+1).padStart(2,"0"),o=n.getFullYear();return`${s}-${i}-${o}`}function ja(e){const t=String(e||"").toUpperCase();return t==="M"?"M":t==="F"?"F":"-"}function Jr(e,t){const n=String(t||"").trim().toUpperCase();return!e||!n?"":`${e.endsWith("/")?e:`${e}/`}${n}.png`}const Ca=[{pm:"UP",label:"UPI",gatetyp:"Default",_kind:"online"},{pm:"NB",label:"Net Banking",gatetyp:"Default",_kind:"online"},{pm:"DC",label:"Debit Card",gatetyp:"Default",_kind:"online"},{pm:"CC",label:"Credit Card",gatetyp:"Default",_kind:"online"}],Aa={pm:"CA",label:"Card/Net Banking/UPI",gatetyp:"Default",_kind:"online"},ka=[{pm:"BL",label:"Balance",gatetyp:"Balance",_kind:"balance"},{pm:"RP",label:"Pay with Razor Pay",gatetyp:"Razorpay",_kind:"online"},{pm:"CR",label:"Pay with Crypto",gatetyp:"Crypto",_kind:"online"}];function Rn(e){return Array.isArray(e)?e.map(t=>String(t||"").trim().toLowerCase()).filter(Boolean):typeof e=="string"&&e.trim()?[e.trim().toLowerCase()]:[]}function Ta(e){const t=String(e||"").trim().toUpperCase();return t==="CC"||t==="DC"||t==="CA"?r.jsx(gt.FiCreditCard,{size:18}):t==="NB"?r.jsx(gt.FiGlobe,{size:18}):t==="UP"||t==="UPI"?r.jsx(gt.FiSmartphone,{size:18}):t==="BL"||t==="WL"?r.jsx(gt.FiBriefcase,{size:18}):r.jsx(gt.FiCreditCard,{size:18})}function Da({paymentSummary:e={},selectedGateway:t,selectedPaymentMode:n,sdkWarning:s,onGatewayChange:i,currencyCode:o="INR",allowBalance:c=!1,combineOnlineOptions:u=!1,disabled:a=!1}){const f=String(o||"INR").toUpperCase().trim(),y=T.useMemo(()=>{var _,l,p,k,H,P,D;const S=[...u?[Aa]:Ca,...ka.filter($=>$.pm!=="BL"||c)].filter($=>!(f!=="INR"&&($.pm==="UP"||$.pm==="NB"))),x=(e==null?void 0:e.corporate)||null,w=Rn(x==null?void 0:x.ptyp),m=Rn(((_=x==null?void 0:x.outbound)==null?void 0:_.ptyp)||((l=x==null?void 0:x.onward)==null?void 0:l.ptyp)||((p=x==null?void 0:x.ob)==null?void 0:p.ptyp)||(x==null?void 0:x.ptypOutbound)||(x==null?void 0:x.outboundPtyp)||(x==null?void 0:x.ptyp_outbound)),N=Rn(((k=x==null?void 0:x.inbound)==null?void 0:k.ptyp)||((H=x==null?void 0:x.return)==null?void 0:H.ptyp)||((P=x==null?void 0:x.ib)==null?void 0:P.ptyp)||(x==null?void 0:x.ptypInbound)||(x==null?void 0:x.inboundPtyp)||(x==null?void 0:x.ptyp_inbound)),h=!!((D=x==null?void 0:x.journey)!=null&&D.hasInbound)||m.length>0&&N.length>0,A=h&&m.length>0&&N.length>0?m.filter($=>N.includes($)):h&&N.length>0?N:m.length>0?m:w;if(!A.length)return S;const v=A.includes("online"),U=A.includes("cl");return S.filter($=>$._kind==="balance"?U:v)},[c,u,f,e]);return r.jsxs("div",{style:{width:"100%",display:"flex",flexDirection:"column",gap:"16px"},children:[r.jsxs("div",{style:{background:"#fff",border:"1px solid #e5e7eb",borderRadius:"8px",padding:"16px"},children:[r.jsxs("div",{style:{marginBottom:"16px"},children:[r.jsx("h3",{style:{margin:0,fontSize:"1.125rem",fontWeight:"600",color:"#1f2937"},children:"Payment Method"}),r.jsx("p",{style:{margin:"4px 0 0",fontSize:"0.875rem",color:"#6b7280"},children:"Choose how you would like to pay for your booking"})]}),r.jsx("div",{style:{display:"flex",flexDirection:"column",gap:"10px"},children:y.map(d=>{const g=n===d.pm&&t===d.gatetyp;return r.jsxs("div",{onClick:()=>{a||i(d.gatetyp,d.pm)},style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"12px",border:`1px solid ${g?"#3b82f6":"#d1d5db"}`,borderRadius:"6px",background:a?"#f9fafb":g?"#eff6ff":"#fff",cursor:a?"not-allowed":"pointer",opacity:a?.6:1,transition:"all 0.15s ease-in-out"},children:[r.jsxs("label",{style:{display:"flex",alignItems:"center",gap:"12px",cursor:a?"not-allowed":"pointer",margin:0},children:[r.jsx("input",{type:"radio",name:"paymentGateway",checked:g,disabled:a,onChange:()=>{a||i(d.gatetyp,d.pm)},style:{margin:0,width:"16px",height:"16px",accentColor:"#3b82f6",cursor:a?"not-allowed":"pointer"}}),r.jsx("span",{style:{fontWeight:"500",color:"#1f2937",fontSize:"0.875rem"},children:d.label})]}),r.jsx("div",{style:{color:"#6b7280",display:"flex",alignItems:"center"},children:Ta(d.pm)})]},d.pm)})})]}),s?r.jsx("div",{style:{color:"#ef4444",fontSize:"0.875rem",padding:"10px 12px",background:"#fef2f2",border:"1px solid #fee2e2",borderRadius:"6px"},children:s}):null]})}function Xr({messages:e,typing:t,typingText:n="",onOptionClick:s,onAvailabilitySuccess:i,onAvailabilityReset:o,onTravelerGoBack:c=()=>{},onVoiceAssistantMessage:u,onPaymentSuccess:a,sessionId:f,variant:y="default"}){var _;const d=T.useRef(null),g=T.useRef(null),S=T.useRef(!0),[x,w]=T.useState({});T.useEffect(()=>{const l=d.current;if(!l)return;const p=()=>{const H=l.scrollHeight-(l.scrollTop+l.clientHeight);S.current=H<=96};return p(),l.addEventListener("scroll",p,{passive:!0}),()=>{l.removeEventListener("scroll",p)}},[]),T.useEffect(()=>{const l=d.current,p=g.current;if(!l||!p)return;const k=e[e.length-1],H=String((k==null?void 0:k.type)||"");if(!(S.current||H==="flight_results"||H==="traveler_details_form"))return;let D=null;const $=O=>{if(!O)return;const j=l.getBoundingClientRect(),b=O.getBoundingClientRect(),L=l.scrollTop+(b.top-j.top);l.scrollTo({top:Math.max(L,0),behavior:"smooth"})};return D=window.requestAnimationFrame(()=>{if(H==="flight_results"){const O=l.querySelectorAll(".message-list__bubble--flight-results"),j=O[O.length-1];if(j){$(j);return}}if(H==="traveler_details_form"){const O=l.querySelectorAll(".message-list__bubble--traveler"),j=O[O.length-1],b=j==null?void 0:j.querySelector('.traveler-form[data-voice-traveler-form="active"]'),L=!!(j!=null&&j.querySelector(".flight-summary, .traveler-form__payment-section")),Y=(b==null?void 0:b.getAttribute("data-prebook-done"))==="true"||!b&&L;j&&!Y&&$(j);return}p.scrollIntoView({behavior:"smooth",block:"end"})}),()=>{D&&window.cancelAnimationFrame(D)}},[e,t]);const m=[...e].map((l,p)=>({type:l==null?void 0:l.type,idx:p})).filter(l=>l.type==="flight_results").map(l=>l.idx).pop(),N=[...e].map((l,p)=>({type:l==null?void 0:l.type,idx:p})).filter(l=>l.type==="traveler_details_form").map(l=>l.idx).pop(),h=(_=[...e].reverse().find(l=>(l==null?void 0:l.type)==="user_message"))==null?void 0:_.text,A=String(n||"").trim()||Ea(h),v=Number.isInteger(N)&&(!Number.isInteger(m)||N>m),U=(l,p="")=>{if(typeof l=="string")return l;if(typeof l=="number"||typeof l=="boolean")return String(l);if(l&&typeof l=="object"){const k=(l==null?void 0:l.message)||(l==null?void 0:l.error)||(l==null?void 0:l.details)||(l==null?void 0:l.msg);if(k)return String(k);try{return JSON.stringify(l)}catch{return p}}return p};return r.jsxs("div",{ref:d,className:`message-list${y==="voice-page"?" message-list--voice-page":""}`,children:[e.map((l,p)=>{var k,H,P,D,$,O,j,b,L,Y,W,te,oe,B,Z,se,re,ye,Ae,Ie,Ee,De,ke,Ne,ve,F,ue,_e,Fe,He,Xe,Me;if(l.type==="flight_results"){const E=((H=(k=l==null?void 0:l.data)==null?void 0:k.results)==null?void 0:H.payload)||[],Ve=E.reduce((he,ie)=>he+(Array.isArray(ie==null?void 0:ie.trps)?ie.trps.length:0)+(Array.isArray(ie==null?void 0:ie.rttrps)?ie.rttrps.length:0),0),Be=Ve>0,Se=Be?`Found ${Ve} flight option${Ve>1?"s":""}.`:U(l==null?void 0:l.text,"No flights found."),ze=Be?Fa(E):null,Re=Be?U((l==null?void 0:l._dynamicRecommendation)||(l==null?void 0:l.text),""):"";return r.jsxs("div",{className:"message-list__bubble message-list__bubble--assistant message-list__bubble--flight-results",children:[ze?r.jsxs("div",{className:"message-list__results-summary",children:[r.jsx("div",{className:"message-list__results-summary-route",children:ze.route}),r.jsxs("div",{className:"message-list__results-summary-meta",children:[r.jsx("div",{className:"message-list__results-summary-date",children:ze.date}),r.jsx("div",{className:"message-list__results-summary-travelers",children:ze.travelerInfo})]})]}):r.jsxs("p",{className:"message-list__text flight-results__count-text",children:[r.jsx("span",{className:"message-list__text-icon",children:r.jsx(Wt.HiSparkles,{})}),Se]}),r.jsx(Di,{results:(P=l==null?void 0:l.data)==null?void 0:P.results,extractedFilters:(l==null?void 0:l.filters)||null,latestUserText:h,isLatestResultsMessage:p===m,recommendationCriteria:$a(Re),onAvailabilitySuccess:i,onAvailabilityReset:o,disableBook:v||p!==m,onFilterCountChange:he=>{l._lastFilterCount=he},onRecommendationChange:he=>{l._dynamicRecommendation=he}}),Re&&l._lastFilterCount!==0?r.jsxs("div",{className:"message-list__recommendation",children:[r.jsx("p",{className:"message-list__recommendation-title",children:"Best Suggestion"}),r.jsx("p",{className:"message-list__recommendation-body",children:Re})]}):null]},p)}if(l.type==="user_message")return Ba(e,p,N)?r.jsx(T.Fragment,{},p):Ua(e,p,N)?r.jsx(T.Fragment,{},p):Ha(e,p,N)?r.jsx(T.Fragment,{},p):qa(e,p,N)?r.jsx(T.Fragment,{},p):Za(e,p,N)?r.jsx(T.Fragment,{},p):r.jsx("div",{className:"message-list__bubble message-list__bubble--user",children:r.jsxs("p",{className:"message-list__text",children:[r.jsx("span",{className:"message-list__text-icon",children:r.jsx(Rt.FaUser,{})}),U(l==null?void 0:l.text,"")]})},p);if(l.type==="traveler_details_form"){const E=x[p]||{},Ve=p===N,Be=e.slice(p+1).some(ce=>(ce==null?void 0:ce.type)==="flight_results"),Se=p===N?Ma(e,p):"",ze=p===N?wn(e,p):null,Re=p===N&&ze?zs(e,ze):null,he=p===N?vn(e,p):null,ie=ze?r.jsxs("div",{className:"message-list__traveler-inline-proceed-block",style:{margin:"12px 0"},children:[ze.userText?r.jsx("div",{className:"message-list__bubble message-list__bubble--user",style:{marginBottom:"8px"},children:r.jsxs("p",{className:"message-list__text",children:[r.jsx("span",{className:"message-list__text-icon",children:r.jsx(Rt.FaUser,{})}),ze.userText]})}):null,r.jsx("div",{className:"message-list__bubble message-list__bubble--assistant",children:r.jsxs("p",{className:"message-list__text",children:[r.jsx("span",{className:"message-list__text-icon",children:r.jsx(Wt.HiSparkles,{})}),U((D=ze.assistantMessage)==null?void 0:D.text,"")]})})]}):null;return r.jsxs("div",{className:"message-list__bubble message-list__bubble--assistant message-list__bubble--traveler",children:[r.jsx($i,{prebookPayload:l==null?void 0:l.prebookPayload,isReadOnly:!!(l!=null&&l.readOnly)||!Ve||Be,onGoBack:c,onVoiceAssistantMessage:u,onPaymentSuccess:a,sessionId:f,onViewStateChange:ce=>{w(be=>{if(!ce){if(!(p in be))return be;const Pe={...be};return delete Pe[p],Pe}return{...be,[p]:ce}})}}),Se?r.jsx("div",{className:"message-list__traveler-inline-user-echo",style:{margin:"12px 0"},children:r.jsx("div",{className:"message-list__bubble message-list__bubble--user",children:r.jsxs("p",{className:"message-list__text",children:[r.jsx("span",{className:"message-list__text-icon",children:r.jsx(Rt.FaUser,{})}),Se]})})}):null,E!=null&&E.showSummary?r.jsx(Na,{payload:($=E==null?void 0:E.summary)==null?void 0:$.payload,prebookResponse:(O=E==null?void 0:E.summary)==null?void 0:O.prebookResponse,convenienceFee:(j=E==null?void 0:E.summary)==null?void 0:j.convenienceFee,appliedPromocode:(b=E==null?void 0:E.summary)==null?void 0:b.appliedPromocode,promocodeDiscount:(L=E==null?void 0:E.summary)==null?void 0:L.promocodeDiscount}):null,(Y=E==null?void 0:E.proceed)!=null&&Y.showProceedActions?r.jsxs("div",{className:"traveler-form__proceed-wrap",children:[(W=E==null?void 0:E.proceed)!=null&&W.showEditButton?r.jsx("button",{type:"button",className:"traveler-form__btn traveler-form__btn--edit",onClick:()=>{var ce,be;return(be=(ce=E==null?void 0:E.proceed)==null?void 0:ce.onEditDetails)==null?void 0:be.call(ce)},disabled:(te=E==null?void 0:E.proceed)==null?void 0:te.disableEditButton,children:"Edit Details"}):null,r.jsx("button",{type:"button",className:"traveler-form__btn traveler-form__btn--proceed",onClick:()=>{var ce,be;return(be=(ce=E==null?void 0:E.proceed)==null?void 0:ce.onProceedToBook)==null?void 0:be.call(ce)},disabled:(oe=E==null?void 0:E.proceed)==null?void 0:oe.disableProceedButton,children:((B=E==null?void 0:E.proceed)==null?void 0:B.proceedButtonText)||"Proceed to Book"})]}):null,ie,Re!=null&&Re.text?r.jsx("div",{className:"message-list__traveler-inline-user-echo",style:{margin:"12px 0"},children:r.jsx("div",{className:"message-list__bubble message-list__bubble--user",children:r.jsxs("p",{className:"message-list__text",children:[r.jsx("span",{className:"message-list__text-icon",children:r.jsx(Rt.FaUser,{})}),Re.text]})})}):null,E!=null&&E.showPayment?r.jsxs("div",{className:"traveler-form__payment-section","data-voice-traveler-form":"active","data-prebook-done":"true",children:[(se=(Z=E==null?void 0:E.payment)==null?void 0:Z.paymentSummary)!=null&&se.promoCodes&&E.payment.paymentSummary.promoCodes.length>0?r.jsxs("div",{className:"flight-summary__promo-card",style:{marginBottom:"16px"},children:[r.jsx("h4",{className:"flight-summary__promo-title",children:"Offers & Promo Codes"}),r.jsx("div",{className:"flight-summary__promo-list",children:E.payment.paymentSummary.promoCodes.map(ce=>{var Pe,Ue,Ge,Qe,ct,yt;const be=String(((Pe=E==null?void 0:E.payment)==null?void 0:Pe.appliedPromocode)||"").trim().toUpperCase()===String((ce==null?void 0:ce.cd)||"").trim().toUpperCase();return r.jsxs("div",{className:`flight-summary__promo-item ${be?"flight-summary__promo-item--applied":""}`,children:[r.jsx("div",{className:"flight-summary__promo-badge",children:ce.cd}),r.jsxs("div",{className:"flight-summary__promo-details",children:[r.jsx("div",{className:"flight-summary__promo-desc",children:ce.desc||"Special discount for your trip"}),be?r.jsx("button",{type:"button",className:"flight-summary__promo-btn flight-summary__promo-btn--remove",onClick:()=>{var pe,Nt;return(Nt=(pe=E==null?void 0:E.payment)==null?void 0:pe.handleRemovePromocode)==null?void 0:Nt.call(pe)},disabled:(Ue=E==null?void 0:E.payment)==null?void 0:Ue.isApplyingPromo,children:(Ge=E==null?void 0:E.payment)!=null&&Ge.isApplyingPromo?"...":"Remove"}):r.jsx("button",{type:"button",className:"flight-summary__promo-btn",onClick:()=>{var pe,Nt;return(Nt=(pe=E==null?void 0:E.payment)==null?void 0:pe.handleApplyPromocode)==null?void 0:Nt.call(pe,ce.cd)},disabled:((Qe=E==null?void 0:E.payment)==null?void 0:Qe.isApplyingPromo)||!!((ct=E==null?void 0:E.payment)!=null&&ct.appliedPromocode),children:(yt=E==null?void 0:E.payment)!=null&&yt.isApplyingPromo?"...":"Apply"})]})]},ce.cd)})})]}):null,(re=E==null?void 0:E.payment)!=null&&re.shouldShowInboundApprovalRequest?r.jsxs("div",{className:"flight-summary__promo-card",style:{marginTop:"8px"},children:[r.jsx("h4",{className:"flight-summary__promo-title",children:"Approval Required"}),r.jsx("div",{className:"flight-summary__promo-desc",style:{marginBottom:"10px"},children:"To confirm this corporate inbound booking, send an approval request to your manager."}),r.jsx("input",{type:"text",className:"traveler-form__input",value:((ye=E==null?void 0:E.payment)==null?void 0:ye.tripReason)||"",onChange:ce=>{var be,Pe;return(Pe=(be=E==null?void 0:E.payment)==null?void 0:be.setTripReason)==null?void 0:Pe.call(be,ce.target.value)},placeholder:"Enter trip reason",disabled:(Ae=E==null?void 0:E.payment)==null?void 0:Ae.isSubmittingApprovalRequest}),r.jsx("div",{style:{marginTop:"10px"},children:r.jsx("button",{type:"button",className:"traveler-form__btn traveler-form__btn--proceed",onClick:()=>{var ce,be;return(be=(ce=E==null?void 0:E.payment)==null?void 0:ce.handleApprovalRequest)==null?void 0:be.call(ce)},disabled:(Ie=E==null?void 0:E.payment)==null?void 0:Ie.isSubmittingApprovalRequest,children:(Ee=E==null?void 0:E.payment)!=null&&Ee.isSubmittingApprovalRequest?"Sending Request...":"Send Approval Request"})})]}):r.jsx(Da,{paymentSummary:(De=E==null?void 0:E.payment)==null?void 0:De.paymentSummary,selectedGateway:(ke=E==null?void 0:E.payment)==null?void 0:ke.selectedGateway,selectedPaymentMode:(Ne=E==null?void 0:E.payment)==null?void 0:Ne.selectedPaymentMode,sdkWarning:(ve=E==null?void 0:E.payment)==null?void 0:ve.sdkWarning,currencyCode:(F=E==null?void 0:E.payment)==null?void 0:F.fareCurrency,allowBalance:(ue=E==null?void 0:E.payment)==null?void 0:ue.allowBalancePaymentOption,combineOnlineOptions:(_e=E==null?void 0:E.payment)==null?void 0:_e.combineOnlineOptions,disabled:!1,onGatewayChange:(ce,be)=>{var Pe,Ue,Ge,Qe;(Ue=(Pe=E==null?void 0:E.payment)==null?void 0:Pe.setSelectedGateway)==null||Ue.call(Pe,ce),(Qe=(Ge=E==null?void 0:E.payment)==null?void 0:Ge.setSelectedPaymentMode)==null||Qe.call(Ge,be)}})]}):null,E!=null&&E.showPayNow?r.jsxs("div",{className:"traveler-form__proceed-wrap",children:[r.jsxs("div",{className:"traveler-form__total-badge",children:["Total Payable:"," ",String(((Fe=E==null?void 0:E.payment)==null?void 0:Fe.fareCurrency)||"").toUpperCase()," ",Number(((He=E==null?void 0:E.payment)==null?void 0:He.totalPayableAmount)||0).toFixed(2)]}),r.jsx("button",{type:"button",className:"traveler-form__btn traveler-form__btn--proceed",onClick:()=>{var ce,be;return(be=(ce=E==null?void 0:E.payment)==null?void 0:ce.handlePayNow)==null?void 0:be.call(ce)},disabled:(Xe=E==null?void 0:E.payment)==null?void 0:Xe.isPaying,children:(Me=E==null?void 0:E.payment)!=null&&Me.isPaying?"Processing Payment...":"Pay Now"})]}):null,(E!=null&&E.showPayment||E!=null&&E.showPayNow)&&(he!=null&&he.userText||he!=null&&he.assistantText)?r.jsxs("div",{className:"message-list__traveler-inline-pay-block",style:{marginTop:"16px"},children:[he.userText?r.jsx("div",{className:"message-list__traveler-inline-user-echo",style:{margin:"12px 0"},children:r.jsx("div",{className:"message-list__bubble message-list__bubble--user",children:r.jsxs("p",{className:"message-list__text",children:[r.jsx("span",{className:"message-list__text-icon",children:r.jsx(Rt.FaUser,{})}),he.userText]})})}):null,he.assistantText?r.jsx("div",{className:"message-list__bubble message-list__bubble--assistant",style:{marginBottom:"8px"},children:r.jsxs("p",{className:"message-list__text",children:[r.jsx("span",{className:"message-list__text-icon",children:r.jsx(Wt.HiSparkles,{})}),U(he.assistantText,"")]})}):null,he.confirmReplyText?r.jsx("div",{className:"message-list__traveler-inline-user-echo",style:{margin:"12px 0 0"},children:r.jsx("div",{className:"message-list__bubble message-list__bubble--user",children:r.jsxs("p",{className:"message-list__text",children:[r.jsx("span",{className:"message-list__text-icon",children:r.jsx(Rt.FaUser,{})}),he.confirmReplyText]})})}):null]}):null]},p)}if(l.type==="payment_confirmation")return r.jsxs("div",{className:"message-list__bubble message-list__bubble--assistant",children:[r.jsxs("p",{className:"message-list__text message-list__text--payment-success",children:[r.jsx("span",{className:"message-list__text-icon",children:r.jsx(Wt.HiSparkles,{})}),U(l==null?void 0:l.text,"Payment completed successfully.")]}),r.jsx(aa,{confirmation:l==null?void 0:l.confirmation})]},p);if(l.type==="assistant_message"){if(Oa(e,p,N))return r.jsx(T.Fragment,{},p);if(Ja(e,p,N))return r.jsx(T.Fragment,{},p)}return r.jsx("div",{className:"message-list__bubble message-list__bubble--assistant",children:r.jsxs("p",{className:"message-list__text",children:[r.jsx("span",{className:"message-list__text-icon",children:r.jsx(Wt.HiSparkles,{})}),U(l==null?void 0:l.text,"")]})},p)}),t?r.jsx("div",{className:"message-list__typing",children:r.jsx("p",{className:"loading-text",children:A})}):null,r.jsx("div",{ref:g})]})}function Ea(e){const t=String(e||"").trim();if(!t)return"Processing your request...";const n=t.match(/\b([A-Za-z]{3})\s*(?:to|-)\s*([A-Za-z]{3})\b/i),s=n!=null&&n[1]?n[1].toUpperCase():"",i=n!=null&&n[2]?n[2].toUpperCase():"",o=t.match(/\b(on|onward(?:\s+is)?|departure(?:\s+is)?)\s+([A-Za-z0-9,\-/ ]+)/i),c=String((o==null?void 0:o[2])||"").trim().replace(/\s+(and|return|retrun|retun|rtn)\b.*$/i,"");return s&&i&&c?`Processing your request from ${s} to ${i} on ${c}...`:s&&i?`Processing your request from ${s} to ${i}...`:"Processing your request..."}function Fa(e=[]){var m;const t=Array.isArray(e)?e[0]:null,n=Array.isArray(t==null?void 0:t.trps)?t.trps[0]:null,s=(m=n==null?void 0:n.deps)==null?void 0:m[0],i=Array.isArray(s==null?void 0:s.seg)?s.seg:[],o=i[0]||{},c=i[i.length-1]||o,u=String((o==null?void 0:o.da)||"").trim().toUpperCase(),a=String((c==null?void 0:c.ar)||"").trim().toUpperCase(),f=`${Qr(u)} → ${Qr(a)}`,y=Number((t==null?void 0:t.adt)??1),d=Number((t==null?void 0:t.chd)??0),g=Number((t==null?void 0:t.inf)??0),S=Math.max(y+d+g,1),x=String((o==null?void 0:o.cc)||(o==null?void 0:o.cls)||(t==null?void 0:t.cls)||"Economy").trim(),w=`${S} traveler${S>1?"s":""}, ${x}`;return{route:f,date:La(o==null?void 0:o.dd),travelerInfo:w}}function Qr(e){return{HYD:"Hyderabad",BLR:"Bangalore",DEL:"Delhi",BOM:"Mumbai",MAA:"Chennai",CCU:"Kolkata",AMD:"Ahmedabad",COK:"Cochin",GOI:"Goa",PNQ:"Pune"}[e]||e||"Route"}function La(e){const t=String(e||"").trim();if(!t)return"--";const n=/^\d{2}-\d{2}-\d{4}$/.test(t)?new Date(t.split("-").reverse().join("-")):new Date(t);if(Number.isNaN(n.getTime()))return t;const s=String(n.getDate()).padStart(2,"0"),i=String(n.getMonth()+1).padStart(2,"0"),o=n.getFullYear();return`${s}-${i}-${o}`}function $a(e){var c,u,a;const t=String(e||"").trim();if(!t)return null;const n=t.match(/\bfrom\s+([A-Za-z]{3})\s+to\s+([A-Za-z]{3})\s+on\s+(\d{4}-\d{2}-\d{2})\b/i),s=t.match(/\bbest\s+pick\s+is\s+([A-Za-z0-9]{2,3})\b/i),i=t.match(/\bat\s+([0-2]?\d:\d{2})\b/i),o=t.match(/\b(?:USD|INR|EUR|GBP|AED|SAR)\s*([\d,.]+)\b/i);return{origin:((c=n==null?void 0:n[1])==null?void 0:c.toUpperCase())||"",destination:((u=n==null?void 0:n[2])==null?void 0:u.toUpperCase())||"",departureDate:(n==null?void 0:n[3])||"",airlineCode:((a=s==null?void 0:s[1])==null?void 0:a.toUpperCase())||"",departureTime:Ia((i==null?void 0:i[1])||""),price:Ra(o==null?void 0:o[1])}}function Ia(e){const t=String(e||"").trim();if(!t)return"";const[n,s]=t.split(":");if(!n||!s)return"";const i=Number(n),o=Number(s);return!Number.isFinite(i)||!Number.isFinite(o)||i<0||i>23||o<0||o>59?"":`${String(i).padStart(2,"0")}:${String(o).padStart(2,"0")}`}function Ra(e){const t=String(e||"").replace(/,/g,"").trim();if(!t)return null;const n=Number(t);return Number.isFinite(n)?n:null}function xn(e){const t=String(e||"").trim();return t?t.toLowerCase()==="save"?!0:/\b(save details|save traveler details|save traveller details)\b/i.test(t):!1}function Ma(e,t){const n=e[Number(t)+1];return!n||n.type!=="user_message"||n.hiddenFromChat||!xn(n.text)?"":String(n.text||"").trim()}function Ba(e,t,n){if(!Number.isInteger(n)||t<1||t-1!==n)return!1;const s=e[t-1];if(!s||s.type!=="traveler_details_form")return!1;const i=e[t];return!i||i.type!=="user_message"||i.hiddenFromChat?!1:xn(i.text)}function Ms(e){return(e==null?void 0:e.type)==="assistant_message"&&String((e==null?void 0:e.text)||"").includes("Do you want to proceed to book this flight?")}function ar(e){const t=String(e||"").trim().toLowerCase();return t?/\b(proceed to book|continue to book|continue booking|confirm booking|proceed booking)\b/.test(t):!1}function Bs(e,t){const n=e[t];if(!n||n.type!=="assistant_message")return null;const s=t>0?e[t-1]:null,i=(s==null?void 0:s.type)==="user_message"&&!(s!=null&&s.hiddenFromChat)&&ar(s.text);return{assistantMessage:n,assistantIndex:t,userIndex:i?t-1:-1,userText:i?String(s.text||"").trim():""}}function Pa(e,t){for(let n=t+1;n<e.length;n++){const s=e[n];if(s.type==="flight_results"||s.type==="payment_confirmation")break;if(s.type!=="traveler_details_form"&&Ms(s))return Bs(e,n)}return null}function za(e,t){for(let n=t-1;n>=0;n--){const s=e[n];if(s.type==="flight_results")break;if(s.type!=="traveler_details_form"&&Ms(s))return Bs(e,n)}return null}function wn(e,t){return Pa(e,t)||za(e,t)}function Ua(e,t,n){if(!Number.isInteger(n))return!1;const s=wn(e,n);return!s||s.userIndex<0?!1:t===s.userIndex}function Oa(e,t,n){if(!Number.isInteger(n))return!1;const s=wn(e,n);return s?t===s.assistantIndex:!1}function Ps(e){const t=String(e||"").trim().toLowerCase();return!t||ar(e)||xn(e)?!1:!!(/^(yes|yeah|yep|yup)\b/.test(t)||/^(no|nope|nah)\b/.test(t)||/^(ok|okay|sure)\b/.test(t))}function zs(e,t){if(!t||!Number.isInteger(t.assistantIndex))return null;const n=t.assistantIndex+1;for(let s=n;s<e.length;s++){const i=e[s];if(i.type==="flight_results"||i.type==="payment_confirmation")break;if(i.type!=="traveler_details_form"&&i.type!=="assistant_message"&&i.type==="user_message"&&!i.hiddenFromChat&&Ps(i.text))return{text:String(i.text||"").trim(),messageIndex:s}}return null}function Ha(e,t,n){if(!Number.isInteger(n))return!1;const s=wn(e,n);if(!s)return!1;const i=zs(e,s);return i?t===i.messageIndex:!1}function Zn(e){const t=String(e||"").trim();if(!t)return!1;const n=t.toLowerCase();return xn(e)||ar(e)?!1:n==="pay"||n==="payment"||n==="paye"?!0:/\b(pay now|make payment|complete payment)\b/i.test(t)}function Jn(e){return(e==null?void 0:e.type)!=="assistant_message"?!1:(Array.isArray(e.options)?e.options:[]).some(n=>String((n==null?void 0:n.value)||"").startsWith("CONFIRM_PAYMENT:"))?!0:String((e==null?void 0:e.text)||"").includes("Do you want to proceed with payment")}function Ya(e,t){var n;for(let s=t-1;s>=0;s--)if(((n=e[s])==null?void 0:n.type)==="traveler_details_form")return s;return-1}function Ka(e,t){var s;let n=-1;for(let i=0;i<t;i++)((s=e[i])==null?void 0:s.type)==="flight_results"&&(n=i);return n}function Va(e,t,n){var s;for(let i=t+1;i<n;i++)if(((s=e[i])==null?void 0:s.type)==="payment_confirmation")return!1;return!0}function Ga(e,t){let n=-1;for(let s=0;s<t;s++){const i=e[s];(i==null?void 0:i.type)==="assistant_message"&&Jn(i)&&Va(e,s,t)&&(n=Math.max(n,s))}if(n>=0)return n;for(let s=t+1;s<e.length;s++){const i=e[s];if(i.type!=="traveler_details_form"&&i.type!=="flight_results"){if(i.type==="payment_confirmation")break;if(i.type==="assistant_message"&&Jn(i))return s}}return-1}function Wa(e,t,n){const s=[];let i="";const o=c=>{const u=e[c];(u==null?void 0:u.type)!=="user_message"||u.hiddenFromChat||Zn(u.text)&&(s.push(c),i=String(u.text||"").trim())};if(n<t){const c=Ka(e,n)+1,u=Math.max(0,c);for(let a=u;a<n;a++)o(a)}else for(let c=t+1;c<n;c++)o(c);return{indices:s,lastText:i}}function vn(e,t){var f;const n=Ya(e,t);let s=Ga(e,t),i=[],o="",c="";if(s>=0){c=String(((f=e[s])==null?void 0:f.text)||"").trim();const y=Wa(e,t,s);i=y.indices,o=y.lastText}if(!i.length&&s<0){const y=n>=0?n+1:0;for(let x=t+1;x<e.length;x++){const w=e[x];if(w.type==="payment_confirmation")break;if(w.type!=="traveler_details_form"&&w.type!=="flight_results"&&w.type==="user_message"&&!w.hiddenFromChat&&Zn(w.text)){i=[x],o=String(w.text||"").trim();break}}if(!i.length)for(let x=y;x<t;x++){const w=e[x];w.type!=="user_message"||w.hiddenFromChat||Zn(w.text)&&(i.push(x),o=String(w.text||"").trim())}if(!i.length)return null;const d=Math.max(...i)+1;let g=-1,S="";for(let x=d;x<e.length;x++){const w=e[x];if(w.type==="payment_confirmation")break;if(w.type!=="traveler_details_form"&&w.type!=="flight_results"&&w.type==="assistant_message"&&Jn(w)){g=x,S=String(w.text||"").trim();break}}if(g<0)return{payUserIndices:i,userText:o,assistantIndex:-1,assistantText:"",confirmReplyIndex:-1,confirmReplyText:""};s=g,c=S}let u=-1,a="";if(s>=0)for(let y=s+1;y<e.length;y++){const d=e[y];if(d.type==="payment_confirmation")break;if(d.type!=="traveler_details_form"&&d.type!=="flight_results"){if(d.type==="assistant_message")break;if(d.type==="user_message"&&!d.hiddenFromChat&&Ps(d.text)){u=y,a=String(d.text||"").trim();break}}}return{payUserIndices:i,userText:o,assistantIndex:s,assistantText:c,confirmReplyIndex:u,confirmReplyText:a}}function qa(e,t,n){if(!Number.isInteger(n))return!1;const s=vn(e,n);return s?s.payUserIndices.includes(t):!1}function Za(e,t,n){if(!Number.isInteger(n))return!1;const s=vn(e,n);return!s||s.confirmReplyIndex<0?!1:t===s.confirmReplyIndex}function Ja(e,t,n){if(!Number.isInteger(n))return!1;const s=vn(e,n);return!s||s.assistantIndex<0?!1:t===s.assistantIndex}function Xt(e){if(!e)return"";const t=e instanceof Date?e:new Date(e);if(Number.isNaN(t.getTime()))return"";const n=String(t.getDate()).padStart(2,"0"),s=String(t.getMonth()+1).padStart(2,"0"),i=t.getFullYear();return`${n}/${s}/${i}`}function Xa(){return r.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",children:[r.jsx("path",{d:"M12 3a3 3 0 0 0-3 3v6a3 3 0 1 0 6 0V6a3 3 0 0 0-3-3Z",stroke:"currentColor",strokeWidth:"1.8"}),r.jsx("path",{d:"M5 11.5a7 7 0 1 0 14 0",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round"}),r.jsx("path",{d:"M12 18.5V21",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round"})]})}function Qa({onSend:e,disabled:t=!1,onOpenVoiceAssistant:n=()=>{},prefillMessage:s="",onPrefillConsumed:i,options:o=[],isReturnDateSelection:c=!1,knownOnwardDate:u=null,knownReturnDate:a=null,onOptionClick:f}){const[y,d]=T.useState(""),[g,S]=T.useState(!1),[x,w]=T.useState(null),[m,N]=T.useState(null),[h,A]=T.useState("oneway"),[v,U]=T.useState(2),_=T.useRef(null),l=j=>{d(j.target.value)},p=()=>{const j=String(y||"").trim();!j||t||(e(j),d(""))},k=j=>{j.key==="Enter"&&(j.preventDefault(),p())};T.useEffect(()=>{const j=String(s||"").trim();j&&(d(j),requestAnimationFrame(()=>{var b,L;(b=_.current)==null||b.focus(),(L=_.current)==null||L.setSelectionRange(j.length,j.length)}),i==null||i())},[s,i]),T.useEffect(()=>{const j=()=>{U(window.innerWidth<=1100?1:2)};return j(),window.addEventListener("resize",j),()=>window.removeEventListener("resize",j)},[]),T.useEffect(()=>{if(!g)return;const j=document.body.style.overflow;return document.body.style.overflow="hidden",()=>{document.body.style.overflow=j}},[g]);const H=Array.isArray(o)&&o.some(j=>eo((j==null?void 0:j.label)||(j==null?void 0:j.value))),P=Array.isArray(o)?o.map(j=>String((j==null?void 0:j.label)||(j==null?void 0:j.value)||"")).join("|"):"";T.useEffect(()=>{if(H){if(bt(u),bt(a),!c){A("oneway"),x||w(bt(u)),m||N(bt(a));return}A("roundtrip"),x||w(bt(u)),m||N(bt(a))}},[P,H,c,u,a,x,m]);const D=j=>{if(!j||t)return;w(j);const b=Xt(j);e(c?`return ${b}`:b),S(!1)},$=j=>{if(t)return;const b=bt(j);if(!b)return;const L=bt(x),Y=bt(m);if(!L||Y){w(b),N(null);return}if(!to(b,L)){N(null);return}const W=L,te=b;w(W),N(te);const oe=Xt(W),B=Xt(te);e(`onward ${oe} return ${B}`),S(!1)},O=()=>{t||(g||(w(null),N(null)),A(c?"roundtrip":"oneway"),S(j=>!j))};return r.jsxs("div",{className:"message-input",children:[Array.isArray(o)&&o.length>0?r.jsxs("div",{className:"message-input__options",children:[o.map((j,b)=>r.jsx("button",{type:"button",className:"message-input__option-button",onClick:()=>f==null?void 0:f(j),disabled:t,children:j==null?void 0:j.label},b)),H?r.jsx("button",{type:"button",className:"message-input__option-button",onClick:O,disabled:t,children:"Custom Date"}):null]}):null,g&&typeof document<"u"?ni.createPortal(r.jsx("div",{className:"message-input__date-modal-overlay",onClick:()=>S(!1),children:r.jsxs("div",{className:"message-input__date-modal",onClick:j=>j.stopPropagation(),children:[r.jsx("div",{className:"message-input__calendar-summary",children:h==="roundtrip"||h==="Combined"||h==="Split"?r.jsxs(r.Fragment,{children:[r.jsxs("div",{className:"message-input__calendar-chip",children:[r.jsx("span",{className:"message-input__calendar-chip-label",children:"Onward"}),r.jsx("span",{className:"message-input__calendar-chip-value",children:es(x)})]}),r.jsxs("div",{className:"message-input__calendar-chip",children:[r.jsx("span",{className:"message-input__calendar-chip-label",children:"Return"}),r.jsx("span",{className:"message-input__calendar-chip-value",children:es(m)})]})]}):null}),h==="roundtrip"||h==="Combined"||h==="Split"?r.jsx(Wn,{inline:!0,selectsRange:!0,startDate:x,endDate:m,minDate:x?no(x,1):new Date,monthsShown:v,onSelect:$,calendarClassName:"message-input__calendar"}):r.jsx(Wn,{inline:!0,selected:x,minDate:new Date,monthsShown:v,onChange:D,calendarClassName:"message-input__calendar"})]})}),document.body):null,r.jsx("input",{ref:_,className:"message-input__field",disabled:t,value:y,onChange:l,placeholder:t?"Session expired. Click Restart Chat to continue.":"Send a message.",onKeyDown:k}),r.jsx("button",{type:"button",className:`message-input__voice-button${t?" message-input__voice-button--disabled":""}`,onClick:n,disabled:t,"aria-label":"Open voice assistant",title:"Open voice assistant",children:r.jsx(Xa,{})}),r.jsx("button",{type:"button",className:`message-input__send-button${t?" message-input__send-button--disabled":""}`,onClick:p,disabled:t,"aria-label":"Send message",title:"Send message",children:r.jsx(vs.LuSend,{className:"message-input__send-icon","aria-hidden":"true"})})]})}function eo(e){const t=String(e||"").trim().toLowerCase();return["today","tomorrow","next weekend","next week"].includes(t)}function es(e){return e?Xt(e):"--"}function bt(e){if(!e)return null;if(e instanceof Date)return Number.isNaN(e.getTime())?null:e;const t=String(e||"").trim();if(!t)return null;const n=t.match(/^([0-3]?\d)[/-]([01]?\d)[/-](\d{4})$/);if(n){const o=Number(n[1]),c=Number(n[2])-1,u=Number(n[3]),a=new Date(u,c,o);if(!Number.isNaN(a.getTime())&&a.getFullYear()===u&&a.getMonth()===c&&a.getDate()===o)return a}const s=t.match(/^(\d{4})-(\d{2})-(\d{2})$/);if(s){const o=Number(s[1]),c=Number(s[2])-1,u=Number(s[3]),a=new Date(o,c,u);if(!Number.isNaN(a.getTime())&&a.getFullYear()===o&&a.getMonth()===c&&a.getDate()===u)return a}const i=new Date(t);return Number.isNaN(i.getTime())?null:i}function to(e,t){const n=bt(e),s=bt(t);return!n||!s?!1:Xn(n).getTime()>Xn(s).getTime()}function Xn(e){const t=new Date(e);return t.setHours(0,0,0,0),t}function no(e,t){const n=Xn(e),s=new Date(n);return s.setDate(n.getDate()+Number(t)),s}function Qn(){return typeof window>"u"?!1:!!(window.SpeechRecognition||window.webkitSpeechRecognition)}function Sn(){return typeof window>"u"?!1:!!(window.speechSynthesis&&window.SpeechSynthesisUtterance)}function ro(e={}){if(!Qn())return null;const t=window.SpeechRecognition||window.webkitSpeechRecognition,n=new t;return n.lang=e.lang||"en-US",n.continuous=e.continuous??!0,n.interimResults=e.interimResults??!0,n.maxAlternatives=e.maxAlternatives??1,n}function fn(){Sn()&&(window.speechSynthesis.speaking||window.speechSynthesis.pending)&&window.speechSynthesis.cancel()}function so(e,t={}){if(!Sn())return null;const n=String(e||"").trim();if(!n)return null;fn();const s=new window.SpeechSynthesisUtterance(n);s.lang=t.lang||"en-US",s.rate=t.rate??1,s.pitch=t.pitch??1.08;const i=io(s.lang,t.voiceName);return i&&(s.voice=i,s.lang=i.lang||s.lang),typeof t.onstart=="function"&&(s.onstart=t.onstart),typeof t.onend=="function"&&(s.onend=t.onend),typeof t.onerror=="function"&&(s.onerror=t.onerror),window.speechSynthesis.speak(s),s}function io(e="en-US",t=""){if(!Sn())return null;const n=window.speechSynthesis.getVoices();if(!Array.isArray(n)||n.length===0)return null;const s=String(e||"en-US").toLowerCase(),i=String(t||"").trim().toLowerCase();if(i){const f=n.find(y=>String((y==null?void 0:y.name)||"").trim().toLowerCase()===i);if(f)return f}const o=n.filter(f=>String((f==null?void 0:f.lang)||"").toLowerCase().startsWith(s.split("-")[0])),c=o.length?o:n,u=c.find(f=>{const y=String((f==null?void 0:f.name)||"").toLowerCase();return ao.some(d=>y.includes(d))});return u||c.find(f=>f==null?void 0:f.default)||c[0]||null}const ao=["female","woman","zira","hazel","susan","samantha","victoria","karen","moira","ava","allison","aria","jenny","neural female","google us english"];function oo({assistantText:e="",disabled:t=!1,isBackendTyping:n=!1,onSend:s}){const[i,o]=T.useState(!1),[c,u]=T.useState(!1),[a,f]=T.useState(!0),[y,d]=T.useState(""),[g,S]=T.useState("Tap the mic and speak to the travel assistant."),[x,w]=T.useState(""),m=T.useRef(null),N=T.useRef(""),h=T.useRef(""),A=T.useRef(null),v=T.useRef(!0),U=T.useRef(!1),_=T.useRef(""),l=T.useRef(!1),p=T.useRef(!1),k=T.useRef(!1);T.useEffect(()=>(v.current=!0,()=>{var j;v.current=!1,window.clearTimeout(A.current);try{(j=m.current)==null||j.stop()}catch{}fn()}),[]),T.useEffect(()=>{!t||!i||$()},[t,i]),T.useEffect(()=>{!n||t||(l.current=!0,S("Travel assistant is processing your request..."))},[t,n]),T.useEffect(()=>{const j=String(e||"").trim();if(!j||(S(j),j===_.current))return;_.current=j;const b=l.current;if(l.current=!1,!a||!Sn()){b&&!t&&window.setTimeout(()=>{v.current&&D()},300);return}U.current=b,so(j,{onstart:()=>{v.current&&u(!0)},onend:()=>{v.current&&(u(!1),U.current&&!t&&(U.current=!1,D()))},onerror:()=>{v.current&&(u(!1),U.current&&!t&&(U.current=!1,D()))}})},[e,t,a]);const H=j=>{const b=String(j||"").trim();b&&(d(b),w(""),S("Sending your request to the travel assistant..."),l.current=!0,s==null||s(b))},P=()=>{if(m.current||!Qn())return m.current;const j=ro({continuous:!0,interimResults:!0,lang:"en-US"});return j?(j.onstart=()=>{v.current&&(p.current=!1,k.current=!0,o(!0),S("Listening..."),w(""))},j.onresult=b=>{var te;let L="",Y="";for(let oe=b.resultIndex;oe<b.results.length;oe+=1){const B=b.results[oe],Z=String(((te=B==null?void 0:B[0])==null?void 0:te.transcript)||"").trim();Z&&(B.isFinal?L=`${L} ${Z}`.trim():Y=`${Y} ${Z}`.trim())}L&&(N.current=`${N.current} ${L}`.trim());const W=`${N.current} ${Y}`.trim();W&&(h.current=W,d(W)),window.clearTimeout(A.current),A.current=window.setTimeout(()=>{$()},2400)},j.onerror=b=>{v.current&&(p.current=!1,k.current=!1,w(lo(b==null?void 0:b.error)),S("Voice input unavailable right now."),o(!1))},j.onend=()=>{if(!v.current)return;p.current=!1,k.current=!1,o(!1),window.clearTimeout(A.current);const b=N.current.trim(),L=h.current.trim();N.current="",h.current="",b?H(b):L?H(L):t||S("No speech detected. Tap the mic and try again.")},m.current=j,j):null},D=()=>{if(t||i||p.current||k.current)return;fn(),u(!1),w(""),d(""),N.current="",h.current="",window.clearTimeout(A.current);const j=P();if(!j){w("Speech recognition is not supported in this browser.");return}try{p.current=!0,j.start()}catch{if(p.current=!1,k.current||i){S("Listening...");return}w("Microphone is busy. Please wait a moment and retry.")}},$=()=>{var j;window.clearTimeout(A.current),p.current=!1;try{(j=m.current)==null||j.stop()}catch{k.current=!1,o(!1)}},O=()=>{$(),fn(),u(!1),d(""),w(""),S("Voice assistant reset. Tap the mic and speak to the travel assistant."),h.current="",N.current="",l.current=!1,U.current=!1,_.current="",p.current=!1,k.current=!1};return{error:x,isListening:i,isSpeaking:c,speakerEnabled:a,speechRecognitionSupported:Qn(),status:g,transcript:y,setSpeakerEnabled:f,resetConversation:O,startListening:D,stopListening:$}}function lo(e){switch(e){case"audio-capture":return"No microphone was found for voice input.";case"not-allowed":case"service-not-allowed":return"Microphone permission was denied.";case"network":return"Speech recognition lost connection. Please retry.";default:return"Voice input could not be completed."}}function co({assistantText:e="",disabled:t=!1,isBackendTyping:n=!1,onSend:s,onClose:i=()=>{},standalonePage:o=!1}){const{error:c,isListening:u,isSpeaking:a,speechRecognitionSupported:f,status:y,transcript:d,resetConversation:g,startListening:S,stopListening:x}=oo({assistantText:e,disabled:t,isBackendTyping:n,onSend:s}),w=c?"voice unavailable":a?"speaking...":u?"listening...":n?"thinking...":"tap to speak",m=c?"voice-assistant__phase--error":a?"voice-assistant__phase--speaking":u?"voice-assistant__phase--listening":n?"voice-assistant__phase--thinking":"voice-assistant__phase--idle";return r.jsx("section",{className:`voice-assistant${o?" voice-assistant--page":""}`,"aria-label":"Voice assistant",role:"dialog","aria-modal":"true",children:r.jsxs("div",{className:"voice-assistant__canvas",children:[r.jsxs("div",{className:"voice-assistant__center",children:[r.jsxs("button",{type:"button",className:`voice-assistant__orb${u?" voice-assistant__orb--listening":""}${a?" voice-assistant__orb--speaking":""}`,onClick:u?x:S,disabled:t||!f,"aria-label":u?"Stop listening":"Start listening",children:[r.jsx("span",{className:"voice-assistant__orb-ring","aria-hidden":"true"}),r.jsxs("span",{className:"voice-assistant__bars","aria-hidden":"true",children:[r.jsx("span",{className:"voice-assistant__bar voice-assistant__bar--1"}),r.jsx("span",{className:"voice-assistant__bar voice-assistant__bar--2"}),r.jsx("span",{className:"voice-assistant__bar voice-assistant__bar--3"}),r.jsx("span",{className:"voice-assistant__bar voice-assistant__bar--4"}),r.jsx("span",{className:"voice-assistant__bar voice-assistant__bar--5"})]})]}),r.jsx("p",{className:`voice-assistant__phase ${m}`,children:w}),!c&&y?r.jsx("p",{className:"voice-assistant__caption",children:ts(y)}):null,d?r.jsxs("p",{className:"voice-assistant__heard",children:['"',d,'"']}):null,c?r.jsx("p",{className:"voice-assistant__error",children:ts(c)}):null]}),r.jsxs("div",{className:"voice-assistant__dock",children:[r.jsx("button",{type:"button",className:"voice-assistant__dock-button",onClick:()=>{g(),x(),i()},title:"Close voice assistant","aria-label":"Close voice assistant",children:r.jsx(gt.FiX,{})}),r.jsx("button",{type:"button",className:`voice-assistant__dock-button voice-assistant__dock-button--primary${u?" voice-assistant__dock-button--active":""}`,onClick:u?x:S,disabled:t||!f,title:u?"Stop listening":"Start listening","aria-label":u?"Stop listening":"Start listening",children:u?r.jsx(gt.FiMicOff,{}):r.jsx(gt.FiMic,{})})]})]})})}function ts(e,t=""){if(typeof e=="string")return e;if(typeof e=="number"||typeof e=="boolean")return String(e);if(e&&typeof e=="object"){const n=(e==null?void 0:e.message)||(e==null?void 0:e.error)||(e==null?void 0:e.details)||(e==null?void 0:e.msg);if(n)return String(n);try{return JSON.stringify(e)}catch{return t}}return t}const uo=15*60*1e3;function Us(){var pe,Nt;const e=sr(),[t,n]=T.useState(""),[s,i]=T.useState([]),[o,c]=T.useState(!1),[u,a]=T.useState(""),[f,y]=T.useState(!1),[d,g]=T.useState(0),[,S]=T.useState(""),[x,w]=T.useState(!1),[m,N]=T.useState(""),[h,A]=T.useState(""),[v,U]=T.useState([]),[_,l]=T.useState(""),[p,k]=T.useState(null),[H,P]=T.useState(null),[D,$]=T.useState(!1),[O,j]=T.useState(!1),b=T.useRef(!1),L=T.useRef(null),Y=T.useRef(""),W=T.useRef(!1),te=T.useRef(!1),oe=T.useRef([]),B=[...s].map((I,M)=>({item:I,index:M})).reverse().find(({item:I})=>Array.isArray(I==null?void 0:I.options)&&I.options.length>0),Z=(pe=[...s].map((I,M)=>({item:I,index:M})).reverse().find(({item:I})=>(I==null?void 0:I.type)==="flight_results"))==null?void 0:pe.index,se=((Nt=B==null?void 0:B.item)==null?void 0:Nt.options)||[],re=B?`${B.index}-${se.length}`:"",ye=I=>{const M=Array.isArray(I)?I[1]:I;return M==null?null:typeof M=="string"?{type:"assistant_message",text:M}:typeof M!="object"?null:M};T.useEffect(()=>{const I=mo()||localStorage.getItem("travel_session_id");if(I){const q=as(I);i(q),S(os(q)),W.current=q.length===0,Y.current=I,pt(I)}else W.current=!0;const M=Pn();e.emit("chat:join",{sessionId:I||null,user:M,userContext:M}),e.on("chat:joined",q=>{if(n(q.sessionId),localStorage.setItem("travel_session_id",q.sessionId),po(q.sessionId),pt(q.sessionId),Y.current!==q.sessionId){const J=as(q.sessionId);i(J),S(os(J)),W.current=J.length===0,Y.current=q.sessionId}if(W.current){const J="Hi! I can help you search, compare, and book flights. Share your route and travel date to get started.";i(ee=>[...ee,{type:"assistant_message",text:J}]),S(J),W.current=!1}}),e.on("chat:typing",({status:q,text:J})=>{c(q),a(q?String(J||"").trim():"")});const V=q=>{var le,xe;const J=!!((le=q==null?void 0:q.detail)!=null&&le.isLoading),ee=String(((xe=q==null?void 0:q.detail)==null?void 0:xe.text)||"").trim();c(J),a(J?ee:"")};return window.addEventListener("chat:ui-loading",V),e.on("chat:response",q=>{const J=ye(q);if(!J)return;J.type;const le=(oe.current.shift()||"chat")==="voice"?{...J,hiddenFromChat:!0}:J;le.type!=="user_message"&&le.text&&S(String(le.text)),i(xe=>[...xe,le])}),()=>{e.off("chat:joined"),e.off("chat:typing"),e.off("chat:response"),window.removeEventListener("chat:ui-loading",V)}},[]),T.useEffect(()=>{if(!t||f)return;const I=()=>{pt(t)};return window.addEventListener("click",I),window.addEventListener("keydown",I),window.addEventListener("touchstart",I),()=>{window.removeEventListener("click",I),window.removeEventListener("keydown",I),window.removeEventListener("touchstart",I)}},[t,f]),T.useEffect(()=>{const I=M=>{var q;const V=Array.isArray((q=M.detail)==null?void 0:q.options)?M.detail.options.filter(J=>!String((J==null?void 0:J.value)||"").startsWith("APPLY_SAVED_TRAVELLER:")):[];U(V)};return window.addEventListener("traveler-form:update-options",I),()=>{window.removeEventListener("traveler-form:update-options",I)}},[]),T.useEffect(()=>{const I=M=>{var q;const V=((q=M==null?void 0:M.detail)==null?void 0:q.prebookPayload)||null;V&&typeof V=="object"&&(L.current=Gn(V))};return window.addEventListener("traveler-form:state-updated",I),()=>{window.removeEventListener("traveler-form:state-updated",I)}},[]),T.useEffect(()=>{const I=M=>{var J,ee;const V=!!((J=M==null?void 0:M.detail)!=null&&J.status),q=String(((ee=M==null?void 0:M.detail)==null?void 0:ee.text)||"").trim();c(V),a(V?q||"Processing your request...":"")};return window.addEventListener("chat:action-loader",I),()=>{window.removeEventListener("chat:action-loader",I)}},[]),T.useEffect(()=>{const I=M=>{const V=(M==null?void 0:M.detail)||{},q=(V==null?void 0:V.fareAvailabilityPayload)||null;if(!q||typeof q!="object")return;const J=(V==null?void 0:V.summary)||{},ee=el(J,q),xe=(ee==null?void 0:ee.type)==="split_roundtrip"?Qo(ee):Xo(ee);P({fareAvailabilityPayload:q}),i(Ke=>[...Ke,{type:"assistant_message",text:xe,options:[{label:"Yes",value:"CONFIRM_BOOKING:YES"},{label:"No",value:"CONFIRM_BOOKING:NO"}]}])};return window.addEventListener("flight-booking:confirm-request",I),()=>{window.removeEventListener("flight-booking:confirm-request",I)}},[]),T.useEffect(()=>{const I=()=>{$(!0),i(M=>[...M,{type:"assistant_message",text:"Do you want to proceed to book this flight?",options:[{label:"Yes",value:"CONFIRM_PROCEED_BOOK:YES"},{label:"No",value:"CONFIRM_PROCEED_BOOK:NO"}]}])};return window.addEventListener("traveler-form:confirm-proceed-request",I),()=>{window.removeEventListener("traveler-form:confirm-proceed-request",I)}},[]),T.useEffect(()=>{const I=()=>{b.current||(b.current=!0,j(!0),i(M=>[...M,{type:"assistant_message",text:"Do you want to proceed with payment?",options:[{label:"Yes",value:"CONFIRM_PAYMENT:YES"},{label:"No",value:"CONFIRM_PAYMENT:NO"}]}]))};return window.addEventListener("traveler-form:confirm-payment-request",I),()=>{window.removeEventListener("traveler-form:confirm-payment-request",I)}},[]),T.useEffect(()=>{if(!t||f)return;const I=window.setInterval(()=>{const M=xo(t);!Number.isFinite(M)||!(Date.now()-M>uo)||y(!0)},15e3);return()=>window.clearInterval(I)},[t,f]),T.useEffect(()=>{!f||te.current||(i(I=>[...I,{type:"assistant_message",text:"Session expired due to 15 minutes of inactivity. Click Restart Chat to continue."}]),te.current=!0)},[f]),T.useEffect(()=>{t&&No(t,s)},[t,s]),T.useEffect(()=>{let I=!0;const M=go();if(!(M!=null&&M.bookingId))return;const V=M.sessionId||localStorage.getItem("travel_session_id")||"";if(!V){i(ee=>[...ee,{type:"assistant_message",text:"Payment return received, but session is missing. Please continue in the same browser session."}]);return}const q=(process.env.REACT_APP_API_BASE_URL||"http://localhost:5000").replace(/\/$/,"");return(async()=>{try{_e(!0,"Loading confirmation details...");const ee=await fetch(`${q}/api/v1/payment/confirmation-details`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sessionId:V,bookingId:M.bookingId})}),le=await ee.json();if(!I)return;if(!ee.ok||!(le!=null&&le.ok)){i(Ke=>[...Ke,{type:"assistant_message",text:(le==null?void 0:le.error)||"Payment completed, but we could not fetch booking confirmation details."}]);return}const xe="Payment got Completed. Please check the confirmation page details.";S(xe),i(Ke=>[...Ke,{type:"payment_confirmation",text:xe,confirmation:(le==null?void 0:le.data)||null}])}catch(ee){if(!I)return;i(le=>[...le,{type:"assistant_message",text:(ee==null?void 0:ee.message)||"Payment completed, but confirmation details are unavailable right now."}])}finally{I&&_e(!1)}})(),yo(),()=>{I=!1}},[]);const Ae=I=>{k(I||null),i(M=>[...M,{type:"assistant_message",text:"You will be redirected to the results page. Do you want to continue?",options:[{label:"Yes",value:"CONFIRM_REDIRECT:YES"},{label:"No",value:"CONFIRM_REDIRECT:NO"}]}])},Ie=({refetchSearch:I=!1,queryOverride:M="",suppressUserEcho:V=!1}={})=>{const q=String(M||"").trim()||String(_||"").trim()||qo(s);i(J=>{var xe,Ke;const ee=Zo(J);return!I||!q||V||ee.length>0&&((xe=ee[ee.length-1])==null?void 0:xe.type)==="user_message"&&String(((Ke=ee[ee.length-1])==null?void 0:Ke.text)||"").trim()===q?ee:[...ee,{type:"user_message",text:q}]}),U([]),!(!I||!q||!t)&&(l(q),oe.current.push("chat"),_e(!0,"Loading search results..."),e.emit("chat:message",{sessionId:t,message:q,currentSlots:ns(s),timezone:Bn()}))},Ee=({requireConfirmation:I=!1,refetchSearch:M=!1,queryOverride:V=""}={})=>{const q=Ut(),J=(q==null?void 0:q.getAttribute("data-prebook-done"))==="true";if(I&&J){Ae({type:"back_to_results",refetchSearch:M,query:V});return}Ie({refetchSearch:M,queryOverride:V})},De=I=>{L.current=Gn(I),i(M=>[...M.map(q=>(q==null?void 0:q.type)==="traveler_details_form"?{...q,readOnly:!0}:q),{type:"traveler_details_form",text:"Please fill traveler details.",prebookPayload:I,readOnly:!1,options:[],hiddenFromChat:x}])},ke=(I,M={})=>{const V=String(I||"").trim();V&&i(q=>[...q,{type:"user_message",text:V,hiddenFromChat:!!M.hiddenFromChat}])},Ne=(I,M={})=>{const V=String(I||"").trim();V&&(S(V),i(q=>{const J=q[q.length-1],ee=!!M.hiddenFromChat;return(J==null?void 0:J.type)==="assistant_message"&&String((J==null?void 0:J.text)||"").trim()===V&&!!(J!=null&&J.hiddenFromChat)===ee?q:[...q,{type:"assistant_message",text:V,hiddenFromChat:ee}]}))},ve=I=>{ke(I,{hiddenFromChat:!0})},F=I=>{Ne(I,{hiddenFromChat:!0})},ue=(I=null)=>{var V;const M=(I==null?void 0:I.confirmation)||((V=I==null?void 0:I.data)==null?void 0:V.payload)||(I==null?void 0:I.data)||null;if(M&&typeof M=="object"){const q="Booking confirmed successfully. Please check the confirmation details.";S(q),i(J=>[...J,{type:"payment_confirmation",text:q,confirmation:M}]);return}Ne("Payment is being processed. Confirmation will be shown automatically once backend pushes the details.")},_e=(I,M="")=>{window.dispatchEvent(new CustomEvent("chat:ui-loading",{detail:{isLoading:I,text:String(M||"").trim()}}))},Fe=I=>{const M=(I==null?void 0:I.fareAvailabilityPayload)||{};if(!(String((M==null?void 0:M.ukey)||"").trim()&&Array.isArray(M==null?void 0:M.rmkey)&&M.rmkey.length>0&&String((M==null?void 0:M.styp)||"").trim())){Ne("Selected flight details are incomplete.");return}_e(!0,"Loading availability...");const q=()=>{var ee;try{const le=localStorage.getItem("user");if(le){const xe=JSON.parse(le),Ke=String((xe==null?void 0:xe.uid)||((ee=xe==null?void 0:xe.user)==null?void 0:ee.uid)||"").trim();if(Ke)return Ke}}catch{}const J=String(process.env.REACT_APP_FREQUENT_TRAVELLER_UID||process.env.REACT_APP_USER_UID||"").trim();return J||"1058"};c(!0),a("Checking latest fare and preparing booking options..."),e.emit("chat:book",{sessionId:localStorage.getItem("travel_session_id")||t||"",action:"fare_available",uid:q(),...M},J=>{var xe;if(_e(!1),!(J!=null&&J.ok)){Ne(Jo(J==null?void 0:J.error,"Failed to fetch fare availability."));return}const ee=J==null?void 0:J.data;if(!ee||typeof ee!="object"){Ne("Selected flight is not available right now.");return}const le=ci(ee,{});le.frequentTravellers=Array.isArray(J==null?void 0:J.frequentTravellers)?J.frequentTravellers:[],le.initialPaymentSummary={gateways:Array.isArray((xe=J==null?void 0:J.payment)==null?void 0:xe.gateways)?J.payment.gateways:[],charges:[],customerPg:[]},De(le)})},He=()=>{i(I=>{var J;const M=(J=[...I].map((ee,le)=>({item:ee,index:le})).reverse().find(({item:ee})=>(ee==null?void 0:ee.type)==="traveler_details_form"))==null?void 0:J.item;if(!M)return I;const V=L.current,q=I.map(ee=>(ee==null?void 0:ee.type)==="traveler_details_form"?{...ee,readOnly:!0}:ee);return q.push({...M,readOnly:!1,prebookPayload:V&&typeof V=="object"?Gn(V):M.prebookPayload}),q})};T.useEffect(()=>{if(!s.length)return;const I=s[s.length-1];if((I==null?void 0:I.type)==="traveler_details_form")return;const M=Ut();if(!M||!(M.getAttribute("data-prebook-done")==="true"))return;const q=window.setTimeout(()=>{He()},0);return()=>{window.clearTimeout(q)}},[s]);const Xe=I=>{if(!I.trim()||Mn(I))return!1;const M=[...s].reverse().findIndex(me=>me.type==="flight_results");if(M===-1)return!1;const V=s.length-1-M,q=s[V],J=I.toLowerCase(),ee=Yn(q),le=Cn(I,ee),xe=Ys(le),Ke=xe&&/\b(book|reserve|buy|purchase|confirm booking|proceed to book)\b/.test(J);if((()=>{const me=String(J||"").trim();if(!me||Ke)return!1;const Ce=/\b(what|which|who|can you|could you|please tell)\b/.test(me),ut=/\b(highest|lowest|costliest|most expensive|cheapest|fastest|slowest)\b/.test(me),dt=/\b(first|second|third|fourth|fifth|\d+(st|nd|rd|th))\b/.test(me),ft=/\b(after|before)\s+\d{1,2}(?::\d{2})?\s*(am|pm)?\b/.test(me),We=/\b(and|then|but|except|without)\b/.test(me),qe=/\b(flight after|flight before|best flight|top flight|recommended)\b/.test(me);return!!(Ce||ut||dt||ft||We||qe)})()||/\bfrom\s+[a-z][a-z .'-]+\s+to\s+[a-z][a-z .'-]+\b/i.test(J)||/\b[a-z]{3}\s*(?:to|-)\s*[a-z]{3}\b/i.test(I)||/\b\d{1,2}[-\/]\d{1,2}[-\/]\d{2,4}\b/.test(J)||/\b(on|departure|departing|returning)\s+\d{1,2}(?:st|nd|rd|th)?\b/i.test(J)||/\b(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec|tomorrow|today|next week)\b/i.test(J)||!xe)return!1;const vt=Gs(q),jt=le.clearAll?null:{...(q==null?void 0:q.filters)||{},...le},ae=Io(vt,jt);return Array.isArray(vt)&&vt.length>0&&jt&&!jt.clearAll&&ae.length===0?(i(me=>{var ft;const Ce=[...me],ut=(ft=[...Ce].map((We,qe)=>({item:We,index:qe})).reverse().find(({item:We})=>(We==null?void 0:We.type)==="flight_results"))==null?void 0:ft.index;if(!Number.isInteger(ut))return me;const dt=Ce[ut];return Ce.push({type:"user_message",text:I}),Ce.push({type:"assistant_message",text:"No flights matched your filters. Here are all results again — please pick another flight or adjust your criteria."}),Ce[ut]={...dt,filters:null},Ce}),!0):(i(me=>{var We;const Ce=[...me],ut=(We=[...Ce].map((qe,Kt)=>({item:qe,index:Kt})).reverse().find(({item:qe})=>(qe==null?void 0:qe.type)==="flight_results"))==null?void 0:We.index;if(!Number.isInteger(ut))return me;const dt=Ce[ut],ft=le.clearAll?null:{...(dt==null?void 0:dt.filters)||{},...le};return Ce.push({type:"user_message",text:I}),Ce[ut]={...dt,filters:ft},Ce}),Eo(I)&&Fo(),!0)},Me=(I,M={})=>{if(f)return;const V=String(I||"").trim();if(!V)return;pt(t);const q=ns(s),J=Mn(V),ee=re!==h&&se.some(ae=>String((ae==null?void 0:ae.value)||"").startsWith("CONFIRM_PROCEED_BOOK:"));if(D||ee){const ae=Hn(V),fe=ae==="yes";if(fe||ae==="no"){const me=M.source==="voice"?"voice":"chat";M.skipEcho||i(Ce=>[...Ce,{type:"user_message",text:V,hiddenFromChat:me==="voice"}]),re&&A(re),$(!1),fe?window.dispatchEvent(new CustomEvent("traveler-form:proceed-book")):Ne("Okay, staying on traveler details form.");return}}const le=re!==h&&se.some(ae=>String((ae==null?void 0:ae.value)||"").startsWith("CONFIRM_PAYMENT:"));if(O||le){const ae=Hn(V),fe=ae==="yes";if(fe||ae==="no"){const me=M.source==="voice"?"voice":"chat";M.skipEcho||i(Ce=>[...Ce,{type:"user_message",text:V,hiddenFromChat:me==="voice"}]),re&&A(re),j(!1),b.current=!1,fe?window.dispatchEvent(new CustomEvent("traveler-form:execute-pay-now")):Ne("Okay, payment was not started.");return}}if(H){const ae=Hn(V),fe=ae==="yes";if(fe||ae==="no"){const me=M.source==="voice"?"voice":"chat";M.skipEcho||i(Ce=>[...Ce,{type:"user_message",text:V,hiddenFromChat:me==="voice"}]),re&&A(re),P(null),fe?Fe(H):Ie({refetchSearch:!0,suppressUserEcho:!0});return}}re&&A(re);const xe=!!Ut();if(xe&&$o(V)){const ae=M.source==="voice"?"voice":"chat";if(Un(V,Oe=>{M.skipEcho||i(me=>[...me,{type:"user_message",text:Oe,hiddenFromChat:ae==="voice"}])})){window.setTimeout(()=>{He()},0);return}}const Ke=[...s].reverse().find(ae=>(ae==null?void 0:ae.type)==="flight_results"),nn=Cn(V,Yn(Ke)),_t=us({text:V,parsedFilters:nn,hasVisibleResults:On(),isSlotUpdateFollowup:J});if(_t==="selection"&&!xe){const ae=M.source==="voice"?"voice":"chat",fe=me=>{i(Ce=>[...Ce,{type:"user_message",text:me,hiddenFromChat:ae==="voice"}])};if(zn(V,fe))return;const Oe=ds(V);fe(V),Ne(`I could not find a selectable flight card in the current results. ${Oe}`,{hiddenFromChat:ae==="voice"});return}if(xe&&_t==="search"){const ae=Ut();if((ae==null?void 0:ae.getAttribute("data-prebook-done"))==="true"){Ae({type:"fresh_search",refetchSearch:!0,query:V});return}l(V);const Oe=M.source==="voice"?"voice":"chat";M.skipEcho||i(me=>[...me,{type:"user_message",text:V,hiddenFromChat:Oe==="voice"}]),oe.current.push(Oe),e.emit("chat:message",{sessionId:t,message:V,currentSlots:q,timezone:Bn()});return}if(!J&&M.source!=="voice"){const ae=me=>{i(Ce=>[...Ce,{type:"user_message",text:me}])};if(ms(V,ae))return;const fe=Mo(V,ae);if((fe==null?void 0:fe.status)==="NO_FILTER_DATA"){ae(V),Ne(fe.message);return}if((fe==null?void 0:fe.status)==="HANDLED"||mn(V,ae))return;if(Lo(V)&&xe){Ee({requireConfirmation:!0,refetchSearch:!0});return}if(Un(V,ae)){if(bs(V)||gs(V))return;window.setTimeout(()=>{He()},0);return}if((_t==="filter"||_t==="sort")&&Xe(V)||_t==="selection"&&zn(V,ae))return;if(_t==="selection"&&On()){const me=ds(V);ae(V),Ne(`I could not find a selectable flight card in the current results. ${me}`);return}}_t==="search"&&l(V);const vt=M.source==="voice"?"voice":"chat";M.skipEcho||i(ae=>[...ae,{type:"user_message",text:V,hiddenFromChat:vt==="voice"}]),c(!0),a("Loading search results..."),oe.current.push(vt),console.log("Search API is calling...");const jt=Pn();e.emit("chat:message",{sessionId:t,message:V,userContext:jt,currentSlots:q,timezone:Bn()})},E=I=>{const M=String(I||"").trim();if(!M||f)return;const V=!!Ut(),q=[...s].reverse().find(le=>(le==null?void 0:le.type)==="flight_results"),J=Cn(M,Yn(q)),ee=us({text:M,parsedFilters:J,hasVisibleResults:On(),isSlotUpdateFollowup:Mn(M)});if(V&&ee==="search"){Me(M,{source:"voice"}),pt(t);return}if(Un(M,ve)){if(bs(M)||gs(M)){pt(t);return}window.setTimeout(()=>{He()},0),pt(t);return}if((ee==="filter"||ee==="sort")&&Xe(M)){pt(t);return}if(ms(M,ve)){pt(t);return}if(ee==="selection"&&zn(M,ve)){pt(t);return}Me(M,{source:"voice"})},Ve=()=>{const I=String(t||"").trim();I&&(_o(I),wo(I)),c(!1),a(""),i([]),N(""),A(""),j(!1),b.current=!1,n(""),y(!1),S(""),w(!1),te.current=!1,Y.current="",W.current=!0,g(V=>V+1),localStorage.removeItem("travel_session_id"),bo();const M=Pn();e.emit("chat:join",{sessionId:null,user:M,userContext:M})},Be=I=>{if(f)return;pt(t);const M=String((I==null?void 0:I.value)??(I==null?void 0:I.label)??"").trim();if(M){if(M.startsWith("APPLY_SAVED_TRAVELLER:")){const V=parseInt(M.split(":")[1],10);window.dispatchEvent(new CustomEvent("traveler-form:apply-saved",{detail:{index:V}})),A(re);return}if(M==="CONFIRM_REDIRECT:YES"){const V=p;if(k(null),!V)return;Ie({refetchSearch:!!(V!=null&&V.refetchSearch),queryOverride:String((V==null?void 0:V.query)||"").trim(),suppressUserEcho:(V==null?void 0:V.type)==="back_to_results"}),A(re);return}if(M==="CONFIRM_REDIRECT:NO"){k(null),Ne("Stayed on the pre-booking page."),A(re);return}if(M==="CONFIRM_BOOKING:YES"){const V=H;P(null),V&&Fe(V),A(re);return}if(M==="CONFIRM_BOOKING:NO"){P(null),Ie({refetchSearch:!0,suppressUserEcho:!0}),A(re);return}if(M==="CONFIRM_PROCEED_BOOK:YES"){$(!1),window.dispatchEvent(new CustomEvent("traveler-form:proceed-book")),A(re);return}if(M==="CONFIRM_PROCEED_BOOK:NO"){$(!1),Ne("Okay, staying on traveler details form."),A(re);return}if(M==="CONFIRM_PAYMENT:YES"){j(!1),b.current=!1,window.dispatchEvent(new CustomEvent("traveler-form:execute-pay-now")),A(re);return}if(M==="CONFIRM_PAYMENT:NO"){j(!1),b.current=!1,Ne("Okay, payment was not started."),A(re);return}Me(M,{source:x?"voice":"chat"}),A(re),N("")}},Se=Go(s),ze=Vo(s),Re=Wo(s);if(x)return r.jsxs("div",{className:"voice-page",children:[r.jsx("div",{className:"voice-page__results",children:ze.length?r.jsx(Xr,{messages:ze,typing:!1,onOptionClick:Be,onAvailabilitySuccess:De,onAvailabilityReset:Ee,onTravelerGoBack:()=>Ee({requireConfirmation:!0,refetchSearch:!0}),onVoiceAssistantMessage:F,onPaymentSuccess:ue,sessionId:t,variant:"voice-page"}):r.jsxs("div",{className:"voice-page__placeholder",children:[r.jsx("p",{className:"voice-page__placeholder-title",children:"Voice search is ready"}),r.jsx("p",{className:"voice-page__placeholder-copy",children:"Search results, traveler details, or payment blocks will appear here while you continue the conversation by voice."})]})}),r.jsx(co,{assistantText:Re,disabled:f,isBackendTyping:o,onSend:E,onClose:()=>w(!1),standalonePage:!0},d)]});const he=[...s].reverse().find(I=>I.type==="traveler_details_form"&&!I.hiddenFromChat);let ie=se.filter(I=>!String((I==null?void 0:I.value)||"").startsWith("APPLY_SAVED_TRAVELLER:"));he&&v.length>0&&(ie=v),he&&(ie=ie.filter(I=>/^CONFIRM_(REDIRECT|PROCEED_BOOK|PAYMENT):/.test(String((I==null?void 0:I.value)||"")))),ie=ie.filter(I=>{const M=String((I==null?void 0:I.value)||"");return M.startsWith("CONFIRM_REDIRECT:")?!!p:M.startsWith("CONFIRM_BOOKING:")?!!H:M.startsWith("CONFIRM_PROCEED_BOOK:")?!!D:M.startsWith("CONFIRM_PAYMENT:")?!!O:!0});const ce=Number.isInteger(Z)&&Number.isInteger(B==null?void 0:B.index)&&Z>B.index,be=!!H&&ie.some(I=>String((I==null?void 0:I.value)||"").startsWith("CONFIRM_BOOKING:")),Pe=!!D&&ie.some(I=>String((I==null?void 0:I.value)||"").startsWith("CONFIRM_PROCEED_BOOK:")),Ue=!!O&&ie.some(I=>String((I==null?void 0:I.value)||"").startsWith("CONFIRM_PAYMENT:")),Qe=ie.length>0&&(!ce||be||Pe||Ue)&&re!==h?ie:[],ct=rl(s),yt=nl(B==null?void 0:B.item);return r.jsxs("div",{className:"chat-window-container",children:[r.jsxs("header",{className:"topbar",children:[r.jsx("button",{type:"button",className:"icon-btn","aria-label":"Open sidebar",children:r.jsx(vs.LuPanelLeft,{})}),r.jsx("h1",{className:"title",children:"Chat with Zoe"}),r.jsx("div",{className:"new-chat-btn-container",children:r.jsxs("button",{type:"button",onClick:Ve,className:"new-chat-btn",children:[r.jsx(gt.FiPlus,{}),r.jsx("span",{children:"New Chat"})]})})]}),r.jsxs("div",{className:"chat-window",children:[r.jsx(Xr,{messages:Se,typing:o,typingText:u,onOptionClick:Be,onAvailabilitySuccess:De,onAvailabilityReset:Ee,onTravelerGoBack:()=>Ee({requireConfirmation:!0,refetchSearch:!0}),onVoiceAssistantMessage:()=>{},onPaymentSuccess:ue,sessionId:t}),r.jsx(Qa,{onSend:Me,disabled:f,prefillMessage:m,onPrefillConsumed:()=>N(""),options:Qe,isReturnDateSelection:yt,knownOnwardDate:ct.onwardDate,knownReturnDate:ct.returnDate,onOptionClick:Be,onOpenVoiceAssistant:()=>{f||w(!0)}})]})]})}function fo(e){const t=String(e||"").trim();return!t||!/\b(?:traveller|traveler)\s*\d+/i.test(t)?!1:/\b(?:FN|LN|DOB|TYP|TL|NAT|NUM|ISSDT|EXPDT)\s*:/i.test(t)}function Mn(e){const t=String(e||"").trim(),n=t.toLowerCase();if(!n||fo(t))return!1;const s=/\b(change|chage|chnage|chang|chanage|chnge|updated?|updte|updae|updat|modify|modfy|modifiy|set|replace|repalce|replce|switch|swtich|swich|make\s+it|switch\s+to|fix|correct|corect|corrrect|reschedule|reshedule|rescheduel)\b/.test(n),i=/\b(i\s+need|i\s+want|we\s+need|we\s+want|let\s+us|let's|please|pls|plz)\b/.test(n),o=/\b(?:destination|destionation|destiantion|destinaton|destianton|destimation|destinatoin)\b/.test(n)||/\b(?:arrival|arival|arrval|arriavl|arrive|arive|arriv|arrivee)(?:\s+city)?\b/.test(n)||/\b(?:source|souce|origin|orgin|origen)\b/.test(n)||/\b(?:departure|departuer|deprature|depature|departture|deperture|depart|deprt|depatr)\b/.test(n)||/\b(?:departing|depating|departng)\b/.test(n)||/\b(?:route|rotue|airport|airprot|from)\b/.test(n)||/\b(?:flying|fliyng|fling|returning|retruning|returnig|inbound|outbound)\b/.test(n)||/\b(?:return\s+date|retrun\s+date|departure\s+date|departue\s+date|travel\s+date|traval\s+date|date)\b/.test(n),c=/\b(?:my\s+)?(?:destination|destionation|destiantion|destinaton|destianton|destimation)\s+to\s+[a-z]/i.test(t),u=/\b(?:my\s+)?(?:source|souce|origin|orgin|origen)\s+to\s+[a-z]/i.test(t),a=/\b(?:arrival|arival|arrval|arrive|arive|landing|landng)\s+in\s+[a-z]/i.test(t),f=/\b(?:fly|fliy|flying|fliyng|fling|going|giong|heading|headng)\s+to\s+(?!the\b|a\b|an\b)([a-z][a-z'`\s-]{2,40})\b/i.test(t),y=/\bfrom\s+[a-z0-9][a-z0-9\s.'-]{1,40}\s+to\s+[a-z0-9]/i.test(t)||/\b[a-z]{3}\s*(?:to|-|\/)\s*[a-z]{3}\b/i.test(t),d=/\b(?:adult|adults|aduls|adt|passenger|passangers|pasenger|traveller|travellers|travler|travllers|traveler|travelers|pax|people|persons|guests|child|children|chilren|chidren|chd|kid|kids|infant|infanat|infent|infants|inf|toddler|baby|babies|solo|couple|famliy|family\s+of)\b/.test(n),g=/\b(?:economy|econom|econmy|econommy|premium\s+economy|business|buisness|busines|busness|first(\s+class)?|frist(\s+class)?|frst(\s+class)?|coach|cabin|seat\s+class|upgrade|upgarde|downgrade|downgrad)\b/.test(n),S=/\b(?:one[\s-]?way|oneway|round[\s-]?trip|roundtrip|roud\s+trip|retrun\s+trip|return\s+trip|return\s+flight|reutrn\s+flight|with\s+return|add\s+return|remove\s+return)\b/.test(n),x=/\b(?:return\s+date|retrun\s+date|departure\s+date|departue\s+date|travel\s+date|traval\s+date|depart\s+on|deprt\s+on|leave\s+on|fly\s+on|travel\s+on|traval\s+on|coming\s+back|comming\s+back|move\s+(the\s+)?(trip|flight|date)|postpone|postopne|bump\s+to)\b/.test(n),w=/\b(?:today|tomorrow|tomorow|tommorrow|tommorow|tonight|next\s+week|next\s+weekend|this\s+weekend|next\s+month)\b/.test(n)||/\b(?:monday|tuesday|wednesday|wensday|wednsday|thursday|thrusday|thusday|friday|fridy|saturday|satuday|sunday|sundey)\b/.test(n)||/\b(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)[a-z]*\s+\d{1,2}\b/i.test(t)||/\b\d{1,2}[-\/]\d{1,2}[-\/]\d{2,4}\b/.test(t),m=/\b(?:not\s+that|i\s+meant|actually|actully|acutally|wrong\s+(city|date|airport|route)|instead\s+of|insted\s+of|correction|corrction)\b/.test(n);return/^\s*(sort|order|rank|show|list)\b.*\b(price|fare|cost|duration|time|cheapest|cheepest|chepest|expensive|expensiv|fastest|fastes)\b/i.test(n)&&!o&&!y?!1:c||u||a||f||d?!0:g||S?s||i||m:!!(x||w&&s||m&&(o||y||w)||y&&(s||m||i)||s&&(o||d||w)||i&&(o||y||f))}function ns(e=[]){var o;const t=[...Array.isArray(e)?e:[]].reverse().find(c=>(c==null?void 0:c.type)==="flight_results"),n=((o=t==null?void 0:t.data)==null?void 0:o.params)||{},s={dep:(n==null?void 0:n.dep)||null,arr:(n==null?void 0:n.arr)||null,dd:(n==null?void 0:n.dd)||null,ad:(n==null?void 0:n.ad)||null,adt:(n==null?void 0:n.adt)||null,chd:(n==null?void 0:n.chd)||null,inf:(n==null?void 0:n.inf)||null,tt:(n==null?void 0:n.tt)||null,cl:(n==null?void 0:n.cl)||null};return Object.values(s).some(c=>c!=null&&String(c).trim()!=="")?s:null}function Bn(){try{return Intl.DateTimeFormat().resolvedOptions().timeZone||"UTC"}catch{return"UTC"}}function mo(){const e=new URLSearchParams(window.location.search||"");return String(e.get("sessionId")||e.get("sessionid")||e.get("sid")||"").trim()||""}function Pn(){const e=ho();Tt((e==null?void 0:e.uid)??(e==null?void 0:e.id)),Tt((e==null?void 0:e.agid)??(e==null?void 0:e.agencyId));const t=Tt((e==null?void 0:e.grpid)??(e==null?void 0:e.groupId)),n=Tt((e==null?void 0:e.dsgid)??(e==null?void 0:e.designationId)),s=Tt((e==null?void 0:e.utyp)??(e==null?void 0:e.userType)),i=Tt((e==null?void 0:e.agtyp)??(e==null?void 0:e.agencyType)),o=ss((e==null?void 0:e.bt)??(e==null?void 0:e.businessTrip)),c=ss((e==null?void 0:e.pt)??(e==null?void 0:e.personalTrip)),u=Tt((e==null?void 0:e.trmd)??(e==null?void 0:e.tripMode)),a=String(i||"").trim().toLowerCase().includes("corporate")||String(i||"").trim().toLowerCase()==="b2b"?"B2B":"B2C";return Tt((e==null?void 0:e.cha)??(e==null?void 0:e.chnl)??a),{uid:194,agid:156,grpid:t,dsgid:n,utyp:s,agtyp:"Normal Flow",bt:o,pt:c,trmd:u,cha:"B2B"}}function ho(){try{const e=ri.getItem("user"),t=rs(e);if(t)return t}catch{}try{const e=localStorage.getItem("user"),t=rs(e);if(t)return t}catch{}return{}}function rs(e){if(e==null||e==="")return null;let t=e;if(typeof e=="string")try{t=JSON.parse(e)}catch{return null}return!t||typeof t!="object"||Array.isArray(t)?null:t.user&&typeof t.user=="object"?t.user:t.payload&&typeof t.payload=="object"?t.payload:t}function Tt(e){return e==null?void 0:String(e).trim()?e:void 0}function ss(e){if(e===!0||e===!1)return e;const t=String(e||"").trim().toLowerCase();if(t){if(["true","1","yes","y"].includes(t))return!0;if(["false","0","no","n"].includes(t))return!1}}function po(e){var s;if(!((s=window==null?void 0:window.history)!=null&&s.replaceState))return;const t=String(e||"").trim();if(!t)return;const n=new URL(window.location.href);n.searchParams.set("sid",t),window.history.replaceState({},document.title,`${n.pathname}${n.search}${n.hash}`)}function bo(){var t;if(!((t=window==null?void 0:window.history)!=null&&t.replaceState))return;const e=new URL(window.location.href);["sid","sessionId","sessionid"].forEach(n=>e.searchParams.delete(n)),window.history.replaceState({},document.title,`${e.pathname}${e.search}${e.hash}`)}function is(e,t){for(const n of t){const s=String(e.get(n)||"").trim();if(s)return s}return""}function go(){const e=new URLSearchParams(window.location.search||""),t=is(e,["bookingId","bookingid","booking_id","bkid","order_booking_id","orderId","order_id"]),n=is(e,["sessionId","sessionid","sid"]);return{bookingId:t,sessionId:n}}function yo(){var t;if(!((t=window==null?void 0:window.history)!=null&&t.replaceState))return;const e=new URL(window.location.href);["bookingId","bookingid","booking_id","bkid","order_booking_id","orderId","order_id","sessionId","sessionid","sid"].forEach(n=>e.searchParams.delete(n)),window.history.replaceState({},document.title,`${e.pathname}${e.search}${e.hash}`)}function or(e){return`travel_chat_messages_${String(e||"").trim()}`}function as(e){const t=or(e);if(!t||t.endsWith("_"))return[];try{const n=localStorage.getItem(t);if(!n)return[];const s=JSON.parse(n);return Array.isArray(s)?s:[]}catch{return[]}}function No(e,t){const n=or(e);if(!(!n||n.endsWith("_")))try{localStorage.setItem(n,JSON.stringify(Array.isArray(t)?t:[]))}catch{}}function _o(e){const t=or(e);!t||t.endsWith("_")||localStorage.removeItem(t)}function lr(e){return`travel_session_last_activity_${String(e||"").trim()}`}function pt(e){const t=String(e||"").trim();t&&localStorage.setItem(lr(t),String(Date.now()))}function xo(e){const t=String(e||"").trim();if(!t)return NaN;const n=localStorage.getItem(lr(t)),s=Number(n);return!Number.isFinite(s)||s<=0?NaN:s}function wo(e){const t=String(e||"").trim();t&&localStorage.removeItem(lr(t))}function os(e=[]){const t=[...e].reverse().find(n=>n&&n.type!=="user_message"&&typeof n.text=="string"&&n.text.trim());return String((t==null?void 0:t.text)||"").trim()}function zn(e,t=()=>{}){if(ko(e,t))return!0;const n=o=>{if(!o)return!1;const c=Hs({...o,rawText:e});if(c)return t(e),c.click(),!0;const u=yn(o.intent,o.leg);if(!u.length)return!1;const a=Math.max(0,Math.min(o.index,u.length-1)),f=u[a];return f?(t(e),f.click(),!0):!1},s=er(e);if(n(s))return!0;const i=String(e||"").replace(/\bselect\b/i,"book");if(i!==e){const o=er(i);if(n(o))return!0}return!1}function ls(e){const t=String(e||"").trim().toLowerCase();return t==="onward"?0:t==="round-trip"||t==="roundtrip"?1:t==="return"?2:9}function Os(e){const t=String(e||"").toLowerCase(),n=/\b(return|inbound|back|homeward|reverse\s+leg|second\s+leg|return\s+leg|returning\s+leg|flight\s+back)\b/.test(t),s=/\b(onward|outbound|outward|first\s+leg|departure\s+leg|going\s+leg|outbound\s+leg)\b/.test(t);return n&&!s?"return":s&&!n?"onward":""}function Hs(e={}){if(!e||e.intent==="book-split-flight"||!Number.isFinite(e.index)||e.index<0)return null;const t=e.index===Number.MAX_SAFE_INTEGER,n=t?null:Number(e.index+1),s=ur();if(!s)return null;const i=String(e.rawText||"").toLowerCase(),o=Array.from(s.querySelectorAll('[data-ui-flight-card="true"]')).filter(h=>Ye(h)).map(h=>{var A,v;return{card:h,position:Number(((A=h==null?void 0:h.dataset)==null?void 0:A.flightPosition)||NaN),legRaw:String(((v=h==null?void 0:h.dataset)==null?void 0:v.flightLeg)||"").trim()}}).filter(h=>Number.isFinite(h.position)&&h.position>0),c=new Set(o.map(h=>h.legRaw.toLowerCase()).filter(Boolean));let u=Je(e.leg);u&&!c.has(u)&&(u="");const a=u||Je(Os(i)),f=u?`[data-ui-flight-card="true"][data-flight-leg="${u}"]`:'[data-ui-flight-card="true"]',y=Array.from(s.querySelectorAll(f)).filter(h=>Ye(h)).map(h=>{var A,v;return{card:h,position:Number(((A=h==null?void 0:h.dataset)==null?void 0:A.flightPosition)||NaN),legRaw:String(((v=h==null?void 0:h.dataset)==null?void 0:v.flightLeg)||"").trim()}}).filter(h=>Number.isFinite(h.position)&&h.position>0);if(!y.length)return null;const d=vo(e.rawText||""),g=d?y.filter(h=>{var A,v;return Js(Et(((v=(A=h.card)==null?void 0:A.dataset)==null?void 0:v.flightAirline)||""),Et(d))}):y;if(!g.length)return null;const S=[...g].sort((h,A)=>{const v=ls(h.legRaw)-ls(A.legRaw);return v!==0?v:h.position-A.position}),x=h=>{const A=e.intent==="select-flight"?['[data-voice-action="select-flight"]','[data-ui-action="select-flight"]','[data-voice-action="book-flight"]','[data-ui-action="book-flight"]']:['[data-voice-action="book-flight"]','[data-ui-action="book-flight"]','[data-voice-action="select-flight"]','[data-ui-action="select-flight"]'];for(const v of A){const U=h.querySelector(v);if(!(!U||U.disabled||!Ye(U)))return U}return null},w=Ko(e.rawText||"");if(w){const h=S.filter(A=>{var v,U;return en(((U=(v=A.card)==null?void 0:v.dataset)==null?void 0:U.flightNumber)||"")===w});if(h.length===1)return x(h[0].card);if(h.length>1){if(a){const v=h.find(U=>{var _,l;return Je((l=(_=U.card)==null?void 0:_.dataset)==null?void 0:l.flightLeg)===a});if(v!=null&&v.card)return x(v.card)}const A=h.find(v=>{var U,_;return Je((_=(U=v.card)==null?void 0:U.dataset)==null?void 0:_.flightLeg)==="onward"});return A!=null&&A.card?x(A.card):x(h[0].card)}}const N=d?t?S[S.length-1]:S[Math.min(e.index,S.length-1)]:t?S[S.length-1]:(()=>{if(t)return S[S.length-1]||null;const h=S.filter(A=>A.position===n);if(h.length===1)return h[0];if(h.length>1){if(a){const v=h.find(U=>{var _,l;return Je((l=(_=U.card)==null?void 0:_.dataset)==null?void 0:l.flightLeg)===a});if(v)return v}return h.find(v=>{var U,_;return Je((_=(U=v.card)==null?void 0:U.dataset)==null?void 0:_.flightLeg)==="onward"})||h[0]}return null})();return N!=null&&N.card?x(N.card):null}function vo(e){const t=Et(e);if(!t)return"";const n=t.split(" ").filter(Boolean);if(!n.length)return"";const s=new Set(["book","booking","select","choose","pick","reserve","take","flight","flights","option","options","first","second","third","fourth","fifth","last","final","top","best","recommended","suggestion","cheapest","lowest","price","fare","the","a","an","please","pls","plz"]);return n.filter(o=>!(s.has(o)||/^\d+$/.test(o)||/^\d+(st|nd|rd|th)$/.test(o))).join(" ").trim()}function cr(e){const t=String(e||"").trim().toLowerCase();return t?!!(jn(e)||/\bbook\s+(a|an)\s+flights?\b/.test(t)||/\bbook\s+(a\s+)?flights?\s+(from|between)\b/.test(t)||/\b(get|find|search|show)\s+(a\s+)?flights?\s+(from|for|between)\b/.test(t)||/\b(book|get|find|search|show)\b.*\bflight\b.*\bto\b/.test(t)||/\bto\s+[a-z][a-z .'-]+\s+from\s+[a-z][a-z .'-]+\b/.test(t)||/\b[a-z]{3}\s+to\s+[a-z]{3}\b/.test(t)&&!/\b(1st|2nd|3rd|4th|5th|first\s+flight|second\s+flight|third\s+flight|fourth\s+flight|flight\s+one|flight\s+1|option\s*\.?\s*\d)\b/.test(t)||/\bfrom\s+[a-z0-9][a-z0-9 .'-]{0,40}\s+to\s+[a-z0-9]/.test(t)&&!/\b(1st|2nd|3rd|4th|5th|first\s+flight|second\s+flight|third\s+flight)\b/.test(t)||/\b[a-z][a-z .'-]{1,30}\s+to\s+[a-z][a-z .'-]{1,30}\b/.test(t)&&!/\b(1st|2nd|3rd|4th|5th|first|second|third|fourth|option\s*\.?\s*\d)\b/.test(t)):!1}function Ys(e={}){return!e||typeof e!="object"?!1:!!(e.clearAll||e.sortBy||Array.isArray(e.stops)&&e.stops.length>0||Array.isArray(e.rtStops)&&e.rtStops.length>0||e.price||Array.isArray(e.airlines)&&e.airlines.length>0||Array.isArray(e.rtAirlines)&&e.rtAirlines.length>0||Array.isArray(e.depTimes)&&e.depTimes.length>0||Array.isArray(e.arrTimes)&&e.arrTimes.length>0||Array.isArray(e.rDepTimes)&&e.rDepTimes.length>0||Array.isArray(e.rArrTimes)&&e.rArrTimes.length>0||Array.isArray(e.layover)&&e.layover.length>0||Array.isArray(e.rLayover)&&e.rLayover.length>0||e.layoverDuration||e.rLayoverDuration||e.refundable!==null||e.maxDuration)}function So(e){const t=String(e||"").trim().toLowerCase();return t?/\b(\d+|1st|2nd|3rd|4th|5th|first|second|third|fourth|fifth|option|this|that|it)\b/.test(t):!1}function jo(e){const t=String(e||"").trim().toLowerCase();return t?!!(/\b(search|find|show|get|look|need|want)\b.{0,30}\b(flight|flights|ticket|tickets)\b/.test(t)||/\b(book)\s+(a|an)\s+flight\b/.test(t)||/\bfrom\b.{0,40}\bto\b/.test(t)||/\b[a-z]{3}\s*(?:to|-)\s*[a-z]{3}\b/.test(t)):!1}function cs(e){const t=String(e||"").trim().toLowerCase();return t?!!(/\b(cheapest|lowest|low fare|low price|expensive|highest|costliest)\b/.test(t)||/\b(fastest|quickest|shortest|slowest|longest)\b/.test(t)||/\b(earliest|latest)\b.{0,20}\b(departure|arrival)\b/.test(t)):!1}function Co(e){const t=String(e||"").trim().toLowerCase();return t?!!(/\b(non[\s-]?stop|one[\s-]?stop|two[\s-]?stop|direct)\b/.test(t)||/\b(under|below|less than|within|max|minimum|between)\b.{0,20}\b(\d+|k|rs|inr)\b/.test(t)||/\b(refundable|non[\s-]?refundable)\b/.test(t)||/\b(morning|afternoon|evening|night|before|after)\b/.test(t)||/\b(airline|airlines|indigo|air india|vistara|spicejet|akasa)\b/.test(t)):!1}function us({text:e,parsedFilters:t,hasVisibleResults:n,isSlotUpdateFollowup:s}){if(s)return"backend";const i=jn(e)||cr(e)||jo(e),o=Ys(t)||cs(e)||Co(e),c=!!(t!=null&&t.sortBy)||cs(e),u=So(e),a=n&&(Ao(e)||/\b(book|select|choose|pick|reserve|take)\b/i.test(String(e||""))&&u);return i?"search":o&&!u?c?"sort":"filter":a?"selection":o?c?"sort":"filter":"backend"}function Ao(e){const t=String(e||"").trim().toLowerCase();return!t||cr(e)?!1:/\b(book|select|choose|pick|reserve|take)\b/.test(t)&&/\b(\d+|1st|2nd|3rd|4th|first|second|third|fourth|flight|option)\b/.test(t)}function ds(e){var g,S,x;const t=er(e);if(!t)return"[debug: command_not_parsed]";const n=Number.isFinite(t.index)&&t.index!==Number.MAX_SAFE_INTEGER?String(t.index+1):"n/a",s=Je(t.leg),o=Array.from(document.querySelectorAll(".message-list__bubble--flight-results")).filter(w=>Ye(w)).reverse()[0]||null,c=o?Array.from(o.querySelectorAll('[data-ui-flight-card="true"]')).map(w=>{var h,A;const m=String(((h=w==null?void 0:w.dataset)==null?void 0:h.flightPosition)||"").trim(),N=Je(((A=w==null?void 0:w.dataset)==null?void 0:A.flightLeg)||"");return N?`${m}:${N}`:m}):[],u=Hs(t),a=(g=u==null?void 0:u.closest)==null?void 0:g.call(u,'[data-ui-flight-card="true"]'),f=String(((S=a==null?void 0:a.dataset)==null?void 0:S.flightPosition)||"").trim(),y=Je(((x=a==null?void 0:a.dataset)==null?void 0:x.flightLeg)||""),d=f?`${f}${y?`:${y}`:""}`:"none";return`[debug: text="${String(e||"").trim()}" intent="${t.intent}" index=${t.index} desired=${n}${s?` leg=${s}`:""} available=[${c.join(", ")}] resolved=${d}]`}function ko(e,t=()=>{}){const n=To(e);if(!n)return!1;const s=n.onwardIndex+1,i=n.returnIndex+1,o=fs("onward",s)||yn("select-flight","onward")[n.onwardIndex]||null;if(!o||o.disabled)return!1;t(e),o.click();const c=ps(o);return window.setTimeout(()=>{const u=fs("return",i)||null;if(u&&!u.disabled){u.click();return}const a=yn("select-flight","return");if(!a.length)return;const f=c==null?a:a.filter(S=>ps(S)===c),y=f.length?f:a;if(n.returnIndex>=y.length)return;const d=n.returnIndex,g=y[d];g&&!g.disabled&&g.click()},90),!0}function fs(e,t){const n=ur();if(!n)return null;const s=Je(e),i=String(Number(t)||0);if(!s||!i||i==="0")return null;const o=`[data-ui-flight-card="true"][data-flight-leg="${s}"][data-flight-position="${i}"] [data-voice-action="select-flight"], [data-ui-flight-card="true"][data-flight-leg="${s}"][data-flight-position="${i}"] [data-ui-action="select-flight"]`,c=n.querySelector(o);return!c||c.disabled||!Ye(c)?null:c}function ms(e,t=()=>{}){const n=String(e||"").trim().toLowerCase();if(!n||!(/\b(best suggestion|recommended)\b/.test(n)&&/\b(book|booking|continue|select)\b/.test(n)))return!1;const o=Array.from(document.querySelectorAll('[data-voice-action="book-flight"][data-recommended="true"]')).filter(c=>!c.disabled&&Ye(c))[0];return o?(t(e),o.click(),!0):!1}function Un(e,t=()=>{}){if(!Ut())return!1;let s=!1;const i=new CustomEvent("traveler-form:voice-input",{detail:{text:e,appendUserMessage:t,markHandled:()=>{s=!0}}});return window.dispatchEvent(i),s}function Ut(){const e=Array.from(document.querySelectorAll('[data-voice-traveler-form="active"]'));return e.length?e[e.length-1]:document.querySelector(".traveler-form")}function er(e){const t=String(e||"").trim().toLowerCase();if(!t||cr(e))return null;const n=t.replace(/\bselect\b/g,"book");if(/\b(book now|book selected|continue booking|confirm booking|proceed to book|proceed booking)\b/.test(t))return{intent:"book-split-flight",index:0,leg:null};const s=/\b(book|choose|pick|reserve|take)\b/.test(n),i=/\b(flight|option|one|1st|2nd|3rd|4th|first|second|third|fourth|it|this|that)\b/.test(t),o=/\b\d+\b/.test(t);if(!s||!i&&!o)return null;let c=Vs(t);if(!c){const a=Os(t);a&&(c=a)}const u=c?Ks(t,c==="onward"?"(?:onward|outbound|outward|departure)":"(?:return|inbound|back|homeward)")??Qt(t):Qt(t);return c?{intent:"select-flight",index:u,leg:c}:{intent:"book-or-select-flight",index:u,leg:c}}function To(e){const t=String(e||"").trim().toLowerCase();if(!t||!/\b(select|choose|pick|take|book)\b/.test(t))return null;const s=hs(t,"(?:onward|outbound|outward|departure)"),i=hs(t,"(?:return|inbound|back|homeward)");return s===null||i===null?null:{onwardIndex:s,returnIndex:i}}function hs(e,t){var i,o,c;const n=Array.from(e.matchAll(/\b(onward|outbound|outward|departure|return|inbound|back|homeward)\b/gi));if(!n.length)return null;const s=new RegExp(`^${t}$`,"i");for(let u=0;u<n.length;u+=1){const a=String(((i=n[u])==null?void 0:i[1])||"");if(!s.test(a))continue;const f=Number(((o=n[u])==null?void 0:o.index)||0),y=u+1<n.length?Number(((c=n[u+1])==null?void 0:c.index)||e.length):e.length,d=e.slice(f,y),g=Qt(d);if(g!==0||/\b(first|1st|1)\b/.test(d))return g}return Ks(e,t)}function Ks(e,t){const n="(?:\\d+|1st|2nd|3rd|4th|5th|first|second|third|fourth|fifth|best|recommended|last)",s=e.match(new RegExp(`\\b${t}\\b[^.\\n]{0,80}?\\b(${n})\\b`,"i"));if(s!=null&&s[1])return Qt(String(s[1]).toLowerCase());const i=e.match(new RegExp(`\\b(${n})\\b[^.\\n]{0,40}?\\b${t}\\b`,"i"));return i!=null&&i[1]?Qt(String(i[1]).toLowerCase()):null}function ps(e){var i,o;const t=(i=e==null?void 0:e.closest)==null?void 0:i.call(e,'[data-ui-flight-card="true"]');if(!t)return null;const n=String(((o=t==null?void 0:t.dataset)==null?void 0:o.flightPayloadIndex)||"").trim();if(!n)return null;const s=Number(n);return Number.isFinite(s)?s:null}function Do(e){return String(e||"").replace(/\b[a-z]{1,3}\s*-?\s*\d{2,5}\b/gi," ")}function Qt(e){const t=String(e||"").toLowerCase();if(/\b(last|final|bottom)\b/.test(t))return Number.MAX_SAFE_INTEGER;const s=[{pattern:/\b1st\b|\bfirst\b/,index:0},{pattern:/\b2nd\b|\bsecond\b/,index:1},{pattern:/\b3rd\b|\bthird\b/,index:2},{pattern:/\b4th\b|\bfourth\b/,index:3},{pattern:/\b5th\b|\bfifth\b/,index:4},{pattern:/\bbest\b|\brecommended\b/,index:0}].find(({pattern:c})=>c.test(t));if(s)return s.index;const o=Do(t).match(/\b(\d+)\b/);if(o){const c=Number(o[1]);if(Number.isFinite(c)&&c>0)return c-1}return 0}function yn(e,t=null){const n=ur();if(!n)return[];const s=f=>Array.from(n.querySelectorAll(f)).filter(y=>!y.disabled&&Ye(y)),i=f=>{const y=String(f||"").trim().toLowerCase();return y==="onward"||y==="return"?y:""},o=i(t),c=f=>o?f.filter(y=>{var d;return i((d=y==null?void 0:y.dataset)==null?void 0:d.flightLeg)===o}):f;if(e==="book-split-flight")return s('[data-voice-action="book-split-flight"], [data-ui-action="book-split-flight"]');if(e==="select-flight")return c(s('[data-voice-action="select-flight"], [data-ui-action="select-flight"]'));const u=c(s('[data-voice-action="book-flight"], [data-ui-action="book-flight"]'));if(u.length)return u;const a=c(s('[data-voice-action="select-flight"], [data-ui-action="select-flight"]'));return a.length?a:s('[data-voice-action="book-split-flight"], [data-ui-action="book-split-flight"]')}function ur(){const e=Array.from(document.querySelectorAll(".message-list__bubble--flight-results")).filter(n=>Ye(n));return e.length?[...e].reverse().find(n=>Array.from(n.querySelectorAll('[data-voice-action="book-flight"], [data-ui-action="book-flight"], [data-voice-action="select-flight"], [data-ui-action="select-flight"], [data-voice-action="book-split-flight"], [data-ui-action="book-split-flight"]')).some(i=>!i.disabled&&Ye(i)))||e[e.length-1]:null}function On(){return Array.from(document.querySelectorAll(".message-list__bubble--flight-results")).some(e=>Ye(e))}function Vs(e){const t=String(e||"").toLowerCase();return/\b(onward|outbound|outward|departure)(\s+leg|\s+flight|\s+side|\s+slice|\s+sector)?\b/.test(t)?"onward":/\b(return|inbound|back|homeward)(\s+leg|\s+flight|\s+side|\s+slice|\s+sector)?\b/.test(t)?"return":null}function Ye(e){if(!e)return!1;const t=window.getComputedStyle(e);if(t.display==="none"||t.visibility==="hidden")return!1;const n=e.getBoundingClientRect();return n.width>0&&n.height>0}function Eo(e){const t=String(e||"").trim().toLowerCase();return t?/\b(book|reserve|buy|purchase|confirm booking|proceed to book)\b/.test(t):!1}function Fo(){let t=0;const n=()=>{t+=1;const i=yn("book-or-select-flight")[0];if(i){i.click();return}t<6&&window.setTimeout(n,160)};window.setTimeout(n,120)}function Lo(e){const t=String(e||"").trim().toLowerCase();return/^\s*back\s*$/.test(t)||/\b(go back|back to results|show previous results|previous results)\b/.test(t)}function bs(e){const t=String(e||"").trim().toLowerCase();return t?/\b(save details|save traveler details|save traveller details|save|proceed)\b/.test(t):!1}function $o(e){const t=String(e||"").trim().toLowerCase();return t?/\b(proceed to book|continue to book|continue booking)\b/.test(t):!1}function Hn(e){const t=String(e||"").trim().toLowerCase().replace(/[.!?,]+$/g,"");if(!t||t.split(/\s+/).filter(Boolean).length>4)return null;const s=/^(yes|yep|yeah|ok|okay|sure|confirm|proceed|continue|go ahead|please proceed)$/i,i=/^(no|nope|cancel|don['’]?t|do not|back|later|not now|stop)$/i;return s.test(t)?"yes":i.test(t)?"no":null}function gs(e){const t=String(e||"").trim().toLowerCase();return t?/\b(?:apply|use|add|remove|clear|delete)\b.*\b(?:promo|promocode|promocde|coupon|discount)\b/.test(t):!1}function Gs(e){var n;const t=(n=e==null?void 0:e.data)==null?void 0:n.results;return Array.isArray(t)?t:Array.isArray(t==null?void 0:t.payload)?t.payload:[]}function Io(e,t){const n=Array.isArray(e)?e:[];if(!t||t.clearAll)return n;let s=As(n,t);return t!=null&&t.sortBy&&(s=ks(s,t.sortBy)),Array.isArray(s)?s:[]}function Yn(e){var s,i;if(Number(((i=(s=e==null?void 0:e.data)==null?void 0:s.params)==null?void 0:i.tt)||0)===2)return!0;const n=Gs(e);return n.length?n.some(o=>!!(Number((o==null?void 0:o.tt)||0)===2||Array.isArray(o==null?void 0:o.rttrps)&&o.rttrps.length>0||Array.isArray(o==null?void 0:o.trps)&&o.trps.some(c=>{var u;return(u=c==null?void 0:c.pr)==null?void 0:u.rtrmkey}))):!1}function Ro(e){const t=String(e||"").trim().toLowerCase();return t?/\b(view all|view all flights|show all|show more|more options|expand results)\b/i.test(t):!1}function Mo(e,t=()=>{}){const n=zo(e);if(!n)return!1;const s=Ws(e),i=Ho(s),o=(()=>{const g=Array.from(document.querySelectorAll(".message-list__bubble--flight-results")).filter(S=>Ye(S));return g[g.length-1]||document})(),c=Array.from(o.querySelectorAll('[data-ui-flight-card="true"]')).filter(g=>Ye(g));if(!c.length)return mn(e,t,{force:!0,preferredAction:n,actionHints:s})?{status:"HANDLED"}:!1;const{matchedCards:u,hasExplicitConstraint:a}=qs(c,s);if(a&&u.length===0)return mn(e,t,{force:!0,preferredAction:n,actionHints:s})?{status:"HANDLED"}:{status:"NO_FILTER_DATA",message:n.unavailableMessage};const f=u.length?u:c,y=s.position==="last"?f[f.length-1]:f[0];if(!y)return!1;const d=y.querySelector(n.buttonSelector);return!d||!Ye(d)?(n==null?void 0:n.key)==="fare-details"&&mn(e,t,{force:!0,preferredAction:n,actionHints:s})?{status:"HANDLED"}:i?{status:"NO_FILTER_DATA",message:n.unavailableMessage}:!1:(t(e),d.click(),{status:"HANDLED"})}function Bo(e){const t=String(e||"").trim().toLowerCase();if(!t)return!1;const n=/\b(open|show|click|select|choose)\b/.test(t),s=/\b(more\s*fares?|morefares)\b/.test(t),i=/\bfare\s+options?\b/.test(t);return s||n&&i||!n&&i}function Po(e){const t=String(e||"").trim().toLowerCase();if(!t)return!1;const n=/\b(open|show|click|select|choose)\b/.test(t),s=/\bfare\b/.test(t),i=/\b(details?|deatails?|deatils?|detials?|detailes?)\b/.test(t);return/\b(fare\s*details?|faredetails?|fare\s*deatails?|fare\s*deatils?|fare\s*detials?)\b/.test(t)||s&&i||n&&i}function zo(e){return Bo(e)?{key:"more-fares",buttonSelector:'[data-ui-action="more-fares"]',unavailableMessage:"No filter data available for the selected flight."}:Po(e)?{key:"fare-details",buttonSelector:'[data-ui-action="open-fare-details"]',unavailableMessage:"No fare details available for the selected flight."}:null}function mn(e,t=()=>{},n={}){const s=!!(n!=null&&n.force),i=n!=null&&n.preferredAction&&typeof n.preferredAction=="object"?n.preferredAction:null,o=n!=null&&n.actionHints&&typeof n.actionHints=="object"?n.actionHints:Ws(e);if(!s&&!Ro(e))return!1;const c=Yo(e),u=(()=>{const d=Array.from(document.querySelectorAll(".message-list__bubble--flight-results")).filter(g=>Ye(g));return d[d.length-1]||document})(),a=Array.from(u.querySelectorAll(".flight-results__toggle-btn")).filter(d=>Ye(d));if(!a.length)return!1;const y=(c?a.find(d=>{var g;return Je((g=d==null?void 0:d.dataset)==null?void 0:g.flightLeg)===Je(c)}):null)||a[0];return y?(t(e),y.click(),i&&Uo(i,o),!0):!1}function Uo(e,t){let n=0;const s=12,i=()=>{n+=1,!(Oo(e,t)||n>=s)&&window.setTimeout(i,120)};window.setTimeout(i,80)}function Oo(e,t){const n=(()=>{const f=Array.from(document.querySelectorAll(".message-list__bubble--flight-results")).filter(y=>Ye(y));return f[f.length-1]||document})(),s=Array.from(n.querySelectorAll('.flight-results__modal [data-ui-flight-card="true"]')).filter(f=>Ye(f));if(!s.length)return!1;const{matchedCards:i,hasExplicitConstraint:o}=qs(s,t||{});if(o&&i.length===0)return window.dispatchEvent(new CustomEvent("chat:flight-card-action-unavailable",{detail:{message:(e==null?void 0:e.unavailableMessage)||""}})),!0;const c=i.length?i:s,u=(t==null?void 0:t.position)==="last"?c[c.length-1]:c[0];if(!u)return!1;const a=u.querySelector((e==null?void 0:e.buttonSelector)||"");return!a||!Ye(a)?o?(window.dispatchEvent(new CustomEvent("chat:flight-card-action-unavailable",{detail:{message:(e==null?void 0:e.unavailableMessage)||""}})),!0):!1:(a.click(),!0)}function Ws(e){const t=String(e||"").trim(),n=t.toLowerCase(),s=n.match(/\b([a-z]{1,3}\s*-?\s*\d{2,5})\b/i),i=n.match(/\b(?:airline|airlines|operator)\s+([a-z][a-z0-9 &.-]{1,40})\b/i),o=n.match(/\b([a-z][a-z0-9 &.-]{1,40})\s+(?:airline|airlines|operator)\b/i),c=Et(t),u=en((s==null?void 0:s[1])||""),a=c.replace(/\b(click|open|show|select|choose|for|the|this|that|in|inside|more|fare|fares|morefares|details|detail|deatails|deatils|detials|detailes|options|option|airline|airlines|operator|first|last|block|results|result|onward|return|flight|flights)\b/g," ").replace(/\b([a-z]{1,3}\s*-?\s*\d{2,5})\b/g," ").replace(/\s+/g," ").trim(),f=new Set(["me","my","mine","please","kindly","just","only","now"]),y=a.split(" ").filter(m=>m&&!/^\d+$/.test(m)&&!f.has(m.toLowerCase())).join(" ").trim(),d=!(i!=null&&i[1])&&!(o!=null&&o[1])&&!u,g=n.match(/\b(\d{1,2}[/-]\d{1,2}[/-]\d{2,4}|\d{4}-\d{2}-\d{2})\b/),S=n.match(/\b(?:price|fare|amount)\s*(?:is|of|=|at)?\s*(?:inr|usd|eur|aed|sar|rs|₹|\$)?\s*([0-9][0-9,]*(?:\.\d{1,2})?)\b/i),x=n.match(/(?:inr|usd|eur|aed|sar|rs|₹|\$)\s*([0-9][0-9,]*(?:\.\d{1,2})?)/i),w=n.match(/\b([0-2]?\d:[0-5]\d)\b/g)||[];return{leg:Vs(n)||"",position:/\b(last|bottom|final)\b/.test(n)?"last":"first",flightNumber:(s==null?void 0:s[1])||"",airline:(i==null?void 0:i[1])||(o==null?void 0:o[1])||(d?y:"")||"",date:(g==null?void 0:g[1])||"",price:Zs((S==null?void 0:S[1])||(x==null?void 0:x[1])||""),times:w.map(m=>tr(m)).filter(Boolean)}}function qs(e=[],t={}){let n=Array.isArray(e)?e:[],s=!1;if(t.leg&&(s=!0,n=n.filter(i=>{var o;return Je((o=i==null?void 0:i.dataset)==null?void 0:o.flightLeg)===Je(t.leg)})),t.flightNumber){s=!0;const i=en(t.flightNumber);n=n.filter(o=>{var c;return en((c=o==null?void 0:o.dataset)==null?void 0:c.flightNumber)===i})}if(t.airline){s=!0;const i=Et(t.airline);n=n.filter(o=>{var c;return Js(Et((c=o==null?void 0:o.dataset)==null?void 0:c.flightAirline),i)})}if(t.price!=null&&(s=!0,n=n.filter(i=>{var c;const o=Zs((c=i==null?void 0:i.dataset)==null?void 0:c.flightPrice);return o!=null&&Math.abs(o-t.price)<1})),t.date){s=!0;const i=Kn(t.date);n=n.filter(o=>{var a,f;const c=Kn((a=o==null?void 0:o.dataset)==null?void 0:a.flightDepartureDate),u=Kn((f=o==null?void 0:o.dataset)==null?void 0:f.flightArrivalDate);return c===i||u===i})}return Array.isArray(t.times)&&t.times.length>0&&(s=!0,n=n.filter(i=>{var u,a;const o=tr((u=i==null?void 0:i.dataset)==null?void 0:u.flightDepartureTime),c=tr((a=i==null?void 0:i.dataset)==null?void 0:a.flightArrivalTime);return t.times.every(f=>f===o||f===c)})),{matchedCards:n,hasExplicitConstraint:s}}function Ho(e={}){return!!(e!=null&&e.leg||e!=null&&e.flightNumber||e!=null&&e.airline||e!=null&&e.date||(e==null?void 0:e.price)!=null||Array.isArray(e==null?void 0:e.times)&&e.times.length>0)}function Je(e){const t=String(e||"").trim().toLowerCase();return t==="onward"||t==="return"?t:""}function Yo(e){const t=String(e||"").trim().toLowerCase();return t?/\b(return|inbound|back)\b/.test(t)?"return":/\b(onward|outbound|departure)\b/.test(t)?"onward":"":""}function Zs(e){const t=String(e||"").replace(/,/g,"").trim();if(!t)return null;const n=Number(t);return Number.isFinite(n)?n:null}function en(e){return String(e||"").toUpperCase().replace(/[^A-Z0-9]/g,"")}function Ko(e){const t=String(e||""),n=/\b([a-z]{1,3})\s*-?\s*(\d{2,5})\b/gi;let s="",i=-1,o=-1,c=n.exec(t);for(;c!==null;){const u=String(c[1]||"").toLowerCase(),a=String(c[2]||""),f=en(`${u}${a}`);if(f){const y=a.length,d=y>=4?120+y:y>=3?100+y:y,g=c.index||0;(d>i||d===i&&g>=o)&&(i=d,o=g,s=f)}c=n.exec(t)}return s}function Kn(e){const t=String(e||"").trim();if(!t)return"";const n=t.match(/^(\d{1,2})[/-](\d{1,2})[/-](\d{2,4})$/);if(n){const i=n[1].padStart(2,"0"),o=n[2].padStart(2,"0");return`${n[3].length===2?`20${n[3]}`:n[3]}-${o}-${i}`}const s=t.match(/^(\d{4})-(\d{2})-(\d{2})$/);return s?`${s[1]}-${s[2]}-${s[3]}`:t.toLowerCase()}function tr(e){const n=String(e||"").trim().match(/^([0-2]?\d):([0-5]\d)$/);if(!n)return"";const s=Number(n[1]);return!Number.isFinite(s)||s>23?"":`${String(s).padStart(2,"0")}:${n[2]}`}function Et(e){return String(e||"").toLowerCase().replace(/[^a-z0-9 ]/g," ").replace(/\s+/g," ").trim()}function Js(e,t){const n=Et(e),s=Et(t);if(!n||!s)return!1;if(n.includes(s)||s.includes(n))return!0;const i=s.split(" ").filter(Boolean),o=n.split(" ").filter(Boolean);return!i.length||!o.length?!1:i.every(c=>o.some(u=>u.includes(c)||c.includes(u)||u.startsWith(c)||c.startsWith(u)))}function jn(e){const t=String(e||"").trim();if(!t)return!1;const n=t.toLowerCase();if(/\b(save details|edit details|pay now|proceed to book|continue booking|payment|save)\b/.test(n))return!1;const s=/\bfrom\s+[a-z][a-z .'-]+\s+to\s+[a-z][a-z .'-]+\b/i,i=/\b[a-z][a-z .'-]+\s+to\s+[a-z][a-z .'-]+\b/i,o=/\b[a-z]{3}\s*(?:to|-)\s*[a-z]{3}\b/i,c=/\bon\s+[a-z0-9,\-/ ]+\b/i,u=/\b\d{1,2}(?:st|nd|rd|th)?\b.*\b(?:jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)\b/i,a=s.test(t)||i.test(t)||o.test(t),f=c.test(t)||u.test(t);return a&&f||/\b(search|find|show|get)\b.*\bflight/.test(n)}function Vo(e=[]){const t=e.filter(c=>c==null?void 0:c.hiddenFromChat),n=[...e].reverse().find(c=>(c==null?void 0:c.type)==="payment_confirmation");if(n)return[n];const s=["payment_confirmation","traveler_details_form","flight_results"],i=[...t].reverse().find(c=>s.includes(c==null?void 0:c.type));if(i)return[i];const o=[...t].reverse().find(c=>(c==null?void 0:c.type)==="assistant_message"&&String((c==null?void 0:c.text)||"").trim());return o?[o]:[]}function Go(e=[]){return e.filter(t=>!(t!=null&&t.hiddenFromChat))}function Wo(e=[]){const t=[...e].reverse().find(n=>(n==null?void 0:n.hiddenFromChat)&&(n==null?void 0:n.type)!=="user_message"&&typeof(n==null?void 0:n.text)=="string"&&n.text.trim());return String((t==null?void 0:t.text)||"").trim()}function qo(e=[]){var d;const t=[...e].reverse().find(g=>(g==null?void 0:g.type)==="user_message"&&jn(String((g==null?void 0:g.text)||""))),n=String((t==null?void 0:t.text)||"").trim();if(n)return n;const s=[...e].reverse().find(g=>(g==null?void 0:g.type)==="flight_results"),i=((d=s==null?void 0:s.data)==null?void 0:d.params)||{},o=String((i==null?void 0:i.dep)||"").trim(),c=String((i==null?void 0:i.arr)||"").trim(),u=String((i==null?void 0:i.dd)||"").trim(),a=String((i==null?void 0:i.ad)||"").trim(),f=Number((i==null?void 0:i.adt)||0),y=Number((i==null?void 0:i.tt)||1);if(o&&c&&u){const g=f>0?` with ${f} adult${f>1?"s":""}`:"",S=y===2&&a?` return ${a}`:"";return`book me a flight from ${o} to ${c} on ${u}${S}${g}`}return""}function Zo(e=[]){return e.filter(t=>!(!t||t.type==="traveler_details_form"||t.type==="payment_confirmation"||(Array.isArray(t==null?void 0:t.options)?t.options.some(s=>String((s==null?void 0:s.value)||"").startsWith("CONFIRM_REDIRECT:")):!1)))}function Jo(e,t){if(typeof e=="string")return e;if(typeof e=="number"||typeof e=="boolean")return String(e);if(e&&typeof e=="object"){const n=(e==null?void 0:e.message)||(e==null?void 0:e.error)||(e==null?void 0:e.details)||(e==null?void 0:e.msg);if(n)return String(n);try{return JSON.stringify(e)}catch{return t}}return t}function nr(e){const t=Number(e||0);return t<=0?"Non-stop":t===1?"1 stop":`${t} stops`}function Xo(e={}){const t=nr(e==null?void 0:e.stops);return`You have selected this flight: ${(e==null?void 0:e.airline)||"Unknown airline"}, ${(e==null?void 0:e.flightNumber)||"N/A"}, ${(e==null?void 0:e.departureTime)||"--:--"}-${(e==null?void 0:e.arrivalTime)||"--:--"}, ${t}. Do you want to proceed to availability?`}function Qo(e={}){const t=(e==null?void 0:e.onward)||{},n=(e==null?void 0:e.return)||{},s=`Onward: ${(t==null?void 0:t.airline)||"Unknown airline"} ${(t==null?void 0:t.flightNumber)||"N/A"}, ${(t==null?void 0:t.departureTime)||"--:--"}-${(t==null?void 0:t.arrivalTime)||"--:--"}, ${nr(t==null?void 0:t.stops)}.`,i=`Return: ${(n==null?void 0:n.airline)||"Unknown airline"} ${(n==null?void 0:n.flightNumber)||"N/A"}, ${(n==null?void 0:n.departureTime)||"--:--"}-${(n==null?void 0:n.arrivalTime)||"--:--"}, ${nr(n==null?void 0:n.stops)}.`;return`You have selected these flights. ${s} ${i} Do you want to proceed to availability?`}function el(e={},t=null){const n=e&&typeof e=="object"&&!Array.isArray(e)?e:{},s=(n==null?void 0:n.type)==="split_roundtrip"||!!(n!=null&&n.onward)||!!(n!=null&&n.return),i=!!String((t==null?void 0:t.rukey)||"").trim()||Array.isArray(t==null?void 0:t.rtrmkey)&&t.rtrmkey.length>0||Number((t==null?void 0:t.tt)||0)===2||/split|combined/i.test(String((t==null?void 0:t.styp)||""));if(!s&&!i)return n;const o=((n==null?void 0:n.type)==="split_roundtrip",(n==null?void 0:n.onward)||null),c=((n==null?void 0:n.type)==="split_roundtrip",(n==null?void 0:n.return)||null),u=_s("onward"),a=_s("return"),f=ys(o,u),y=ys(c,a);return!Ns(f)&&!Ns(y)?n:{type:"split_roundtrip",onward:f||null,return:y||null}}function ys(e,t){const n=e&&typeof e=="object"?e:{},s=t&&typeof t=="object"?t:{},i=(...a)=>{for(const f of a){const y=String(f||"").trim();if(y)return y}return""},o=Number(n==null?void 0:n.stops),c=Number(s==null?void 0:s.stops),u=Number.isFinite(o)?o:Number.isFinite(c)?c:0;return{airline:i(n==null?void 0:n.airline,s==null?void 0:s.airline),flightNumber:i(n==null?void 0:n.flightNumber,s==null?void 0:s.flightNumber),departureTime:i(n==null?void 0:n.departureTime,s==null?void 0:s.departureTime),arrivalTime:i(n==null?void 0:n.arrivalTime,s==null?void 0:s.arrivalTime),stops:u}}function Ns(e){if(!e||typeof e!="object")return!1;const t=String((e==null?void 0:e.airline)||"").trim(),n=String((e==null?void 0:e.flightNumber)||"").trim(),s=String((e==null?void 0:e.departureTime)||"").trim(),i=String((e==null?void 0:e.arrivalTime)||"").trim();return!!(t||n||s||i)}function _s(e){var i,o,c,u;const t=Je(e);if(!t)return null;const n=`.flight-card--selected[data-flight-leg="${t}"]`,s=document.querySelector(n);return s?{airline:String(((i=s==null?void 0:s.dataset)==null?void 0:i.flightAirline)||"").trim(),flightNumber:String(((o=s==null?void 0:s.dataset)==null?void 0:o.flightNumber)||"").trim(),departureTime:String(((c=s==null?void 0:s.dataset)==null?void 0:c.flightDepartureTime)||"").trim(),arrivalTime:String(((u=s==null?void 0:s.dataset)==null?void 0:u.flightArrivalTime)||"").trim(),stops:tl(s)}:null}function tl(e){if(!e)return 0;const t=e.querySelector(".flight-card__stop-count"),n=String((t==null?void 0:t.textContent)||"").toLowerCase();if(!n||n.includes("non-stop"))return 0;const s=n.match(/(\d+)\s*stop/);if(s!=null&&s[1]){const i=Number(s[1]);return Number.isFinite(i)?i:0}return 0}function nl(e){var s;if((Array.isArray((s=e==null?void 0:e.meta)==null?void 0:s.missingFields)?e.meta.missingFields:[]).includes("ad"))return!0;const n=String((e==null?void 0:e.text)||"").toLowerCase();return/\breturn date\b|\breturning\b|\bcoming back\b/.test(n)}function rl(e=[]){const t=sl(e),n=t>=0?e.slice(t):e,s={onwardDate:null,returnDate:null,awaitingField:""};return n.forEach(i=>{var y;if(!i)return;const o=String((i==null?void 0:i.type)||"").toLowerCase();if(o==="assistant_message"){const d=Array.isArray((y=i==null?void 0:i.meta)==null?void 0:y.missingFields)?i.meta.missingFields:[];d.includes("dd")&&(s.awaitingField="dd"),d.includes("ad")&&(s.awaitingField="ad");const g=String((i==null?void 0:i.text)||"").toLowerCase();/\bwhat date are you flying\b/.test(g)&&(s.awaitingField="dd"),/\breturn date\b/.test(g)&&(s.awaitingField="ad");return}if(o!=="user_message")return;const c=String((i==null?void 0:i.text)||"").trim();if(!c)return;const u=c.match(/\bonward(?:\s+is)?\s+([0-3]?\d[\/-][01]?\d[\/-]\d{4}|\d{4}-\d{2}-\d{2}|today|tomorrow|next weekend)\b/i);if(u!=null&&u[1]){const d=Vn(u[1]);d&&(s.onwardDate=d)}const a=c.match(/\breturn(?:\s+is)?\s+([0-3]?\d[\/-][01]?\d[\/-]\d{4}|\d{4}-\d{2}-\d{2}|today|tomorrow|next weekend)\b/i);if(a!=null&&a[1]){const d=Vn(a[1]);d&&(s.returnDate=d)}if(!s.awaitingField)return;const f=Vn(c);f&&(s.awaitingField==="dd"?s.onwardDate=f:s.awaitingField==="ad"&&(s.returnDate=f),s.awaitingField="")}),{onwardDate:s.onwardDate,returnDate:s.returnDate}}function sl(e=[]){for(let t=e.length-1;t>=0;t-=1){const n=e[t];if((n==null?void 0:n.type)!=="user_message")continue;const s=String((n==null?void 0:n.text)||"");if(jn(s))return t}return-1}function Vn(e){const t=String(e||"").trim().toLowerCase();if(!t)return null;const n=new Date,s=new Date(n.getFullYear(),n.getMonth(),n.getDate());if(t==="today")return s;if(t==="tomorrow"){const c=new Date(s);return c.setDate(c.getDate()+1),c}if(t==="next weekend"){const u=(6-s.getDay()+7)%7||7,a=new Date(s);return a.setDate(a.getDate()+u),a}const i=t.match(/^([0-3]?\d)[\/-]([01]?\d)[\/-](\d{4})$/);if(i){const c=Number(i[1]),u=Number(i[2])-1,a=Number(i[3]),f=new Date(a,u,c);return Number.isNaN(f.getTime())?null:f}const o=t.match(/^(\d{4})-(\d{2})-(\d{2})$/);if(o){const c=Number(o[1]),u=Number(o[2])-1,a=Number(o[3]),f=new Date(c,u,a);return Number.isNaN(f.getTime())?null:f}return null}function Gn(e){if(!e||typeof e!="object")return e;try{return JSON.parse(JSON.stringify(e))}catch{return e}}function Xs({socket:e}){return r.jsx(rr.Provider,{value:e,children:r.jsx(Us,{})})}function il({adt:e=1,chd:t=0,inf:n=0,passportRequired:s=!1}){const i=[];for(let o=1;o<=Number(e);o+=1)i.push({sno:o,tl:"",typ:"ADT",ldpax:o===1,fn:"",ln:"",dob:null,nat:"",isc:"",num:"",expdt:null,issdt:null,dtyp:"P",extbag:[],meal:[],seat:[]});for(let o=1;o<=Number(t);o+=1)i.push({sno:Number(e)+o,tl:"",typ:"CHD",ldpax:!1,fn:"",ln:"",dob:null,nat:"",isc:"",num:"",expdt:null,issdt:null,dtyp:"P",extbag:[],meal:[],seat:[]});for(let o=1;o<=Number(n);o+=1)i.push({sno:Number(e)+Number(t)+o,tl:"",typ:"INF",ldpax:!1,fn:"",ln:"",dob:null,nat:"",isc:"",num:"",expdt:null,issdt:null,dtyp:"P"});return i}function al(e){const t=(e==null?void 0:e.payload)||e||{},n=(t==null?void 0:t.trps)||{},s=(n==null?void 0:n.pr)||{},i=String((t==null?void 0:t.ps)||"").toUpperCase()==="Y"||String((t==null?void 0:t.sectyp)||"").toLowerCase()==="int";return{ukey:(t==null?void 0:t.ukey)||"",ptyp:"CD",prd:"F",em:"",ph:"",adt:String((t==null?void 0:t.adt)??1),chd:String((t==null?void 0:t.chd)??0),inf:String((t==null?void 0:t.inf)??0),tt:String((t==null?void 0:t.tt)??1),styp:(t==null?void 0:t.styp)||"",rmkey:(s==null?void 0:s.rmkey)||"",chnl:"B2C",passportRequired:i,trvlrs:il({adt:t==null?void 0:t.adt,chd:t==null?void 0:t.chd,inf:t==null?void 0:t.inf,passportRequired:i})}}exports.AIChatAgent=Xs;exports.ChatWindow=Us;exports.SocketContext=rr;exports.buildPrebookPayloadFromAvailability=al;exports.convertDateToDDMMYYYY=Xt;exports.default=Xs;exports.useSocket=sr;
2
+ //# sourceMappingURL=index.cjs.map