1import{d as lt,e as ct,f as dt,g as mt,i as ht,j as gt,k as ut,l as _t,m as ft}from"./chunk-MLBOT26K.js";import{G as ce,I as de,M as pe,r as le}from"./chunk-ZY7QVEA5.js";import{a as Qe}from"./chunk-EIIFJILV.js";import{a as Ve}from"./chunk-ETG5RL5T.js";import{d as He}from"./chunk-GCGXUHFZ.js";import{a as et,b as tt}from"./chunk-Z5BPXOER.js";import{A as Ze,a as We,c as L,e as B}from"./chunk-B3JEMF2F.js";import{c as pt}from"./chunk-IDBPAATK.js";import{a as it}from"./chunk-H7I2BVQL.js";import{a as $e,b as Ge}from"./chunk-CRQVDRBT.js";import{Ya as Je}from"./chunk-S5M7JLWQ.js";import{o as Xe}from"./chunk-IPLKZXBP.js";import{a as Le,i as Be,j as Ne,l as Ye,o as Ue}from"./chunk-CBWDEWJH.js";import{a as qe,e as je}from"./chunk-2HRT4W4C.js";import{B as Re,C as Fe,D as ze,k as Ie}from"./chunk-UHWZMUHE.js";import{c as Ke}from"./chunk-PRKGKCPD.js";import{a as rt,b as nt,c as at,e as st,f as ot}from"./chunk-44C3MIX2.js";import{b as ee,c as te}from"./chunk-3NPCDHG6.js";import{fa as Ae,ia as De}from"./chunk-SYJPV5Z2.js";import{h as ie}from"./chunk-C4EYQ3F4.js";import{b as Oe,d as Ee}from"./chunk-UJIRJMKN.js";import{Ac as G,Dc as Ce,Ed as Te,Fb as v,Fd as Me,Ga as C,Gb as Z,Ha as y,Hb as d,Ib as se,Ic as J,Jb as S,Kc as X,N as ge,Nc as ye,Ob as x,Pa as Y,Qa as K,Qb as oe,Rb as R,Sb as F,Tb as i,Ub as n,Vb as p,Wb as D,Wc as I,Xb as q,Zb as E,a as ne,ac as T,b as ae,cc as g,f as H,jc as j,ka as ue,kc as V,lc as Q,mc as ve,nc as s,oc as k,pa as _e,pc as $,pd as ke,qa as fe,qb as o,qc as A,rb as P,rd as Pe,tc as xe,uc as we,va as W,vc as be,z as U,zd as Se}from"./chunk-CKCTXGH7.js";function re(t){if(!t?.search||!t?.trip?.points?.length)return!1;let c=t.flights?.[0]??(t.search.locationFrom&&t.search.locationTo?{locationFrom:t.search.locationFrom,locationTo:t.search.locationTo,dateFrom:t.search.dateFrom,dateTo:t.search.dateTo}:null);if(!c?.locationFrom?.place_id||!c?.locationTo?.place_id||!c.dateFrom)return!1;if(c.dateTo!=null){let l=new Date(c.dateFrom).getTime(),h=new Date(c.dateTo).getTime();if(isNaN(l)||isNaN(h)||h<l)return!1}let a=t.trip.points.some(l=>l.type==="hotel"),r=t.trip.points.filter(l=>l.type==="airport").length;return a&&r>=2}var vt=(t,c)=>c.key;function St(t,c){t&1&&(p(0,"span",9),i(1,"div",10),s(2,"Building your package\u2026"),n())}function Tt(t,c){t&1&&(i(0,"span",11),s(1,"\u2713"),n(),i(2,"div",10),s(3,"All travel data loaded"),n())}function Mt(t,c){t&1&&p(0,"span",12)}function Ot(t,c){t&1&&(i(0,"span",13),s(1,"\u2713"),n())}function Et(t,c){if(t&1&&(i(0,"div",7),v(1,Mt,1,0,"span",12)(2,Ot,2,0,"span",13),i(3,"span",14),s(4),n(),i(5,"div",15),p(6,"div",16),n(),i(7,"span",17),s(8),n()()),t&2){let e=c.$implicit,a=g(3);o(),x(e.active>0?1:2),o(3),k(e.label),o(2),se("width",a.groupPercent(e),"%"),S("bg-primary",e.active>0)("bg-green-500",e.active===0),o(2),A(" ",e.done,"/",e.total," ")}}function It(t,c){if(t&1&&(i(0,"div",0)(1,"div",1)(2,"div",2),v(3,St,3,0)(4,Tt,4,0),i(5,"span",3),s(6),n()(),i(7,"div",4),p(8,"div",5),n()(),i(9,"div",6),R(10,Et,9,10,"div",7,vt),n(),i(12,"div",8),s(13," Results appear as each provider responds \u2014 feel free to start browsing. "),n()()),t&2){let e=g(2);o(3),x(e.anyActive?3:4),o(3),$(" ",e.overallPercent,"% "),o(2),se("width",e.overallPercent,"%"),o(2),F(e.groups)}}function Rt(t,c){if(t&1&&v(0,It,14,4,"div",0),t&2){let e=g();x(e.groups.length>0?0:-1)}}function Ft(t,c){if(t&1&&(p(0,"span",9),i(1,"span",22),s(2,"Fetching live travel data\u2026"),n(),i(3,"span",23),s(4),n()),t&2){let e=g(3);o(4),$("",e.overallPercent,"%")}}function zt(t,c){t&1&&(i(0,"span",13),s(1,"\u2713"),n(),i(2,"span",22),s(3,"All data loaded"),n())}function At(t,c){t&1&&p(0,"span",12)}function Dt(t,c){t&1&&(i(0,"span",13),s(1,"\u2713"),n())}function qt(t,c){if(t&1&&(i(0,"div",21),v(1,At,1,0,"span",12)(2,Dt,2,0,"span",13),i(3,"span",24),s(4),n(),i(5,"span",25),s(6),n()()),t&2){let e=c.$implicit;o(),x(e.active>0?1:2),o(3),k(e.label),o(2),A(" ",e.done,"/",e.total," ")}}function jt(t,c){if(t&1&&(i(0,"div",18)(1,"div",19),v(2,Ft,5,1)(3,zt,4,0),n(),i(4,"div",20),R(5,qt,7,4,"div",21,vt),n()()),t&2){let e=g(2);o(2),x(e.anyActive?2:3),o(3),F(e.groups)}}function Vt(t,c){if(t&1&&v(0,jt,7,1,"div",18),t&2){let e=g();x(e.visible?0:-1)}}var xt=(()=>{class t{static{this.HIDE_AFTER_IDLE_MS=4e3}constructor(e,a,r){this._tfmService=e,this._cd=a,this._zone=r,this.inline=!1,this.groups=[],this.visible=!1,this.anyActive=!1,this.overallPercent=0,this._sub=null,this._hideTimer=null}ngOnInit(){this._cd.detach(),this._zone.runOutsideAngular(()=>{this._sub=this._tfmService.networkActivity$.pipe(ge(250)).subscribe(e=>
1this.applySnapshot(e))})}ngOnDestroy(){this._sub?.unsubscribe(),this._hideTimer!==null&&clearTimeout(this._hideTimer)}groupPercent(e){return e.total>0?Math.round(e.done/e.total*100):0}applySnapshot(e){this.groups=e.filter(l=>l.total>0),this.anyActive=this.groups.some(l=>l.active>0);let a=this.groups.reduce((l,h)=>l+h.total,0),r=this.groups.reduce((l,h)=>l+h.done,0);this.overallPercent=a>0?Math.round(r/a*100):0,this.groups.length===0?this.visible=!1:this.anyActive?(this._hideTimer!==null&&(clearTimeout(this._hideTimer),this._hideTimer=null),this.visible=!0):(this.visible=!0,this._hideTimer===null&&(this._hideTimer=setTimeout(()=>{this._hideTimer=null,this.visible=!1,this._cd.detectChanges()},t.HIDE_AFTER_IDLE_MS))),this._cd.detectChanges()}static{this.\u0275fac=function(a){return new(a||t)(P(ie),P(I),P(K))}}static{this.\u0275cmp=W({type:t,selectors:[["network-activity-indicator"]],inputs:{inline:"inline"},standalone:!0,features:[G],decls:2,vars:1,consts:[[1,"w-full","max-w-md","mx-auto","rounded-2xl","border","border-gray-200","bg-white","shadow-md","dark:border-gray-700","dark:bg-gray-800","text-gray-800","dark:text-gray-100","overflow-hidden"],[1,"px-5","pt-4","pb-3"],[1,"flex","items-center","gap-3"],[1,"ml-auto","text-sm","font-medium","tabular-nums","text-gray-500","dark:text-gray-400"],[1,"mt-3","h-2","w-full","rounded-full","bg-gray-100","dark:bg-gray-700","overflow-hidden"],[1,"h-full","rounded-full","bg-primary","transition-all","duration-300"],[1,"px-5","pb-4","flex","flex-col","gap-2.5"],[1,"flex","items-center","gap-2.5","text-sm"],[1,"px-5","py-2.5","text-xs","text-center","text-gray-400","dark:text-gray-500","border-t","border-gray-100","dark:border-gray-700"],["aria-hidden","true",1,"nai-spinner"],[1,"text-base","font-semibold"],["aria-hidden","true",1,"nai-check","nai-check-lg"],["aria-hidden","true",1,"nai-spinner","nai-spinner-sm"],["aria-hidden","true",1,"nai-check"],[1,"w-28","flex-none","truncate"],[1,"flex-auto","h-1.5","rounded-full","bg-gray-100","dark:bg-gray-700","overflow-hidden"],[1,"h-full","rounded-full","transition-all","duration-300"],[1,"w-12","flex-none","text-right","tabular-nums","text-xs","text-gray-500","dark:text-gray-400"],[1,"fixed","bottom-4","right-4","z-49","w-64","rounded-lg","border","border-gray-200","bg-white","shadow-lg","dar
1k:border-gray-700","dark:bg-gray-800","text-gray-800","dark:text-gray-100"],[1,"flex","items-center","gap-2","px-3","py-2","border-b","border-gray-100","dark:border-gray-700"],[1,"px-3","py-2","flex","flex-col","gap-1.5"],[1,"flex","items-center","gap-2","text-xs","leading-5"],[1,"text-sm","font-medium"],[1,"ml-auto","text-xs","font-medium","tabular-nums","text-gray-500","dark:text-gray-400"],[1,"truncate"],[1,"ml-auto","tabular-nums","text-gray-500","dark:text-gray-400"]],template:function(a,r){a&1&&v(0,Rt,1,1)(1,Vt,1,1),a&2&&x(r.inline?0:1)},styles:[".nai-spinner[_ngcontent-%COMP%]{display:inline-block;width:16px;height:16px;flex:0 0 auto;border:2px solid rgba(99,102,241,.25);border-top-color:#6366f1;border-radius:50%;animation:_ngcontent-%COMP%_nai-spin .8s linear infinite}.nai-spinner-sm[_ngcontent-%COMP%]{width:11px;height:11px;border-width:2px}.nai-check[_ngcontent-%COMP%]{display:inline-block;flex:0 0 auto;width:14px;text-align:center;color:#22c55e;font-weight:700;line-height:1}.nai-check-lg[_ngcontent-%COMP%]{width:16px;font-size:15px}@keyframes _ngcontent-%COMP%_nai-spin{to{transform:rotate(360deg)}}"],changeDetection:0})}}return t})();function he(t){if(!Array.isArray(t)||t.length===0)return"";let c=t[0]?.index??"",e=t[t.length-1]?.index??"";return`${t.length}:${c}:${e}`}function $i(t){if(!t)return null;if(Array.isArray(t.search?.flights)&&t.search.flights.length>0)return t.search.flights.slice();let c=t?.trip?.points;if(Array.isArray(c)){let e=c.find(a=>a?.type==="airport"&&a?.search&&a?.flights?.length)||c.find(a=>a?.flights?.length)||c[0];if(e?.flights?.length)return e.flights.slice()}return t.data?.flights?.length>0?t.data.flights.slice():null}function Lt(t,c){t&1&&(i(0,"div",13),p(1,"span"),s(2," Validating the brief and preparing live supplier searches "),n())}var wt=(()=>{class t{constructor(e){this._changeDetectorRef=e,this.searchReady=new Y,this.searchPanel={type:"package",title:"",heading:"",description:""},this.isPreparing=!1,this._search=null,this._trip=null}tripChanged(e){this._trip=e}searchChanged(e){if(!e){this.isPreparing=!0,this._changeDetectorRef.markForCheck();return}if(this._search=e,!re({search:this._search,trip:this._trip})){this.isPreparing=!1,this._changeDetectorRef.markForCheck();return}this.searchReady.emit({search:this._search,trip:this._trip}),this.isPreparing=!1,this._changeDetectorRef.markForCheck()}static{this.\u0275fac=function(a){return new(a||t)(P(I))}}static{this.\u0275cmp=W({type:t,selectors:[["express-package-v2"]],outputs:{searchReady:"searchReady"},standalone:!0,features:[G],decls:51,vars:9,consts:[["aria-labelledby","express-v2-title",1,"express-v2"],[1,"express-v2__workspace"],["aria-labelledby","express-v2-title",1,"express-v2__brief"],[1,"express-v2__desk-header"],[1,"express-v2__identity"],["aria-hidden","true",1,"express-v2__mark"],[3,"svgIcon"],[1,"express-v2__eyebrow"],["id","express-v2-title"],[1,"express-v2__live-status"],["aria-hidden","true"],[1,"express-v2__search"],[3,"tripChange","searchChange","cacheMode","panel"],["role","status","aria-live","polite",1,"express-v2__preparing"],[1,"express-v2__coverage"],["aria-label","Services included in the package search"],[1,"express-v2__next-step"]],template:function(a,r){a&1&&(i(0,"section",0)(1,"main",1)(2,"article",2)(3,"header",3)(4,"div",4)(5,"span",5),p(6,"mat-icon",6),n(),i(7,"div")(8,"div",7)(9,"span"),s(10,"Express Package"),n(),i(11,"span"),s(12,"Consultant workspace"),n()(),i(13,"h1",8),s(14,"Turn a travel brief into a priced package"),n(),i(15,"p"),s(16,"Search live flights, stays and ground services from one client brief."),n()()(),i(17,"div",9)(18,"span"),p(19,"i",10),s(20," Live supplier inventory"),n(),i(21,"small"),s(22,"No inventory is held until the quote is confirmed."),n()()(),i(23,"div",11)(24,"search-widget",12),T("tripChange",function(h){return r.tripChanged(h)})("searchChange",function(h){return r.searchChanged(h)}),n()(),v(25,Lt,3,0,"div",13),i(26,"footer",14)(27,"div")(28,"span"),s(29,"Package coverage"),n(),i(30,"p"),s(31,"Search available services from your selected providers."),n()(),i(32,"ul",15)(33,"li"),p(34,"mat-icon",6),s(35,"Flights"),n(),i(36,"li"),p(37,"mat-icon",6),s(38,"Stay"),n(),i(39,"li"),p(40,"mat-icon",6),s(41,"Transfers"),n(),i(42,"li"),p(43,"mat-icon",6),s(44,"Car rental"),n()(),i(45,"div",16),p(46,"mat-icon",6),i(47,"span")(48,"strong"),s(49,"Next"),n(),s(50,"Compare the total and swap any service."),n()()()()()()),a&2&&(
1o(6),d("svgIcon","mat_outline:bolt"),o(18),d("cacheMode",!1)("panel",r.searchPanel),o(),x(r.isPreparing?25:-1),o(9),d("svgIcon","mat_outline:flight"),o(3),d("svgIcon","heroicons_outline:home-modern"),o(3),d("svgIcon","mat_outline:airport_shuttle"),o(3),d("svgIcon","mat_outline:directions_car"),o(3),d("svgIcon","heroicons_outline:document-check"))},dependencies:[te,ee,mt],styles:['[_nghost-%COMP%]{display:block}.express-v2[_ngcontent-%COMP%]{--express-ink: #172234;--express-muted: #637083;--express-line: #dce3ea;--express-surface: #ffffff;--express-canvas: #f3f6f9;--express-accent: #d5821d;--express-accent-soft: #fff4e2;--express-success: #168060;box-sizing:border-box;min-height:calc(100dvh - 5rem);padding:clamp(.75rem,1.2vw,1rem);color:var(--express-ink);background:linear-gradient(rgba(23,34,52,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(23,34,52,.025) 1px,transparent 1px),var(--express-canvas);background-size:2rem 2rem}.express-v2__desk-header[_ngcontent-%COMP%], .express-v2__progress[_ngcontent-%COMP%], .express-v2__workspace[_ngcontent-%COMP%]{width:100%;margin-inline:auto}.express-v2__desk-header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:0;padding:.75rem 1rem;border-bottom:1px solid var(--express-line);background:linear-gradient(90deg,#fbfcfd,#fff)}.express-v2__identity[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.7rem;min-width:0}.express-v2__identity[_ngcontent-%COMP%] h1[_ngcontent-%COMP%]{margin:.12rem 0 0;font-size:clamp(1.3rem,1.8vw,1.65rem);font-weight:750;letter-spacing:-.045em;line-height:1.05;text-wrap:balance}.express-v2__identity[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{max-width:64ch;margin:.2rem 0 0;color:var(--express-muted);font-size:.72rem;line-height:1.35}.express-v2__mark[_ngcontent-%COMP%]{display:grid;flex:0 0 2.2rem;width:2.2rem;height:2.2rem;place-items:center;border:1px solid #ecd6b9;border-radius:.65rem;color:#9b5b12;background:var(--express-accent-soft);box-shadow:inset 0 0 0 .25rem #ffffff73}.express-v2__eyebrow[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.65rem}.express-v2__eyebrow[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:first-child{color:#81521a;font-size:.68rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.express-v2__eyebrow[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:last-child{padding:.22rem .48rem;border:1px solid #cfd8e2;border-radius:.3rem;color:#536174;background:#ffffffad;font-size:.62rem;font-weight:700;letter-spacing:.04em}.express-v2__live-status[_ngcontent-%COMP%]{flex:0 0 auto;padding-left:.9rem;border-left:1px solid var(--express-line);text-align:right}.express-v2__live-status[_ngcontent-%COMP%] > span[_ngcontent-%COMP%], .express-v2__live-status[_ngcontent-%COMP%] small[_ngcontent-%COMP%]{display:block}.express-v2__live-status[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]{color:#245a49;font-size:.7rem;font-weight:750}.express-v2__live-status[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{display:inline-block;width:.5rem;height:.5rem;margin-right:.4rem;border:2px solid #b8e7d7;border-radius:50%;background:var(--express-success);box-sizing:content-box;vertical-align:-.08rem}.express-v2__live-status[_ngcontent-%COMP%] small[_ngcontent-%COMP%]{margin-top:.18rem;color:var(--express-muted);font-size:.6rem}.express-v2__progress[_ngcontent-%COMP%]{margin-bottom:.65rem;overflow:hidden;border:1px solid var(--express-line);border-radius:.65rem;background:#ffffffc2;box-shadow:0 .65rem 2rem #2434490b;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.express-v2__progress[_ngcontent-%COMP%] ol[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:0;padding:0;list-style:none}.express-v2__progress[_ngcontent-%COMP%] li[_ngcontent-%COMP%]{position:relative;display:flex;align-items:center;gap:.5rem;min-width:0;padding:.48rem .75rem;color:#7b8796}.express-v2__progress[_ngcontent-%COMP%] li[_ngcontent-%COMP%]:not(:last-child){border-right:1px solid var(--express-line)}.express-v2__progress[_ngcontent-%COMP%] li[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]{display:grid;flex:0 0 1.45rem;width:1.45rem;height:1.45rem;place-items:center;border:1px solid #d6dde5;border-radius:50%;font-size:.62rem;font-weight:800;font-variant-numeric:tabular-nums}.express-v2__progress[_ngcontent-%COMP%] li[_ngcontent-%COMP%] strong[_ngcontent-%COMP%], .express-v2__progress[_ngcontent-%COMP%] li[_ngcontent-%COMP%] small[_ngcontent-%COMP%]{display:block}.express-v2__progress[_ngcontent-%COMP%] li[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{color:#526072;font-size:.76rem}.express-v2__progress[_ngcontent-%COMP%] li[_ngcontent-%COMP%] small[_ngcontent-%COMP%]{margin-top:.15rem;font-size:.65rem}.express-v2__progress[_ngcontent-%COMP%] li.is-active[_ngcontent-%COMP%]{color:#8e5717;background:linear-gradient(90deg,#fff8ec,#fff8ec59)}.express-v2__progress[_ngcontent-%COMP%] li.is-active[_ngcontent-%COMP%]:before{position:absolute;inset:auto 0 -1px;height:2px;background:var(--express-accent);content:""}.express-v2__progress[_ngcontent-%COMP%] li.is-active[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]{border-color:#dfad6f;color:#fff;background:#a86517}.express-v2__progress[_ngcontent-%COMP%] li.is-active[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{color:var(--express-ink)}.express-v2__brief[_ngcontent-%COMP%]{display:block;min-height:0;overflow:hidden;border:1px solid #d7dfe7;border-radius:.75rem;background:var(--express-surface);box-shadow:0 .8rem 2rem #20304512,0 .2rem .6rem #20304509}.express-v2__brief-header[_ngcontent-%COMP%]{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.7rem;padding:.7rem 1rem;border-bottom:1px solid var(--express-line);background:linear-gradient(90deg,#fbfcfd,#fff)}.express-v2__brief-header[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]:nth-child(2) > span[_ngcontent-%COMP%]{color:#86602f;font-size:.65rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase}.express-v2__brief-header[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{margin:.15rem 0 0;font-size:clamp(1rem,1.4vw,1.2rem);font-weight:750;letter-spacing:-.025em}.express-v2__brief-header[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:.2rem 0 0;color:var(--express-muted);font-size:.75rem}.express-v2__step-number[_ngcontent-%COMP%]{display:grid;width:2.2rem;height:2.2rem;place-items:center;border-radius:.65rem;color:#fff;background:var(--express-ink);box-shadow:0 .55rem 1.1rem #1722342b;font-size:.72rem;font-weight:800;font-variant-numeric:tabular-nums}
1.express-v2__setup-time[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.45rem;padding:.4rem .55rem;border:1px solid #e1e6eb;border-radius:.6rem;color:var(--express-muted);background:#f7f9fb}.express-v2__setup-time[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{width:1.05rem;height:1.05rem;color:#8b6028;font-size:1.05rem}.express-v2__setup-time[_ngcontent-%COMP%] span[_ngcontent-%COMP%], .express-v2__setup-time[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{display:block}.express-v2__setup-time[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-size:.64rem;line-height:1.35}.express-v2__setup-time[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{color:#4a5667;font-size:.68rem}.express-v2__search[_ngcontent-%COMP%]{display:block;padding:.65rem 1rem .55rem}.express-v2__search[_ngcontent-%COMP%] search-widget[_ngcontent-%COMP%]{display:block;width:100%}.express-v2__preparing[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.65rem;margin:0 1.4rem 1rem;padding:.65rem .8rem;border:1px solid #efddc3;border-radius:.55rem;color:#75501f;background:#fff9ef;font-size:.75rem}.express-v2__preparing[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]{width:.5rem;height:.5rem;border-radius:50%;background:var(--express-accent);animation:_ngcontent-%COMP%_express-v2-pulse 1s ease-in-out infinite}.express-v2__coverage[_ngcontent-%COMP%]{display:grid;grid-template-columns:minmax(10rem,.72fr) minmax(22rem,1.45fr) minmax(12rem,.83fr);align-items:center;gap:.8rem;padding:.6rem 1rem;border-top:1px solid var(--express-line);background:#f7f9fb}.express-v2__coverage[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]:first-child > span[_ngcontent-%COMP%]{color:#4b586a;font-size:.65rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase}.express-v2__coverage[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]:first-child p[_ngcontent-%COMP%]{margin:.1rem 0 0;color:var(--express-muted);font-size:.62rem;line-height:1.25}.express-v2__coverage[_ngcontent-%COMP%] ul[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.35rem;justify-self:end;width:min(100%,31rem);margin:0;padding:0;list-style:none}.express-v2__coverage[_ngcontent-%COMP%] li[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;gap:.35rem;min-width:0;padding:.38rem .4rem;border:1px solid #dfe5eb;border-radius:.45rem;color:#465366;background:#fff;font-size:.66rem;font-weight:700}.express-v2__coverage[_ngcontent-%COMP%] li[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{width:1rem;height:1rem;color:#8c622c;font-size:1rem}.express-v2__next-step[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:flex-end;gap:.55rem;min-width:0;padding-left:1rem;border-left:1px solid var(--express-line);color:var(--express-muted)}.express-v2__next-step[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{flex:0 0 auto;width:1.15rem;height:1.15rem;color:var(--express-success);font-size:1.15rem}.express-v2__next-step[_ngcontent-%COMP%] span[_ngcontent-%COMP%], .express-v2__next-step[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{display:block}.express-v2__next-step[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-size:.65rem;line-height:1.4}.express-v2__next-step[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{color:#3c495b;font-size:.68rem}.express-v2-results[_ngcontent-%COMP%]{min-height:100%}.express-v2-results__bar[_ngcontent-%COMP%]{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:-.5rem 1.25rem 1rem;padding:.8rem 1rem;border:1px solid #d8e0e8;border-radius:.75rem;background:color-mix(in srgb,var(--fuse-bg-card, #fff) 94%,transparent);box-shadow:0 .8rem 2rem #192d4a14;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.express-v2-results__bar[_ngcontent-%COMP%] div[_ngcontent-%COMP%] > span[_ngcontent-%COMP%], .express-v2-results__bar[_ngcontent-%COMP%] div[_ngcontent-%COMP%] > strong[_ngcontent-%COMP%]{display:block}.express-v2-results__bar[_ngcontent-%COMP%] div[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]{color:#7b5b32;font-size:.65rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.express-v2-results__bar[_ngcontent-%COMP%] div[_ngcontent-%COMP%] > strong[_ngcontent-%COMP%]{margin-top:.12rem;font-size:.95rem}.express-v2-results__bar[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{white-space:nowrap}[_nghost-%COMP%] .express-v2 .search-widget-shell{min-height:0!important;margin:0!important;padding:0!important}[_nghost-%COMP%] .express-v2 .search-widget-shell>.flex.flex-col.items-center.mb-4{align-items:flex-end!important;margin-bottom:.2rem!important}[_nghost-%COMP%] .express-v2 .search-widget-shell>.flex.flex-col.items-center.mb-4:empty{display:none!important}[_nghost-%COMP%] .express-v2 .search-widget-shell>.flex.flex-col.items-center.mb-4 button{min-height:2.35rem;margin-top:0!important;border-color:#d7dee6;border-radius:.55rem;color:#536174;background:#fff;font-size:.7rem}[_nghost-%COMP%] .express-v2 .search-widget-fields{align-items:stretch;gap:.45rem!important}[_nghost-%COMP%] .express-v2 .search-widget-fields .search-widget-field{dis
1play:grid;grid-template-rows:1rem 3rem 1rem;row-gap:.35rem;min-width:0;padding:0}[_nghost-%COMP%] .express-v2 .search-widget-fields .search-widget-field>label{align-self:end;color:#647185!important;font-size:.63rem!important;font-weight:800;letter-spacing:.08em;line-height:1}[_nghost-%COMP%] .express-v2 .search-widget-fields .search-widget-field-control{display:flex;align-items:stretch;width:100%;height:3rem;margin-top:0!important}[_nghost-%COMP%] .express-v2 .search-widget-fields .search-widget-field-extra{min-height:1rem;margin:0!important;line-height:1rem}[_nghost-%COMP%] .express-v2 .search-widget-fields .trip-input, [_nghost-%COMP%] .express-v2 .search-widget-fields .date-select, [_nghost-%COMP%] .express-v2 .search-widget-fields .search-widget-pax-btn, [_nghost-%COMP%] .express-v2 .search-widget-fields .search-widget-date-btn, [_nghost-%COMP%] .express-v2 .search-widget-fields .search-widget-search-btn{height:3rem!important;min-height:3rem!important}[_nghost-%COMP%] .express-v2 .search-widget-fields .mat-mdc-form-field-subscript-wrapper{display:none}[_nghost-%COMP%] .express-v2 .search-widget-fields .mat-mdc-text-field-wrapper{border:1px solid #dbe2e9;border-radius:.55rem;background:#f9fafb;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}[_nghost-%COMP%] .express-v2 .search-widget-fields .mat-mdc-text-field-wrapper:hover{border-color:#b9c5d1;background:#fff}[_nghost-%COMP%] .express-v2 .search-widget-fields .mat-focused .mat-mdc-text-field-wrapper{border-color:#be7a28;background:#fff;box-shadow:0 0 0 3px #d5821d1f}[_nghost-%COMP%] .express-v2 .search-widget-fields .mdc-line-ripple{display:none}[_nghost-%COMP%] .express-v2 .search-widget-fields .search-widget-search-btn{border-radius:.55rem!important;color:#fff!important;background:#b66d18!important;box-shadow:0 .6rem 1.2rem #b66d1833;font-size:.78rem;letter-spacing:.01em;transition:transform .18s ease,box-shadow .18s ease,background .18s ease}[_nghost-%COMP%] .express-v2 .search-widget-fields .search-widget-search-btn:not(:disabled):hover{background:#9f5e13!important;box-shadow:0 .75rem 1.4rem #b66d1842;transform:translateY(-1px)}[_nghost-%COMP%] .express-v2 .search-widget-fields .search-widget-search-btn:not(:disabled):active{transform:translateY(1px)}.dark[_nghost-%COMP%] .express-v2[_ngcontent-%COMP%], .dark [_nghost-%COMP%] .express-v2[_ngcontent-%COMP%]{--express-ink: #edf1f6;--express-muted: #9ca8b8;--express-line: #303b49;--express-surface: #18212d;--express-canvas: #111821;--express-accent-soft: #352714}.dark[_nghost-%COMP%] .express-v2__mark[_ngcontent-%COMP%], .dark [_nghost-%COMP%] .express-v2__mark[_ngcontent-%COMP%]{border-color:#61441f;color:#efb669;box-shadow:inset 0 0 0 .25rem #ffffff05}.dark[_nghost-%COMP%] .express-v2__progress[_ngcontent-%COMP%], .dark [_nghost-%COMP%] .express-v2__progress[_ngcontent-%COMP%], .dark[_nghost-%COMP%] .express-v2__brief[_ngcontent-%COMP%], .dark [_nghost-%COMP%] .express-v2__brief[_ngcontent-%COMP%]{border-color:var(--express-line);background:var(--express-surface)}.dark[_nghost-%COMP%] .express-v2__progress[_ngcontent-%COMP%] li.is-active[_ngcontent-%COMP%], .dark [_nghost-%COMP%] .express-v2__progress[_ngcontent-%COMP%] li.is-active[_ngcontent-%COMP%]{background:linear-gradient(90deg,#322818,#32281833)}.dark[_nghost-%COMP%] .express-v2__brief-header[_ngcontent-%COMP%], .dark [_nghost-%COMP%] .express-v2__brief-header[_ngcontent-%COMP%], .dark[_nghost-%COMP%] .express-v2__coverage[_ngcontent-%COMP%], .dark [_nghost-%COMP%] .express-v2__coverage[_ngcontent-%COMP%]{background:#151e29}.dark[_nghost-%COMP%] .express-v2__setup-time[_ngcontent-%COMP%], .dark [_nghost-%COMP%] .express-v2__setup-time[_ngcontent-%COMP%], .dark[_nghost-%COMP%] .express-v2__coverage[_ngcontent-%COMP%] li[_ngcontent-%COMP%], .dark [_nghost-%COMP%] .express-v2__coverage[_ngcontent-%COMP%] li[_ngcontent-%COMP%]{border-color:#35404e;background:#202a36}@keyframes _ngcontent-%COMP%_express-v2-pulse{0%,to{opacity:.35;transform:scale(.85)}50%{opacity:1;transform:scale(1)}}@media (max-width: 1023px){.express-v2__desk-header[_ngcontent-%COMP%]{align-items:flex-start}.express-v2__coverage[_ngcontent-%COMP%]{grid-template-columns:1fr}.express-v2__next-step[_ngcontent-%COMP%]{justify-content:flex-start;padding-top:.75rem;padding-left:0;border-top:1px solid var(--express-line);border-left:0}}@media (max-width: 767px){.express-v2[_ngcontent-%COMP%]{padding:1rem}.express-v2__desk-header[_ngcontent-%COMP%]{display:block}.express-v2__identity[_ngcontent-%COMP%]{align-items:flex-start}.express-v2__live-status[_ngcontent-%COMP%]{margin-top:1rem;padding-top:.75rem;padding-left:0;border-top:1px solid var(--express-line);border-left:0;text-align:left}.express-v2__progress[_ngcontent-%COMP%]{overflow-x:auto}.express-v2__progress[_ngcontent-%COMP%] ol[_ngcontent-%COMP%]{min-width:38rem}.express-v2__brief-header[_ngcontent-%COMP%]{grid-template-columns:auto minmax(0,1fr);padding:1rem}
1.express-v2__setup-time[_ngcontent-%COMP%]{display:none}.express-v2__search[_ngcontent-%COMP%]{padding:1rem}.express-v2__coverage[_ngcontent-%COMP%]{padding:.9rem 1rem}.express-v2__coverage[_ngcontent-%COMP%] ul[_ngcontent-%COMP%]{grid-template-columns:repeat(2,minmax(0,1fr))}.express-v2-results__bar[_ngcontent-%COMP%]{position:static;align-items:flex-start;margin:0 .75rem 1rem}.express-v2-results__bar[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{min-width:0}}@media (prefers-reduced-motion: reduce){.express-v2__preparing[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]{animation:none}[_nghost-%COMP%] .express-v2 .search-widget-search-btn{transition:none}}'],changeDetection:0})}}return t})();var Bt="ChIJaZQ_ZlndTxkRYWDYnFLM-qY";function N(t){return(t??"").toString().trim().toUpperCase()}function bt(t,c){if(!t)return!1;let e=t.locationTo;if(e?.place_id&&String(e.place_id)===Bt||N(e?.searchTerm)==="VFA")return!0;let a=N(e?.name);if(a.includes("VICTORIA FALLS")&&(a.includes("AIRPORT")||a.includes("(VFA")))return!0;let r=N(t.toText);if(r==="VFA"||r.includes("VICTORIA FALLS")&&r.includes("AIRPORT")||r.startsWith("VICTORIA FALLS")&&r.includes("AIR"))return!0;let l=N(e?.description);if(l.includes("VICTORIA FALLS")&&(l.includes("AIRPORT")||l.includes("VFA")))return!0;let h=N(e?.structured_formatting?.main_text);if(h.includes("VICTORIA FALLS")&&(h.includes("AIRPORT")||h.includes("VFA")))return!0;if(c?.points?.length){let _=c.points.filter(b=>b.type==="airport").reduce((b,O)=>O.index>(b?.index??-1)?O:b,null);if(N(_?.data?.searchTerm)==="VFA")return!0;let u=N(_?.title);if(u.includes("VICTORIA FALLS")&&u.includes("AIRPORT"))return!0}return!1}function Ct(t){return t?t.method==="dynamic"||t.method==="multitype"&&t.type==="multitype":!1}var yt=(()=>{class t{constructor(e){this._confirmation=e,this._shownKeys=new Set,this._openDialog=null}resetForNewSearch(){this._shownKeys.clear()}showAfterPackageAccommodationLoaded(e,a){if(!e||!a||!Ct(e)||!bt(e,a)||this._openDialog)return;let r=e.dateFrom?new Date(e.dateFrom).getTime():0,l=`vfa-accom|${e.method}|${e.locationTo?.place_id||e.toText||""}|${r}`;this._shownKeys.has(l)||(this._shownKeys.add(l),this._openDialog=this._confirmation.open({title:"Important",message:"Important: This is the lowest available transfer rate and may not match your selected property. Please verify and amend to the correct hotel transfer to ensure booking validity.",icon:{show:!0,name:"heroicons_outline:exclamation-triangle",color:"warn"},actions:{confirm:{show:!0,label:"Okay",color:"primary"},cancel:{show:!1,label:"Cancel"}},dismissible:!0}),this._openDialog.afterClosed().subscribe(()=>{this._openDialog=null}))}static{this.\u0275fac=function(a){return new(a||t)(_e(Qe))}}static{this.\u0275prov=ue({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();var Wt=["stepperPackages"],$t=["carListRef"],Gt=(t,c)=>c.id,Ht=(t,c)=>c.id||t,Yt=(t,c)=>c.itinerary.guid,Ut=(t,c)=>({"bg-card shadow":t,"bg-transparent":c});function Kt(t,c){if(t&1&&(i(0,"div",70),p(1,"mat-icon",8),i(2,"span"),s(3),n()()),t&2){let e=g().$implicit;S("is-error",e.isError),o(),d("svgIcon",e.isError?"heroicons_outline:exclamation-circle":e.isComplete?"heroicons_outline:check":"heroicons_outline:arrow-path"),o(2),k(e.typedText||e.text)}}function Zt(t,c){if(t&1&&v(0,Kt,4,4,"div",71),t&2){let e=c.$implicit,a=c.$index,r=c.$count;x(!e.isComplete||a===r-1?0:-1)}}function Jt(t,c){if(t&1&&R(0,Zt,1,1,null,null,Gt),t&2){let e=g(3);F(e.view.statusses)}}function Xt(t,c){t&1&&(i(0,"div",70),p(1,"mat-icon",72),i(2,"span"),s(3,"Starting live supplier search\u2026"),n()()),t&2&&(o(),d("svgIcon","heroicons_outline:arrow-path"))}function ei(t,c){if(t&1&&(i(0,"div",66),v(1,Jt,2,0)(2,Xt,4,1,"div",70),n()),t&2){let e=g(2);o(),x(e.view.statusses&&e.view.statusses.length>0?1:2)}}function ti(t,c){if(t&1){let e=E();i(0,"button",73),T("click",function(){C(e);let r=g(2);return y(r.dismissChatOverlay())}),p(1,"mat-icon",8),s(2," View results "),n()}t&2&&(o(),d("svgIcon","heroicons_outline:eye"))}function ii(t,c){if(t&1){let e=E();i(0,"div",3)(1,"div",61)(2,"div",62),p(3,"mat-icon",8),n(),i(4,"div",63)(5,"div",64),s(6),n(),i(7,"h2",65),s(8),n(),v(9,ei,3,1,"div",66),n(),i(10,"div",67),v(11,ti,3,1,"button",68),i(12,"button",69),T("click",function(){C(e);let r=g();return y(r.retryFromChatOverlay())}),s(13," Edit search "),n()()()()}if(t&2){let e=g();o(3),d("svgIcon",e.view.chatResultsReady?"heroicons_outline:check-circle":"heroicons_outline:chat-bubble-left-right"),o(3),k(e.view.chatResultsReady?"Re
1sults ready":"Building your package"),o(2),k(e.view.chatSummary),o(),x(e.view.chatResultsReady?-1:9),o(2),x(e.view.chatResultsReady?11:-1)}}function ri(t,c){t&1&&(i(0,"div",4),p(1,"mat-icon",74),i(2,"div",75),s(3,"Preparing your quick book search..."),n()()),t&2&&(o(),d("svgIcon","heroicons_outline:bolt"))}function ni(t,c){if(t&1&&(i(0,"div",5)(1,"div",76),s(2,"Quick book bundle"),n(),i(3,"div",77),s(4),n(),i(5,"div",78),s(6,"Dynamic pricing rerun in progress based on the bundle rules."),n()()),t&2){let e=g();o(4),k((e.view.quickBookBundle==null?null:e.view.quickBookBundle.name)||(e.view.quickBookBundle==null?null:e.view.quickBookBundle.supplierName))}}function ai(t,c){t&1&&p(0,"mat-icon",8),t&2&&d("svgIcon","heroicons_solid:check")}function si(t,c){t&1&&s(0," 1 ")}function oi(t,c){t&1&&p(0,"mat-icon",8),t&2&&d("svgIcon","heroicons_solid:check")}function li(t,c){t&1&&s(0," 2 ")}function ci(t,c){t&1&&s(0," Review, personalise and send ")}function di(t,c){if(t&1&&s(0),t&2){let e=g();A(" ",e.view.quoteItemCount," service",e.view.quoteItemCount===1?"":"s"," in Quote review ")}}function pi(t,c){t&1&&s(0," Review, personalise and send ")}function mi(t,c){t&1&&(i(0,"h3"),s(1,"Search"),n())}function hi(t,c){t&1&&s(0,"Packages")}function gi(t,c){t&1&&(i(0,"strong"),s(1,"Search stopped"),n(),i(2,"small"),s(3,"Review the brief and try again"),n())}function ui(t,c){if(t&1&&(i(0,"strong"),s(1),n(),i(2,"small"),s(3),n()),t&2){let e=g();o(),k(e.view.hasQuote?"Quote options created":"Package options ready"),o(2),k(e.view.hasQuote?"Open Quote review to personalise and send":e.view.quoteItemCount+" service"+(e.view.quoteItemCount===1?"":"s")+" added to Quote review")}}function _i(t,c){if(t&1&&(i(0,"strong"),s(1),n(),i(2,"small"),s(3),n()),t&2){let e=g();o(),k(e.view.search!=null&&e.view.search.flights&&(e.view.search!=null&&e.view.search.transfers)&&e.view.transfersReceived>=2?"Package options ready":"Live supplier search"),o(2),k(e.view.search!=null&&e.view.search.flights&&(e.view.search!=null&&e.view.search.transfers)&&e.view.transfersReceived>=2?"Compare the package options below":"Results update as suppliers respond")}}function fi(t,c){if(t&1&&(i(0,"h1",91),s(1),n()),t&2){let e=g().$implicit;o(),k(e.title)}}function vi(t,c){if(t&1&&v(0,fi,2,1,"h1",91),t&2){let e=c.$implicit;x(e.type=="hotel"?0:-1)}}function xi(t,c){t&1&&(i(0,"span")(1,"strong"),s(2,"Search stopped"),n(),s(3,"No package was created"),n())}
1function wi(t,c){t&1&&(i(0,"span")(1,"strong"),s(2,"Live inventory"),n(),s(3,"Supplier responses are arriving now"),n())}function bi(t,c){if(t&1&&(i(0,"div",85)(1,"span"),s(2,"Search interrupted"),n(),i(3,"h2"),s(4,"We couldn\u2019t complete this package search"),n(),i(5,"p"),s(6),n(),i(7,"button",92),p(8,"mat-icon",8),s(9," Edit trip brief "),n()()),t&2){let e=g(2);o(6),k(e.view.searchError.text||"Adjust the dates or destination and try again."),o(2),d("svgIcon","heroicons_outline:arrow-left")}}function Ci(t,c){t&1&&p(0,"i",94)}function yi(t,c){if(t&1&&(i(0,"div",86)(1,"span"),s(2,"Building the best combinations"),n(),i(3,"h2"),s(4),v(5,Ci,1,0,"i",93),n(),i(6,"p"),s(7,"Flights, ground services and stays are priced independently, then assembled into comparable packages."),n()()),t&2){let e=g(2);o(4),$(" ",e.view.statusses!=null&&e.view.statusses.length?e.view.statusses[e.view.statusses.length-1].typedText||e.view.statusses[e.view.statusses.length-1].text:"Connecting to travel suppliers"," "),o(),d("ngIf",(e.view.statusses==null?null:e.view.statusses.length)&&e.view.statusses[e.view.statusses.length-1].isTyping)}}function ki(t,c){if(t&1&&(i(0,"div"),p(1,"mat-icon",8),i(2,"span"),s(3),n()()),t&2){let e=c.$implicit;S("is-error",e.isError),o(),d("svgIcon",e.isError?"heroicons_outline:x-mark":"heroicons_solid:check"),o(2),k(e.text)}}function Pi(t,c){if(t&1&&(i(0,"div",97),R(1,ki,4,4,"div",98,Ht),J(3,"slice"),n()),t&2){let e=g(3);o(),F(X(3,0,e.view.statusses,-3))}}function Si(t,c){if(t&1&&(i(0,"aside",89)(1,"div",95)(2,"span"),s(3,"Supplier activity"),n(),i(4,"small"),s(5,"Live progress"),n()(),p(6,"network-activity-indicator",96),v(7,Pi,4,3,"div",97),n()),t&2){let e=g(2);o(6),d("inline",!0),o(),x(e.view.statusses!=null&&e.view.statusses.length?7:-1)}}function Ti(t,c){t&1&&(i(0,"footer",90),p(1,"mat-icon",8),s(2," You can leave this tab open. Results appear as soon as a complete package can be priced. "),n()),t&2&&(o(),d("svgIcon","heroicons_outline:information-circle"))}function Mi(t,c){if(t&1&&(i(0,"section",79)(1,"header",80)(2,"div")(3,"span"),s(4,"Express package"),n(),R(5,vi,1,1,null,null,oe),i(7,"p"),s(8),J(9,"date"),J(10,"date"),n()(),i(11,"div",81),p(12,"i"),v(13,xi,4,0,"span")(14,wi,4,0,"span"),n()(),i(15,"div",82)(16,"article",83)(17,"div",84),p(18,"span")(19,"mat-icon",8),n(),v(20,bi,10,2,"div",85)(21,yi,8,2,"div",86),i(22,"ol",87)(23,"li",88),p(24,"mat-icon",8),i(25,"span")(26,"strong"),s(27,"Brief"),n(),i(28,"small"),s(29,"Validated"),n()()(),i(30,"li"),p(31,"mat-icon",8),i(32,"span")(33,"strong"),s(34,"Flights"),n(),i(35,"small"),s(36),n()()(),i(37,"li"),p(38,"mat-icon",8),i(39,"span")(40,"strong"),s(41,"Ground"),n(),i(42,"small"),s(43),n()()(),i(44,"li"),p(45,"mat-icon",8),i(46,"span")(47,"strong"),s(48,"Stays"),n(),i(49,"small"),s(50),n()()()()(),v(51,Si,8,2,"aside",89),n(),v(52,Ti,3,1,"footer",90),n()),t&2){let e=g();S("is-error",e.view.searchError),o(5),F(e.view.trip.points),o(3),A("",X(9,32,e.view.search.dateFrom,"d MMM y")," \u2014 ",X(10,35,e.view.search.dateTo,"d MMM y"),""),o(3),S("is-error",e.view.searchError),o(2),x(e.view.searchError?13:14),o(4),S("is-error",e.view.searchError),o(2),d("svgIcon",e.view.searchError?"heroicons_outline:exclamation-triangle":"heroicons_outline:paper-airplane"),o(),x(e.view.searchError?20:21),o(4),d("svgIcon","heroicons_solid:check"),o(6),S("is-complete",e.view.packageFlightsComplete&&!e.view.searchError)("is-active",!e.view.packageFlightsComplete&&!e.view.searchError)("is-error",e.view.searchError),o(),d("svgIcon",e.view.searchError?"heroicons_outline:x-mark":e.view.packageFlightsComplete?"heroicons_solid:check":"mat_outline:flight"),o(5),k(e.view.searchError?!(e.view.search==null||e.view.search.flights==null)&&e.view.search.flights.length?"Stopped":"No results":e.view.packageFlightsComplete?"Priced":"Searching"),o(),S("is-complete",e.view.transfersReceived>=2)("is-active",!e.view.searchError&&e.view.packageFlightsComplete&&e.view.transfersReceived<2),o(),d("svgIcon",e.view.transfersReceived>=2?"heroicons_solid:check":"mat_outline:airport_shuttle"),o(5),k(e.view.transfersReceived>=2?"Ready":e.view.searchError?"Not started":"Queued"),o(),S("is-active",!e.view.searchError&&e.view.packageFlightsComplete&&e.view.transfersReceived>=2),o(),d("svgIcon","heroicons_outline:building-office-2"),o(5),k(e.view.searchError?"Not started":"Up next"),o(),x(e.view.searchError?-1:51),o(),x(e.view.searchError?-1:52)}}function Oi(t,c){t&1&&(i(0,"span"),s(1,"Loading saved options\u2026"),n())}function Ei(t,c){if(t&1){let e=E();i(0,"span"),s(1,"Could not load saved options. "),i(2,"button",104),T("click",function(){C(e);let r=g(2);return y(r.refreshQuoteProgress())}),s(3,"Retry"),n()()}}function Ii(t,c){if(t&1&&(i(0,"span"),s(1),n()),t&2){let e=g(2);o(),A("",e.view.savedQuoteOptions.length," saved option",e.view.savedQuoteOptions.length===1?"":"s","")}}function Ri(t,c){if(t&1&&(i(0,"mat-option",106),s(1),n()),t&2){let e=c.$implicit;d("value",e.itinerary.guid),o(),A("Option ",e.itinerary.option," \u2014 ",e.itinerary.reference,"")}}function Fi(t,c){if(t&1){let e=E();i(0,"mat-form-field",102)(1,"mat-label"),s(2,"Created quote options"),n(),i(3,"mat-select",105),be("valueChange",function(r){C(e);let l=g(2);return we(l.view.selectedQuoteGuid,r)||(l.view.selectedQuoteGuid=r),y(r)}),R(4,Ri,2,3,"mat-option",106,Yt),n()()}if(t&2){let e=g(2);o(3),xe("value",e.view.selectedQuoteGuid),o(),F(e.view.savedQuoteOptions)}}function zi(t,c){if(t&1){let e=E();i(0,"section",99)(1,"div",100)(2,"strong"),s(3,"Quotes for this itinerary"),n(),v(4,Oi,2,0,"span")(5,Ei,4,0,"span")(6,Ii,2,2,"span"),n(),i(7,"div",101),v(8,Fi,6,1,"mat-form-field",102),i(9,"button",103),T("click",function(){C(e);let r=g();return y(r.viewSelectedQuote())}),p(10,"mat-icon",8),s(11," View Quotes "),n()()()}if(t&2){let e=g();o(4),x(e.view.quoteOptionsLoading?4:e.view.quoteOptionsError?5:6),o(4),x(e.view.savedQuoteOptions.length?8:-1),o(),d("disabled",!e.canOpenQuoteReview()||e.view.quoteOptionsLoading),o(),d("svgIcon","heroicons_outline:document-text")}}function Ai(t,c){if(t&1){let e=E();i(0,"stay-list",107),T("resultChange",function(r){C(e);let l=g();return y(l.resultChanged(r))})("searchChangeRequested",function(){C(e);let r=g();return y(r.goBackToSearch())})("flightReplaced",function(){C(e);let r=g();return y(r.onFlightReplaced())})("packageAccommodationBundlesReady",function(){C(e);let r=g();return y(r.onPackageAccommodationBundlesReady())}),n()}if(t&2){let e=g(),a=ve(53);d("options",e.view.search)("trip",e.view.trip)("cacheMode",e.view.cacheMode)("displayMode","list")("compactHeader",!0)("compactFilters",!1)("resultsToolbar",a)}}function Di(t,c){t&1&&p(0,"network-activity-indicator")}function qi(t,c){if(t&1){let e=E();i(0,"car-list",111,2),T("resultChange",function(r){C(e);let l=g(2);return y(l.resultChanged(r,0))}),n()}if(t&2){let e=g(2);d("options",e.view.search)("trip",e.view.trip)("point",e.view.trip.points[1])("pointTo",e.view.trip.points[1])("cacheMode",e.view.cacheMode)}}function ji(t,c){if(t&1){let e=E();i(0,"transfer-list",111),T("resultChange",function(r){C(e);let l=g(2);return y(l.resultChanged(r,0))}),n()}if(t&2){let e=g(2);d("options",e.view.search)("trip",e.view.trip)("point",e.view.trip.points[2])("pointTo",e.view.trip.points[1])("cacheMode",e.view.cacheMode)}}function Vi(t,c){if(t&1){let e=E();i(0,"transfer-list",111),T("resultChange",function(r){C(e);let l=g(2);return y(l.resultChanged(r,1))}),n()}if(t&2){let e=g(2);d("options",e.view.search)("trip",e.view.trip)("point",e.view.trip.points[1])("pointTo",e.view.trip.points[2])("cacheMode",e.view.cacheMode)}}function Qi(t,c){if(t&1){let e=E();i(0,"div",108)(1,"flight-list",109),T("resultChange",function(r){C(e);let l=g();return y(l.resultChanged(r))}),n(),v(2,qi,2,5,"car-list",110)(3,ji,1,5,"transfer-list",110)(4,Vi,1,5,"transfer-list",110),n()}if(t&2){let e=g();o(),d("options",e.view.search)("trip",e.view.trip)("cacheMode",e.view.cacheMode),o(),d("ngIf",e.view.search&&e.view.packageFlightsComplete&&(e.view.search.flights==null?null:e.view.search.flights.length)>0&&e.view.trip.points.length>=2&&e.view.trip.points[1]),o(),d("ngIf",e.view.search&&e.view.packageFlightsComplete&&(e.view.search.flights==null?null:e.view.search.flights.length)>0&&(e.view.trip==null||e.view.trip.points==null?null:e.view.trip.points.length)>=3),o(),d("ngIf",e.view.search&&e.view.packageFlightsComplete&&(e.view.search.flights==null?null:e.view.search.flights.length)>0&&(e.view.trip==null||e.view.trip.points==null?null:e.view.trip.points.length)>=3)}}function Li(t,c){if(t&1){let e=E();i(0,"button",112),T("click",function(){let r=C(e).$implicit,l=g();return y(l.toggleFilter(r))}),s(1),n()}if(t&2){let e=c.$implicit;d("ngClass",Ce(2,Ut,e.selected,!e.selected)),o(),$(" ",e.name," ")}}var cn=(()=>{class t{constructor(e,a,r,l,h,f,_,u,b,O){this._formBuilder=e,this._tfmService=a,this._tfmCartService=r,this._quickChatService=l,this._cd=h,this.toaster=f,this._route=_,this._aiTravelService=u,this._vfaTransferNotice=b,this._zone=O,this.tripChange=new Y,this.cartChange=new Y,this.carList=null,this.stayList=null,this._hiddenListCdSubs=[],this._resultFlushTimer=null,this._pendingFlightSideEffects=!1,this._transferWatchdog=null,this.TRANSFER_WATCHDOG_MS=3e4,this.fromControl=new Ie(""),this.view={statusses:[],cacheMode:!1,destinations:[{name:"Zanzibar"},{name:"Mauritius",selected:!0},{name:"Cape Town"},{name:"Victoria Falls"}],quickBookLoading:!1,quickBookBundle:null,activeStep:0,searchError:null,flightSearchReady:!1,packageFlightsComplete:!1,chatOverlay:!1,chatSummary:"",chatResultsReady:!1,quoteItemCount:0,hasQuote:!1,savedQuoteOptions:[],selectedQuoteGuid:null,quoteOptionsLoading:!1,quoteOptionsError:!1},this.searchCompleteToastShown=!1,this.slowTimers=[],this.aiSearchPending=!1,this._typingTicker=null,this.typingSpeedMs=24,this._router=fe(Ee),this.quoteOptionsRequest=0,this.pendingStepperReset=!1,this.view.cacheMode=this._tfmService._cacheMode,this._statusChangeSub=this._tfmService.statusChange.subscribe(m=>{if(m.isError&&this.toaster.error(m.text,m.title||"Search interrupted",{timeOut:5e3,positionClass:"toast-bottom-right",toastClass:"ngx-toastr express-package-toast"}),m&&m.isError&&(this.view.searchError=m),this.view.statusses.filter(w=>
1w.id==m.id).length==0){this.view.statusses.forEach(M=>{M.isComplete=!0});let w=ae(ne({},m),{isComplete:!m.isError,typedText:"",fullText:m.text||"",isTyping:!1});this.view.statusses.push(w),this.startTyping(w,m.text||"",!!m.isError)}else{let w=this.view.statusses.filter(M=>M.id==m.id)[0];w.text=m.text,w.title=m.title,w.isComplete=!m.isError,w.isError=m.isError,w.fullText=m.text||"",this.startTyping(w,m.text||"",!!m.isError)}this._cd.detectChanges()})}ngOnInit(){this._cartChangeSub=this._tfmCartService.cartChange.subscribe(f=>{this.view.quoteItemCount=Array.isArray(f)?f.length:0,this._cd.markForCheck()}),this._quoteProgressSub=this._tfmService.itinGuidChange.subscribe(f=>{(!f||!this._tfmCartService.quoteCreateInProgress$.value)&&this.refreshQuoteProgress()}),this._quoteCreatedSub=this._tfmCartService.quoteCreateSucceeded$.subscribe(()=>{this.refreshQuoteProgress()});let e=this._tfmCartService.getCart();this.view.quoteItemCount=Array.isArray(e)?e.length:0,this.refreshQuoteProgress();let a=this._aiTravelService.consumePackageRequest(),r=!!a;if(a&&(this.view.search=a.search,this.view.trip=a.trip,this.view.statusses=[],this.view.transfersReceived=0,this._tfmService.uatPreviewFeaturesEnabled&&a.chatMeta?.source==="chat"&&(this.view.chatOverlay=!0,this.view.chatSummary=a.chatMeta.summary||"",this.view.chatResultsReady=!1),this.view.search&&(this.view.search.method="dynamic",L(this.view.search),B(this.view.search),this.ensureTripIntentDates()),this.view.trip&&this._tfmCartService.updateTrip(this.view.trip),this.aiSearchPending=!0),this.view.cacheMode&&!r){var l=this._tfmService.loadLocalStorage("search");l&&(l.method="dynamic",this.view.search=l,L(this.view.search),B(this.view.search),this.ensureTripIntentDates(),this._tfmService.log("popular",this.view.search));var h=this._tfmService.loadLocalStorage("trip");h&&(this.view.trip=h)}this._queryParamsSub=this._route.queryParams.subscribe(f=>{let _=f.bundleId;if(_&&this.startQuickBook(_),f.reset){let u=this._aiTravelService.consumePackageRequest();u&&(this.view.search=u.search,this.view.trip=u.trip,this.view.statusses=[],this.view.transfersReceived=0,this.view.searchError=null,this._tfmService.uatPreviewFeaturesEnabled&&u.chatMeta?.source==="chat"&&(this.view.chatOverlay=!0,this.view.chatSummary=u.chatMeta.summary||"",this.view.chatResultsReady=!1),this.view.search&&(this.view.search.method="dynamic",L(this.view.search),B(this.view.search),this.ensureTripIntentDates()),this.view.trip&&this._tfmCartService.updateTrip(this.view.trip)),this._stepper?(this._stepper.reset(),this._cd.detectChanges()):this.pendingStepperReset=!0,u&&setTimeout(()=>{this.searchClicked(),this._cd.detectChanges()},0)}})}ngAfterViewInit(){this.aiSearchPending&&(this.searchClicked(),this.aiSearchPending=!1,this._cd.detectChanges()),this.pendingStepperReset&&(this._stepper.reset(),this.pendingStepperReset=!1,this._cd.detectChanges()),[this._hiddenFlightCds,this._hiddenTransferCds,this._hiddenCarCds].forEach(e=>{e.forEach(a=>a.detach()),this._hiddenListCdSubs.push(e.changes.subscribe(a=>a.forEach(r=>r.detach())))})}startQuickBook(e){return H(this,null,function*(){if(!this.view.quickBookLoading){this.view.quickBookLoading=!0,this.view.quickBookBundle=null;try{let r=(yield this._tfmService.filterBundles({id:e,rateType:"pps",isActive:!0},!1))?.content??[],h=(Array.isArray(r)?r:Object.values(r))[0];if(!h){this.toaster.error("Bundle not found for quick book."),this.view.quickBookLoading=!1;return}let f=yield this.buildQuickBookPayload(h);if(!f){this.view.quickBookLoading=!1;return}this.view.quickBookBundle=h,this.view.search=f.search,this.view.trip=f.trip,this.view.statusses=[],this.view.transfersReceived=0,this.view.carsReceived=0,this._tfmCartService.updateSearch(this.view.search),this._tfmCartService.updateTrip(this.view.trip),setTimeout(()=>{this._stepper&&this.searchClicked()},0)}catch(a){console.error("Quick book failed:",a),this.toaster.error("Unable to rerun the bundle search.")}finally{this.view.quickBookLoading=!1,this._cd.detectChanges()}}})}buildQuickBookPayload(e){return H(this,null,function*(){let a=this.parseDate(e.departDate||e.search?.validFrom||e.validFrom||e.search?.departDate),r=this.parseDate(e.returnDate||e.search?.validTo||e.validTo||e.search?.returnDate);if(!a)return this.toaster.error("Bundle is missing a departure date."),null;let l=r||this.addDays(a,e.nights||7),h=e.originName||e.search?.fromText||e.search?.from||e.origin||"",f=e.destinationName||e.destination||e.search?.toText||e.search?.to||"";if(!h||!f)return this.toaster.error("Bundle is missing origin or destination details."),null;let _=e.search?.locationFrom?.place_id?this.normalizePlace(e.search.locationFrom,h):this.normalizePlace(yield this.resolvePlace(h,"airports"),h),u=e.search?.locationTo?.place_id?this.normalizePlace(e.search.locationTo,f):this.normalizePlace(yield this.resolvePlace(f,"airports"),f),b=this.normalizePlace(yield this.resolvePlace(f,"cities"),f);if(!_?.place_id||!u?.place_id)return this.toaster.error("Unable to resolve bundle airports for quick book."),null;let O=b?.place_id?b:u,m={adult:e.adults??e.search?.pax?.adult??2,teen:e.teens??e.search?.pax?.teen??0,child:e.children??e.search?.pax?.child??0,infant:e.infants??e.search?.pax?.infant??0};m.total=m.adult+m.teen+m.child+m.infant;let w=e.search?.occupancy&&e.search.occupancy.length>0?e.search.occupancy:[{adultCount:m.adult,teenCount:m.teen,childCount:m.child,infantCount:m.infant,childAges:e.search?.childAges??""}],M={method:"dynamic",dateFrom:a,dateTo:l,nights:e.nights||this.getNights(a,l),pax:m,occupancy:w,locationFrom:_,locationTo:u,fromText:_.searchTerm||_.name||h,toText:u.searchTerm||u.name||f,filters:e.search?.filters??{},flightSegments:e.search?.flightSegments??null};L(M),B(M),M.tripIntentDateFrom=new Date(a),M.tripIntentDateTo=new Date(l);let z={points:[{index:0,title:_.name||h,date:a,nights:0,type:"airport",search:!0,showInCart:!0,place_id:_.place_id,data:_,options:{isReturn:!0}},{index:1,title:O.name||f,date:a,dateTo:l,nights:this.getNights(a,l),type:"hotel",search:!0,showInCart:!0,place_id:O.place_id,options:{isReturn:!0}},{index:2,title:u.name||f,date:l,nights:0,type:"airport",search:!1,showInCart:!0,place_id:u.place_id,data:u,options:{isReturn:!0}}]};return{search:M,trip:z}})}resolvePlace(e,a){return H(this,null,function*(){if(!e)return null;try{return(yield U(this._tfmService.getPlaces(e,a)))?.content?.predictions?.[0]??null}catch(r){return console.error("Failed to resolve place",e,a,r),null}})}normalizePlace(e,a){if(!e)return{name:a,searchTerm:a};let r=e.name||e.description||e.structured_formatting?.main_text||a,l=e.searchTerm||e.structured_formatting?.main_text||a;return ae(ne({},e),{name:r,searchTerm:l})}parseDate(e){if(!e)return null;let a=new Date(e);return isNaN(a.getTime())?null:a}addDays(e,a){let r=new Date(e);return r.setDate(r.getDate()+a),r}getNights(e,a){let l=(a.getTime()-e.getTime())/(24*60*60*1e3);return Math.max(1,Math.ceil(l))}searchClicked(){if(this._vfaTransferNotice.resetForNewSearch(),this.view.searchError=null,this.view.statusses=[],this.clearTypingTimers(),this.searchCompleteToastShown=!1,this._tfmService.resetNetworkActivity(),this.resetToasts(),this.progressToastId=this.toaster.info("Searching flights, transfers and stays to build your package.","Building packages",{disableTimeOut:!0,tapToDismiss:!1,positionClass:"toast-bottom-right",toastClass:"ngx-toastr express-package-toast"}).toastId,this.slowTimers.push(setTimeout(()=>{this.slowToastId=this.toaster.info("Supplier responses are still arriving. You can leave this tab open.","Still building your package",{timeOut:5e3,positionClass:"toast-bottom-right",toastClass:"ngx-toastr express-package-toast"}).toastId},12e3)),this.slowTimers.push(setTimeout(()=>{this.slowerToastId=this.toaster.warning("Taking longer than usual. We're still searching \u2014 no need to refresh.","Search still running",{timeOut:7e3,positionClass:"toast-bottom-right",toastClass:"ngx-toastr express-package-toast"}).toastId},25e3)),this.slowTimers.push(setTimeout(()=>{this.hangToastId=this.toaster.error("This search is taking too long. You can keep waiting, or adjust dates/destination and try again.","Supplier response delayed",{timeOut:8e3,positionClass:"toast-bottom-right",toastClass:"ngx-toastr express-package-toast"}).toastId},45e3)),this.view.transfersReceived=0,this.view.carsReceived=0,this.view.search&&(L(this.view.search),B(this.view.search),this.view.search.transfers=[],this.view.search.flights=[],this.view.search.packageFlightsComplete=!1,this.view.packageFlightsComplete=!1),this.view.trip?.points)for(let e of this.view.trip.points)e?.type==="airport"&&(e.flights=[]);this.view.flightSearchReady=!1,this._cd.detectChanges(),this._stepper.next(),setTimeout(()=>{this.view.flightSearchReady=!0,this._cd.detectChanges()},0)}startExpressSearch(e){this.tripChanged(e.trip),this.searchChanged(e.search)}
1tripChanged(e){this.view.trip=e,this._tfmCartService.updateTrip(this.view.trip)}searchChanged(e){e&&(this.view.search=e,this.view.search&&(this.view.search.method="dynamic",L(this.view.search),B(this.view.search),this.ensureTripIntentDates()),re({search:this.view.search,trip:this.view.trip})&&this._stepper?.selectedIndex===0&&this.searchClicked())}ensureTripIntentDates(){let e=this.view.search;!e?.dateFrom||!e?.dateTo||(e.tripIntentDateFrom||(e.tripIntentDateFrom=new Date(e.dateFrom)),e.tripIntentDateTo||(e.tripIntentDateTo=new Date(e.dateTo)))}goBackToSearch(){this._stepper&&(this._stepper.selectedIndex=0)}onPackageAccommodationBundlesReady(){this.searchCompleteToastShown||(this.searchCompleteToastShown=!0,this.completeToasts()),this.view.chatOverlay&&(this.view.chatResultsReady=!0,this._cd.detectChanges()),this._vfaTransferNotice.showAfterPackageAccommodationLoaded(this.view.search,this.view.trip)}dismissChatOverlay(){this.view.chatOverlay=!1,this._cd.detectChanges()}openQuoteReview(){this._tfmCartService.requestOpenQuoteReview()}canOpenQuoteReview(){return(this.view.quoteItemCount??0)>0||!!this.view.hasQuote}refreshQuoteProgress(){return H(this,null,function*(){let e=++this.quoteOptionsRequest,a=this._tfmService.getLocalItinGuid();if(this.view.hasQuote=!!a,this.view.savedQuoteOptions=[],this.view.selectedQuoteGuid=null,this.view.quoteOptionsError=!1,this.view.quoteOptionsLoading=!!a,this._cd.markForCheck(),!!a)try{let r=yield U(this._tfmService.getItin(a));if(e!==this.quoteOptionsRequest)return;let l=r?.content?.itinerary,h=l?.referenceID||l?.id;if(!h)throw new Error("Missing quote reference");let f=yield U(this._tfmService.getItinOptions(h));if(e!==this.quoteOptionsRequest)return;if(!Array.isArray(f?.content))throw new Error("Invalid quote options");this.view.savedQuoteOptions=f.content.filter(_=>_?.itinerary?.guid),this.view.selectedQuoteGuid=this.view.savedQuoteOptions.find(_=>_.itinerary.guid===a)?.itinerary.guid||this.view.savedQuoteOptions[0]?.itinerary.guid||null}catch{e===this.quoteOptionsRequest&&(this.view.quoteOptionsError=!0)}finally{e===this.quoteOptionsRequest&&(this.view.quoteOptionsLoading=!1,this._cd.markForCheck())}})}viewSelectedQuote(){let e=this.view.selectedQuoteGuid;e&&this.view.savedQuoteOptions.some(a=>a.itinerary.guid===e)?this._router.navigate(["/app/trips/review",e]):this.openQuoteReview()}retryFromChatOverlay(){this.view.chatOverlay=!1,this.view.chatResultsReady=!1,this.view.chatSummary="",this._stepper&&(this._stepper.selectedIndex=0),this._cd.detectChanges()}resultChanged(e,a=0){if(this._tfmService.log(e),!!e){if(e.error){this.view.searchError=e.error,this.resetToasts(),this._cd.detectChanges();return}if(this._mergeFlightsFromResultEvent(e)&&(this._pendingFlightSideEffects=!0),e.search?.packageFlightsComplete){if(this.view.packageFlightsComplete=!0,!this.view.search?.flights?.length){this.view.searchError={text:"No flights found for this route. Try different dates, origin, or flight providers."},this.resetToasts(),this._cd.detectChanges();return}
1this._pendingFlightSideEffects=!0,this._cd.markForCheck(),this._startTransferWatchdog()}if(e.data?.transfers&&(this.view.search.transfers||(this.view.search.transfers=[]),e.data.transfers.forEach(r=>{this.view.search.transfers.push(r)}),this._tfmService.log("transfers",e.data.transfers,a),this.view.transfersReceived+=1,this.view.transfersReceived>=2&&this._clearTransferWatchdog(),this._cd.markForCheck()),e.data?.cars){this.view.search.cars||(this.view.search.cars=[]),this.view.search.cars=this.view.search.cars.filter(l=>l?.point!==a),e.data.cars.forEach(l=>{l.point=a,this.view.search.cars.push(l)}),this._tfmService.log("cars",e.data.cars,a),e.carPickupDate!=null&&(this.view.search.carPickupDate=e.carPickupDate),e.carDropOffDate!=null&&(this.view.search.carDropOffDate=e.carDropOffDate);let r=this.view.trip?.points?.length>=2?1:a;this.view.trip?.points?.[r]&&(this.view.trip.points[r].cars||(this.view.trip.points[r].cars=[]),this.view.trip.points[r].cars=[...e.data.cars]),this.view.carsReceived+=1,this._cd.markForCheck()}this._pendingFlightSideEffects&&this._scheduleFlightSideEffectsFlush()}}_mergeFlightsFromResultEvent(e){let a=he(this.view.search?.flights);this.applyPackageFlightsFromTrip(e);let r=he(this.view.search?.flights);return a!==r}_scheduleFlightSideEffectsFlush(){this._resultFlushTimer!==null&&clearTimeout(this._resultFlushTimer),this._resultFlushTimer=setTimeout(()=>{this._resultFlushTimer=null,this._pendingFlightSideEffects&&(this._pendingFlightSideEffects=!1,this.view.search?.flights?.length>0&&(this.computeCarDatesFromFlights(),this.stayList?.refreshDefaultPackageFlightsIfNeeded()),this._cd.markForCheck())},150)}applyPackageFlightsFromTrip(e){if(!this.view.search)return;if(Array.isArray(e?.search?.flights)&&e.search.flights.length>0){this.view.search.flights=e.search.flights.slice();return}let a=[],r=e?.trip??this.view.trip;for(let l of r?.points||[])l?.type==="airport"&&Array.isArray(l.flights)&&l.flights.length>0&&a.push(...l.flights);a.length>0?this.view.search.flights=a:e?.data?.flights?.length>0&&(this.view.search.flights=e.data.flights.slice())}onFlightReplaced(){this.computeCarDatesFromFlights(),this.carList?.refreshCarRentalDates?.(),this._cd.markForCheck()}computeCarDatesFromFlights(){let e=this.view.search?.flights;if(!Array.isArray(e)||e.length===0)return;delete this.view.search.carPickupDate,delete this.view.search.carDropOffDate;let a=e.find(_=>_.selected)??e[0],r=a?.originDestinationOptions;if(!r?.length)return;let l=_=>{if(!_)return null;let u=_ instanceof Date?new Date(_.getTime()):new Date(_);return isNaN(u.getTime())?null:u},h=r[0]?.flightSegments?.length?r[0].flightSegments[r[0].flightSegments.length-1]:null,f=l(h?.arriveTime??h?.arrivalTime??r[0]?.arriveTime??r[0]?.arrivalTime);if(f&&(this.view.search.carPickupDate=f),r.length>=2){let _=r[1]?.flightSegments?.length?r[1].flightSegments[0]:null,u=l(_?.departTime??_?.departureTime??r[1]?.departTime??r[1]?.departureTime);u&&(this.view.search.carDropOffDate=this._tfmService.addHours(new Date(u.getTime()),-2))}if(!this.view.search.carDropOffDate&&e.length>1)for(let _ of e){if(_===a)continue;let u=_?.originDestinationOptions;if(!u?.length)continue;let b=u[0]?.flightSegments?.length?u[0].flightSegments[0]:null,O=l(b?.departTime??b?.departureTime??u[0]?.departTime??u[0]?.departureTime);if(O){this.view.search.carDropOffDate=this._tfmService.addHours(new Date(O.getTime()),-2);break}}if(!this.view.search.carDropOffDate){let _=this.view.trip?.points;if(_?.length>=2)for(let u=_.length-1;u>=1;u--){let b=_[u]?.flights;if(!Array.isArray(b)||b.length===0)continue;let m=(b.find(kt=>kt.selected)??b[0])?.originDestinationOptions;if(!m?.length)continue;let w=m.length>=2?1:0,M=m[w]?.flightSegments?.length?m[w].flightSegments[0]:null,z=l(M?.departTime??M?.departureTime??m[w]?.departTime??m[w]?.departureTime);if(z){this.view.search.carDropOffDate=this._tfmService.addHours(new Date(z.getTime()),-2);break}}}}isDomesticSearch(){let e=this.view?.search?.locationFrom,a=this.view?.search?.locationTo,r=m=>m?(m.country||m.countryName||m.countryCode||m.countryAccessCode||"").toString().trim().toLowerCase():"",l=r(e),h=r(a);if((!l||!h)&&this.view?.trip?.points?.length>=2){let m=this.view.trip.points,w=m[0],M=m[m.length-1];l||(l=r(e?.place_id?m.find(z=>z.place_id===e.place_id):w)),h||(h=r(a?.place_id?m.find(z=>z.place_id===a.place_id):M))}if(l&&h)return l===h;let f=(e?.title||e?.name||e?.description||"").toLowerCase(),_=(a?.title||a?.name||a?.description||"").toLowerCase(),u=["johannesburg","or tambo","jnb","cape town","cpt","durban","king shaka","dur","port elizabeth","plz","east london","george","grj"],b=u.some(m=>f.includes(m)),O=u.some(m=>_.includes(m));return!!(b&&O)}toggleFilter(e){this.view.destinations.forEach(a=>a.selected=!1),e.selected=!0}getInterestingInfo(){console.log("view",this.view);var e=this.view.trip.points.filter(a=>a.type=="hotel"&&a.search)[0];e&&this._quickChatService.sendMessageToAI(`Give me 1 interesting fact about ${e.title}`,[]).subscribe(a=>{if(this._tfmService.log(a),a.choices&&a.choices.length>0){var r=a.choices[0].message.content;this.view.interestingText=r,this._cd.detectChanges()}})}isStatusPanelVisible(){let e=this.view;return!e.packageFlightsComplete||!(e.search?.flights&&e.search?.transfers&&e.transfersReceived>=2)}startTyping(e,a,r){if(e.fullText=a||"",r||!e.fullText||!this.isStatusPanelVisible()){e.typedText=e.fullText,e.isTyping=!1,e._typeIndex=e.fullText.length;return}e.typedText="",e._typeIndex=0,e.isTyping=!0,this.ensureTypingTicker()}ensureTypingTicker(){this._typingTicker||this._zone.runOutsideAngular(()=>{this._typingTicker=setInterval(()=>{if(!this.isStatusPanelVisible()){for(let a of this.view.statusses)a?.isTyping&&(a.typedText=a.fullText||"",a._typeIndex=(a.fullText||"").length,a.isTyping=!1);this.stopTypingTicker(),this._cd.detectChanges();return}let e=!1;for(let a of this.view.statusses){if(!a?.isTyping)continue;let r=a.fullText||"",l=a._typeIndex??0;l<r.length&&(a.typedText=(a.typedText||"")+r.charAt(l),a._typeIndex=l+1),a._typeIndex>=r.length?a.isTyping=!1:e=!0}this._cd.detectChanges(),e||this.stopTypingTicker()},this.typingSpeedMs)})}stopTypingTicker(){this._typingTicker&&(clearInterval(this._typingTicker),this._typingTicker=null)}clearTypingTimers(){this.stopTypingTicker()}resetToasts(){this.clearTimers(),this.progressToastId&&this.toaster.clear(this.progressToastId),this.slowToastId&&this.toaster.clear(this.slowToastId),this.slowerToastId&&this.toaster.clear(this.slowerToastId),this.hangToastId&&this.toaster.clear(this.hangToastId),this.progressToastId=this.slowToastId=this.slowerToastId=this.hangToastId=void 0}
1clearTimers(){this.slowTimers.forEach(e=>clearTimeout(e)),this.slowTimers=[],this._clearTransferWatchdog()}_startTransferWatchdog(){this._transferWatchdog!==null||this.view.transfersReceived>=2||(this._transferWatchdog=setTimeout(()=>{this._transferWatchdog=null,this.view.transfersReceived<2&&!this.view.searchError&&(this._tfmService.log("transfer watchdog: building package without all transfers",this.view.transfersReceived),this.view.transfersReceived=2,this._cd.detectChanges())},this.TRANSFER_WATCHDOG_MS))}_clearTransferWatchdog(){this._transferWatchdog!==null&&(clearTimeout(this._transferWatchdog),this._transferWatchdog=null)}completeToasts(){this.clearTimers(),this.progressToastId&&this.toaster.clear(this.progressToastId),this.slowToastId&&this.toaster.clear(this.slowToastId),this.slowerToastId&&this.toaster.clear(this.slowerToastId),this.toaster.success("Package options are ready to compare and tailor.","Search complete",{timeOut:4e3,positionClass:"toast-bottom-right",toastClass:"ngx-toastr express-package-toast"})}ngOnDestroy(){++this.quoteOptionsRequest,this._resultFlushTimer!==null&&(clearTimeout(this._resultFlushTimer),this._resultFlushTimer=null),this.clearTypingTimers(),this.resetToasts(),this._statusChangeSub?.unsubscribe(),this._queryParamsSub?.unsubscribe(),this._cartChangeSub?.unsubscribe(),this._quoteProgressSub?.unsubscribe(),this._quoteCreatedSub?.unsubscribe(),this._hiddenListCdSubs.forEach(e=>e.unsubscribe()),this._hiddenListCdSubs=[]}static{this.\u0275fac=function(a){return new(a||t)(P(Re),P(ie),P(Ze),P(We),P(I),P(Ve),P(Oe),P(it),P(yt),P(K))}}static{this.\u0275cmp=W({type:t,selectors:[["popular-packages"]],viewQuery:function(a,r){if(a&1&&(j(Wt,5),j($t,5),j(pe,5),j(ce,5,I),j(le,5,I),j(de,5,I)),a&2){let l;V(l=Q())&&(r._stepper=l.first),V(l=Q())&&(r.carList=l.first),V(l=Q())&&(r.stayList=l.first),V(l=Q())&&(r._hiddenFlightCds=l),V(l=Q())&&(r._hiddenTransferCds=l),V(l=Q())&&(r._hiddenCarCds=l)}},outputs:{tripChange:"tripChange",cartChange:"cartChange"},standalone:!0,features:[G],decls:222,vars:58,consts:[["stepperPackages",""],["savedQuotesToolbar",""],["carListRef",""],["role","complementary","aria-label","Search progress",1,"chat-progress-overlay"],[1,"flex","items-center","gap-3","mb-6","px-4","py-3","rounded-lg","border","border-primary-200","bg-primary-50","text-primary-800"],[1,"flex","flex-col","gap-1","mb-6","px-4","py-3","rounded-lg","border","border-gray-200","bg-white"],["aria-label","Express package progress",1,"express-journey"],[1,"express-journey__marker"],[3,"svgIcon"],[1,"express-journey__quote"],["type","button",3,"click","disabled"],[1,"express-flow","bg-transparent",3,"selectionChange","linear"],["matStepLabel",""],[3,"searchReady"],[1,"express-results-toolbar"],["mat-button","","type","button","matStepperPrevious",""],[1,"express-results-toolbar__state"],["aria-labelledby","package-build-title","aria-live","polite",1,"package-build",3,"is-error"],[3,"options","trip","cacheMode","displayMode","compactHeader","compactFilters","resultsToolbar","resultChange","searchChangeRequested","flightReplaced","packageAccommodationBundlesReady",4,"ngIf"],["class","hidden",4,"ngIf"],[1,"relative","flex","flex-col","flex-auto","min-w-0","overflow-hidden","hidden"],[1,"relative","pt-8","pb-12","sm:pt-10","sm:pb-12","px-6","sm:px-16","overflow-hidden"],[1,"flex","flex-col","items-center"],[1,"text-xl","font-semibold"],[1,"mt-1","text-3xl","sm:text-3xl","font-extrabold","tracking-tight","leading-tight","text-center"],[1,"mt-3","sm:text-2xl","text-center","tracking-tight","text-secondary"],[1,""],[1,"flex","items-center","mt-8","sm:mt-16","p-0.5","rounded-full","overflow-hidden","bg-gray-200","dark:bg-gray-700"],["mat-flat-button","","disableRipple","",1,"px-6",3,"ngClass"],[1,"flex","justify-center","mt-10","sm:mt-20"],[1,"w-full","max-w-sm","md:max-w-7xl"],[1,"grid","grid-cols-1","md:grid-cols-2","lg:grid-cols-3","gap-y-6","lg:gap-y-0","md:gap-x-6","lg:gap-x-0"],[1,"flex-col","items-center","max-w-sm","md:max-w-none","lg:my-16","lg:rounded-none","lg:rounded-l-2xl"],[1,"w-full","rounded-t-2xl","bg-cover","bg-no-repeat","bg-center","bg-origin-border"],["src","https://www.elephanthillshotel.com/wp-content/uploads/Exterior/aeri
1al-view-ehh-1024x683.jpg","alt",""],[1,"py-4","px-3"],["svgIcon","mat_solid:directions_car",1,"mx-2",3,"matTooltip"],["svgIcon","mat_outline:king_bed",1,"mx-2",3,"matTooltip"],[1,"sm:py-2","sm:px-8"],[1,"flex-col","items-center","justify-start"],[1,"text-3xl","font-bold","tracking-tight","text-left","h-15"],["svgIcon","heroicons_solid:star",1,"text-yellow-500"],[1,"mt-2","text-lg","font-medium","tracking-tight","text-left","text-secondary"],[1,"w-8","h-1","my-3","rounded","bg-accent"],[1,"flex","items-baseline","whitespace-nowrap"],[1,"mr-2","text-2xl"],[1,"text-3xl","font-semibold","leading-tight","tracking-tight"],["mat-flat-button","",1,"fuse-mat-button-large","mt-5","w-full","bg-green-500",3,"color"],[1,"mt-3","-mx-3"],["mat-button","",1,"text-primary"],[1,"mr-1"],["fuseCardExpansion",""],[1,"mt-4","space-y-2"],[1,"flex"],[1,"icon-size-5","text-green-600",3,"svgIcon"],[1,"ml-2","leading-5"],[1,"flex-col","items-center","max-w-sm","md:max-w-none","lg:shadow-2xl","lg:rounded-l-2xl","lg:rounded-r-2xl"],["src","https://wallowlodge.com/wp-content/uploads/2022/10/RateSH2.jpg","alt",""],["svgIcon","airplanemode_active",1,"mx-2",3,"matTooltip"],[1,"flex-col","items-center","max-w-sm","md:max-w-none","lg:my-16","lg:rounded-none","lg:rounded-r-2xl"],["src","https://www.olddriftlodge.com/wp-content/uploads/2021/10/197886702_10223371194982023_3850351918174286330_n-980x653.jpeg","alt",""],[1,"chat-progress-overlay__inner"],[1,"chat-progress-overlay__icon"],[1,"chat-progress-overlay__body"],[1,"chat-progress-overlay__label"],[1,"chat-progress-overlay__summary"],[1,"chat-progress-overlay__status"],[1,"chat-progress-overlay__actions"],["mat-flat-button","","color","primary",1,"chat-progress-overlay__view-btn"],["mat-button","",1,"chat-progress-overlay__retry-btn",3,"click"],[1,"chat-progress-overlay__status-item"],[1,"chat-progress-overlay__status-item",3,"is-error"],[1,"is-spinning",3,"svgIcon"],["mat-flat-button","","color","primary",1,"chat-progress-overlay__view-btn",3,"click"],[1,"icon-size-6",3,"svgIcon"],[1,"text-sm","font-semibold"],[1,"text-xs","uppercase","tracking-widest","text-gray-500"],[1,"text-lg","font-semibold","text-gray-900"],[1,"text-sm","text-gray-600"],["aria-labelledby","package-build-title","aria-live","polite",1,"package-build"],[1,"package-build__header"],[1,"package-build__live"],[1,"package-build__body"],[1,"package-build__focus"],["aria-hidden","true",1,"package-build__radar"],[1,"package-build__message","is-error"],[1,"package-build__message"],["aria-label","Package build stages",1,"package-build__stages"],[1,"is-complete"],["aria-label","Live supplier activity",1,"package-build__activity"],[1,"package-build__footer"],["id","package-build-title"],["mat-stroked-button","","type","button","matStepperPrevious",""],["class","ai-cursor",4,"ngIf"],[1,"ai-cursor"],[1,"package-build__activity-heading"],[3,"inline"],[1,"package-build__log"],[3,"is-error"],["aria-label","Created quote options",1,"express-saved-quotes"],["aria-live","polite",1,"express-saved-quotes__status"],[1,"express-saved-quotes__actions"],["appearance","outline"],["mat-flat-button","","color","primary","type","button",3,"click","disabled"],["type","button",1,"underline",3,"click"],[3,"valueChange","value"],[3,"value"],[3,"resultChange","searchChangeRequested","flightReplaced","packageAccommodationBundlesReady","options","trip","cacheMode","displayMode","compactHeader","compactFilters","resultsToolbar"],[1,"hidden"],[3,"resultChange","options","trip","cacheMode"],[3,"options","trip","point","pointTo","cacheMode","resultChange",4,"ngIf"],[3,"resultChange","options","trip","point","pointTo","cacheMode"],["mat-flat-button","","disableRipple","",1,"px-6",3,"click","ngClass"]],template:function(a,r){if(a&1){let l=E();v(0,ii,14,5,"div",3)(1,ri,4,1,"div",4)(2,ni,7,1,"div",5),i(3,"nav",6)(4,"ol")(5,"li")(6,"span",7),v(7,ai,1,1,"mat-icon",8)(8,si,1,0),n(),i(9,"span")(10,"strong"),s(11,"Trip brief"),n(),i(12,"small"),s(13,"Route, dates and travellers"),n()()(),i(14,"li")(15,"span",7),v(16,oi,1,1,"mat-icon",8)(17,li,1,0),n(),i(18,"span")(19,"strong"),s(20,"Compare packages"),n(),i(21,"small"),s(22,"Live totals and alternatives"),n()()(),i(23,"li",9)(24,"button",10),T("click",function(){return C(l),y(r.openQuoteReview())}),i(25,"span",7),s(26,"3"),n(),i(27,"span")(28,"strong"),s(29,"Create the quote"),n(),i(30,"small"),v(31,ci,1,0)(32,di,1,2)(33,pi,1,0),n()()()()()(),i(34,"mat-horizontal-stepper",11,0),T("selectionChange",function(f){return C(l),y(r.view.activeStep=f.selectedIndex)}),i(36,"mat-step"),v(37,mi,2,0,"ng-template",12),i(38,"express-package-v2",13),T("searchReady",function(f){return C(l),y(r.startExpressSearch(f))}),n()(),i(39,"mat-step"),v(40,hi,1,0,"ng-template",12),i(41,"div",14)(42,"button",15),p(43,"mat-icon",8),s(44," Edit trip brief "),n(),i(45,"div",16),p(46,"i"),i(47,"span"),v(48,gi,4,0)(49,ui,4,2)(50,_i,4,2),n()()(),v(51,Mi,53,38,"section",17)(52,zi,12,4,"ng-template",null,1,ye)(54,Ai,1,7,"stay-list",18),n()(),v(55,Di,1,0,"network-activity-indicator")(56,Qi,5,6,"div",19),i(57,"div",20)(58,"div",21)(59,"div",22)(60,"h2",23),s(61,"POPULAR PACKAGES"),n(),i(62,"div",24),s(63," Discover the World! "),n(),i(64,"div",25)(65,"div",26),s(66,"Search, build and share your own packages."),n()(),i(67,"div",27),R(68,Li,2,5,"button",28,oe),n()(),i(70,"div",29)(71,"div",30)(72,"div",31)(73,"fuse-card",32)(74,"div",33)(75,"div"),p(76,"img",34),i(77,"div",35),p(78,"mat-icon",36)(79,"mat-icon",37),n()(),i(80,"div",38)(81,"div",39)(82,"div",40),s(83,"Elephant Hills"),n(),p(84,"mat-icon",41)(85,"mat-icon",41)(86,"mat-icon",41),i(87,"div",42),s(88,"Perfect getaway for the family"),n(),p(89,"div",43),n(),i(90,"div",44)(91,"div",45),s(92,"from"),n(),i(93,"div",46),D(94),s(95,"R37,449.72"),q(),n()(),i(96,"button",47),s(97,"Select"),n(),i(98,"div",48)(99,"button",49)(100,"span",50),s(101,"What's included?"),n()()(),D(102,51),i(103,"div",52)(104,"div",53),p(105,"mat-icon",54),i(106,"div",55),s(107,"Standard Room (Golf, Game & River View)"),n()(),i(108,"div",53),p(109,"mat-icon",54),i(110,"div",55),s(111,"Transfers"),n()(),i(112,"div",53),p(113,"mat-icon",54),i(114,"div",55),s(115,"Bed and Breakfast"),n()()(),q(),n()()(),i(116,"fuse-card",56)(117,"div",33)(118,"div"),p(119,"img",57
1),i(120,"div",35),p(121,"mat-icon",58)(122,"mat-icon",36)(123,"mat-icon",37),n()(),i(124,"div",38)(125,"div",39)(126,"div",40),s(127,"The Wallow Lodge"),n(),p(128,"mat-icon",41)(129,"mat-icon",41)(130,"mat-icon",41)(131,"mat-icon",41)(132,"mat-icon",41),i(133,"div",42),s(134,"Perfect getaway for the family"),n(),p(135,"div",43),n(),i(136,"div",44)(137,"div",45),s(138,"from"),n(),i(139,"div",46),D(140),s(141,"R37,449.72"),q(),n()(),i(142,"button",47),s(143,"Select"),n(),i(144,"div",48)(145,"button",49)(146,"span",50),s(147,"What's included?"),n()()(),D(148,51),i(149,"div",52)(150,"div",53),p(151,"mat-icon",54),i(152,"div",55),s(153,"Flights"),n()(),i(154,"div",53),p(155,"mat-icon",54),i(156,"div",55),s(157,"Transfers"),n()(),i(158,"div",53),p(159,"mat-icon",54),i(160,"div",55),s(161,"Double Tented Suite"),n()(),i(162,"div",53),p(163,"mat-icon",54),i(164,"div",55),s(165,"Golf"),n()(),i(166,"div",53),p(167,"mat-icon",54),i(168,"div",55),s(169,"Horse Riding"),n()(),i(170,"div",53),p(171,"mat-icon",54),i(172,"div",55),s(173,"All inclusive"),n()()(),q(),n()()(),i(174,"fuse-card",59)(175,"div",33)(176,"div"),p(177,"img",60),i(178,"div",35),p(179,"mat-icon",58)(180,"mat-icon",36),n()(),i(181,"div",38)(182,"div",39)(183,"div",40),s(184,"Old Drift Lodge"),n(),p(185,"mat-icon",41)(186,"mat-icon",41)(187,"mat-icon",41)(188,"mat-icon",41),i(189,"div",42),s(190,"Perfect getaway for the family"),n(),p(191,"div",43),n(),i(192,"div",44)(193,"div",45),s(194,"from"),n(),i(195,"div",46),D(196),s(197,"R37,449.72"),q(),n()(),i(198,"button",47),s(199,"Select"),n(),i(200,"div",48)(201,"button",49)(202,"span",50),s(203,"What's included?"),n()()(),D(204,51),i(205,"div",52)(206,"div",53),p(207,"mat-icon",54),i(208,"div",55),s(209,"Double Tented Suite"),n()(),i(210,"div",53),p(211,"mat-icon",54),i(212,"div",55),s(213,"Flights"),n()(),i(214,"div",53),p(215,"mat-icon",54),i(216,"div",55),s(217,"Transfers"),n()(),i(218,"div",53),p(219,"mat-icon",54),i(220,"div",55),s(221,"All Inclusive"),n()()(),q(),n()()()()()()()()}a&2&&(x(r.view.chatOverlay?0:-1),o(),x(r.view.quickBookLoading?1:-1),o(),x(r.view.quickBookBundle?2:-1),o(3),S("is-active",r.view.activeStep===0)("is-complete",r.view.activeStep>0),Z("aria-current",r.view.activeStep===0?"step":null),o(2),x(r.view.activeStep>0?7:8),o(7),S("is-active",r.view.activeStep===1&&!r.view.hasQuote)("is-complete",r.view.hasQuote),Z("aria-current",r.view.activeStep===1&&!r.view.hasQuote?"step":null),o(2),x(r.view.hasQuote?16:17),o(7),S("is-ready",r.canOpenQuoteReview()&&!r.view.hasQuote)("is-active",r.view.hasQuote),Z("aria-current",r.view.hasQuote?"step":null),o(),d("disabled",!r.canOpenQuoteReview()),o(7),x(r.view.hasQuote?31:r.view.quoteItemCount>0?32:33),o(3),S("is-results",r.view.activeStep===1),d("linear",!0),o(9),d("svgIcon","heroicons_outline:arrow-left"),o(3),S("is-complete",!r.view.searchError&&(r.view.search==null?null:r.view.search.flights)&&(r.view.search==null?null:r.view.search.transfers)&&r.view.transfersReceived>=2)("is-error",r.view.searchError),o(2),x(r.view.searchError?48:r.canOpenQuoteReview()?49:50),o(3),x(r.view.search&&r.view.trip&&(!r.view.packageFlightsComplete||!(r.view.search.flights&&r.view.search.transfers&&r.view.transfersReceived>=2))?51:-1),o(3),d("ngIf",r.view.search&&r.view.trip&&r.view.search.flights&&r.view.search.transfers&&r.view.transfersReceived>=2),o(),x(r.view.search&&r.view.trip&&r.view.search.flights&&r.view.search.transfers&&r.view.transfersReceived>=2?55:-1),o(),d("ngIf",r.view.search&&r.view.trip&&r.view.flightSearchReady),o(12),F(r.view.destinations),o(10),d("matTooltip","Transfers"),o(),d("matTooltip","Accommodation"),o(17),d("color","primary"),o(9),d("svgIcon","heroicons_solid:check"),o(4),d("svgIcon","heroicons_solid:check"),o(4),d("svgIcon","heroicons_solid:check"),o(8),d("matTooltip","Flights"),o(),d("matTooltip","Transfers"),o(),d("matTooltip","Accommodation"),o(19),d("color","primary"),o(9),d("svgIcon","heroicons_solid:check"),o(4),d("svgIcon","heroicons_solid:check"),o(4),d("svgIcon","heroicons_solid:check"),o(4),d("svgIcon","heroicons_solid:check"),o(4),d("svgIcon","heroicons_solid:check"),o(4),d("svgIcon","heroicons_solid:check"),o(8),d("matTooltip","Flights"),o(),d("matTooltip","Transfers"),o(18),d("color","primary"),o(9),d("svgIcon","heroicons_solid:check"),o(4),d("svgIcon","heroicons_solid:check"),o(4),d("svgIcon","heroicons_solid:check"),o(4),d("svgIcon","heroicons_solid:check"))},dependencies:[Me,ke,Pe,Te,Se,Fe,ze,lt,te,ee,Ne,Be,Le,Ue,tt,et,Ae,De,je,qe,gt,ut,ct,dt,_t,ft,ht,Je,Ye,pt,Xe,He,ot,
1nt,rt,at,st,ce,pe,wt,le,de,Ke,Ge,$e,xt],styles:[`@charset "UTF-8";.chat-progress-overlay{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:#f8fafcf7;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.chat-progress-overlay__inner{display:flex;flex-direction:column;align-items:flex-start;gap:1.1rem;width:min(36rem,100%);padding:2rem;border:1px solid #dce5ee;border-radius:1.25rem;background:#fff;box-shadow:0 1.5rem 4rem #1428441a,0 0 0 1px #315daa0f}.chat-progress-overlay__icon{display:flex;align-items:center;justify-content:center;width:3rem;height:3rem;border-radius:.85rem;background:linear-gradient(135deg,#e8effd,#d0e0fa);color:#315daa}.chat-progress-overlay__icon mat-icon{width:1.5rem;height:1.5rem;font-size:1.5rem}.chat-progress-overlay__body{width:100%}.chat-progress-overlay__label{color:#315daa;font-size:.65rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.chat-progress-overlay__summary{margin:.3rem 0 0;color:#172234;font-size:clamp(1.1rem,2.5vw,1.4rem);font-weight:750;letter-spacing:-.025em;line-height:1.25}.chat-progress-overlay__status{display:flex;flex-direction:column;gap:.45rem;margin-top:1rem;padding:.85rem 1rem;border:1px solid #e8edf2;border-radius:.7rem;background:#f9fafc}.chat-progress-overlay__status-item{display:flex;align-items:flex-start;gap:.5rem;color:#4e5f72;font-size:.75rem;line-height:1.45}.chat-progress-overlay__status-item mat-icon{flex-shrink:0;width:1rem;height:1rem;margin-top:.1rem;color:#315daa;font-size:1rem}.chat-progress-overlay__status-item mat-icon.is-spinning{animation:chat-overlay-spin 1.2s linear infinite}.chat-progress-overlay__status-item.is-error{color:#a33b35}.chat-progress-overlay__status-item.is-error mat-icon{color:#a33b35}.chat-progress-overlay__actions{display:flex;align-items:center;gap:.75rem;width:100%}.chat-progress-overlay__view-btn{min-height:2.5rem!important;padding-inline:1.25rem!important;font-size:.78rem!important;font-weight:750!important}.chat-progress-overlay__view-btn mat-icon{margin-right:.4rem;width:1rem;height:1rem;font-size:1rem}.chat-progress-overlay__retry-btn{color:#6b7a8d!important;font-size:.75rem!important}@keyframes chat-overlay-spin{to{transform:rotate(360deg)}}@media (max-width: 599px){.chat-progress-overlay{align-items:flex-start;padding:1rem}.chat-progress-overlay__inner{padding:1.25rem}}.ai-status{color:#0f172a;text-shadow:0 0 10px rgba(59,130,246,.25)}.ai-status-error{color:#dc2626;text-shadow:none}.ai-cursor{display:inline-block;width:.5rem;height:1em;margin-left:4px;background:currentColor;box-shadow:0 0 8px #38bdf899;animation:ai-blink .9s steps(1,end) infinite;vertical-align:text-bottom}@keyframes ai-blink{0%,50%{opacity:1}50.01%,to{opacity:0}}.express-journey{position:relative;z-index:4;border-bottom:1px solid #dfe5eb;background:#ffffffe6;box-shadow:0 .25rem .8rem #20304509;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.express-journey ol{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;margin:0;padding:0;list-style:none}.express-journey li{position:relative;display:flex;align-items:center;gap:.6rem;min-width:0;padding:.6rem clamp(.8rem,2vw,1.4rem);color:#778395}.express-journey li:not(:last-child){border-right:1px solid #e4e8ed}.express-journey li>span:last-child,.express-journey li strong,.express-journey li small{display:block;min-width:0}.express-journey li strong{color:#536174;font-size:.72rem;font-weight:750;line-height:1.2}.express-journey li small{margin-top:.1rem;overflow:hidden;font-size:.6rem;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.express-journey li.is-active{background:linear-gradient(90deg,#fff8ec,#fff8ec40)}.express-journey li.is-active:after{position:absolute;inset:auto 0 -1px;height:2px;background:#c4771b;content:""}.express-journey li.is-active strong{color:#1f2c3d}.express-journey li.is-active .express-journey__marker{border-color:#a86517;color:#fff;background:#a86517;box-shadow:0 .25rem .65rem #a8651733}.express-journey li.is-complete{color:#4c7164}.express-journey li.is-complete strong{color:#315f50}.express-journey li.is-complete .express-journey__marker{border-color:#b8d7cb;color:#28664f;background:#eaf5f1}.express-journey li.is-ready{background:linear-gradient(90deg,#fff8ec,#fff8ec59)}.express-journey li.is-ready strong{color:#1f2c3d}.express-journey li.is-ready small{color:#a86517}.express-journey li.is-ready .express-journey__marker{border-color:#a86517;color:#fff;background:#a86517}.express-journey li.express-journey__quote{padding:0}.express-journey li.express-journey__quote strong{font-size:.9rem}.express-journey li.express-journey__quote small{font-size:.72rem}.express-journey li.express-journey__quote button{display:flex;align-items:center;gap:.6rem;width:100%;min-width:0;min-height:100%;padding:.6rem clamp(.8rem,2vw,1.4rem);border:0;color:inherit;background:transparent;text-align:left;cursor:pointer}.express-journey li.express-journey__quote button:disabled{cursor:default}.express-journey li.express-journey__quote button:not(:disabled):hover{background:#fff8ecb3}.express-journey__marker{display:grid!important;flex:0 0 1.55rem;width:1.55rem;height:1.55rem;place-items:center;border:1px solid #d4dbe3;border-radius:50%;color:#667487;background:#f8fafb;font-size:.62rem;font-weight:800;font-variant-numeric:tabular-nums}.express-journey__marker mat-icon{width:.85rem;height:.85rem;font-size:.85rem}.express-flow{min-height:100%}.express-flow>.mat-horizontal-stepper-wrapper>.mat-horizontal-stepper-header-container,.express-flow>.mat-horizontal-stepper-header-container{display:none!important;position:relative;z-index:4;min-height:2.1rem;padding:0 .75rem;border-bottom:1px solid #e2e7ec;background:#ffffffc2}.express-flow>.mat-horizontal-stepper-wrapper>.mat-horizontal-stepper-header-container .mat-step-header,.express-flow>.mat-horizontal-stepper-header-container .mat-step-header{height:2.1rem;padding:0 .55rem;border-radius:.35rem}.express-flow>.mat-horizontal-stepper-wrapper>.mat-horizontal-stepper-header-container .mat-step-icon,.express-flow>.mat-horizontal-stepper-header-container .mat-step-icon{width:1.15rem;height:1.15rem;font-size:.58rem}.express-flow>.mat-horizontal-stepper-wrapper>.mat-horizontal-stepper-header-container .mat-step-text-label,.express-flow>.mat-horizontal-stepper-header-container .mat-step-text-label{font-size:.64rem;font-weight:750}.express-flow .mat-horizontal-content-container{padding:0!important}.express-v2-results .express-flow>.mat-horizontal-stepper-header-container{display:none}.express-results-toolbar{position:sticky;top:2.75rem;z-index:25;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;min-height:2.75rem;padding:.25rem clamp(.75rem,2vw,1.25rem);border-bottom:1px solid #e0e6eb;background:#f9fafcf0;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.express-results-toolbar>button{justify-self:start;min-height:2.2rem;padding-inline:.65rem!important;border-radius:.5rem!important;color:#4d5d70!important;font-size:.7rem;font-weight:750}.express-results-toolbar>button mat-icon{width:1rem;height:1rem;margin-right:.35rem;font-size:1rem}.express-results-toolbar>button:last-child mat-icon{margin-right:0;margin-left:.35rem}.express-results-toolbar__state{display:flex;align-items:center;justify-self:end;gap:.55rem;min-width:0}.express-results-toolbar__state>i{width:.55rem;height:.55rem;border:2px solid #d7e5ff;border-radius:50%;background:#315daa;box-sizing:content-box;animation:express-live-pulse 1.5s ease-in-out infinite}.express-results-toolbar__state>i.is-complete{border-color:#cdeadd;background:#168060;animation:none}.express-results-toolbar__state>i.is-error{border-color:#f3d4d1;background:#ad433c;animation:none}.express-results-toolbar__state span,.express-results-toolbar__state strong,.express-results-toolbar__state small{display:block}.express-results-toolbar__state strong{color:#25364c;font-size:.68rem}.express-results-toolbar__state small{margin-top:.08rem;color:#7a8797;font-size:.58rem}.package-build{--build-ink: #172234;--build-muted: #6b788a;--build-line: #dce3ea;--build-accent: #bb741e;--build-blue: #315daa;--build-success: #168060;width:min(100% - 1.5rem,82rem);margin:.75rem auto 1.25rem;overflow:hidden;border:1px solid var(--build-line);border-radius:.9rem;color:var(--build-ink);background:radial-gradient(circle at 5% 0%,rgba(187,116,30,.08),transparent 20rem),linear-gradient(rgba(23,34,52,.022) 1px,transparent 1px),linear-gradient(90deg,rgba(23,34,52,.022) 1px,transparent 1px),#f6f8fa;background-size:auto,2rem 2rem,2rem 2rem,auto;box-shadow:0 .9rem 2.6rem #1e2e4212,0 .15rem .45rem #1e2e4209}.package-build__header{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:.9rem 1.15rem;border-bottom:1px solid var(--build-line);background:#ffffffbd;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.package-build__header>div:first-child>span{color:#86561e;font-size:.64rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.package-build__header>div:first-child h1{margin:.15rem 0 0;font-size:clamp(1.35rem,2.2vw,1.9rem);font-weight:800;letter-spacing:-.045em;line-height:1.05}.package-build__header>div:first-child p{margin:.35rem 0 0;color:var(--build-muted);font-size:.75rem;font-variant-numeric:tabular-nums}.package-build__live{display:flex;align-items:center;gap:.6rem;padding-left:1.25rem;border-left:1px solid var(--build-line)}.package-build__live>i{width:.55rem;height:.55rem;border:2px solid #cdeadd;border-radius:50%;background:var(--build-success);box-sizing:content-box;animation:express-live-pulse 1.5s ease-in-out infinite}.package-build__live span,.package-build__live strong{display:block}.package-build__live span{color:var(--build-muted);font-size:.62rem;line-height:1.35}.package-build__live strong{color:#315346;font-size:.7rem}.package-build__live.is-error>i{border-color:#f0cbc7;background:#ad433c;animation:none}.package-build__live.is-error strong{color:#8d342f}.package-build__body{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(20rem,.75fr);min-height:15rem}.package-build__focus{display:grid;grid-template-columns:auto minmax(0,1fr);align-content:center;align-items:center;gap:.85rem 1.1rem;padding:clamp(1.25rem,2.2vw,1.75rem);border-right:1px solid var(--build-line)}.package-build__radar{position:relative;display:grid;width:4.25rem;height:4.25rem;place-items:center;border:1px solid #cfdae5;border-radius:50%;background:#ffffffc7;box-shadow:inset 0 0 0 .75rem #315daa09,0 1rem 2rem #22354e12}.package-build__radar:before,.package-build__radar:after,.package-build__radar>span{position:absolute;border:1px solid rgba(49,93,170,.16);border-radius:50%;content:""}.package-build__radar:before{inset:.7rem}.package-build__radar:after{inset:1.45rem}.package-build__radar>span{inset:-1px;border-top-color:var(--build-blue);animation:express-radar-spin 2.2s linear infinite}.package-build__radar mat-icon{z-index:1;width:1.35rem;height:1.35rem;color:var(--build-blue);font-size:1.35rem;transform:rotate(-8deg)}.package-build__radar.is-error{color:#a33b35;box-shadow:inset 0 0 0 .55rem #a33b3509}.package-build__radar.is-error:before,.package-build__radar.is-error:after,.package-build__radar.is-error>span{border-color:#a33b352e}.package-build__radar.is-error>span{border-top-color:#a33b35;animation:none}.package-build__radar.is-error mat-icon{color:#a33b35;transform:none}.package-build__message{min-width:0}.package-build__message>span{color:#81541f;font-size:.65rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.package-build__message h2{max-width:34rem;min-height:2.25rem;margin:.3rem 0 0;font-size:clamp(1.15rem,2vw,1.55rem);font-weight:750;letter-spacing:-.025em;line-height:1.25;text-wrap:balance}.package-build__message p{max-width:60ch;margin:.55rem 0 0;color:var(--build-muted);font-size:.72rem;line-height:1.55}.package-build__message.is-error>span,.package-build__message.is-error h2{color:#a33b35}.package-build__message.is-error h2{min-height:0}.package-build__message.is-error button{min-height:2.2rem;margin-top:.85rem;padding-inline:.7rem!important;border-color:#d8b5b2!important;border-radius:.5rem!important;color:#873832!important;font-size:.68rem;font-weight:750}.package-build__message.is-error button mat-icon{width:.95rem;height:.95rem;margin-right:.35rem;font-size:.95rem}.package-build__stages{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.45rem;margin:1rem 0 0;padding:0;list-style:none}.package-build__stages li{display:flex;align-items:center;gap:.5rem;min-width:0;padding:.52rem .58rem;border:1px solid #dce3ea;border-radius:.55rem;color:#7b8797;background:#ffffffa8}.package-build__stages li mat-icon{width:1rem;height:1rem;font-size:1rem}.package-build__stages li span,.package-build__stages li strong,.package-build__stages li small{display:block;min-width:0}.package-build__stages li strong{font-size:.65rem}.package-build__stages li small{margin-top:.08rem;font-size:.55rem}.package-build__stages li.is-active{border-color:#b9c9e4;color:#284e90;background:#f0f5fd;box-shadow:inset 0 -2px #315daa}.package-build__stages li.is-complete{color:#28624f;background:#eef8f4}.package-build__stages li.is-complete mat-icon{color:var(--build-success)}.package-build__stages li.is-error{border-color:#e8c8c5;color:#8f3d37;background:#fff5f4}.package-build__stages li.is-error mat-icon{color:#a33b35}.package-build__activity{align-self:stretch;padding:1.4rem;background:#ffffff9e}.package-build__activity-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:.8rem}.package-build__activity-heading span{color:#39495c;font-size:.68rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.package-build__activity-heading small{color:#168060;font-size:.6rem;font-weight:750}.package-build network-activity-indicator{display:block}.package-build network-activity-indicator>div{max-width:none!important;margin:0!important;border-color:#dce3ea!important;border-radius:.7rem!important;box-shadow:none!important}.package-build network-activity-indicator>div>div:first-child{padding:.8rem .9rem .65rem!important}.package-build network-activity-indicator>div>div:nth-child(2){padding:0 .9rem .8rem!important;gap:.45rem!important}.package-build network-activity-indicator>div>div:last-child{display:none}.package-build__log{display:grid;gap:.35rem;margin-top:.7rem}.package-build__log>div{display:flex;align-items:flex-start;gap:.45rem;color:#5f6d7e;font-size:.62rem;line-height:1.4}.package-build__log>div mat-icon{flex:0 0 auto;width:.85rem;height:.85rem;margin-top:.05rem;color:var(--build-success);font-size:.85rem}.package-build__log>div.is-error{color:#a33b35}.package-build__log>div.is-error mat-icon{color:#a33b35}.package-build__footer{display:flex;align-items:center;justify-content:center;gap:.45rem;padding:.52rem 1rem;border-top:1px solid var(--build-line);color:#7a8797;background:#ffffffb8;font-size:.62rem}.package-build__footer mat-icon{width:.9rem;height:.9rem;font-size:.9rem}.package-build.is-error{background:radial-gradient(circle at 4% 0%,rgba(163,59,53,.07),transparent 18rem),linear-gradient(rgba(23,34,52,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(23,34,52,.018) 1px,transparent 1px),#f8f9fa;background-size:auto,2rem 2rem,2rem 2rem,auto;box-shadow:0 .65rem 2rem #1e2e420e}.package-build.is-error .package-build__body{grid-template-columns:1fr;min-height:0}.package-build.is-error .package-build__focus{grid-template-columns:auto minmax(0,1fr);padding:1.25rem 1.5rem 1.35rem;border-right:0}.package-build.is-error .package-build__stages{max-width:52rem;margin-top:.8rem}.toast-container .express-package-toast{width:min(18rem,100vw - 1.25rem)!important;margin-bottom:.5rem!important;padding:.62rem 1.75rem .62rem 2.55rem!important;border:1px solid rgba(255,255,255,.14);border-radius:.7rem!important;background-color:#172234f0!important;background-position:.78rem center!important;background-size:1rem!important;box-shadow:0 1rem 2.5rem #0d192833,inset 0 1px #ffffff14!important;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);font-size:.65rem;line-height:1.45}.toast-container .express-package-toast .toast-title{margin-bottom:.12rem;font-size:.68rem;font-weight:750}.toast-container .express-package-toast .toast-message{color:#ffffffc2}.toast-container .ex
1press-package-toast:hover{box-shadow:0 1.2rem 2.8rem #0d192840,inset 0 1px #ffffff1a!important}@keyframes express-radar-spin{to{transform:rotate(360deg)}}@keyframes express-live-pulse{0%,to{box-shadow:0 0 #315daa2e}50%{box-shadow:0 0 0 .35rem #315daa00}}@media (max-width: 899px){.package-build__body{grid-template-columns:1fr}.package-build__focus{border-right:0;border-bottom:1px solid var(--build-line)}}@media (max-width: 599px){.express-results-toolbar{grid-template-columns:minmax(0,1fr) auto}.express-results-toolbar>button{min-width:2.25rem;padding-inline:.45rem!important;font-size:0}.express-results-toolbar>button mat-icon{margin:0!important}.express-results-toolbar__state small{display:none}.package-build{width:calc(100% - 1rem)}.package-build__header{align-items:flex-start;padding:1rem}.package-build__live{display:none}.package-build__focus{grid-template-columns:1fr;padding:1.25rem}.package-build__radar{width:4rem;height:4rem}.package-build__stages{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:.5rem}.package-build__activity{padding:1rem}.package-build.is-error .package-build__focus{grid-template-columns:1fr;padding:1.1rem}}@media (prefers-reduced-motion: reduce){.package-build__radar>span,.package-build__live>i,.express-results-toolbar__state>i{animation:none}}.express-saved-quotes{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.25rem;border:1px solid #d9e1e8;border-radius:.75rem;background:#fff}.express-saved-quotes__status{display:grid;gap:.25rem}.express-saved-quotes__status strong{color:#25354a;font-size:.9rem}.express-saved-quotes__status span{color:#64748b;font-size:.8rem}.express-saved-quotes__actions{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;max-width:100%}.express-saved-quotes__actions .mat-mdc-form-field{width:20rem;max-width:100%}.express-saved-quotes__actions .mat-mdc-form-field-subscript-wrapper{display:none} 2`],encapsulation:2,changeDetection:0})}}return t})();export{re as a,he as b,$i as c,yt as d,cn as e};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.