1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[124],{3454:function(t,n,e){"use strict";var r,o;t.exports=(null==(r=e.g.process)?void 0:r.env)&&"object"==typeof(null==(o=e.g.process)?void 0:o.env)?e.g.process:e(7663)},1786:function(t,n,e){(window.__NEXT_P=window.__NEXT_P||[]).push(["/travel/live",function(){return e(7992)}])},9962:function(t,n,e){"use strict";e.d(n,{Z:function(){return s}});var r=e(5893);e(7294);var o=e(22),a=e(754),i=e(637),c=e.n(i);function l(t,n){return Math.abs(n-t)>180}function s(t){let n,{from:e,to:i,className:s=""}=t,u=o.$1[e],d=o.$1[i];if(!u||!d)return(0,r.jsx)("div",{className:"".concat(c().mapContainer," ").concat(s),children:(0,r.jsxs)("svg",{viewBox:"0 0 ".concat(a.rE," ").concat(a.H1),xmlns:"http://www.w3.org/2000/svg",children:[(0,r.jsx)("rect",{width:a.rE,height:a.H1,fill:"var(--color-bg-subtle)"}),(0,r.jsx)("text",{x:a.rE/2,y:a.H1/2,textAnchor:"middle",dominantBaseline:"central",fill:"var(--color-ink-muted)",fontFamily:"var(--font-mono)",fontSize:"14",children:u||d?"Unknown airport: ".concat(u?i:e):"Unknown airports: ".concat(e,", ").concat(i)})]})});let f=l(u.lng,d.lng),h=function(t,n,e,r){if(!l(t,e)){let o=(0,a.QQ)(t),i=(0,a.yh)(n),c=(0,a.QQ)(e),l=(0,a.yh)(r),s=(n+r)/2,u=Math.sqrt((c-o)**2+(l-i)**2);return["M".concat(o," ").concat(i,"Q").concat((o+c)/2," ").concat((i+l)/2+(s>=0?-1:1)*Math.max(2,Math.min(60,.2*u))," ").concat(c," ").concat(l)]}let o=t,i=e;i-o>180?o+=360:o-i>180&&(i+=360);let c=Math.abs(i-o),s=n+(r-n)*(o>180?(o-180)/c:i>180?(180-o)/c:.5),u=(0,a.QQ)(180),d=(0,a.QQ)(-180),f=(0,a.QQ)(t),h=(0,a.yh)(n),m=(0,a.QQ)(e),p=(0,a.yh)(r),v=(0,a.yh)(s),g=(n+r)/2>=0?-1:1,x=Math.max(10,Math.min(30,.2*Math.abs(t-(t>0?180:-180)))),y=Math.max(10,Math.min(30,.2*Math.abs(e-(e>0?180:-180))));if(t<e){let t=(h+v)/2+g*x,n=(v+p)/2+g*y;return["M".concat(f," ").concat(h,"Q").concat((f+d)/2," ").concat(t," ").concat(d," ").concat(v),"M".concat(u," ").concat(v,"Q").concat((u+m)/2," ").concat(n," ").concat(m," ").concat(p)]}{let t=(h+v)/2+g*x,n=(v+p)/2+g*y;return["M".concat(f," ").concat(h,"Q").concat((f+u)/2," ").concat(t," ").concat(u," ").concat(v),"M".concat(d," ").concat(v,"Q").concat((d+m)/2," ").concat(n," ").concat(m," ").concat(p)]}}(u.lng,u.lat,d.lng,d.lat),m=(0,a.QQ)(u.lng),p=(0,a.yh)(u.lat),v=(0,a.QQ)(d.lng),g=(0,a.yh)(d.lat);if(f)n="0 0 ".concat(a.rE," ").concat(a.H1);else{let t=Math.max(Math.abs(v-m)+200,200),e=Math.max(Math.abs(g-p)+200,200),r=(Math.min(m,v)+Math.max(m,v))/2,o=(Math.min(p,g)+Math.max(p,g))/2;n="".concat(r-t/2," ").concat(o-e/2," ").concat(t," ").concat(e)}let x=parseFloat(n.split(" ")[2])/a.rE,y=Math.max(3,4/Math.max(x,.1)),b=Math.max(1.5,2/Math.max(x,.1)),j=Math.max(9,11/Math.max(x,.1)),_=p<=g;return(0,r.jsx)("div",{className:"".concat(c().mapContainer," ").concat(s),children:(0,r.jsxs)("svg",{viewBox:n,xmlns:"http://www.w3.org/2000/svg",children:[(0,r.jsx)("path",{d:a.Uk,fill:"var(--color-bg-muted)",stroke:"var(--color-border-strong)",strokeWidth:"0.75",strokeLinejoin:"round"}),h.map((t,n)=>(0,r.jsx)("path",{d:t,fill:"none",stroke:"var(--color-accent)",strokeWidth:b,strokeLinecap:"round"},n)),(0,r.jsx)("circle",{cx:m,cy:p,r:y,fill:"var(--color-accent)"}),(0,r.jsx)("circle",{cx:v,cy:g,r:y,fill:"var(--color-accent)"}),(0,r.jsx)("text",{x:m,y:p+(_?-12:18),textAnchor:"middle",fill:"var(--color-ink-muted)",fontFamily:"var(--font-mono)",fontSize:j,fontWeight:"500",children:e}),(0,r.jsx)("text",{x:v,y:g+(_?18:-12),textAnchor:"middle",fill:"var(--color-ink-muted)",fontFamily:"var(--font-mono)",fontSize:j,fontWeight:"500",children:i})]})})}},455:function(t,n,e){"use strict";e.d(n,{M:function(){return c},Z:function(){return i}});var r=e(5893);e(7294);var o=e(3418),a=e.n(o);function i(t){let{children:n,variant:e="default",className:o="",id:i,as:c="section",spacing:l="large"}=t;return(0,r.jsx)(c,{id:i,className:"\n ".concat(a().section,"\n ").concat(a()[e],"\n ").concat(a()["spacing-".concat(l)],"\n ").concat(o,"\n "),children:(0,r.jsx)("div",{className:a().inner,children:n})})}function c(t){let{title:n,subtitle:e,number:o,className:i=""}=t;return(0,r.jsxs)("header",{className:"".concat(a().header," ").concat(i),children:[o&&(0,r.jsx)("span",{className:a().number,children:o}),(0,r.jsx)("h2",{className:a().title,children:n}),e&&(0,r.jsx)("p",{className:a().subtitle,children:e})]})}},5771:function(t,n,e){"use strict";e.d(n,{Gz:function(){return i},wW:function(){return c},z2:function(){return l}});var r=e(22);e(3454);let o={status:"unknown",label:""};function a(t){let n=Math.floor(t/6e4),e=Math.floor(n/1440),r=Math.floor(n%1440/60),o=n%60;return e>0?"in ".concat(e,"d ").concat(r,"h"):r>0?"in ".concat(r,"h ").concat(o,"m"):"in ".concat(o,"m")}function i(t){return t.depScheduled?function(t,n){let e=Date.now();if(Number.isNaN(t))return o;let r=t-e,i=r/36e5;if(r>0)return i>24||i>3?{status:"upcoming",label:"Upcoming",countdown:a(r)}:{status:"boarding-soon",label:"Boarding Soon",countdown:a(r)};if(Number.isNaN(n))return o;if(e<n){let r=n-t;return{status:"in-flight",label:"In Flight",progress:r>0?Math.min(1,Math.max(0,(e-t)/r)):0}}let c=(e-n)/36e5;return c<=1?{status:"just-landed",label:"Just Landed"}:c<=24?{status:"completed",label:"Completed"}:o}((0,r.cj)(t),(0,r.Vj)(t)):o}function c(t){if(!t.depScheduled)return!1;let n=Date.now(),e=(0,r.cj)(t);if(Number.isNaN(e))return!1;let o=(0,r.Vj)(t),a=Number.isNaN(o)?e:o;return n>=Math.min(e,a)-864e5&&n<=Math.max(e,a)+864e5}function l(t){switch(t){case"boarding-soon":return"#D4A574";case"in-flight":case"just-landed":return"#2D4A3E";default:return"var(--color-ink-muted)"}}},7992:function(t,n,e){"use strict";e.r(n),e.d(n,{default:function(){return m}});var r=e(5893),o=e(7294),a=e(1664),i=e.n(a),c=e(9532),l=e(455),s=e(9962),u=e(22),d=e(5771);
1function f(t){return t?new Date(t).toLocaleString("en-US",{weekday:"short",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit",hour12:!1}):"â"}let h={backLink:{display:"inline-flex",alignItems:"center",gap:"var(--space-2)",fontFamily:"var(--font-mono)",fontSize:"var(--text-sm)",color:"var(--color-ink-muted)",textDecoration:"none",marginBottom:"var(--space-8)"},title:{fontFamily:"var(--font-display)",fontSize:"var(--text-4xl)",fontWeight:400,lineHeight:1.1,letterSpacing:"-0.02em",margin:"0 0 var(--space-2) 0"},subtitle:{fontFamily:"var(--font-mono)",fontSize:"var(--text-sm)",color:"var(--color-ink-muted)",margin:"0 0 var(--space-8) 0"},card:{border:"1px solid var(--color-border)",background:"var(--color-bg-subtle)",padding:"var(--space-5)",marginBottom:"var(--space-5)"},cardHeader:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"var(--space-3)",flexWrap:"wrap",gap:"var(--space-2)"},badge:t=>({display:"inline-block",fontFamily:"var(--font-mono)",fontSize:"var(--text-xs)",padding:"2px 10px",borderRadius:999,color:"#fff",background:t,letterSpacing:"0.04em",fontWeight:600}),countdown:{fontFamily:"var(--font-mono)",fontSize:"var(--text-xs)",color:"var(--color-ink-muted)"},flightNum:{fontFamily:"var(--font-mono)",fontSize:"var(--text-sm)",color:"var(--color-ink)",fontWeight:600},airline:{fontFamily:"var(--font-mono)",fontSize:"var(--text-xs)",color:"var(--color-ink-muted)",marginLeft:"var(--space-2)"},route:{display:"flex",alignItems:"center",gap:"var(--space-4)",margin:"var(--space-3) 0"},airport:{textAlign:"center",minWidth:60},code:{display:"block",fontFamily:"var(--font-display)",fontSize:"var(--text-2xl)",color:"var(--color-ink)",lineHeight:1},city:{display:"block",fontFamily:"var(--font-mono)",fontSize:"var(--text-xs)",color:"var(--color-ink-muted)",marginTop:2},arrow:{fontFamily:"var(--font-mono)",fontSize:"var(--text-lg)",color:"var(--color-accent)"},meta:{fontFamily:"var(--font-mono)",fontSize:"var(--text-xs)",color:"var(--color-ink-muted)",marginBottom:"var(--space-1)"},progressTrack:{height:4,background:"var(--color-border)",borderRadius:2,overflow:"hidden",marginTop:"var(--space-3)"},progressFill:t=>({height:"100%",width:"".concat(t,"%"),background:"var(--color-accent)",borderRadius:2,transition:"width 0.5s ease"}),empty:{textAlign:"center",padding:"var(--space-10) 0"},note:{fontFamily:"var(--font-mono)",fontSize:"var(--text-xs)",color:"var(--color-ink-muted)",textAlign:"center",marginTop:"var(--space-8)",fontStyle:"italic"}};function m(){let[t,n]=(0,o.useState)(null);(0,o.useEffect)(()=>{n(new Date);let t=setInterval(()=>n(new Date),6e4);return()=>clearInterval(t)},[]);let e=u.Po.filter(t=>(0,d.wW)(t)).sort(u.VA);return(0,r.jsx)(c.Z,{title:"Live Flights",description:"Flighty-style live flight status for upcoming and in-progress flights.",children:(0,r.jsxs)(l.Z,{variant:"default",children:[(0,r.jsx)(i(),{href:"/travel",style:h.backLink,children:"â Back to Travel"}),(0,r.jsx)("h1",{style:h.title,children:"Live Flight Status"}),(0,r.jsx)("p",{style:h.subtitle,children:t?"Showing flights within \xb124 hours \xb7 ".concat(e.length," flight").concat(1!==e.length?"s":""):"Loadingâ¦"}),t?0===e.length?(0,r.jsxs)("div",{style:h.empty,children:[(0,r.jsx)("p",{style:{fontFamily:"var(--font-display)",fontSize:"var(--text-2xl)",color:"var(--color-ink)",marginBottom:"var(--space-4)"},children:"No flights in the next 24 hours"}),(0,r.jsx)(i(),{href:"/travel",style:{fontFamily:"var(--font-mono)",fontSize:"var(--text-sm)",color:"var(--color-accent)"},children:"View all travel â"})]}):e.map(t=>{let n=(0,d.Gz)(t),e=(0,d.z2)(n.status),o=u.$1[t.from],a=u.$1[t.to];return(0,r.jsxs)("div",{style:h.card,children:[(0,r.jsxs)("div",{style:h.cardHeader,children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("span",{style:h.flightNum,children:t.flightNumber}),(0,r.jsx)("span",{style:h.airline,children:u.bM[t.airline]||t.airline})]}),(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"var(--space-2)"},children:[n.countdown&&(0,r.jsx)("span",{style:h.countdown,children:n.countdown}),n.label&&(0,r.jsx)("span",{style:h.badge(e),children:n.label})]})]}),(0,r.jsxs)("div",{style:h.route,children:[(0,r.jsxs)("div",{style:h.airport,children:[(0,r.jsx)("span",{style:h.code,children:t.from}),(0,r.jsx)("span",{style:h.city,children:(null==o?void 0:o.city)||t.from})]}),(0,r.jsx)("span",{style:h.arrow,children:"â"}),(0,r.jsxs)("div",{style:h.airport,children:[(0,r.jsx)("span",{style:h.code,children:t.to}),(0,r.jsx)("span",{style:h.city,children:(null==a?void 0:a.city)||t.to})]})]}),(0,r.jsx)("div",{style:h.meta,children:t.aircraft}),(0,r.jsxs)("div",{style:h.meta,children:["Dep ",f(t.depScheduled)," \xb7 Arr ",f(t.arrScheduled)]}),"in-flight"===n.status&&null!=n.progress&&(0,r.jsx)("div",{style:h.progressTrack,children:(0,r.jsx)("div",{style:h.progressFill(100*n.progress)})}),(0,r.jsx)("div",{style:{marginTop:"var(--space-3)"},children:(0,r.jsx)(s.Z,{from:t.from,to:t.to})})]},t.id)}):(0,r.jsx)("div",{style:h.empty,children:(0,r.jsx)("p",{style:{fontFamily:"var(--font-mono)",color:"var(--color-ink-muted)"},children:"Loading flight statusâ¦"})}),(0,r.jsx)("p",{style:h.note,children:"Status is inferred from scheduled times. Connect a flight API for real-time updates."})]})})}},637:function(t){t.exports={mapContainer:"FlightMap_mapContainer__YWc6Y"}},3418:function(t){t.exports={section:"Section_section__rXxcK",inner:"Section_inner__BcAQv",default:"Section_default__Duexr",narrow:"Section_narrow__J_05T",wide:"Section_wide__f6PfQ",hero:"Section_hero__mbBmi","spacing-none":"Section_spacing-none__DiNHr","spacing-small":"Section_spacing-small__dBEm_","spacing-medium":"Section_spacing-medium__SuNrY","spacing-large":"Section_spacing-large__DdS7R",header:"Section_header__D1nq4",number:"Section_number__W3Thv",title:"Section_title__3e7VL",subtitle:"Section_subtitle__U_GSc"}},7663:function(t){!function(){var n={229:function(t){var n,e,r,o=t.exports={};function a(){throw Error("setTimeout has not been defined")}function i(){throw Error("clearTimeout has not been defined")}function c(t){if(n===setTimeout)return setTimeout(t,0);if((n===a||!n)&&setTimeout)return n=setTimeout,setTimeout(t,0);try{return n(t,0)}catch(e){try{return n.call(null,t,0)}catch(e){return n.call(this,t,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:a}catch(t){n=a}try{e="function"==typeof clearTimeout?clearTimeout:i}catch(t){e=i}}();var l=[],s=!1,u=-1;function d(){s&&r&&(s=!1,r.length?l=r.concat(l):u=-1,l.length&&f())}function f(){if(!s){var t=c(d);s=!0;for(var n=l.length;n;){for(r=l,l=[];++u<n;)r&&r[u].run();u=-1,n=l.length}r=null,s=!1,function(t){if(e===clearTimeout)return clearTimeout(t);if((e===i||!e)&&clearTimeout)return e=clearTimeout,clearTimeout(t);try{e(t)}catch(n){try{return e.call(null,t)}catch(n){return e.call(this,t)}}}(t)}}function h(t,n){this.fun=t,this.array=n}function m(){}o.nextTick=function(t){var n=Array(arguments.length-1);if(arguments.length>1)for(var e=1;e<arguments.length;e++)n[e-1]=arguments[e];l.push(new h(t,n)),1!==l.length||s||c(f)},h.prototype.run=function(){this.fun.apply(null,this.array)},o.title="browser",o.browser=!0,o.env={},o.argv=[],o.version="",o.versions={},o.on=m,o.addListener=m,o.once=m,o.off=m,o.removeListener=m,o.removeAllListeners=m,o.emit=m,o.prependListener=m,o.prependOnceListener=m,o.listeners=function(t){return[]},o.binding=function(t){throw Error("process.binding is not supported")},o.cwd=function(){return"/"},o.chdir=function(t){throw Error("process.chdir is not supported")},o.umask=function(){return 0}}},e={};function r(t){var o=e[t];if(void 0!==o)return o.exports;var a=e[t]={exports:{}},i=!0;try{n[t](a,a.exports,r),i=!1}finally{i&&delete e[t]}return a.exports}r.ab="//";var o=r(229);t.exports=o}()}},function(t){t.O(0,[996,532,433,754,888,774,179],function(){return t(t.s=1786)}),_N_E=t.O()}]);
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.