PageSourceSearch

https://www.weglide.org/assets/StatsPreview-BayupZvk.js

js weglide.org collected 2026-10-03 19:22:03 UTC 33,017 bytes, 2 lines download raw bytes

1/*! licenses: /LICENSE.txt */
2import{i as e}from"./rolldown-runtime-Buv-JTfV.js";import{A as t,F as n,I as r,J as i,L as a,M as o,N as s,O as c,P as l,R as u,S as d,Z as f,a as p,bt as m,c as h,g,k as _,l as v,m as y,o as b,p as x,s as S,t as C,tt as w,xt as T,yt as E}from"./runtime-core.esm-bundler-DRVfegLZ.js";import{G as D,M as O,P as k,Z as A,et as j,h as M,l as ee}from"./router-M7dQCnGn.js";import{g as te}from"./useApi-BPuI6ZR9-qX5vwvwJ.js";import{t as ne}from"./dayjs.min-DIHVfmC8.js";import{i as N}from"./useMetatag-DzWYzgsj.js";import{t as P}from"./_plugin-vue_export-helper-lOWZiE7P.js";import{C as re,V as ie,_ as ae,d as oe,f as se,g as F,i as ce,l as le,o as ue,v as de,w as fe,y as pe}from"./index-lTs2WED3.js";import{t as I}from"./BaseTile-BnVk-4I7.js";import{n as me,t as he}from"./IconChevronRight-CGUjGpq7.js";import{t as L}from"./uPlot.esm-BBpeNrDo.js";import{t as ge}from"./BarIndicator-Db7GKx1Y.js";import{t as _e}from"./ContentTabs-DmaEm2Fm.js";import{t as ve}from"./PremiumOverlay-B0DegLOp.js";var R=e(ne(),1),z=[100,250,500,750,1e3];function B(e){return`${F(Math.round(e/3600),0)} h`}function ye(){return Array.from({length:12},(e,t)=>(0,R.default)().month(t).format(`MMM`))}function be(e){return e?.length?[e.map(e=>O(e.date)),e.map(e=>e.count)]:null}var xe=15552e3;function Se(e,t,n=xe){let r=n/2,i=0,a=0,o=0,s=0;return t.map((n,c)=>{let l=e[c];for(;a<t.length&&e[a]<=l+r;a++){let e=t[a];e!=null&&(o+=e,s+=1)}for(;e[i]<l-r;i++){let e=t[i];e!=null&&(o-=e,--s)}return s?o/s:null})}function Ce(e){let t=null;return e.map(e=>(e!==null&&(t===null||e>t)&&(t=e),t))}function we(e,t=8){let n=[...e].sort((e,t)=>t.total_seconds-e.total_seconds),r=n.slice(0,t).map(e=>({id:e.id,label:e.name,value:e.total_seconds})),i=n.slice(t);return i.length?{top:r,rest:i.reduce((e,t)=>e+t.total_seconds,0)}:{top:r,rest:null}}function Te(e){if(!e.length)return[];let t=Math.max(...e.map(e=>e.total_seconds)),n=new Map(e.map(e=>[`${e.year}-${e.month}`,e]));return[...new Set(e.map(e=>e.year))].sort((e,t)=>t-e).map(e=>({year:e,cells:Array.from({length:12},(r,i)=>{let a=n.get(`${e}-${i+1}`);return{month:i+1,totalSeconds:a?.total_seconds||0,flightCount:a?.flight_count||0,intensity:a&&t?a.total_seconds/t:0}})}))}function Ee(e){return e.flightCount?e.intensity<.33?`var(--color-sky-3)`:e.intensity<.66?`var(--color-sky-2)`:`var(--color-sky-1)`:`var(--color-white-2)`}function De(e){return(e.day()+6)%7}function Oe(e,t,n){let r=(0,R.default)(`${e}-12-31`),i=[],a=Array(De((0,R.default)(`${e}-01-01`))).fill(null),o=0,s=0;for(let c=(0,R.default)(`${e}-01-01`);!c.isAfter(r);c=c.add(1,`day`)){let e=c.format(`YYYY-MM-DD`),r=t.get(e),l=r?.total_seconds||0;o+=l,s+=r?.flight_count||0,a.push({date:e,totalSeconds:l,flightCount:r?.flight_count||0,intensity:n?l/n:0}),a.length===7&&(i.push(a),a=[])}if(a.length){for(;a.length<7;)a.push(null);i.push(a)}return{year:e,totalSeconds:o,flightCount:s,weeks:i}}function ke(e){if(!e.length)return[];let t=Math.max(...e.map(e=>e.total_seconds)),n=new Map(e.map(e=>[e.date,e]));return[...new Set(e.map(e=>Number(e.date.slice(0,4))))].sort((e,t)=>t-e).map(e=>Oe(e,n,t))}function Ae(e,t){if(!e.length)return 0;let n=(e.length-1)*t,r=Math.floor(n),i=Math.ceil(n),a=n-r;return e[r]*(1-a)+e[i]*a}function je(e){return Ae(e.filter(e=>e!==null).sort((e,t)=>e-t),.5)}var Me=4;function Ne(e,t=Me){let n=je(e.map(e=>e===null?null:Math.abs(e)))*t;return n?e.map(e=>e===null||Math.abs(e)<=n?e:null):e}function Pe(e,t,n,r){let i=e[n];if(i===void 0)return n;let a=n;for(;a>0&&e[a-1]===i;)a--;let o=n,s=1/0;for(let n=a;e[n]===i;n++){let e=t[n];if(e==null)continue;let i=Math.abs(e-r);i<s&&(s=i,o=n)}return o}function Fe(e,t){let n=(e-t.min)/t.step;return Math.round(n*1e9)/1e9}function Ie(e,t){let n=e.filter(e=>e!==null);if(!n.length)return[];let r=Math.round((t.max-t.min)/t.step),i=Array.from({length:r},(e,n)=>({start:t.min+n*t.step,end:t.min+(n+1)*t.step,count:0}));for(let e of n){let n=Math.floor(Fe(e,t));i[Math.min(r-1,Math.max(0,n))].count+=1}return i}function Le(e){let t=[...new Set(e.map(e=>e.season))].sort(),n=new Map;for(let r of e){let e=n.get(r.id)||t.map(()=>0);e[t.indexOf(r.season)]=r.total_seconds,n.set(r.id,e)}return n}var V=[`var(--color-sky-2)`,`var(--color-forest-1)`,`var(--color-honey-1)`,`var(--color-blood-1)`],Re=[...V,`var(--color-gray-1)`,`var(--color-black-2)`];function H(e,t={}){return{stroke:e,width:2,spanGaps:!0,points:{show:!1},pxAlign:0,...t}}function ze(e){return{stroke:e,paths:()=>null,alpha:.5,points:{show:!0,size:9,fill:e}}}function U(e,t,n){let[r]=e.axes[t].font;return e.ctx.font=r,e.ctx.measureText(n).width/devicePixelRatio}function Be(e,t,n){let r=e.axes[n].gap||0;return t?.length?r+t.reduce((t,r)=>Math.max(t,U(e,n,r)),0):r}var Ve=16;function He(e){return(t,n,r,i)=>Math.max(U(t,n,e(r)),U(t,n,e(i)))+Ve}function W(e,t={}){return{scale:`y`,size:Be,space:25,gap:3,stroke:`#767676`,grid:{show:!0,width:1},ticks:{show:!1},values:(t,n)=>n.map(e),...t}}var G={scale:`x`,size:19,space:60,gap:4,stroke:`#767676`,grid:{width:1},ticks:{show:!1},values:(e,t)=>t.map(e=>R.default.unix(e).format(`MMM YY`))};function K(e){return{scale:`x`,size:19,space:He(e),gap:4,stroke:`#767676`,grid:{show:!1},ticks:{show:!1},values:(t,n)=>n.map(e)}}function Ue(e,t){return(n,r,i)=>L.rangeNum(e===null?r:Math.max(r,e),t===null?i:Math.min(i,t),.1,!0)}function q(e,t,n,r,i){return{key:e,titleKey:t,seriesInfo:[{labelKey:t,color:n,format:e=>F(e,0)}],data:e=>{let t=be(i(e));return t?{data:t}:null},series:[H(n,{fill:r})],axes:[G,W(e=>F(e,0))],showDate:!0,sync:!0}}var We={class:`bar-list`},Ge={key:0,class:`bar-list-media`},Ke={key:1,class:`stats-title bar-list-title`},qe={key:2,class:`bar-list-hint`},Je={class:`bar-content`},Ye={class:`bar-name-row`},Xe={key:1,class:`bar-name`},Ze={key:2,class:`bar-subtitle`},Qe={class:`bar-line`},$e={key:0,class:`bar-sparkline`,viewBox:`0 0 60 16`,preserveAspectRatio:`none`},et=[`points`,`stroke`],tt={class:`bar-value`},nt={key:3,class:`bar-row`},rt={key:0,class:`bar-avatar`},it={class:`bar-content`},at={class:`bar-name rest`},ot={class:`bar-line`},st={key:0,class:`bar-sparkline bar-sparkline-placeholder`,viewBox:`0 0 60 16`,preserveAspectRatio:`none`},ct={class:`bar-value`},lt={key:4,class:`bar-empty`},ut={key:5,class:`bar-list-footer`},dt=P(g({__name:`StatsBarListTile`,props:{title:{},hint:{default:void 0},items:{},formatValue:{},rest:{default:null},color:{default:void 0},avatars:{type:Boolean,default:!1}},setup(e){let n=e,{t:r}=N({useScope:`global`}),i=p(()=>Math.max(...n.items.map(e=>e.value),n.rest||0,1));function a(e,t){return e.color??n.color??V[t%V.length]}function c(e){let t=Math.max(...e,1),n=e.length>1?60/(e.length-1):0;return e.map((e,r)=>`${r*n},${14-e/t*12}`).join(` `)}return(n,d)=>{let f=l(`router-link`);return t(),S(I,null,{default:u(()=>[b(`div`,We,[n.$slots.default?(t(),v(`div`,Ge,[s(n.$slots,`default`,{}
2,void 0,!0)])):h(``,!0),e.title?(t(),v(`span`,Ke,T(e.title),1)):h(``,!0),e.hint?(t(),v(`p`,qe,T(e.hint),1)):h(``,!0),(t(!0),v(C,null,o(e.items,(n,r)=>(t(),v(`div`,{key:n.id??n.label,class:`bar-row`},[e.avatars?(t(),S(ie,{key:0,class:`bar-avatar`,name:n.label,image:n.image,badge:!1},null,8,[`name`,`image`])):h(``,!0),b(`div`,Je,[b(`div`,Ye,[n.to?(t(),S(f,{key:0,class:`bar-name link`,to:n.to},{default:u(()=>[x(T(n.label),1)]),_:2},1032,[`to`])):(t(),v(`span`,Xe,T(n.label),1)),n.subtitle?(t(),v(`span`,Ze,T(n.subtitle),1)):h(``,!0)]),b(`div`,Qe,[y(ge,{value:n.value/i.value*100,color:a(n,r)},null,8,[`value`,`color`]),n.sparkline&&n.sparkline.length>1?(t(),v(`svg`,$e,[b(`polyline`,{points:c(n.sparkline),fill:`none`,stroke:a(n,r),"stroke-width":`1.5`},null,8,et)])):h(``,!0),b(`span`,tt,T(e.formatValue(n.value)),1)])])]))),128)),e.rest===null?h(``,!0):(t(),v(`div`,nt,[e.avatars?(t(),v(`span`,rt)):h(``,!0),b(`div`,it,[b(`span`,at,T(w(r)(`other`)),1),b(`div`,ot,[y(ge,{value:e.rest/i.value*100,color:`var(--color-gray-1)`},null,8,[`value`]),e.items.some(e=>e.sparkline&&e.sparkline.length>1)?(t(),v(`svg`,st)):h(``,!0),b(`span`,ct,T(e.formatValue(e.rest)),1)])])])),e.items.length?h(``,!0):(t(),v(`span`,lt,T(w(r)(`noData`)),1)),n.$slots.footer?(t(),v(`div`,ut,[s(n.$slots,`footer`,{},void 0,!0)])):h(``,!0)])]),_:3})}}}),[[`__scopeId`,`data-v-0811a8e1`]]);function ft(e){let t=i(0);function n(n){let r=t.value+n;r>=0&&r<e().length&&(t.value=r)}return{active:p(()=>e()[t.value]),older:p(()=>e()[t.value+1]),newer:p(()=>e()[t.value-1]),step:n}}var pt={class:`step-arrows`},mt=P(g({__name:`StatsStepArrows`,props:{prevDisabled:{type:Boolean,default:!1},nextDisabled:{type:Boolean,default:!1},prevLabel:{default:void 0},nextLabel:{default:void 0}},emits:[`prev`,`next`],setup(e,{emit:n}){let r=n;return(n,i)=>(t(),v(`span`,pt,[y(me,{class:E([`step-arrow`,{disabled:e.prevDisabled}]),"aria-label":e.prevLabel,onClick:i[0]||(i[0]=e=>r(`prev`))},null,8,[`class`,`aria-label`]),s(n.$slots,`default`,{},void 0,!0),y(he,{class:E([`step-arrow`,{disabled:e.nextDisabled}]),"aria-label":e.nextLabel,onClick:i[1]||(i[1]=e=>r(`next`))},null,8,[`class`,`aria-label`])]))}}),[[`__scopeId`,`data-v-5bbff901`]]),ht={class:`calendar`},gt={class:`calendar-header`},_t={class:`stats-title calendar-title`},vt={class:`calendar-total`},yt={class:`calendar-year`},bt={key:0,class:`calendar-scroll`},xt={key:1,class:`calendar-empty`},St=P(g({__name:`StatsCalendarTile`,props:{title:{},years:{},entityQuery:{}},setup(e){let r=e,{t:i}=N({useScope:`global`}),{active:a,older:s,newer:c,step:l}=ft(()=>r.years),d=[1,3,5].map(e=>({label:(0,R.default)().day(e).format(`ddd`),row:(e+6)%7+2})),f=p(()=>{if(!a.value)return[];let e=[],t=-1;return a.value.weeks.forEach((n,r)=>{let i=n.find(e=>!!e);if(!i)return;let a=(0,R.default)(i.date).month();a!==t&&(e.push({label:(0,R.default)(i.date).format(`MMM`),column:r+2}),t=a)}),e});function g(e){return{...r.entityQuery,scoring_date_start:e.date,scoring_date_end:e.date}}function _(e){let t=(0,R.default)(e.date).format(`ll`);return e.flightCount?`${t} · ${M(e.totalSeconds)} · ${e.flightCount} ${i(`flights`)}`:t}return(r,p)=>(t(),S(I,null,{default:u(()=>[b(`div`,ht,[b(`div`,gt,[b(`span`,_t,T(e.title),1),w(a)?(t(),v(C,{key:0},[b(`span`,vt,T(w(B)(w(a).totalSeconds)),1),y(mt,{"prev-disabled":!w(s),"next-disabled":!w(c),"prev-label":w(s)?String(w(s).year):void 0,"next-label":w(c)?String(w(c).year):void 0,onPrev:p[0]||(p[0]=e=>w(l)(1)),onNext:p[1]||(p[1]=e=>w(l)(-1))},{default:u(()=>[b(`span`,yt,T(w(a).year),1)]),_:1},8,[`prev-disabled`,`next-disabled`,`prev-label`,`next-label`])],64)):h(``,!0)]),w(a)?(t(),v(`div`,bt,[b(`div`,{class:`calendar-grid`,style:m({"--weeks":w(a).weeks.length})},[(t(!0),v(C,null,o(f.value,e=>
2(t(),v(`span`,{key:e.column,class:`calendar-month`,style:m({gridColumn:e.column,gridRow:1})},T(e.label),5))),128)),(t(!0),v(C,null,o(w(d),e=>(t(),v(`span`,{key:e.label,class:`calendar-weekday`,style:m({gridColumn:1,gridRow:e.row})},T(e.label),5))),128)),(t(!0),v(C,null,o(w(a).weeks,(e,r)=>(t(),v(C,{key:r},[(t(!0),v(C,null,o(e,(e,i)=>(t(),v(C,{key:i},[e?(t(),S(n(e&&e.flightCount?`router-link`:`div`),{key:0,class:`calendar-cell`,style:m({gridColumn:r+2,gridRow:i+2,backgroundColor:w(Ee)(e)}),title:_(e),to:e.flightCount?{name:w(j).FlightList,query:g(e)}:void 0},null,8,[`style`,`title`,`to`])):h(``,!0)],64))),128))],64))),128))],4)])):(t(),v(`span`,xt,T(w(i)(`noData`)),1))])]),_:1}))}}),[[`__scopeId`,`data-v-5aa41da7`]]),Ct=[`src`,`alt`],wt={key:0,class:`marker-count`},Tt=1,J=P(g({__name:`StatsLineChart`,props:{data:{},series:{},axes:{},scales:{default:void 0},height:{default:180},syncKey:{default:void 0},clickable:{type:Boolean,default:!1},markers:{default:()=>[]}},emits:[`cursor`,`select`],setup(e,{emit:n}){let r=e,s=n,d=i(null),p=i([]),g=null,y=null;function x(e){p.value=r.markers.map(t=>({...t,x:e.valToPos(t.timestamp,`x`)+e.over.offsetLeft,y:e.valToPos(t.value,`y`)+e.over.offsetTop}))}function w(e){return typeof e!=`string`||!e.startsWith(`--`)?e:getComputedStyle(document.documentElement).getPropertyValue(e).trim()}function D(){return r.series.map(e=>{let t={paths:L.paths.linear(),...e};if(t.stroke!==void 0&&(t.stroke=w(t.stroke)),t.fill!==void 0&&(t.fill=w(t.fill)),t.points!==void 0){let e={...t.points};e.stroke!==void 0&&(e.stroke=w(e.stroke)),e.fill!==void 0&&(e.fill=w(e.fill)),t.points=e}return t})}function O(e,t,n){if(n==null||t===0||e.cursor.event==null)return n;let r=e.series[t]?.scale||`y`;return Pe(e.data[0],e.data[t],n,e.posToVal(e.cursor.top??0,r))}function k(e){return e.cursor.idxs?.[Tt]??e.cursor.idx??null}function A(e,t,n){let r=(n-t||Math.abs(t)||1)*.02;return[t-r,n+r]}function j(){let e=r.scales||{x:{time:!0}},t=e.x;return t?.range?e:{...e,x:{...t,range:A}}}function M(){if(!d.value)return;g&&g.destroy();let e={show:!0,x:!0,y:!1,points:{size:14},drag:{x:!1,y:!1,setScale:!1},dataIdx:(e,t,n)=>O(e,t,n)};r.syncKey&&(e.sync={key:r.syncKey,setSeries:!1});let t={width:d.value.offsetWidth,height:r.height,legend:{show:!1},series:[{},...D()],axes:r.axes,scales:j(),cursor:e,padding:[8,8,0,0],hooks:{setCursor:[e=>s(`cursor`,k(e),e.over.offsetLeft+(e.cursor.left??0))],init:[e=>{e.over.addEventListener(`click`,()=>{let t=k(e);r.clickable&&t!=null&&s(`select`,t)})}],setSize:[x],setData:[x],ready:[x]}};g=new L(t,f(r.data),d.value)}function ee(){!g||!d.value||g.setSize({width:d.value.offsetWidth,height:r.height})}return c(()=>{M(),y=new ResizeObserver(ee),d.value&&y.observe(d.value),a(()=>r.data,e=>g?.setData(f(e)))}),_(()=>{y?.disconnect(),g&&(g.destroy(),g=null)}),(n,r)=>{let i=l(`router-link`);return t(),v(`div`,{ref_key:`chartElement`,ref:d,class:E([`stats-line-chart`,{clickable:e.clickable}]),style:m({height:`${e.height}px`})},[(t(!0),v(C,null,o(p.value,e=>
2(t(),S(i,{key:`${e.timestamp}-${e.title}`,class:`chart-marker`,title:e.title,style:m({left:`${e.x}px`,top:`${e.y}px`}),to:e.to},{default:u(()=>[b(`img`,{loading:`lazy`,src:e.image,alt:e.title},null,8,Ct),e.extraCount?(t(),v(`span`,wt,`+`+T(e.extraCount),1)):h(``,!0)]),_:2},1032,[`title`,`style`,`to`]))),128))],6)}}}),[[`__scopeId`,`data-v-c6ffdc51`]]),Et=e(A(),1),Dt=e(k(),1),Ot=[`onClick`],kt=g({__name:`StatsMetricTabs`,props:d({configs:{}},{activeIndex:{default:0},activeIndexModifiers:{}}),emits:[`update:activeIndex`],setup(e){let n=r(e,`activeIndex`),{t:i}=N({useScope:`global`});return(r,a)=>e.configs.length>1?(t(),S(_e,{key:0},{default:u(()=>[(t(!0),v(C,null,o(e.configs,(e,r)=>(t(),v(`div`,{key:e.key,class:E([`tab`,{active:r===n.value}]),onClick:e=>n.value=r},T(w(i)(e.titleKey)),11,Ot))),128))]),_:1})):h(``,!0)}}),At={class:`chart-tile`},jt={class:`chart-header`},Mt={key:0,class:`stats-title chart-title`},Nt={key:1,class:`chart-spacer`},Pt={key:2,class:`chart-date`},Ft=[`title`],Y=P(g({__name:`StatsChartTile`,props:d({configs:{},statistics:{},title:{default:void 0},height:{default:220},syncKey:{default:void 0},markers:{default:()=>[]},showTabs:{type:Boolean,default:!0}},{activeIndex:{default:0},activeIndexModifiers:{}}),emits:[`update:activeIndex`],setup(e){let n=e,s=r(e,`activeIndex`),{t:c}=N({useScope:`global`}),l=te(),d=i(null);a(s,()=>d.value=null);let f=p(()=>n.configs[s.value]||n.configs[0]),g=p(()=>f.value.data(n.statistics)),_=p(()=>g.value?.data||null);function D(e){return c(e.titleKey)}function O(e){for(let t=e.length-1;t>=0;t--)if(e[t]!==null&&e[t]!==void 0)return t;return null}let k=p(()=>_.value?f.value.seriesInfo.map((e,t)=>{let n=_.value[t+1],r=d.value??O(n),i=r===null?null:n[r];return{label:c(e.labelKey),value:i==null?`--`:e.format(i),color:e.color}}):[]),A=p(()=>{if(!f.value.showDate||!_.value)return null;let e=d.value??_.value[0].length-1,t=_.value[0][e];return t===void 0?null:ee(t*1e3)});function M(e){let t=g.value?.flightIds?.[e];t&&l.push({name:j.FlightDetail,params:{flight:String(t)}})}return(n,r)=>(t(),v(`div`,{class:E({"below-tabs":e.configs.length>1})},[e.showTabs?(t(),S(kt,{key:0,configs:e.configs,"active-index":s.value,"onUpdate:activeIndex":r[0]||(r[0]=e=>s.value=e)},null,8,[`configs`,`active-index`])):h(``,!0),y(I,null,{default:u(()=>[b(`div`,At,[b(`div`,jt,[e.title||e.configs.length===1?(t(),v(`span`,Mt,T(e.title||D(f.value)),1)):(t(),v(`span`,Nt)),A.value?(t(),v(`span`,Pt,T(A.value),1)):h(``,!0),(t(!0),v(C,null,o(k.value,e=>
2(t(),v(`span`,{key:e.label,class:`chart-readout`,title:e.label},[b(`i`,{class:`chart-dot`,style:m({backgroundColor:`var(${e.color})`})},null,4),x(` `+T(e.value),1)],8,Ft))),128))]),_.value?(t(),S(J,{key:f.value.key,data:_.value,series:f.value.series,axes:f.value.axes,scales:f.value.scales,height:e.height,"sync-key":f.value.sync?e.syncKey:void 0,clickable:!!g.value?.flightIds?.length,markers:e.markers,onCursor:r[1]||(r[1]=e=>d.value=e),onSelect:M},null,8,[`data`,`series`,`axes`,`scales`,`height`,`sync-key`,`clickable`,`markers`])):(t(),v(`div`,{key:1,class:`chart-empty`,style:m({height:`${e.height}px`})},T(w(c)(`noData`)),5))])]),_:1})],2))}}),[[`__scopeId`,`data-v-afb0a738`]]),It={class:`heatmap`},Lt={class:`stats-title heatmap-title`},Rt={key:0,class:`heatmap-scroll`},zt={class:`heatmap-grid`},Bt={class:`heatmap-month total`},Vt={class:`heatmap-year`},Ht=[`title`],Ut={key:1,class:`heatmap-empty`},Wt=P(g({__name:`StatsHeatmapTile`,props:{title:{},rows:{},entityQuery:{}},setup(e){let r=e,{t:i}=N({useScope:`global`}),a=ye();function s(e,t){let n=(0,R.default)(`${t}-${String(e.month).padStart(2,`0`)}-01`);return{...r.entityQuery,scoring_date_start:n.format(`YYYY-MM-DD`),scoring_date_end:n.endOf(`month`).format(`YYYY-MM-DD`)}}function c(e,t){let n=a[e.month-1];return e.flightCount?`${n} ${t} · ${M(e.totalSeconds)} · ${e.flightCount} ${i(`flights`)}`:`${n} ${t}`}function l(e){return B(e.cells.reduce((e,t)=>e+t.totalSeconds,0))}return(r,d)=>(t(),S(I,null,{default:u(()=>[b(`div`,It,[b(`span`,Lt,T(e.title),1),e.rows.length?(t(),v(`div`,Rt,[b(`div`,zt,[d[0]||(d[0]=b(`span`,{class:`heatmap-corner`},null,-1)),(t(!0),v(C,null,o(w(a),e=>(t(),v(`span`,{key:e,class:`heatmap-month`},T(e),1))),128)),b(`span`,Bt,T(w(i)(`total`)),1),(t(!0),v(C,null,o(e.rows,e=>(t(),v(C,{key:e.year},[b(`span`,Vt,T(e.year),1),(t(!0),v(C,null,o(e.cells,r=>(t(),S(n(r.flightCount?`router-link`:`div`),{key:r.month,class:`heatmap-cell`,style:m({backgroundColor:w(Ee)(r)}),title:c(r,e.year),to:r.flightCount?{name:w(j).FlightList,query:s(r,e.year)}:void 0},null,8,[`style`,`title`,`to`]))),128)),b(`span`,{class:`heatmap-total`,title:`${e.year} · ${l(e)}`},T(l(e)),9,Ht)],64))),128))])])):(t(),v(`span`,Ut,T(w(i)(`noData`)),1))])]),_:1}))}}),[[`__scopeId`,`data-v-b0cc4f54`]]),Gt={class:`stats`},Kt={class:`inner-quarter`},qt={class:`stat-value`},Jt={class:`stat-label`},Yt=P(g({__name:`StatsNumbersCard`,props:{entries:{}},setup(e){return(r,i)=>(t(),S(I,null,{default:u(()=>[b(`div`,Gt,[(t(!0),v(C,null,o(e.entries,e=>(t(),S(n(e.to?`router-link`:`div`),{key:e.key,class:`item`,to:e.to},{default:u(()=>[b(`div`,Kt,[b(`div`,qt,T(e.value),1),b(`div`,Jt,T(e.label),1)])]),_:2},1032,[`to`]))),128))])]),_:1}))}}),[[`__scopeId`,`data-v-92ee8066`]]),Xt={class:`season-bars`},Zt={class:`chart-header`},Qt={class:`stats-title chart-title`},$t={class:`chart-wrap`},en={class:`tooltip-season`},tn={class:`tooltip-label`},nn={class:`tooltip-value`},rn={key:0,class:`legend`},an=P(g({__name:`StatsSeasonBarsTile`,props:{title:{},seasons:{},series:{},formatValue:{},stacked:{type:Boolean,default:!1},height:{default:220},maxValue:{default:void 0}},setup(e){let n=e,{t:r}=N({useScope:`global`}),a=i(null),s=i(0);function c(e,t){a.value=e,s.value=t}let l=p(()=>n.seasons.length>0),d=p(()=>`${n.stacked}-${n.seasons.join(`-`)}`),f=p(()=>{let e=n.seasons;return n.stacked?[e,...n.series.map((t,r)=>e.map((e,t)=>n.series.slice(0,r+1).reduce((e,n)=>e+(n.values[t]||0),0))).reverse()]:[e,...n.series.map(e=>e.values)]});function g(e,t){if(t===1)return L.paths.bars({size:[.8,40]});let n=.9/t,r=-.45+e*n;return L.paths.bars({disp:{x0:{unit:1,values:e=>e.data[0].map(e=>e+r)},size:{unit:1,values:e=>e.data[0].map(()=>n)}}})}function _(e,t){return{paths:t,stroke:e,fill:e,points:{show:!1}}}let y=p(()=>n.stacked?[...n.series].reverse().map(e=>_(e.color,L.paths.bars({size:[.9,80]}))):n.series.map((e,t)=>_(e.color,g(t,n.series.length)))),E=p(()=>{let e=n.seasons[0],t=n.seasons[n.seasons.length-1],r=n.maxValue===void 0?{}:{y:{range:[0,n.maxValue]}};return e===void 0||t===void 0?{x:{time:!1},...r}:{x:{time:!1,range:[e-.5,t+.5]},...r}}),D=p(()=>[{...K(e=>String(e).slice(-2)),splits:()=>n.seasons},W(n.formatValue)]),O=p(()=>{let e=a.value;return e===null?null:{season:String(n.seasons[e]),rows:n.series.map(t=>({label:t.label,color:t.color,value:n.formatValue(t.values[e]||0)}))}});return(n,i)=>(t(),S(I,null,{default:u(()=>
2[b(`div`,Xt,[b(`div`,Zt,[b(`span`,Qt,T(e.title),1)]),l.value?(t(),v(C,{key:0},[b(`div`,$t,[(t(),S(J,{key:d.value,data:f.value,series:y.value,axes:D.value,scales:E.value,height:e.height,onCursor:c},null,8,[`data`,`series`,`axes`,`scales`,`height`])),O.value?(t(),v(`div`,{key:0,class:`tooltip`,style:m({left:`${s.value}px`})},[b(`span`,en,T(O.value.season),1),(t(!0),v(C,null,o(O.value.rows,e=>(t(),v(`span`,{key:e.label,class:`tooltip-row`},[b(`i`,{class:`legend-dot`,style:m({backgroundColor:`var(${e.color})`})},null,4),b(`span`,tn,T(e.label),1),b(`span`,nn,T(e.value),1)]))),128))],4)):h(``,!0)]),e.series.length>1?(t(),v(`div`,rn,[(t(!0),v(C,null,o(e.series,e=>(t(),v(`span`,{key:e.label,class:`legend-entry`},[b(`i`,{class:`legend-dot`,style:m({backgroundColor:`var(${e.color})`})},null,4),x(` `+T(e.label),1)]))),128))])):h(``,!0)],64)):(t(),v(`div`,{key:1,class:`chart-empty`,style:m({height:`${e.height}px`})},T(w(r)(`noData`)),5))])]),_:1}))}}),[[`__scopeId`,`data-v-c3afa460`]]),on={class:`grid-col-12`},sn={class:`section-title`},cn={key:0,class:`section-hint`},ln=P(g({__name:`StatsSectionTitle`,props:{title:{},hint:{default:void 0}},setup(e){return(n,r)=>(t(),v(`div`,on,[b(`h3`,sn,T(e.title),1),e.hint?(t(),v(`p`,cn,T(e.hint),1)):h(``,!0)]))}}),[[`__scopeId`,`data-v-dd78567c`]]),un={key:0},dn={class:`share-track`},fn=[`title`],pn={class:`share-legend`},mn={key:1,class:`share-empty`},hn=P(g({__name:`StatsShareBar`,props:{segments:{}},setup(e){let n=e,{t:r}=N({useScope:`global`}),i=p(()=>n.segments.reduce((e,t)=>e+t.value,0));return(n,a)=>i.value?(t(),v(`div`,un,[b(`div`,dn,[(t(!0),v(C,null,o(e.segments,e=>(t(),v(`div`,{key:e.label,class:`share-segment`,title:`${e.label} · ${w(de)(e.value/i.value,0)}`,style:m({width:`${e.value/i.value*100}%`,backgroundColor:e.color})},null,12,fn))),128))]),b(`div`,pn,[(t(!0),v(C,null,o(e.segments,e=>(t(),v(`span`,{key:e.label,class:`share-legend-entry`},[b(`i`,{class:`share-dot`,style:m({backgroundColor:e.color})},null,4),x(` `+T(e.label),1)]))),128))])])):(t(),v(`span`,mn,T(w(r)(`noData`)),1))}}),[[`__scopeId`,`data-v-6590d0b7`]]),gn={class:`grid-row`},_n={class:`grid-col-12`},vn={class:`bar-list`},yn={class:`bar-line`},bn={class:`bar-track`},xn={class:`grid-row`},Sn={class:`grid-col-12`},Cn={class:`grid-row`},wn={class:`grid-col-12`},Tn={class:`numbers`},En=P(g({__name:`StatsSkeleton`,setup(e){let n=[92,78,63,51,38,24];return(e,r)=>(t(),v(C,null,[b(`div`,gn,[r[3]||(r[3]=b(`div`,{class:`grid-col-12`},[b(`span`,{class:`skeleton section-title`})],-1)),b(`div`,_n,[y(I,null,{default:u(()=>[b(`div`,vn,[r[2]||(r[2]=b(`div`,{class:`skeleton map`},null,-1)),(t(),v(C,null,o(n,e=>b(`div`,{key:e,class:`bar-row`},[r[1]||(r[1]=b(`span`,{class:`skeleton name`},null,-1)),b(`div`,yn,[b(`div`,bn,[b(`span`,{class:`skeleton bar`,style:m({width:`${e}%`})},null,4)]),r[0]||(r[0]=b(`span`,{class:`skeleton value`},null,-1))])])),64))])]),_:1})])]),b(`div`,xn,[b(`div`,Sn,[y(I,null,{default:u(()=>[...r[4]||(r[4]=[b(`div`,{class:`chart`},[b(`span`,{class:`skeleton chart-title`}),b(`div`,{class:`skeleton chart-body`})],-1)])]),_:1})])]),b(`div`,Cn,[r[6]||(r[6]=b(`div`,{class:`grid-col-12`},[b(`span`,{class:`skeleton section-title`})],-1)),b(`div`,wn,[y(I,null,{default:u(()=>[b(`div`,Tn,[(t(),v(C,null,o(4,e=>b(`div`,{key:e,class:`number`},[...r[5]||(r[5]=[b(`span`,{class:`skeleton number-value`},null,-1),b(`span`,{class:`skeleton number-label`},null,-1)])])),64))])]),_:1})])])],64))}}),[[`__scopeId`,`data-v-ba831a29`]]);R.default.extend(Et.default),R.default.extend(Dt.default);function Dn(){return(0,R.default)().subtract(5,`year`).unix()}function On(e,t){let n=Dn(),r=[],i=[],a=[];for(let o=0;o<e.date.length;o++){let s=O(e.date[o]);s<n||(r.push(s),i.push(e.flight_id[o]),a.push(e[t][o]??null))}return!r.length||a.every(e=>e===null)?null:{data:[r,a],flightIds:i}}function kn(e){if(!e.length)return[];let t=new Map;for(let n of e){let e=t.get(n.date)||[];e.push(n),t.set(n.date,e)}let n=[...t.keys()].sort(),r=O(n[0]),i=O(n[n.length-1])-r,a=[];for(let e of n){let n=i?(O(e)-r)/i:.5,o=a[a.length-1];o&&n-o.position<.03?o.badges.push(...t.get(e)):a.push({position:n,date:e,badges:[...t.get(e)]})}return a}function X(e){let t=0,n=[],r=[];for(let i=0;i<e.date.length;i++)t+=(e.total_seconds[i]||0)/3600,n.push(O(e.date[i])),r.push(Math.round(t*10)/10);return n.length?[n,r]:null}function An(e,t){let n=e[t].map(e=>e||null),r=Ce(n);return r.every(e=>e===null)?null:{data:[e.date.map(O),n,r],flightIds:[...e.flight_id]}}function jn(e){let t=Array.from({length:z.length+1},()=>0);for(let n=0;n<e.date.length;n++){let r=e.free_distance[n]||null;if(r===null)continue;let i=z.findIndex(e=>r<e),a=i===-1?z.length:i;t[a]=(t[a]||0)+1}return t}function Mn(e){let t=0,n=0,r=0,i=0;for(let a=0;a<e.date.length;a++){let o=e.total_seconds[a]||0;t+=o,n+=o*(e.thermal_percentage[a]||0),r+=o*(e.attempt_percentage[a]||0),i+=o*(e.glide_percentage[a]||0)}if(!t)return null;let a=n+r+i;return a?{thermal:n/a,attempt:r/a,glide:i/a}:null}function Nn(e){return[...new Set(e.date.map(e=>Number(e.slice(0,4))))].sort()}function Pn(e){return Nn(e).slice(1).reverse()}var Fn=[{key:`airtime`,column:e=>e.total_seconds},{key:`distance`,column:e=>e.free_distance},{key:`points`,column:e=>e.points},{key:`climb`,column:e=>e.thermal_avg},{key:`glideRatio`,column:e=>e.glide_ratio}];function In(e,t){let n=Nn(e),r=t===void 0?n.length-1:n.indexOf(t);if(r<1)return null;let i=n[r],a=n[r-1];function o(t){let n=e.date.flatMap((e,n)=>Number(e.slice(0,4))===t?n:[]);return Fn.map(t=>{let r=t.column(e);return je(n.map(e=>r[e]??null))})}let s=o(a),c=o(i);return{previousSeason:a,currentSeason:i,rows:Fn.map((e,t)=>({key:e.key,previous:s[t],current:c[t]}))}}function Ln(e){let t=new Map;for(let n=0;n<e.date.length;n++){if(e.below_400_agl[n]===null)continue;let r=Number(e.date[n].slice(0,4)),i=t.get(r)||{weight:0,sums:[0,0,0,0]},a=e.total_seconds[n]||0;i.weight+=a,i.sums[0]+=a*(e.below_400_agl[n]||0),i.sums[1]+=a*(e.below_600_agl[n]||0),i.sums[2]+=a*(e.below_800_agl[n]||0),i.sums[3]+=a*(e.below_1000_agl[n]||0),t.set(r,i)}return[...t.keys()].sort().map(e=>{let{weight:n,sums:r}=t.get(e),i=r.map(e=>n?e/n:0);return{season:e,bands:[i[0],Math.max(i[1]-i[0],0),Math.max(i[2]-i[1],0),Math.max(i[3]-i[2],0),Math.max(1-i[3],0)]}})}function Rn(e){let t=new Map;for(let n=0;n<e.date.length;n++){let r=R.default.utc(e.takeoff_time[n]).tz(e.takeoff_timezone[n]||`UTC`),i=r.hour()+r.minute()/60,a=Math.min(i+(e.total_seconds[n]||0)/3600,24),o=Number(e.date[n].slice(0,4)),s=t.get(o)||[];s.push({flightId:e.flight_id[n],start:i,end:a}),t.set(o,s)}return[...t.keys()].sort((e,t)=>
2t-e).map(e=>({year:e,windows:t.get(e)}))}function Z(e,t){let n=t[0],r=t[1];return n.length?kn(e).map(e=>{let t=O(e.date),i=n.findIndex(e=>e>t),a=i===-1?n.length-1:Math.max(i-1,0);return{timestamp:t,value:r[a],badges:e.badges}}).filter(e=>e.timestamp>=n[0]):[]}function Q(e,t,n,r,i){return{key:e,titleKey:t,seriesInfo:[{labelKey:t,color:n,format:r}],data:t=>{let n=On(t.time_series,e);if(!n)return null;let r=n.data[0],a=n.data[1],o=i.trimOutliers?Ne(a):a;return{data:[r,o,Se(r,o)],flightIds:n.flightIds}},bins:i.bins,series:[ze(n),H(n,{width:2})],axes:[G,W(i.axisFormat||r)],scales:i.yRange?{x:{time:!0},y:{range:i.yRange}}:void 0,showDate:!0,sync:!0}}function zn(e){return`${ae(Math.round(e))} h`}var Bn={key:`cumulative`,titleKey:`career`,seriesInfo:[{labelKey:`airtime`,color:`--color-sky-1`,format:e=>`${F(Math.round(e),0)} h`}],data:e=>{let t=X(e.time_series);return t?{data:t}:null},series:[H(`--color-sky-1`,{fill:`--color-sky-transparent-1`})],axes:[G,W(zn)],showDate:!0,sync:!0},Vn=[Q(`thermal_bank`,`circlingBank`,`--color-forest-1`,e=>oe(e,0),{bins:{min:0,max:60,step:5}}),Q(`thermal_avg`,`averageClimb`,`--color-forest-1`,e=>ue(e,1),{bins:{min:-1,max:5,step:.5}}),Q(`thermal_start_agl`,`entryHeight`,`--color-forest-1`,e=>ce(e,0),{bins:{min:0,max:2400,step:200}})],Hn=[Q(`glide_speed`,`cruiseSpeed`,`--color-black-2`,e=>le(e,0),{bins:{min:60,max:200,step:10}}),Q(`glide_detour`,`glideDetour`,`--color-black-2`,e=>de(e,0),{bins:{min:1,max:1.75,step:.05},yRange:Ue(1,null)}),Q(`glide_ratio`,`glideRatio`,`--color-black-2`,e=>se(e),{bins:{min:20,max:100,step:5},trimOutliers:!0})],Un=[Q(`free_distance`,`freeDistance`,`--color-sky-1`,e=>re(e,0),{bins:{min:0,max:1500,step:100}}),Q(`sprint_speed`,`sprintSpeed`,`--color-blood-1`,e=>fe(e,0),{bins:{min:0,max:195,step:15}}),Q(`points`,`points`,`--color-sky-1`,e=>pe(e,0),{bins:{min:0,max:1500,step:100}})],Wn=[Q(`launch_gain`,`launchGain`,`--color-honey-1`,e=>ce(e,0),{bins:{min:0,max:1500,step:100}})];function $(e,t,n=`--color-sky-1`,r=`--color-sky-2`){let i=e=>pe(e,0);return{key:e,titleKey:`contestNames.${t}`,seriesInfo:[{labelKey:`points`,color:r,format:i},{labelKey:`record`,color:n,format:i}],data:t=>An(t.time_series,e),series:[ze(n),H(n,{paths:L.paths.stepped({align:1})})],axes:[G,W(i)],showDate:!0,sync:!0}}var Gn=[$(`points`,`free`),$(`sprint_points`,`sprint`,`--color-blood-1`,`--color-blood-1`),$(`triangle_points`,`triangle`),$(`declaration_points`,`declaration`)],Kn=[q(`likes`,`likes`,`--color-sky-1`,`--color-sky-transparent-1`,e=>e.likes_over_time),q(`followers`,`followers`,`--color-blood-1`,`--color-blood-transparent-1`,e=>e.followers_over_time),q(`images`,`images`,`--color-forest-1`,`--color-forest-transparent-1`,e=>e.images_over_time)],qn=26,Jn=7;function Yn(e,t){let n=Math.sin((e+1)*12.9898+t*78.233)*43758.5453;return n-Math.floor(n)}function Xn(){let e=(0,R.default)(),t=[];for(let n=5;n>=0;n--)for(let r=0;r<qn;r++){let i=(0,R.default)(`${e.year()-n}-04-01`).add(r*Jn,`day`);if(i.isAfter(e))break;t.push(i.format(`YYYY-MM-DD`))}return t}function Zn(e){function t(t,n,r,i){return e.map((a,o)=>{let s=e.length>1?o/(e.length-1):1;return t+(n-t)*s+(Yn(o,i)-.5)*r})}return{flight_id:e.map((e,t)=>t+1),date:e,takeoff_time:e.map(e=>`${e}T09:40:00`),takeoff_timezone:e.map(()=>`Europe/Berlin`),total_seconds:t(3.2,6.4,2,1).map(e=>Math.round(e*3600)),free_distance:t(120,520,160,2),points:t(110,490,150,3),sprint_speed:t(68,108,22,4),sprint_points:t(90,320,110,5),triangle_points:t(80,380,130,6),declaration_points:t(60,300,120,7),attempt_percentage:t(.08,.03,.04,8),thermal_percentage:t(.46,.34,.08,9),thermal_bank:t(38,43,6,10),thermal_avg:t(1.2,2.1,.8,11),thermal_start_agl:t(700,950,300,12),glide_ratio:t(28,46,12,13),glide_detour:t(1.18,1.08,.08,14),glide_percentage:t(.42,.55,.1,15),glide_speed:t(105,145,25,16),below_400_agl:t(.12,.06,.05,17),below_600_agl:t(.3,.2,.08,18),below_800_agl:t(.52,.42,.1,19),below_1000_agl:t(.7,.62,.1,20),launch_gain:t(600,900,300,21)}}var Qn={early_bird:`Early Bird`,winch_wizard:`Winch Wizard`,border_crosser:`Border Crosser`,nomad:`Nomad`,centrifuge:`Centrifuge`};function $n(e){let t=Object.keys(Qn);return t.map((n,r)=>({badge_id:n,name:Qn[n],logo:`badge/${n}.webp`,date:e[Math.round((r+1)/(t.length+1)*(e.length-1))]}))}function er(){let e=Xn();return{time_series:Zn(e),hours_per_aircraft:[],hours_per_aircraft_class:[],hours_per_airport:[],hours_per_copilot:[],hours_per_wingman:[],hours_per_year_month:[],hours_per_day:[],hours_per_season_aircraft:[],hours_per_season_airport:[],hours_per_season_copilot:[],hours_per_season_wingman:[],engine_seconds_per_season:[],season_highlights:[],records:[],badges:$n(e),likes_over_time:[],followers_over_time:[],images_over_time:[],likes_received_per_user:[],likes_given_per_user:[]}}var tr={class:`preview`},nr={class:`mock`,"aria-hidden":`true`},rr={class:`grid-row`},ir={class:`grid-col-12`},ar={class:`grid-row`},or={class:`grid-col-12`},sr=P(g({__name:`StatsPreview`,setup(e){let{t:n}=N({useScope:`global`}),r=er(),i=X(r.time_series),a=i?Z(r.badges,i).map(e=>({timestamp:e.timestamp,value:e.value,image:D(`VUE_APP_FILE_URL`)+e.badges[0].logo,title:e.badges.map(e=>e.name).join(`, `),extraCount:e.badges.length-1,to:{name:j.PlanOverview}})):[];return(e,i)=>(t(),v(`div`,tr,[b(`div`,nr,[b(`div`,rr,[b(`div`,ir,[y(Y,{configs:[w(Bn)],statistics:w(r),height:240,markers:w(a)},null,8,[`configs`,`statistics`,`markers`])])]),b(`div`,ar,[b(`div`,or,[y(Y,{configs:w(Un),statistics:w(r),height:120},null,8,[`configs`,`statistics`])])])]),y(ve,{label:w(n)(`getPremium`),"umami-event":`get premium`},null,8,[`label`])]))}}),[[`__scopeId`,`data-v-aa516eed`]]);export{K as A,Le as B,Y as C,mt as D,St as E,z as F,B as I,ke as L,Re as M,G as N,ft as O,W as P,Te as R,Wt as S,J as T,we as V,En as _,Hn as a,an as b,Kn as c,Mn as d,Pn as f,In as g,Rn as h,Bn as i,H as j,dt as k,Ln as l,jn as m,Vn as n,Wn as o,X as p,Un as r,Gn as s,sr as t,Z as u,hn as v,kt as w,Yt as x,ln as y,Ie as z};

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.