const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ChartView-BHCNO8eu.js","assets/_plugin-vue_export-helper-Df8BHgqR.js","assets/useChartData-Bg6PjNwS.js","assets/ChartView-Cz16-OtJ.css","assets/EntityDetailView-OKBlF-Gx.js","assets/PageHeader-CZdSfouL.js","assets/usePlotlyChart-EBpzvtkr.js","assets/chart-DXupaYdX.js","assets/PortChart-Xz1yXGfz.js","assets/useChartStats-Y1UF0N8D.js","assets/useChartStats-CPizu_Se.css","assets/MapChart-BYopDhbv.js","assets/ActivityChart-DSzDmM-f.js","assets/StatsView-BGLUezcu.js","assets/StatsView-BYyFAuwk.css"])))=>i.map(i=>d[i]);
import{$ as e,$t as t,A as n,At as r,B as i,Bt as a,C as o,Cn as s,Ct as c,D as l,Dn as u,Dt as d,E as f,En as p,Et as m,Ft as ee,G as h,Gt as g,I as te,It as _,J as v,Jt as ne,K as re,Kt as y,L as ie,Lt as ae,M as oe,Mt as se,N as ce,Nt as le,O as ue,On as b,Ot as de,P as fe,Pt as x,Q as pe,Qt as me,R as he,Rt as S,Sn as ge,St as C,T as _e,Tn as w,Tt as T,Ut as ve,V as ye,Vt as E,W as be,Wt as D,X as xe,Xt as Se,Y as Ce,Yt as we,Z as Te,Zt as Ee,_ as De,_n as Oe,_t as ke,an as Ae,at as je,bn as Me,bt as O,c as Ne,cn as k,d as Pe,dn as Fe,dt as Ie,en as Le,et as Re,f as A,fn as ze,ft as Be,g as Ve,gn as He,gt as Ue,h as We,hn as Ge,ht as j,i as Ke,in as qe,it as Je,j as Ye,k as Xe,kt as Ze,l as Qe,ln as $e,lt as et,m as tt,mn as nt,mt as rt,n as it,nn as at,nt as ot,o as st,on as ct,ot as lt,p as ut,pn as dt,pt as ft,q as pt,qt as mt,r as ht,rn as gt,rt as _t,s as vt,sn as yt,t as M,tn as N,tt as bt,u as xt,un as St,ut as Ct,v as wt,vn as Tt,vt as P,w as Et,wn as Dt,wt as Ot,x as kt,xn as At,xt as F,y as jt,yn as Mt,yt as I,z as Nt,zt as L}from"./_plugin-vue_export-helper-Df8BHgqR.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var Pt=void 0,Ft=typeof window<`u`&&window.trustedTypes;if(Ft)try{Pt=Ft.createPolicy(`vue`,{createHTML:e=>e})}catch{}var It=Pt?e=>Pt.createHTML(e):e=>e,Lt=`http://www.w3.org/2000/svg`,Rt=`http://www.w3.org/1998/Math/MathML`,R=typeof document<`u`?document:null,zt=R&&R.createElement(`template`),Bt={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{let t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{let i=t===`svg`?R.createElementNS(Lt,e):t===`mathml`?R.createElementNS(Rt,e):n?R.createElement(e,{is:n}):R.createElement(e);return e===`select`&&r&&r.multiple!=null&&i.setAttribute(`multiple`,r.multiple),i},createText:e=>R.createTextNode(e),createComment:e=>R.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>R.querySelector(e),setScopeId(e,t){e.setAttribute(t,``)},insertStaticContent(e,t,n,r,i,a){let o=n?n.previousSibling:t.lastChild;if(i&&(i===a||i.nextSibling))for(;t.insertBefore(i.cloneNode(!0),n),!(i===a||!(i=i.nextSibling)););else{zt.innerHTML=It(r===`svg`?`<svg>${e}</svg>`:r===`mathml`?`<math>${e}</math>`:e);let i=zt.content;if(r===`svg`||r===`mathml`){let e=i.firstChild;for(;e.firstChild;)i.appendChild(e.firstChild);i.removeChild(e)}t.insertBefore(i,n)}return[o?o.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},Vt=Symbol(`_vtc`);function Ht(e,t,n){let r=e[Vt];r&&(t=(t?[t,...r]:[...r]).join(` `)),t==null?e.removeAttribute(`class`):n?e.setAttribute(`class`,t):e.className=t}var Ut=Symbol(`_vod`),Wt=Symbol(`_vsh`),Gt=Symbol(``),Kt=/(?:^|;)\s*display\s*:/;function qt(e,t,n){let r=e.style,i=At(n),a=!1;if(n&&!i){if(t)if(At(t))for(let e of t.split(`;`)){let t=e.slice(0,e.indexOf(`:`)).trim();n[t]??Yt(r,t,``)}else for(let e in t)n[e]??Yt(r,e,``);for(let i in n){i===`display`&&(a=!0);let o=n[i];o==null?Yt(r,i,``):$t(e,i,!At(t)&&t?t[i]:void 0,o)||Yt(r,i,o)}}else if(i){if(t!==n){let e=r[Gt];e&&(n+=`;`+e),r.cssText=n,a=Kt.test(n)}}else t&&e.removeAttribute(`style`);Ut in e&&(e[Ut]=a?r.display:``,e[Wt]&&(r.display=`none`))}var Jt=/\s*!important$/;function Yt(e,t,n){if(Ge(n))n.forEach(n=>Yt(e,t,n));else if(n??=``,t.startsWith(`--`))e.setProperty(t,n);else{let r=Qt(e,t);Jt.test(n)?e.setProperty(ze(r),n.replace(Jt,``),`important`):e[r]=n}}var Xt=[`Webkit`,`Moz`,`ms`],Zt={};function Qt(e,t){let n=Zt[t];if(n)return n;let r=$e(t);if(r!==`filter`&&r in e)return Zt[t]=r;r=St(r);for(let n=0;n<Xt.length;n++){let i=Xt[n]+r;if(i in e)return Zt[t]=i}return t}function $t(e,t,n,r){return e.tagName===`TEXTAREA`&&(t===`width`||t===`height`)&&At(r)&&n===r}var en=`http://www.w3.org/1999/xlink`;function tn(e,t,n,r,i,a=Me(t)){r&&t.startsWith(`xlink:`)?n==null?e.removeAttributeNS(en,t.slice(6,t.length)):e.setAttributeNS(en,t,n):n==null||a&&!dt(n)?e.removeAttribute(t):e.setAttribute(t,a?``:ge(n)?String(n):n)}function nn(e,t,n,r,i){if(t===`innerHTML`||t===`textContent`){n!=null&&(e[t]=t===`innerHTML`?It(n):n);return}let a=e.tagName;if(t===`value`&&a!==`PROGRESS`&&!a.includes(`-`)){let r=a===`OPTION`?e.getAttribute(`value`)||``:e.value,i=n==null?e.type===`checkbox`?`on`:``:String(n);(r!==i||!(`_value`in e))&&(e.value=i),n??e.removeAttribute(t),e._value=n;return}let o=!1;if(n===``||n==null){let r=typeof e[t];r===`boolean`?n=dt(n):n==null&&r===`string`?(n=``,o=!0):r===`number`&&(n=0,o=!0)}try{e[t]=n}catch{}o&&e.removeAttribute(i||t)}function rn(e,t,n,r){e.addEventListener(t,n,r)}function an(e,t,n,r){e.removeEventListener(t,n,r)}var on=Symbol(`_vei`);function sn(e,t,n,r,i=null){let a=e[on]||(e[on]={}),o=a[t];if(r&&o)o.value=r;else{let[n,s]=ln(t);r?rn(e,n,a[t]=pn(r,i),s):o&&(an(e,n,o,s),a[t]=void 0)}}var cn=/(?:Once|Passive|Capture)$/;function ln(e){let t;if(cn.test(e)){t={};let n;for(;n=e.match(cn);)e=e.slice(0,e.length-n[0].length),t[n[0].toLowerCase()]=!0}return[e[2]===`:`?e.slice(3):ze(e.slice(2)),t]}var un=0,dn=Promise.resolve(),fn=()=>un||=(dn.then(()=>un=0),Date.now());function pn(e,t){let n=e=>{if(!e._vts)e._vts=Date.now();else if(e._vts<=n.attached)return;ke(mn(e,n.value),t,5,[e])};return n.value=e,n.attached=fn(),n}function mn(e,t){if(Ge(t)){let n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(e=>t=>!t._stopped&&e&&e(t))}else return t}var hn=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,gn=(e,t,n,r,i,a)=>{let o=i===`svg`;t===`class`?Ht(e,r,o):t===`style`?qt(e,n,r):Tt(t)?Oe(t)||sn(e,t,n,r,a):(t[0]===`.`?(t=t.slice(1),!0):t[0]===`^`?(t=t.slice(1),!1):_n(e,t,r,o))?(nn(e,t,r),!e.tagName.includes(`-`)&&(t===`value`||t===`checked`||t===`selected`)&&tn(e,t,r,o,a,t!==`value`)):e._isVueCE&&(vn(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!At(r)))?nn(e,$e(t),r,a,t):(t===`true-value`?e._trueValue=r:t===`false-value`&&(e._falseValue=r),tn(e,t,r,o))};function _n(e,t,n,r){if(r)return!!(t===`innerHTML`||t===`textContent`||t in e&&hn(t)&&He(n));if(t===`spellcheck`||t===`draggable`||t===`translate`||t===`autocorrect`||t===`sandbox`&&e.tagName===`IFRAME`||t===`form`||t===`list`&&e.tagName===`INPUT`||t===`type`&&e.tagName===`TEXTAREA`)return!1;if(t===`width`||t===`height`){let t=e.tagName;if(t===`IMG`||t===`VIDEO`||t===`CANVAS`||t===`SOURCE`)return!1}return hn(t)&&At(n)?!1:t in e}function vn(e,t){let n=e._def.props;if(!n)return!1;let r=$e(t);return Array.isArray(n)?n.some(e=>$e(e)===r):Object.keys(n).some(e=>$e(e)===r)}var yn=e=>{let t=e.props[`onUpdate:modelValue`]||!1;return Ge(t)?e=>nt(t,e):t};function bn(e){e.target.composing=!0}function xn(e){let t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event(`input`)))}var Sn=Symbol(`_assign`);function Cn(e,t,n){return t&&(e=e.trim()),n&&(e=w(e)),e}var wn={created(e,{modifiers:{lazy:t,trim:n,number:r}},i){e[Sn]=yn(i);let a=r||i.props&&i.props.type===`number`;rn(e,t?`change`:`input`,t=>{t.target.composing||e[Sn](Cn(e.value,n,a))}),(n||a)&&rn(e,`change`,()=>{e.value=Cn(e.value,n,a)}),t||(rn(e,`compositionstart`,bn),rn(e,`compositionend`,xn),rn(e,`change`,xn))},mounted(e,{value:t}){e.value=t??``},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:i,number:a}},o){if(e[Sn]=yn(o),e.composing)return;let s=(a||e.type===`number`)&&!/^0\d/.test(e.value)?w(e.value):e.value,c=t??``;if(s===c)return;let l=e.getRootNode();(l instanceof Document||l instanceof ShadowRoot)&&l.activeElement===e&&e.type!==`range`&&(r&&t===n||i&&e.value.trim()===c)||(e.value=c)}},Tn={deep:!0,created(e,{value:t,modifiers:{number:n}},r){let i=Mt(t);rn(e,`change`,()=>{let t=Array.prototype.filter.call(e.options,e=>e.selected).map(e=>n?w(Dn(e)):Dn(e));e[Sn](e.multiple?i?new Set(t):t:t[0]),e._assigning=!0,se(()=>{e._assigning=!1})}),e[Sn]=yn(r)},mounted(e,{value:t}){En(e,t)},beforeUpdate(e,t,n){e[Sn]=yn(n)},updated(e,{value:t}){e._assigning||En(e,t)}};function En(e,t){let n=e.multiple,r=Ge(t);if(!(n&&!r&&!Mt(t))){for(let i=0,a=e.options.length;i<a;i++){let a=e.options[i],o=Dn(a);if(n)if(r){let e=typeof o;e===`string`||e===`number`?a.selected=t.some(e=>String(e)===String(o)):a.selected=Dt(t,o)>-1}else a.selected=t.has(o);else if(s(Dn(a),t)){e.selectedIndex!==i&&(e.selectedIndex=i);return}}!n&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function Dn(e){return`_value`in e?e._value:e.value}var On=[`ctrl`,`shift`,`alt`,`meta`],kn={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>`button`in e&&e.button!==0,middle:e=>`button`in e&&e.button!==1,right:e=>`button`in e&&e.button!==2,exact:(e,t)=>On.some(n=>e[`${n}Key`]&&!t.includes(n))},An=(e,t)=>{if(!e)return e;let n=e._withMods||={},r=t.join(`.`);return n[r]||(n[r]=((n,...r)=>{for(let e=0;e<t.length;e++){let r=kn[t[e]];if(r&&r(n,t))return}return e(n,...r)}))},jn={esc:`escape`,space:` `,up:`arrow-up`,left:`arrow-left`,right:`arrow-right`,down:`arrow-down`,delete:`backspace`},Mn=(e,t)=>{let n=e._withKeys||={},r=t.join(`.`);return n[r]||(n[r]=(n=>{if(!(`key`in n))return;let r=ze(n.key);if(t.some(e=>e===r||jn[e]===r))return e(n)}))},Nn=Fe({patchProp:gn},Bt),Pn;function Fn(){return Pn||=c(Nn)}var In=((...e)=>{let t=Fn().createApp(...e),{mount:n}=t;return t.mount=e=>{let r=Rn(e);if(!r)return;let i=t._component;!He(i)&&!i.render&&!i.template&&(i.template=r.innerHTML),r.nodeType===1&&(r.textContent=``);let a=n(r,!1,Ln(r));return r instanceof Element&&(r.removeAttribute(`v-cloak`),r.setAttribute(`data-v-app`,``)),a},t});function Ln(e){if(e instanceof SVGElement)return`svg`;if(typeof MathMLElement==`function`&&e instanceof MathMLElement)return`mathml`}function Rn(e){return At(e)?document.querySelector(e):e}var zn=typeof window<`u`,Bn,Vn=e=>Bn=e,Hn=Symbol();function Un(e){return e&&typeof e==`object`&&Object.prototype.toString.call(e)===`[object Object]`&&typeof e.toJSON!=`function`}var Wn;(function(e){e.direct=`direct`,e.patchObject=`patch object`,e.patchFunction=`patch function`})(Wn||={});var Gn=typeof window==`object`&&window.window===window?window:typeof self==`object`&&self.self===self?self:typeof global==`object`&&global.global===global?global:typeof globalThis==`object`?globalThis:{HTMLElement:null};function Kn(e,{autoBom:t=!1}={}){return t&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob([``,e],{type:e.type}):e}function qn(e,t,n){let r=new XMLHttpRequest;r.open(`GET`,e),r.responseType=`blob`,r.onload=function(){Qn(r.response,t,n)},r.onerror=function(){console.error(`could not download file`)},r.send()}function Jn(e){let t=new XMLHttpRequest;t.open(`HEAD`,e,!1);try{t.send()}catch{}return t.status>=200&&t.status<=299}function Yn(e){try{e.dispatchEvent(new MouseEvent(`click`))}catch{let t=new MouseEvent(`click`,{bubbles:!0,cancelable:!0,view:window,detail:0,screenX:80,screenY:20,clientX:80,clientY:20,ctrlKey:!1,altKey:!1,shiftKey:!1,metaKey:!1,button:0,relatedTarget:null});e.dispatchEvent(t)}}var Xn=typeof navigator==`object`?navigator:{userAgent:``},Zn=/Macintosh/.test(Xn.userAgent)&&/AppleWebKit/.test(Xn.userAgent)&&!/Safari/.test(Xn.userAgent),Qn=zn?typeof HTMLAnchorElement<`u`&&`download`in HTMLAnchorElement.prototype&&!Zn?$n:`msSaveOrOpenBlob`in Xn?er:tr:()=>{};function $n(e,t=`download`,n){let r=document.createElement(`a`);r.download=t,r.rel=`noopener`,typeof e==`string`?(r.href=e,r.origin===location.origin?Yn(r):Jn(r.href)?qn(e,t,n):(r.target=`_blank`,Yn(r))):(r.href=URL.createObjectURL(e),setTimeout(function(){URL.revokeObjectURL(r.href)},4e4),setTimeout(function(){Yn(r)},0))}function er(e,t=`download`,n){if(typeof e==`string`)if(Jn(e))qn(e,t,n);else{let t=document.createElement(`a`);t.href=e,t.target=`_blank`,setTimeout(function(){Yn(t)})}else navigator.msSaveOrOpenBlob(Kn(e,n),t)}function tr(e,t,n,r){if(r||=open(``,`_blank`),r&&(r.document.title=r.document.body.innerText=`downloading...`),typeof e==`string`)return qn(e,t,n);let i=e.type===`application/octet-stream`,a=/constructor/i.test(String(Gn.HTMLElement))||`safari`in Gn,o=/CriOS\/[\d]+/.test(navigator.userAgent);if((o||i&&a||Zn)&&typeof FileReader<`u`){let t=new FileReader;t.onloadend=function(){let e=t.result;if(typeof e!=`string`)throw r=null,Error(`Wrong reader.result type`);e=o?e:e.replace(/^data:[^;]*;/,`data:attachment/file;`),r?r.location.href=e:location.assign(e),r=null},t.readAsDataURL(e)}else{let t=URL.createObjectURL(e);r?r.location.assign(t):location.href=t,r=null,setTimeout(function(){URL.revokeObjectURL(t)},4e4)}}var{assign:nr}=Object;function rr(){let e=ne(!0),t=e.run(()=>N({})),n=[],r=[],i=me({install(e){Vn(i),i._a=e,e.provide(Hn,i),e.config.globalProperties.$pinia=i,r.forEach(e=>n.push(e)),r=[]},use(e){return this._a?n.push(e):r.push(e),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return i}var ir=()=>{};function ar(e,n,r,i=ir){e.add(n);let a=()=>{e.delete(n)&&i()};return!r&&we()&&t(a),a}function or(e,...t){e.forEach(e=>{e(...t)})}var sr=e=>e(),cr=Symbol(),lr=Symbol();function ur(e,t){e instanceof Map&&t instanceof Map?t.forEach((t,n)=>e.set(n,t)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(let n in t){if(!t.hasOwnProperty(n))continue;let r=t[n],i=e[n];Un(i)&&Un(r)&&e.hasOwnProperty(n)&&!Ee(r)&&!Se(r)?e[n]=ur(i,r):e[n]=r}return e}var dr=Symbol();function fr(e){return!Un(e)||!Object.prototype.hasOwnProperty.call(e,dr)}var{assign:z}=Object;function pr(e){return!!(Ee(e)&&e.effect)}function mr(e,t,n,r){let{state:i,actions:a,getters:o}=t,s=n.state.value[e],c;function l(){return s||(n.state.value[e]=i?i():{}),z(ct(n.state.value[e]),a,Object.keys(o||{}).reduce((t,r)=>(t[r]=me(P(()=>{Vn(n);let t=n._s.get(e);return o[r].call(t,t)})),t),{}))}return c=hr(e,l,t,n,r,!0),c}function hr(e,t,n={},r,i,a){let o,s=z({actions:{}},n),c={deep:!0},l,u,d=new Set,f=new Set,p=r.state.value[e];!a&&!p&&(r.state.value[e]={}),N({});let m;function ee(t){let n;l=u=!1,typeof t==`function`?(t(r.state.value[e]),n={type:Wn.patchFunction,storeId:e,events:void 0}):(ur(r.state.value[e],t),n={type:Wn.patchObject,payload:t,storeId:e,events:void 0});let i=m=Symbol();se().then(()=>{m===i&&(l=!0)}),u=!0,or(d,n,r.state.value[e])}let h=a?function(){let{state:e}=n,t=e?e():{};this.$patch(e=>{z(e,t)})}:ir;function g(){o.stop(),d.clear(),f.clear(),r._s.delete(e)}let te=(t,n=``)=>{if(cr in t)return t[lr]=n,t;let i=function(){Vn(r);let n=Array.from(arguments),a=new Set,o=new Set;function s(e){a.add(e)}function c(e){o.add(e)}or(f,{args:n,name:i[lr],store:_,after:s,onError:c});let l;try{l=t.apply(this&&this.$id===e?this:_,n)}catch(e){throw or(o,e),e}return l instanceof Promise?l.then(e=>(or(a,e),e)).catch(e=>(or(o,e),Promise.reject(e))):(or(a,l),l)};return i[cr]=!0,i[lr]=n,i},_=Le({_p:r,$id:e,$onAction:ar.bind(null,f),$patch:ee,$reset:h,$subscribe(t,n={}){let i=ar(d,t,n.detached,()=>a()),a=o.run(()=>D(()=>r.state.value[e],r=>{(n.flush===`sync`?u:l)&&t({storeId:e,type:Wn.direct,events:void 0},r)},z({},c,n)));return i},$dispose:g});r._s.set(e,_);let v=(r._a&&r._a.runWithContext||sr)(()=>r._e.run(()=>(o=ne()).run(()=>t({action:te}))));for(let t in v){let n=v[t];Ee(n)&&!pr(n)||Se(n)?a||(p&&fr(n)&&(Ee(n)?n.value=p[t]:ur(n,p[t])),r.state.value[e][t]=n):typeof n==`function`&&(v[t]=te(n,t),s.actions[t]=n)}return z(_,v),z(qe(_),v),Object.defineProperty(_,`$state`,{get:()=>r.state.value[e],set:e=>{ee(t=>{z(t,e)})}}),r._p.forEach(e=>{z(_,o.run(()=>e({store:_,app:r._a,pinia:r,options:s})))}),p&&a&&n.hydrate&&n.hydrate(_.$state,p),l=!0,u=!0,_}function gr(e,t,n){let i,a=typeof t==`function`;i=a?n:t;function o(n,o){let s=Ze();return n||=s?r(Hn,null):null,n&&Vn(n),n=Bn,n._s.has(e)||(a?hr(e,t,i,n):mr(e,i,n)),n._s.get(e)}return o.$id=e,o}function _r(e){let t=qe(e),n={};for(let r in t){let i=t[r];i.effect?n[r]=P({get:()=>e[r],set(t){e[r]=t}}):(Ee(i)||Se(i))&&(n[r]=Ae(e,r))}return n}var vr=typeof document<`u`;function yr(e){return typeof e==`object`||`displayName`in e||`props`in e||`__vccOpts`in e}function br(e){return e.__esModule||e[Symbol.toStringTag]===`Module`||e.default&&yr(e.default)}var B=Object.assign;function xr(e,t){let n={};for(let r in t){let i=t[r];n[r]=V(i)?i.map(e):e(i)}return n}var Sr=()=>{},V=Array.isArray;function Cr(e,t){let n={};for(let r in e)n[r]=r in t?t[r]:e[r];return n}var H=function(e){return e[e.MATCHER_NOT_FOUND=1]=`MATCHER_NOT_FOUND`,e[e.NAVIGATION_GUARD_REDIRECT=2]=`NAVIGATION_GUARD_REDIRECT`,e[e.NAVIGATION_ABORTED=4]=`NAVIGATION_ABORTED`,e[e.NAVIGATION_CANCELLED=8]=`NAVIGATION_CANCELLED`,e[e.NAVIGATION_DUPLICATED=16]=`NAVIGATION_DUPLICATED`,e}({}),wr=Symbol(``);H.MATCHER_NOT_FOUND,H.NAVIGATION_GUARD_REDIRECT,H.NAVIGATION_ABORTED,H.NAVIGATION_CANCELLED,H.NAVIGATION_DUPLICATED;function Tr(e,t){return B(Error(),{type:e,[wr]:!0},t)}function U(e,t){return e instanceof Error&&wr in e&&(t==null||!!(e.type&t))}var Er=Symbol(``),Dr=Symbol(``),Or=Symbol(``),kr=Symbol(``),Ar=Symbol(``);function jr(){return r(Or)}function Mr(e){return r(kr)}var Nr=/#/g,Pr=/&/g,Fr=/\//g,Ir=/=/g,Lr=/\?/g,Rr=/\+/g,zr=/%5B/g,Br=/%5D/g,Vr=/%5E/g,Hr=/%60/g,Ur=/%7B/g,Wr=/%7C/g,Gr=/%7D/g,Kr=/%20/g;function qr(e){return e==null?``:encodeURI(``+e).replace(Wr,`|`).replace(zr,`[`).replace(Br,`]`)}function Jr(e){return qr(e).replace(Ur,`{`).replace(Gr,`}`).replace(Vr,`^`)}function Yr(e){return qr(e).replace(Rr,`%2B`).replace(Kr,`+`).replace(Nr,`%23`).replace(Pr,`%26`).replace(Hr,"`").replace(Ur,`{`).replace(Gr,`}`).replace(Vr,`^`)}function Xr(e){return Yr(e).replace(Ir,`%3D`)}function Zr(e){return qr(e).replace(Nr,`%23`).replace(Lr,`%3F`)}function Qr(e){return Zr(e).replace(Fr,`%2F`)}function $r(e){if(e==null)return null;try{return decodeURIComponent(``+e)}catch{}return``+e}var ei=/\/$/,ti=e=>e.replace(ei,``);function ni(e,t,n=`/`){let r,i={},a=``,o=``,s=t.indexOf(`#`),c=t.indexOf(`?`);return c=s>=0&&c>s?-1:c,c>=0&&(r=t.slice(0,c),a=t.slice(c,s>0?s:t.length),i=e(a.slice(1))),s>=0&&(r||=t.slice(0,s),o=t.slice(s,t.length)),r=ui(r??t,n),{fullPath:r+a+o,path:r,query:i,hash:$r(o)}}function ri(e,t){let n=t.query?e(t.query):``;return t.path+(n&&`?`)+n+(t.hash||``)}function ii(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||`/`}function ai(e,t,n){let r=t.matched.length-1,i=n.matched.length-1;return r>-1&&r===i&&oi(t.matched[r],n.matched[i])&&si(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function oi(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function si(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!ci(e[n],t[n]))return!1;return!0}function ci(e,t){return V(e)?li(e,t):V(t)?li(t,e):(e&&e.valueOf())===(t&&t.valueOf())}function li(e,t){return V(t)?e.length===t.length&&e.every((e,n)=>e===t[n]):e.length===1&&e[0]===t}function ui(e,t){if(e.startsWith(`/`))return e;if(!e)return t;let n=t.split(`/`),r=e.split(`/`),i=r[r.length-1];(i===`..`||i===`.`)&&r.push(``);let a=n.length-1,o,s;for(o=0;o<r.length;o++)if(s=r[o],s!==`.`)if(s===`..`)a>1&&a--;else break;return n.slice(0,a).join(`/`)+`/`+r.slice(o).join(`/`)}var W={path:`/`,name:void 0,params:{},query:{},hash:``,fullPath:`/`,matched:[],meta:{},redirectedFrom:void 0},di=function(e){return e.pop=`pop`,e.push=`push`,e}({}),fi=function(e){return e.back=`back`,e.forward=`forward`,e.unknown=``,e}({});function pi(e){if(!e)if(vr){let t=document.querySelector(`base`);e=t&&t.getAttribute(`href`)||`/`,e=e.replace(/^\w+:\/\/[^/]+/,``)}else e=`/`;return e[0]!==`/`&&e[0]!==`#`&&(e=`/`+e),ti(e)}var mi=/^[^#]+#/;function hi(e,t){return e.replace(mi,`#`)+t}function gi(e,t){let n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}var _i=()=>({left:window.scrollX,top:window.scrollY});function vi(e){let t;if(`el`in e){let n=e.el,r=typeof n==`string`&&n.startsWith(`#`),i=typeof n==`string`?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!i)return;t=gi(i,e)}else t=e;`scrollBehavior`in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left==null?window.scrollX:t.left,t.top==null?window.scrollY:t.top)}function yi(e,t){return(history.state?history.state.position-t:-1)+e}var bi=new Map;function xi(e,t){bi.set(e,t)}function Si(e){let t=bi.get(e);return bi.delete(e),t}function Ci(e){return typeof e==`string`||e&&typeof e==`object`}function wi(e){return typeof e==`string`||typeof e==`symbol`}function Ti(e){let t={};if(e===``||e===`?`)return t;let n=(e[0]===`?`?e.slice(1):e).split(`&`);for(let e=0;e<n.length;++e){let r=n[e].replace(Rr,` `),i=r.indexOf(`=`),a=$r(i<0?r:r.slice(0,i)),o=i<0?null:$r(r.slice(i+1));if(a in t){let e=t[a];V(e)||(e=t[a]=[e]),e.push(o)}else t[a]=o}return t}function Ei(e){let t=``;for(let n in e){let r=e[n];if(n=Xr(n),r==null){r!==void 0&&(t+=(t.length?`&`:``)+n);continue}(V(r)?r.map(e=>e&&Yr(e)):[r&&Yr(r)]).forEach(e=>{e!==void 0&&(t+=(t.length?`&`:``)+n,e!=null&&(t+=`=`+e))})}return t}function Di(e){let t={};for(let n in e){let r=e[n];r!==void 0&&(t[n]=V(r)?r.map(e=>e==null?null:``+e):r==null?r:``+r)}return t}function Oi(){let e=[];function t(t){return e.push(t),()=>{let n=e.indexOf(t);n>-1&&e.splice(n,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function G(e,t,n,r,i,a=e=>e()){let o=r&&(r.enterCallbacks[i]=r.enterCallbacks[i]||[]);return()=>new Promise((s,c)=>{let l=e=>{e===!1?c(Tr(H.NAVIGATION_ABORTED,{from:n,to:t})):e instanceof Error?c(e):Ci(e)?c(Tr(H.NAVIGATION_GUARD_REDIRECT,{from:t,to:e})):(o&&r.enterCallbacks[i]===o&&typeof e==`function`&&o.push(e),s())},u=a(()=>e.call(r&&r.instances[i],t,n,l)),d=Promise.resolve(u);e.length<3&&(d=d.then(l)),d.catch(e=>c(e))})}function ki(e,t,n,r,i=e=>e()){let a=[];for(let o of e)for(let e in o.components){let s=o.components[e];if(!(t!==`beforeRouteEnter`&&!o.instances[e]))if(yr(s)){let c=(s.__vccOpts||s)[t];c&&a.push(G(c,n,r,o,e,i))}else{let c=s();a.push(()=>c.then(a=>{if(!a)throw Error(`Couldn't resolve component "${e}" at "${o.path}"`);let s=br(a)?a.default:a;o.mods[e]=a,o.components[e]=s;let c=(s.__vccOpts||s)[t];return c&&G(c,n,r,o,e,i)()}))}}return a}function Ai(e,t){let n=[],r=[],i=[],a=Math.max(t.matched.length,e.matched.length);for(let o=0;o<a;o++){let a=t.matched[o];a&&(e.matched.find(e=>oi(e,a))?r.push(a):n.push(a));let s=e.matched[o];s&&(t.matched.find(e=>oi(e,s))||i.push(s))}return[n,r,i]}var ji=()=>location.protocol+`//`+location.host;function Mi(e,t){let{pathname:n,search:r,hash:i}=t,a=e.indexOf(`#`);if(a>-1){let t=i.includes(e.slice(a))?e.slice(a).length:1,n=i.slice(t);return n[0]!==`/`&&(n=`/`+n),ii(n,``)}return ii(n,e)+r+i}function Ni(e,t,n,r){let i=[],a=[],o=null,s=({state:a})=>{let s=Mi(e,location),c=n.value,l=t.value,u=0;if(a){if(n.value=s,t.value=a,o&&o===c){o=null;return}u=l?a.position-l.position:0}else r(s);i.forEach(e=>{e(n.value,c,{delta:u,type:di.pop,direction:u?u>0?fi.forward:fi.back:fi.unknown})})};function c(){o=n.value}function l(e){i.push(e);let t=()=>{let t=i.indexOf(e);t>-1&&i.splice(t,1)};return a.push(t),t}function u(){if(document.visibilityState===`hidden`){let{history:e}=window;if(!e.state)return;e.replaceState(B({},e.state,{scroll:_i()}),``)}}function d(){for(let e of a)e();a=[],window.removeEventListener(`popstate`,s),window.removeEventListener(`pagehide`,u),document.removeEventListener(`visibilitychange`,u)}return window.addEventListener(`popstate`,s),window.addEventListener(`pagehide`,u),document.addEventListener(`visibilitychange`,u),{pauseListeners:c,listen:l,destroy:d}}function Pi(e,t,n,r=!1,i=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:i?_i():null}}function Fi(e){let{history:t,location:n}=window,r={value:Mi(e,n)},i={value:t.state};i.value||a(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function a(r,a,o){let s=e.indexOf(`#`),c=s>-1?(n.host&&document.querySelector(`base`)?e:e.slice(s))+r:ji()+e+r;try{t[o?`replaceState`:`pushState`](a,``,c),i.value=a}catch(e){console.error(e),n[o?`replace`:`assign`](c)}}function o(e,n){a(e,B({},t.state,Pi(i.value.back,e,i.value.forward,!0),n,{position:i.value.position}),!0),r.value=e}function s(e,n){let o=B({},i.value,t.state,{forward:e,scroll:_i()});a(o.current,o,!0),a(e,B({},Pi(r.value,e,null),{position:o.position+1},n),!1),r.value=e}return{location:r,state:i,push:s,replace:o}}function Ii(e){e=pi(e);let t=Fi(e),n=Ni(e,t.state,t.location,t.replace);function r(e,t=!0){t||n.pauseListeners(),history.go(e)}let i=B({location:``,base:e,go:r,createHref:hi.bind(null,e)},t,n);return Object.defineProperty(i,`location`,{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(i,`state`,{enumerable:!0,get:()=>t.state.value}),i}var Li=function(e){return e[e.Static=0]=`Static`,e[e.Param=1]=`Param`,e[e.Group=2]=`Group`,e}({}),K=function(e){return e[e.Static=0]=`Static`,e[e.Param=1]=`Param`,e[e.ParamRegExp=2]=`ParamRegExp`,e[e.ParamRegExpEnd=3]=`ParamRegExpEnd`,e[e.EscapeNext=4]=`EscapeNext`,e}(K||{}),Ri={type:Li.Static,value:``},zi=/[a-zA-Z0-9_]/;function Bi(e){if(!e)return[[]];if(e===`/`)return[[Ri]];if(!e.startsWith(`/`))throw Error(`Invalid path "${e}"`);function t(e){throw Error(`ERR (${n})/"${l}": ${e}`)}let n=K.Static,r=n,i=[],a;function o(){a&&i.push(a),a=[]}let s=0,c,l=``,u=``;function d(){l&&=(n===K.Static?a.push({type:Li.Static,value:l}):n===K.Param||n===K.ParamRegExp||n===K.ParamRegExpEnd?(a.length>1&&(c===`*`||c===`+`)&&t(`A repeatable param (${l}) must be alone in its segment. eg: '/:ids+.`),a.push({type:Li.Param,value:l,regexp:u,repeatable:c===`*`||c===`+`,optional:c===`*`||c===`?`})):t(`Invalid state to consume buffer`),``)}function f(){l+=c}for(;s<e.length;){if(c=e[s++],c===`\\`&&n!==K.ParamRegExp){r=n,n=K.EscapeNext;continue}switch(n){case K.Static:c===`/`?(l&&d(),o()):c===`:`?(d(),n=K.Param):f();break;case K.EscapeNext:f(),n=r;break;case K.Param:c===`(`?n=K.ParamRegExp:zi.test(c)?f():(d(),n=K.Static,c!==`*`&&c!==`?`&&c!==`+`&&s--);break;case K.ParamRegExp:c===`)`?u[u.length-1]==`\\`?u=u.slice(0,-1)+c:n=K.ParamRegExpEnd:u+=c;break;case K.ParamRegExpEnd:d(),n=K.Static,c!==`*`&&c!==`?`&&c!==`+`&&s--,u=``;break;default:t(`Unknown state`);break}}return n===K.ParamRegExp&&t(`Unfinished custom RegExp for param "${l}"`),d(),o(),i}var Vi=`[^/]+?`,Hi={sensitive:!1,strict:!1,start:!0,end:!0},q=function(e){return e[e._multiplier=10]=`_multiplier`,e[e.Root=90]=`Root`,e[e.Segment=40]=`Segment`,e[e.SubSegment=30]=`SubSegment`,e[e.Static=40]=`Static`,e[e.Dynamic=20]=`Dynamic`,e[e.BonusCustomRegExp=10]=`BonusCustomRegExp`,e[e.BonusWildcard=-50]=`BonusWildcard`,e[e.BonusRepeatable=-20]=`BonusRepeatable`,e[e.BonusOptional=-8]=`BonusOptional`,e[e.BonusStrict=.7000000000000001]=`BonusStrict`,e[e.BonusCaseSensitive=.25]=`BonusCaseSensitive`,e}(q||{}),Ui=/[.+*?^${}()[\]/\\]/g;function Wi(e,t){let n=B({},Hi,t),r=[],i=n.start?`^`:``,a=[];for(let t of e){let e=t.length?[]:[q.Root];n.strict&&!t.length&&(i+=`/`);for(let r=0;r<t.length;r++){let o=t[r],s=q.Segment+(n.sensitive?q.BonusCaseSensitive:0);if(o.type===Li.Static)r||(i+=`/`),i+=o.value.replace(Ui,`\\$&`),s+=q.Static;else if(o.type===Li.Param){let{value:e,repeatable:n,optional:c,regexp:l}=o;a.push({name:e,repeatable:n,optional:c});let u=l||Vi;if(u!==Vi){s+=q.BonusCustomRegExp;try{RegExp(`(${u})`)}catch(t){throw Error(`Invalid custom RegExp for param "${e}" (${u}): `+t.message)}}let d=n?`((?:${u})(?:/(?:${u}))*)`:`(${u})`;r||(d=c&&t.length<2?`(?:/${d})`:`/`+d),c&&(d+=`?`),i+=d,s+=q.Dynamic,c&&(s+=q.BonusOptional),n&&(s+=q.BonusRepeatable),u===`.*`&&(s+=q.BonusWildcard)}e.push(s)}r.push(e)}if(n.strict&&n.end){let e=r.length-1;r[e][r[e].length-1]+=q.BonusStrict}n.strict||(i+=`/?`),n.end?i+=`$`:n.strict&&!i.endsWith(`/`)&&(i+=`(?:/|$)`);let o=new RegExp(i,n.sensitive?``:`i`);function s(e){let t=e.match(o),n={};if(!t)return null;for(let e=1;e<t.length;e++){let r=t[e]||``,i=a[e-1];n[i.name]=r&&i.repeatable?r.split(`/`):r}return n}function c(t){let n=``,r=!1;for(let i of e){(!r||!n.endsWith(`/`))&&(n+=`/`),r=!1;for(let e of i)if(e.type===Li.Static)n+=e.value;else if(e.type===Li.Param){let{value:a,repeatable:o,optional:s}=e,c=a in t?t[a]:``;if(V(c)&&!o)throw Error(`Provided param "${a}" is an array but it is not repeatable (* or + modifiers)`);let l=V(c)?c.join(`/`):c;if(!l)if(s)i.length<2&&(n.endsWith(`/`)?n=n.slice(0,-1):r=!0);else throw Error(`Missing required param "${a}"`);n+=l}}return n||`/`}return{re:o,score:r,keys:a,parse:s,stringify:c}}function Gi(e,t){let n=0;for(;n<e.length&&n<t.length;){let r=t[n]-e[n];if(r)return r;n++}return e.length<t.length?e.length===1&&e[0]===q.Static+q.Segment?-1:1:e.length>t.length?t.length===1&&t[0]===q.Static+q.Segment?1:-1:0}function Ki(e,t){let n=0,r=e.score,i=t.score;for(;n<r.length&&n<i.length;){let e=Gi(r[n],i[n]);if(e)return e;n++}if(Math.abs(i.length-r.length)===1){if(qi(r))return 1;if(qi(i))return-1}return i.length-r.length}function qi(e){let t=e[e.length-1];return e.length>0&&t[t.length-1]<0}var Ji={strict:!1,end:!0,sensitive:!1};function Yi(e,t,n){let r=B(Wi(Bi(e.path),n),{record:e,parent:t,children:[],alias:[]});return t&&!r.record.aliasOf==!t.record.aliasOf&&t.children.push(r),r}function Xi(e,t){let n=[],r=new Map;t=Cr(Ji,t);function i(e){return r.get(e)}function a(e,n,r){let i=!r,s=Qi(e);s.aliasOf=r&&r.record;let l=Cr(t,e),u=[s];if(`alias`in e){let t=typeof e.alias==`string`?[e.alias]:e.alias;for(let e of t)u.push(Qi(B({},s,{components:r?r.record.components:s.components,path:e,aliasOf:r?r.record:s})))}let d,f;for(let t of u){let{path:u}=t;if(n&&u[0]!==`/`){let e=n.record.path,r=e[e.length-1]===`/`?``:`/`;t.path=n.record.path+(u&&r+u)}if(d=Yi(t,n,l),r?r.alias.push(d):(f||=d,f!==d&&f.alias.push(d),i&&e.name&&!ea(d)&&o(e.name)),ia(d)&&c(d),s.children){let e=s.children;for(let t=0;t<e.length;t++)a(e[t],d,r&&r.children[t])}r||=d}return f?()=>{o(f)}:Sr}function o(e){if(wi(e)){let t=r.get(e);t&&(r.delete(e),n.splice(n.indexOf(t),1),t.children.forEach(o),t.alias.forEach(o))}else{let t=n.indexOf(e);t>-1&&(n.splice(t,1),e.record.name&&r.delete(e.record.name),e.children.forEach(o),e.alias.forEach(o))}}function s(){return n}function c(e){let t=na(e,n);n.splice(t,0,e),e.record.name&&!ea(e)&&r.set(e.record.name,e)}function l(e,t){let i,a={},o,s;if(`name`in e&&e.name){if(i=r.get(e.name),!i)throw Tr(H.MATCHER_NOT_FOUND,{location:e});s=i.record.name,a=B(Zi(t.params,i.keys.filter(e=>!e.optional).concat(i.parent?i.parent.keys.filter(e=>e.optional):[]).map(e=>e.name)),e.params&&Zi(e.params,i.keys.map(e=>e.name))),o=i.stringify(a)}else if(e.path!=null)o=e.path,i=n.find(e=>e.re.test(o)),i&&(a=i.parse(o),s=i.record.name);else{if(i=t.name?r.get(t.name):n.find(e=>e.re.test(t.path)),!i)throw Tr(H.MATCHER_NOT_FOUND,{location:e,currentLocation:t});s=i.record.name,a=B({},t.params,e.params),o=i.stringify(a)}let c=[],l=i;for(;l;)c.unshift(l.record),l=l.parent;return{name:s,path:o,params:a,matched:c,meta:ta(c)}}e.forEach(e=>a(e));function u(){n.length=0,r.clear()}return{addRoute:a,resolve:l,removeRoute:o,clearRoutes:u,getRoutes:s,getRecordMatcher:i}}function Zi(e,t){let n={};for(let r of t)r in e&&(n[r]=e[r]);return n}function Qi(e){let t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:$i(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:`components`in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,`mods`,{value:{}}),t}function $i(e){let t={},n=e.props||!1;if(`component`in e)t.default=n;else for(let r in e.components)t[r]=typeof n==`object`?n[r]:n;return t}function ea(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function ta(e){return e.reduce((e,t)=>B(e,t.meta),{})}function na(e,t){let n=0,r=t.length;for(;n!==r;){let i=n+r>>1;Ki(e,t[i])<0?r=i:n=i+1}let i=ra(e);return i&&(r=t.lastIndexOf(i,r-1)),r}function ra(e){let t=e;for(;t=t.parent;)if(ia(t)&&Ki(e,t)===0)return t}function ia({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function aa(e){let t=r(Or),n=r(kr),i=P(()=>{let n=k(e.to);return t.resolve(n)}),a=P(()=>{let{matched:e}=i.value,{length:t}=e,r=e[t-1],a=n.matched;if(!r||!a.length)return-1;let o=a.findIndex(oi.bind(null,r));if(o>-1)return o;let s=ua(e[t-2]);return t>1&&ua(r)===s&&a[a.length-1].path!==s?a.findIndex(oi.bind(null,e[t-2])):o}),o=P(()=>a.value>-1&&la(n.params,i.value.params)),s=P(()=>a.value>-1&&a.value===n.matched.length-1&&si(n.params,i.value.params));function c(n={}){if(ca(n)){let n=t[k(e.replace)?`replace`:`push`](k(e.to)).catch(Sr);return e.viewTransition&&typeof document<`u`&&`startViewTransition`in document&&document.startViewTransition(()=>n),n}return Promise.resolve()}return{route:i,href:P(()=>i.value.href),isActive:o,isExactActive:s,navigate:c}}function oa(e){return e.length===1?e[0]:e}var sa=d({name:`RouterLink`,compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:`page`},viewTransition:Boolean},useLink:aa,setup(e,{slots:t}){let n=Le(aa(e)),{options:i}=r(Or),a=P(()=>({[da(e.activeClass,i.linkActiveClass,`router-link-active`)]:n.isActive,[da(e.exactActiveClass,i.linkExactActiveClass,`router-link-exact-active`)]:n.isExactActive}));return()=>{let r=t.default&&oa(t.default(n));return e.custom?r:de(`a`,{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:a.value},r)}}});function ca(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){let t=e.currentTarget.getAttribute(`target`);if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function la(e,t){for(let n in t){let r=t[n],i=e[n];if(typeof r==`string`){if(r!==i)return!1}else if(!V(i)||i.length!==r.length||r.some((e,t)=>e.valueOf()!==i[t].valueOf()))return!1}return!0}function ua(e){return e?e.aliasOf?e.aliasOf.path:e.path:``}var da=(e,t,n)=>e??t??n,fa=d({name:`RouterView`,inheritAttrs:!1,props:{name:{type:String,default:`default`},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){let i=r(Ar),a=P(()=>e.route||i.value),o=r(Dr,0),s=P(()=>{let e=k(o),{matched:t}=a.value,n;for(;(n=t[e])&&!n.components;)e++;return e}),c=P(()=>a.value.matched[s.value]);ae(Dr,P(()=>s.value+1)),ae(Er,c),ae(Ar,a);let l=N();return D(()=>[l.value,c.value,e.name],([e,t,n],[r,i,a])=>{t&&(t.instances[n]=e,i&&i!==t&&e&&e===r&&(t.leaveGuards.size||(t.leaveGuards=i.leaveGuards),t.updateGuards.size||(t.updateGuards=i.updateGuards))),e&&t&&(!i||!oi(t,i)||!r)&&(t.enterCallbacks[n]||[]).forEach(t=>t(e))},{flush:`post`}),()=>{let r=a.value,i=e.name,o=c.value,s=o&&o.components[i];if(!s)return pa(n.default,{Component:s,route:r});let u=o.props[i],d=de(s,B({},u?u===!0?r.params:typeof u==`function`?u(r):u:null,t,{onVnodeUnmounted:e=>{e.component.isUnmounted&&(o.instances[i]=null)},ref:l}));return pa(n.default,{Component:d,route:r})||d}}});function pa(e,t){if(!e)return null;let n=e(t);return n.length===1?n[0]:n}var ma=fa;function ha(e){let t=Xi(e.routes,e),n=e.parseQuery||Ti,r=e.stringifyQuery||Ei,i=e.history,a=Oi(),o=Oi(),s=Oi(),c=gt(W),l=W;vr&&e.scrollBehavior&&`scrollRestoration`in history&&(history.scrollRestoration=`manual`);let u=xr.bind(null,e=>``+e),d=xr.bind(null,Qr),f=xr.bind(null,$r);function p(e,n){let r,i;return wi(e)?(r=t.getRecordMatcher(e),i=n):i=e,t.addRoute(i,r)}function m(e){let n=t.getRecordMatcher(e);n&&t.removeRoute(n)}function ee(){return t.getRoutes().map(e=>e.record)}function h(e){return!!t.getRecordMatcher(e)}function g(e,a){if(a=B({},a||c.value),typeof e==`string`){let r=ni(n,e,a.path),o=t.resolve({path:r.path},a),s=i.createHref(r.fullPath);return B(r,o,{params:f(o.params),redirectedFrom:void 0,href:s})}let o;if(e.path!=null)o=B({},e,{path:ni(n,e.path,a.path).path});else{let t=B({},e.params);for(let e in t)t[e]??delete t[e];o=B({},e,{params:d(t)}),a.params=d(a.params)}let s=t.resolve(o,a),l=e.hash||``;s.params=u(f(s.params));let p=ri(r,B({},e,{hash:Jr(l),path:s.path})),m=i.createHref(p);return B({fullPath:p,hash:l,query:r===Ei?Di(e.query):e.query||{}},s,{redirectedFrom:void 0,href:m})}function te(e){return typeof e==`string`?ni(n,e,c.value.path):B({},e)}function _(e,t){if(l!==e)return Tr(H.NAVIGATION_CANCELLED,{from:t,to:e})}function v(e){return y(e)}function ne(e){return v(B(te(e),{replace:!0}))}function re(e,t){let n=e.matched[e.matched.length-1];if(n&&n.redirect){let{redirect:r}=n,i=typeof r==`function`?r(e,t):r;return typeof i==`string`&&(i=i.includes(`?`)||i.includes(`#`)?i=te(i):{path:i},i.params={}),B({query:e.query,hash:e.hash,params:i.path==null?e.params:{}},i)}}function y(e,t){let n=l=g(e),i=c.value,a=e.state,o=e.force,s=e.replace===!0,u=re(n,i);if(u)return y(B(te(u),{state:typeof u==`object`?B({},a,u.state):a,force:o,replace:s}),t||n);let d=n;d.redirectedFrom=t;let f;return!o&&ai(r,i,n)&&(f=Tr(H.NAVIGATION_DUPLICATED,{to:d,from:i}),S(i,i,!0,!1)),(f?Promise.resolve(f):oe(d,i)).catch(e=>U(e)?U(e,H.NAVIGATION_GUARD_REDIRECT)?e:he(e):pe(e,d,i)).then(e=>{if(e){if(U(e,H.NAVIGATION_GUARD_REDIRECT))return y(B({replace:s},te(e.to),{state:typeof e.to==`object`?B({},a,e.to.state):a,force:o}),t||d)}else e=le(d,i,!0,s,a);return ce(d,i,e),e})}function ie(e,t){let n=_(e,t);return n?Promise.reject(n):Promise.resolve()}function ae(e){let t=_e.values().next().value;return t&&typeof t.runWithContext==`function`?t.runWithContext(e):e()}function oe(e,t){let n,[r,i,s]=Ai(e,t);n=ki(r.reverse(),`beforeRouteLeave`,e,t);for(let i of r)i.leaveGuards.forEach(r=>{n.push(G(r,e,t))});let c=ie.bind(null,e,t);return n.push(c),T(n).then(()=>{n=[];for(let r of a.list())n.push(G(r,e,t));return n.push(c),T(n)}).then(()=>{n=ki(i,`beforeRouteUpdate`,e,t);for(let r of i)r.updateGuards.forEach(r=>{n.push(G(r,e,t))});return n.push(c),T(n)}).then(()=>{n=[];for(let r of s)if(r.beforeEnter)if(V(r.beforeEnter))for(let i of r.beforeEnter)n.push(G(i,e,t));else n.push(G(r.beforeEnter,e,t));return n.push(c),T(n)}).then(()=>(e.matched.forEach(e=>e.enterCallbacks={}),n=ki(s,`beforeRouteEnter`,e,t,ae),n.push(c),T(n))).then(()=>{n=[];for(let r of o.list())n.push(G(r,e,t));return n.push(c),T(n)}).catch(e=>U(e,H.NAVIGATION_CANCELLED)?e:Promise.reject(e))}function ce(e,t,n){s.list().forEach(r=>ae(()=>r(e,t,n)))}function le(e,t,n,r,a){let o=_(e,t);if(o)return o;let s=t===W,l=vr?history.state:{};n&&(r||s?i.replace(e.fullPath,B({scroll:s&&l&&l.scroll},a)):i.push(e.fullPath,a)),c.value=e,S(e,t,n,s),he()}let ue;function b(){ue||=i.listen((e,t,n)=>{if(!w.listening)return;let r=g(e),a=re(r,w.currentRoute.value);if(a){y(B(a,{replace:!0,force:!0}),r).catch(Sr);return}l=r;let o=c.value;vr&&xi(yi(o.fullPath,n.delta),_i()),oe(r,o).catch(e=>U(e,H.NAVIGATION_ABORTED|H.NAVIGATION_CANCELLED)?e:U(e,H.NAVIGATION_GUARD_REDIRECT)?(y(B(te(e.to),{force:!0}),r).then(e=>{U(e,H.NAVIGATION_ABORTED|H.NAVIGATION_DUPLICATED)&&!n.delta&&n.type===di.pop&&i.go(-1,!1)}).catch(Sr),Promise.reject()):(n.delta&&i.go(-n.delta,!1),pe(e,r,o))).then(e=>{e||=le(r,o,!1),e&&(n.delta&&!U(e,H.NAVIGATION_CANCELLED)?i.go(-n.delta,!1):n.type===di.pop&&U(e,H.NAVIGATION_ABORTED|H.NAVIGATION_DUPLICATED)&&i.go(-1,!1)),ce(r,o,e)}).catch(Sr)})}let de=Oi(),fe=Oi(),x;function pe(e,t,n){he(e);let r=fe.list();return r.length?r.forEach(r=>r(e,t,n)):console.error(e),Promise.reject(e)}function me(){return x&&c.value!==W?Promise.resolve():new Promise((e,t)=>{de.add([e,t])})}function he(e){return x||(x=!e,b(),de.list().forEach(([t,n])=>e?n(e):t()),de.reset()),e}function S(t,n,r,i){let{scrollBehavior:a}=e;if(!vr||!a)return Promise.resolve();let o=!r&&Si(yi(t.fullPath,0))||(i||!r)&&history.state&&history.state.scroll||null;return se().then(()=>a(t,n,o)).then(e=>e&&vi(e)).catch(e=>pe(e,t,n))}let ge=e=>i.go(e),C,_e=new Set,w={currentRoute:c,listening:!0,addRoute:p,removeRoute:m,clearRoutes:t.clearRoutes,hasRoute:h,getRoutes:ee,resolve:g,options:e,push:v,replace:ne,go:ge,back:()=>ge(-1),forward:()=>ge(1),beforeEach:a.add,beforeResolve:o.add,afterEach:s.add,onError:fe.add,isReady:me,install(e){e.component(`RouterLink`,sa),e.component(`RouterView`,ma),e.config.globalProperties.$router=w,Object.defineProperty(e.config.globalProperties,`$route`,{enumerable:!0,get:()=>k(c)}),vr&&!C&&c.value===W&&(C=!0,v(i.location).catch(e=>{}));let t={};for(let e in W)Object.defineProperty(t,e,{get:()=>c.value[e],enumerable:!0});e.provide(Or,w),e.provide(kr,at(t)),e.provide(Ar,c);let n=e.unmount;_e.add(e),e.unmount=function(){_e.delete(e),_e.size<1&&(l=W,ue&&ue(),ue=null,c.value=W,C=!1,x=!1),n()}}};function T(e){return e.reduce((e,t)=>e.then(()=>ae(t)),Promise.resolve())}return w}var J={asn:Ce,city:o,country:te,domain:ut,chart:v,port:ce,events:pe,address:_t,blocked:e,honeypotType:wt,time:be,dashboard:oe,activity:Je,subnet:kt,total:pe,eventType:We,log:Nt,stat:Je,externalLink:i};function ga(e,t){if(!t.includes(`/`))return e===t;let[n,r]=t.split(`/`);if(!n||!r)return!1;let i=parseInt(r);return isNaN(i)?e===n:Qe(e,i)===Qe(n,i)}function _a(e){let t=new Date(e.time),n=e.remote_addr,r=e.dst_port??-1;e.event===`icmp_packet`&&(r=-1);let i=e.type+` `+e.event;return{id:e.id,time:t,time_with_ms:vt(e.time),dst_port:r,remote_addr:n,remote_addr_int:Ne(n),event:i,country:e.country,city:e.city,latitude:e.latitude,longitude:e.longitude}}function va(e,t){return e.filter(e=>{if(t.type&&t.type.length>0&&!t.type.includes(e.type)||t.event&&t.event.length>0&&!t.event.includes(e.event))return!1;let n=t.remote_addr;if(n&&n.length>0){let t=n.filter(e=>!e.startsWith(`!`)),r=n.filter(e=>e.startsWith(`!`)).map(e=>e.substring(1));if(e.remote_addr){if(r.some(t=>ga(e.remote_addr,t))||t.length>0&&!t.some(t=>ga(e.remote_addr,t)))return!1}else if(t.length>0)return!1}if(t.dst_port&&t.dst_port.length>0){let n=t.dst_port,r=n.filter(e=>!e.startsWith(`!`)),i=n.filter(e=>e.startsWith(`!`)).map(e=>e.substring(1)),a=e.dst_port?String(e.dst_port):void 0;if(a){if(i.includes(a)||r.length>0&&!r.includes(a))return!1}else if(r.length>0)return!1}for(let n of[`method`,`uri`,`user_agent`,`username`,`password`,`client_version`,`asn`,`country`,`city`,`domain`,`fqdn`]){let r=t[n];if(r&&r.length>0){let t;if(n===`user_agent`&&e.type===`http`&&e.fields?.headers){let n=e.fields.headers;t=(n[`User-Agent`]||n[`user-agent`])?.toString()}else t=(e.fields?.[n]??e[n])?.toString();let i=r.filter(e=>!e.startsWith(`!`)),a=r.filter(e=>e.startsWith(`!`)).map(e=>e.substring(1));if(t){if(a.some(e=>t?.includes(e))||i.length>0&&!i.some(e=>t?.includes(e)))return!1}else if(i.length>0)return!1}}if(t.json_fields){for(let[n,r]of Object.entries(t.json_fields))if(r&&r.length>0){let t=(e.fields?.[n]??e[n])?.toString(),i=r.filter(e=>!e.startsWith(`!`)),a=r.filter(e=>e.startsWith(`!`)).map(e=>e.substring(1));if(t){if(a.some(e=>t?.includes(e))||i.length>0&&!i.some(e=>t?.includes(e)))return!1}else if(i.length>0)return!1}}return!0})}function ya(e){if(e.length===0)return{x:[],y:[]};let t=e[0].time.getTime(),n=e[e.length-1].time.getTime()-t;if(n===0)return{x:[t],y:[e.length]};let r=n/49,i=[];for(let e=0;e<50;e++)i.push(t+e*r);let a=Array(50).fill(0);return e.forEach(e=>{let n=e.time.getTime(),i=Math.round((n-t)/r);i<0&&(i=0),i>=50&&(i=49),a[i]++}),{x:i,y:a}}var Y=()=>{let e=window.location;return`${e.protocol}//${e.host}`};function ba(e){return/^(\d{1,3}\.){3}\d{1,3}$/.test(e)}function xa(e){return/^([0-9a-fA-F]{0,4}:){2,7}[0-9a-fA-F]{0,4}$/.test(e)}function Sa(e){return ba(e)||xa(e)}function Ca(e){return!isNaN(Number(e))&&Number(e)>=0&&Number(e)<=65535}var X=(e,t)=>{e.includes(t)||e.push(t)},Z=(e,t)=>{let n=e.indexOf(t);n!==-1&&e.splice(n,1)},wa=e=>{let t={limit:50,offset:0,order_direction:`desc`,remote_addr:[],dst_port:[],time_start:``,time_end:``,type:[],event:[],asn:[],country:[],city:[],domain:[],fqdn:[],resolve_ips:!1,expand_details:!1,columns:[],id:0,x_range:[],y_range:[],sync_time_with_chart:!1,sync_ports_with_chart:!1,json_fields:{},lat_range:[],lon_range:[]};return e&&Object.entries(e).forEach(([e,n])=>{n!==void 0&&(t[e]=n)}),t};function Ta(e){let t=new URLSearchParams({limit:e.limit.toString(),offset:e.offset.toString(),order_direction:e.order_direction}),n={type:e.type,columns:e.columns,dst_port:e.dst_port,remote_addr:e.remote_addr,asn:e.asn,country:e.country,city:e.city,domain:e.domain,fqdn:e.fqdn};return Object.entries(n).forEach(([e,n])=>{n?.forEach(n=>t.append(e,n))}),e.id&&e.id!==0&&t.set(`id`,e.id.toString()),[...e.event||[]].forEach(e=>t.append(`event`,e)),e.time_start&&t.set(`time_start`,ht(e.time_start)),e.time_end&&t.set(`time_end`,ht(e.time_end)),Object.entries(e.json_fields||{}).forEach(([e,n])=>{n.forEach(n=>t.append(`f:`+e,n))}),t.toString()}var Ea=e=>{let t=Le(e||wa());return{state:t,addRemoteAddr:e=>X(t.remote_addr,e),removeRemoteAddr:e=>Z(t.remote_addr,e),addDstPort:e=>X(t.dst_port,e),setDstPort:e=>{t.dst_port=[e]},setTimeStart:e=>{t.time_start=e},setTimeEnd:e=>{t.time_end=e},removeDstPort:e=>Z(t.dst_port,e),addHoneypotType:e=>X(t.type,e),removeHoneypotType:e=>Z(t.type,e),addEvent:e=>X(t.event,e),removeEvent:e=>Z(t.event,e),addAsn:e=>X(t.asn,e),removeAsn:e=>Z(t.asn,e),addCountry:e=>X(t.country,e),removeCountry:e=>Z(t.country,e),addCity:e=>X(t.city,e),removeCity:e=>Z(t.city,e),addDomain:e=>X(t.domain,e),removeDomain:e=>Z(t.domain,e),addFqdn:e=>X(t.fqdn,e),removeFqdn:e=>Z(t.fqdn,e),addJsonField:(e,n)=>{t.json_fields[e]||(t.json_fields[e]=[]),X(t.json_fields[e],n)},removeJsonField:(e,n)=>{t.json_fields[e]&&Z(t.json_fields[e],n)},setJsonField:(e,n)=>{t.json_fields[e]=n},getQueryString:()=>Ta(t),reset:e=>{Object.assign(t,wa(e))}}},Da=gr(`filter`,()=>Ea()),Oa=gr(`chart`,()=>Ea(Le(wa({limit:1e4,columns:[`time`,`remote_addr`,`dst_port`,`type`,`event`]})))),ka=gr(`ui`,()=>{let e=N(void 0),t=N(void 0),n=N(void 0),r=N(0),i=N(0),a=N(`scattergeo`);function o(){e.value=void 0,t.value=void 0,n.value=void 0,r.value=0,i.value=0}return{selectedIP:e,selectedPort:t,selectedCountry:n,selectedCount:r,selectedIPCount:i,resetSelection:o,mapType:a}});function Aa(e){let t=N({}),n=N({}),r=N([]),i=new Set,a=e.maxRetries??2,o=rt(async()=>{let o=Array.from(new Set(r.value.filter(e=>!t.value[e]&&(n.value[e]??0)<a&&!i.has(e))));if(o.length){o.forEach(e=>i.add(e));try{let r=await(await fetch(`${Y()}${e.apiUrl}?ip=${o.join(`,`)}`)).json(),{found:i,notFound:a}=e.mapResponse(r);Object.entries(i).forEach(([e,r])=>{t.value[e]=r,delete n.value[e]}),a?.forEach(e=>n.value[e]=(n.value[e]??0)+1)}catch(t){console.error(`${e.name} lookup failed`,t)}finally{let e=new Set(o);r.value=r.value.filter(t=>!e.has(t)),o.forEach(e=>i.delete(e))}}},500,!0,!0);return D(()=>r.value.length,e=>e>0&&o()),{cached:t,failed:n,queue:r,getById:e=>P(()=>{if(t.value[e])return t.value[e];!r.value.includes(e)&&(n.value[e]??0)<a&&!i.has(e)&&(r.value.push(e),o())})}}var ja=gr(`ipinfo`,()=>{let{queue:e,getById:t}=Aa({name:`ipinfo`,apiUrl:`/api/ipinfo`,mapResponse:e=>({found:e.results||{},notFound:e.not_found||[]})});return{getIPInfo:e=>t(e),ipInfoIsLoading:t=>e.value.includes(t),getDomainByIp:e=>P(()=>t(e).value?.fqdn||t(e).value?.domain||e)}}),Ma=gr(`blocklist`,()=>{let e=N([]),t=N(!1),n=async()=>{t.value=!0;try{e.value=await(await fetch(`${Y()}/api/blocklist-entries`)).json()??[]}finally{t.value=!1}},r=P(()=>t=>e.value.find(e=>e.address===t)),i=P(()=>t=>e.value.filter(e=>e.reason.includes(`botnet`)).some(e=>ga(t,e.address)));return{blocklist:e,loading:t,fetchBlocklist:n,getBlocklistEntryByIp:r,isInBotnet:i,getBotnetEntryByIp:P(()=>t=>e.value.find(e=>e.reason.includes(`botnet`)&&ga(t,e.address))),getTagsByIp:P(()=>e=>{let t=r.value(e),n=t?.reason?t.reason.split(`,`).map(e=>e.trim()):[];return i.value(e)&&!n.includes(`botnet`)&&n.push(`botnet`),n})}}),Na=gr(`dashboard`,()=>{let e=N(null),t=N(!1);return{stats:e,loading:t,fetchStats:async()=>{t.value=!0;try{e.value=await(await fetch(`${Y()}/api/stats`)).json()??null}catch(e){console.error(`Failed to fetch stats`,e)}finally{t.value=!1}}}}),Pa=N([]),Fa=async()=>{Pa.value=await(await fetch(`${Y()}/api/active-honeypots`)).json()},Ia=e=>Pa.value.find(t=>t.name.toLowerCase()===e.toLowerCase()),La=gr(`auth`,()=>{let e=N(!1),t=N(!1),n=N(!1);return{authRequired:e,authenticated:t,statusChecked:n,fetchAuthStatus:async()=>{try{let n=await(await fetch(`${Y()}/api/auth-status`)).json();e.value=n.auth_required,t.value=n.authenticated}catch(e){console.error(`Failed to fetch auth status`,e)}finally{n.value=!0}},login:async e=>(await fetch(`${Y()}/api/login`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({password:e})})).ok?(t.value=!0,!0):!1,logout:async()=>{await fetch(`${Y()}/api/logout`,{method:`POST`}),t.value=!1}}}),Ra={class:`topbar-grid`},za={class:`version-tag flex items-center gap-4 justify-self-end [grid-area:version]`},Ba={class:`text-muted text-sm`},Va={key:0,class:`links-row flex flex-wrap gap-4`},Ha=d({__name:`TopBar`,setup(e){let t=La(),n=jr(),r=async()=>{await t.logout(),n.push(`/login`)};return(e,n)=>{let i=a(`router-link`),o=a(`RouterLink`);return _(),C(`div`,Ra,[I(`div`,za,[k(t).authenticated?(_(),C(`button`,{key:0,onClick:r,class:`text-muted flex items-center gap-1 text-sm hover:text-stone-200`,title:`Logout`},[m(k(_e),{size:`1.2em`}),n[0]||=T(` Logout `,-1)])):F(``,!0),I(`span`,Ba,`v`+b(k(`0.59.7`)),1)]),m(i,{to:`/`},{default:g(()=>[...n[1]||=[I(`h1`,{class:`dashboard-title from-primary-400 to-primary-600 bg-linear-to-br bg-clip-text pr-1 text-2xl font-medium tracking-tight text-transparent uppercase`},[I(`strong`,{class:`font-sans`},`Honey`),I(`em`,{class:`font-mono`},`pie`)],-1)]]),_:1}),k(t).authRequired&&!k(t).authenticated?F(``,!0):(_(),C(`div`,Va,[m(o,{to:`/`,class:`hidden md:flex`},{default:g(()=>[(_(),O(E(k(J).dashboard),{size:`1.25em`})),n[2]||=T(` Home `,-1)]),_:1}),m(o,{to:`/events`,class:`flex`},{default:g(()=>[(_(),O(E(k(J).log),{size:`1.25em`})),n[3]||=T(` Events `,-1)]),_:1}),m(o,{to:`/charts`,class:`flex`},{default:g(()=>[(_(),O(E(k(J).chart),{size:`1.25em`})),n[4]||=T(` Chart `,-1)]),_:1}),m(o,{to:`/stats`,class:`flex`},{default:g(()=>[(_(),O(E(k(J).stat),{size:`1.25em`})),n[5]||=T(` Stats `,-1)]),_:1})]))])}}}),Ua={class:`flex min-h-screen flex-col`},Wa=d({__name:`App`,setup(e){let t=Ma(),n=Mr();return et(t.fetchBlocklist,60*1e3,{immediateCallback:!0}),Ct(P(()=>{let e=`HONEYPIE`;return n.name===`ip`||n.name===`subnet`?n.params.mask?`${n.params.ip}/${n.params.mask} - ${e}`:`${n.params.ip} - ${e}`:n.name===`port`?`Port ${n.params.port} - ${e}`:[`city`,`country`,`asn`,`domain`,`fqdn`].includes(n.name)?`${n.params.value} - ${e}`:[`events`,`charts`,`stats`].includes(n.name)?`${String(n.name).charAt(0).toUpperCase()+String(n.name).slice(1)} - ${e}`:e})),x(()=>{Fa()}),(e,t)=>{let n=a(`RouterView`);return _(),C(`div`,Ua,[m(Ha),m(n)])}}}),Ga={class:`card gap-1`},Ka={class:`stat-label flex items-center gap-1 font-semibold text-stone-400 uppercase`},qa={key:0},Ja={key:1,class:`flex h-full items-center justify-center`},Ya=d({__name:`DetailCard`,props:{label:{},value:{},icon:{},valueClass:{}},setup(e){return(t,n)=>(_(),C(`div`,Ga,[I(`span`,Ka,[e.icon?(_(),O(E(e.icon),{key:0,size:`16`})):F(``,!0),T(` `+b(e.label),1)]),t.$slots.default?(_(),C(`div`,qa,[L(t.$slots,`default`)])):(_(),C(`div`,Ja,[I(`span`,{class:p([e.valueClass||`text-2xl font-bold`])},b(typeof e.value==`number`?k(st)(e.value):e.value??`—`),3)]))]))}}),Xa={class:`loader`},Za=M(d({__name:`LoaderOverlay`,setup(e){return(e,t)=>(_(),C(`div`,Xa,[m(k(ue),{size:`24`,class:`animate-spin`})]))}}),[[`__scopeId`,`data-v-4ceeff79`]]),Qa={key:0,class:`flex items-center gap-1`},$a={key:0,class:`whitespace-nowrap`},eo={key:1},to=d({__name:`ScoreTag`,props:{tag:{},noLabel:{type:Boolean}},setup(e){let t={botnet:{icon:jt,label:`Botnet`},port_scan:{icon:fe,label:`Port Scan`},ping_scan:{icon:fe,label:`Ping Scan`},high_traffic:{icon:tt,label:`High Traffic`},auth_attempt:{icon:l,label:`Auth Attempt`},malware:{icon:ot,label:`Malware`},info_stealing:{icon:Ye,label:`Info Stealing`}};return(n,r)=>(_(),C(`span`,{class:p([`inline-block rounded-md bg-stone-800/80 py-1 pl-1 text-xs font-semibold text-stone-100/85`,{"pr-1.5":!e.noLabel,"pr-1":e.noLabel}])},[t[e.tag]?(_(),C(`span`,Qa,[(_(),O(E(t[e.tag].icon),{size:`18`,title:e.tag},null,8,[`title`])),e.noLabel?F(``,!0):(_(),C(`span`,$a,b(t[e.tag]?.label),1))])):(_(),C(`span`,eo,b(e.tag),1))],2))}}),no={class:`card`},ro={key:0,class:`mb-4 flex items-center justify-between`},io={key:0,class:`section-title mb-0`},ao=d({__name:`SectionCard`,props:{title:{},icon:{},bodyClass:{}},setup(e){return(t,n)=>(_(),C(`div`,no,[e.title||t.$slots[`header-right`]?(_(),C(`div`,ro,[e.title?(_(),C(`h2`,io,[e.icon?(_(),O(E(e.icon),{key:0,size:`20`,class:`text-primary-500`})):F(``,!0),T(` `+b(e.title),1)])):F(``,!0),L(t.$slots,`header-right`)])):F(``,!0),I(`div`,{class:p(e.bodyClass)},[L(t.$slots,`default`)],2)]))}}),oo={class:`text-secondary-600 w-full overflow-hidden`},so={viewBox:`0 0 100 100`,preserveAspectRatio:`none`,class:`h-full w-full`},co=[`points`],lo=d({__name:`SparkChart`,props:{data:{}},setup(e){let t=e,n=P(()=>{let{x:e,y:n}=t.data;if(!e?.length||!n?.length||e.length!==n.length)return``;let r=Math.min(...e),i=Math.max(...e),a=Math.min(...n.filter(e=>e!==void 0)),o=Math.max(...n.filter(e=>e!==void 0)),s=i-r||1,c=o-a;return e.map((e,t)=>{let i=n[t];if(i===void 0)return null;let o=98-(e-r)/s*96,l=c===0?50:90-(i-a)/c*80;return`${o.toFixed(2)},${l.toFixed(2)}`}).filter(e=>e!==null).join(` `)});return(e,t)=>(_(),C(`div`,oo,[(_(),C(`svg`,so,[t[0]||=I(`defs`,null,[I(`linearGradient`,{id:`grad`,x1:`0%`,y1:`100%`,x2:`0%`,y2:`0%`},[I(`stop`,{offset:`0%`,style:{"stop-color":`var(--color-secondary-600)`,"stop-opacity":`1`}}),I(`stop`,{offset:`100%`,style:{"stop-color":`var(--color-secondary-300)`,"stop-opacity":`1`}})])],-1),I(`polyline`,{fill:`none`,stroke:`url(#grad)`,"stroke-width":`3`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"vector-effect":`non-scaling-stroke`,points:n.value},null,8,co)]))]))}}),uo={class:`relative flex-1 overflow-y-auto`},fo={class:`h-full overflow-y-auto pr-2`},po={class:`w-full border-separate border-spacing-y-1`},mo=[`title`],ho={class:`w-full`},go={class:`text-right`},_o={key:0},vo={colspan:`3`,class:`py-4 text-center text-sm text-stone-500`},yo=M(d({__name:`StatBarTable`,props:{items:{type:Array,required:!0},loading:{type:Boolean,default:!1},noDataText:{type:String,default:`No data available`},barMinWidth:{type:String,default:`4px`},labelColumnWidth:{type:String,default:`w-min-content`},rowClass:{type:String,default:`text-sm`},countColumnWidth:{type:String,default:`w-min-content`},addTitle:{type:Boolean,default:!1}},setup(e){let t=e,n=P(()=>t.items.length===0?1:Math.max(...t.items.map(e=>e.count))||1);return(t,r)=>{let i=a(`router-link`);return _(),C(`div`,uo,[e.loading?(_(),O(Za,{key:0})):F(``,!0),I(`div`,fo,[I(`table`,po,[I(`tbody`,null,[(_(!0),C(j,null,S(e.items,r=>(_(),C(`tr`,{key:r.label,class:p(e.rowClass)},[I(`td`,{class:p([e.labelColumnWidth,`text-left align-middle text-stone-300`,r.labelClass])},[L(t.$slots,`label`,{item:r},()=>[I(`div`,{class:p([`truncate`,e.labelColumnWidth])},[r.routerLink?(_(),O(i,{key:0,to:r.routerLink,title:e.addTitle?r.label:void 0},{default:g(()=>[T(b(r.label),1)]),_:2},1032,[`to`,`title`])):(_(),C(`span`,{key:1,title:e.addTitle?r.label:void 0},b(r.label),9,mo))],2)],!0)],2),I(`td`,ho,[I(`div`,{class:`from-secondary-600 to-secondary-300 h-1 rounded-full bg-linear-to-r`,style:u({width:`${r.count/n.value*100}%`})},null,4)]),I(`td`,go,b(k(st)(r.count)),1)],2))),128)),!e.items.length&&!e.loading?(_(),C(`tr`,_o,[I(`td`,vo,b(e.noDataText),1)])):F(``,!0)])])])])}}}),[[`__scopeId`,`data-v-ac1d7ec6`]]),Q=new Map([[`AC`,[`🇦🇨`,`Ascension Island`]],[`AD`,[`🇦🇩`,`Andorra`]],[`AE`,[`🇦🇪`,`United Arab Emirates`]],[`AF`,[`🇦🇫`,`Afghanistan`]],[`AG`,[`🇦🇬`,`Antigua and Barbuda`]],[`AI`,[`🇦🇮`,`Anguilla`]],[`AL`,[`🇦🇱`,`Albania`]],[`AM`,[`🇦🇲`,`Armenia`]],[`AO`,[`🇦🇴`,`Angola`]],[`AQ`,[`🇦🇶`,`Antarctica`]],[`AR`,[`🇦🇷`,`Argentina`]],[`AS`,[`🇦🇸`,`American Samoa`]],[`AT`,[`🇦🇹`,`Austria`]],[`AU`,[`🇦🇺`,`Australia`]],[`AW`,[`🇦🇼`,`Aruba`]],[`AX`,[`🇦🇽`,`Åland Islands`]],[`AZ`,[`🇦🇿`,`Azerbaijan`]],[`BA`,[`🇧🇦`,`Bosnia and Herzegovina`]],[`BB`,[`🇧🇧`,`Barbados`]],[`BD`,[`🇧🇩`,`Bangladesh`]],[`BE`,[`🇧🇪`,`Belgium`]],[`BF`,[`🇧🇫`,`Burkina Faso`]],[`BG`,[`🇧🇬`,`Bulgaria`]],[`BH`,[`🇧🇭`,`Bahrain`]],[`BI`,[`🇧🇮`,`Burundi`]],[`BJ`,[`🇧🇯`,`Benin`]],[`BL`,[`🇧🇱`,`Saint Barthélemy`]],[`BM`,[`🇧🇲`,`Bermuda`]],[`BN`,[`🇧🇳`,`Brunei`]],[`BO`,[`🇧🇴`,`Bolivia`]],[`BQ`,[`🇧🇶`,`Caribbean Netherlands`]],[`BR`,[`🇧🇷`,`Brazil`]],[`BS`,[`🇧🇸`,`Bahamas`]],[`BT`,[`🇧🇹`,`Bhutan`]],[`BV`,[`🇧🇻`,`Bouvet Island`]],[`BW`,[`🇧🇼`,`Botswana`]],[`BY`,[`🇧🇾`,`Belarus`]],[`BZ`,[`🇧🇿`,`Belize`]],[`CA`,[`🇨🇦`,`Canada`]],[`CC`,[`🇨🇨`,`Cocos (Keeling) Islands`]],[`CD`,[`🇨🇩`,`Congo - Kinshasa`]],[`CF`,[`🇨🇫`,`Central African Republic`]],[`CG`,[`🇨🇬`,`Congo - Brazzaville`]],[`CH`,[`🇨🇭`,`Switzerland`]],[`CI`,[`🇨🇮`,`Côte d’Ivoire`]],[`CK`,[`🇨🇰`,`Cook Islands`]],[`CL`,[`🇨🇱`,`Chile`]],[`CM`,[`🇨🇲`,`Cameroon`]],[`CN`,[`🇨🇳`,`China`]],[`CO`,[`🇨🇴`,`Colombia`]],[`CP`,[`🇨🇵`,`Clipperton Island`]],[`CR`,[`🇨🇷`,`Costa Rica`]],[`CU`,[`🇨🇺`,`Cuba`]],[`CV`,[`🇨🇻`,`Cape Verde`]],[`CW`,[`🇨🇼`,`Curaçao`]],[`CX`,[`🇨🇽`,`Christmas Island`]],[`CY`,[`🇨🇾`,`Cyprus`]],[`CZ`,[`🇨🇿`,`Czechia`]],[`DE`,[`🇩🇪`,`Germany`]],[`DG`,[`🇩🇬`,`Diego Garcia`]],[`DJ`,[`🇩🇯`,`Djibouti`]],[`DK`,[`🇩🇰`,`Denmark`]],[`DM`,[`🇩🇲`,`Dominica`]],[`DO`,[`🇩🇴`,`Dominican Republic`]],[`DZ`,[`🇩🇿`,`Algeria`]],[`EA`,[`🇪🇦`,`Ceuta and Melilla`]],[`EC`,[`🇪🇨`,`Ecuador`]],[`EE`,[`🇪🇪`,`Estonia`]],[`EG`,[`🇪🇬`,`Egypt`]],[`EH`,[`🇪🇭`,`Western Sahara`]],[`ER`,[`🇪🇷`,`Eritrea`]],[`ES`,[`🇪🇸`,`Spain`]],[`ET`,[`🇪🇹`,`Ethiopia`]],[`EU`,[`🇪🇺`,`European Union`]],[`FI`,[`🇫🇮`,`Finland`]],[`FJ`,[`🇫🇯`,`Fiji`]],[`FK`,[`🇫🇰`,`Falkland Islands`]],[`FM`,[`🇫🇲`,`Micronesia`]],[`FO`,[`🇫🇴`,`Faroe Islands`]],[`FR`,[`🇫🇷`,`France`]],[`GA`,[`🇬🇦`,`Gabon`]],[`GB`,[`🇬🇧`,`United Kingdom`]],[`GD`,[`🇬🇩`,`Grenada`]],[`GE`,[`🇬🇪`,`Georgia`]],[`GF`,[`🇬🇫`,`French Guiana`]],[`GG`,[`🇬🇬`,`Guernsey`]],[`GH`,[`🇬🇭`,`Ghana`]],[`GI`,[`🇬🇮`,`Gibraltar`]],[`GL`,[`🇬🇱`,`Greenland`]],[`GM`,[`🇬🇲`,`Gambia`]],[`GN`,[`🇬🇳`,`Guinea`]],[`GP`,[`🇬🇵`,`Guadeloupe`]],[`GQ`,[`🇬🇶`,`Equatorial Guinea`]],[`GR`,[`🇬🇷`,`Greece`]],[`GS`,[`🇬🇸`,`South Georgia and the South Sandwich Islands`]],[`GT`,[`🇬🇹`,`Guatemala`]],[`GU`,[`🇬🇺`,`Guam`]],[`GW`,[`🇬🇼`,`Guinea-Bissau`]],[`GY`,[`🇬🇾`,`Guyana`]],[`HK`,[`🇭🇰`,`Hong Kong`]],[`HM`,[`🇭🇲`,`Heard & McDonald Islands`]],[`HN`,[`🇭🇳`,`Honduras`]],[`HR`,[`🇭🇷`,`Croatia`]],[`HT`,[`🇭🇹`,`Haiti`]],[`HU`,[`🇭🇺`,`Hungary`]],[`IC`,[`🇮🇨`,`Canary Islands`]],[`ID`,[`🇮🇩`,`Indonesia`]],[`IE`,[`🇮🇪`,`Ireland`]],[`IL`,[`🇮🇱`,`Israel`]],[`IM`,[`🇮🇲`,`Isle of Man`]],[`IN`,[`🇮🇳`,`India`]],[`IO`,[`🇮🇴`,`British Indian Ocean Territory`]],[`IQ`,[`🇮🇶`,`Iraq`]],[`IR`,[`🇮🇷`,`Iran`]],[`IS`,[`🇮🇸`,`Iceland`]],[`IT`,[`🇮🇹`,`Italy`]],[`JE`,[`🇯🇪`,`Jersey`]],[`JM`,[`🇯🇲`,`Jamaica`]],[`JO`,[`🇯🇴`,`Jordan`]],[`JP`,[`🇯🇵`,`Japan`]],[`KE`,[`🇰🇪`,`Kenya`]],[`KG`,[`🇰🇬`,`Kyrgyzstan`]],[`KH`,[`🇰🇭`,`Cambodia`]],[`KI`,[`🇰🇮`,`Kiribati`]],[`KM`,[`🇰🇲`,`Comoros`]],[`KN`,[`🇰🇳`,`Saint Kitts and Nevis`]],[`KP`,[`🇰🇵`,`North Korea`]],[`KR`,[`🇰🇷`,`South Korea`]],[`KW`,[`🇰🇼`,`Kuwait`]],[`KY`,[`🇰🇾`,`Cayman Islands`]],[`KZ`,[`🇰🇿`,`Kazakhstan`]],[`LA`,[`🇱🇦`,`Laos`]],[`LB`,[`🇱🇧`,`Lebanon`]],[`LC`,[`🇱🇨`,`Saint Lucia`]],[`LI`,[`🇱🇮`,`Liechtenstein`]],[`LK`,[`🇱🇰`,`Sri Lanka`]],[`LR`,[`🇱🇷`,`Liberia`]],[`LS`,[`🇱🇸`,`Lesotho`]],[`LT`,[`🇱🇹`,`Lithuania`]],[`LU`,[`🇱🇺`,`Luxembourg`]],[`LV`,[`🇱🇻`,`Latvia`]],[`LY`,[`🇱🇾`,`Libya`]],[`MA`,[`🇲🇦`,`Morocco`]],[`MC`,[`🇲🇨`,`Monaco`]],[`MD`,[`🇲🇩`,`Moldova`]],[`ME`,[`🇲🇪`,`Montenegro`]],[`MF`,[`🇲🇫`,`Saint Martin`]],[`MG`,[`🇲🇬`,`Madagascar`]],[`MH`,[`🇲🇭`,`Marshall Islands`]],[`MK`,[`🇲🇰`,`North Macedonia`]],[`ML`,[`🇲🇱`,`Mali`]],[`MM`,[`🇲🇲`,`Myanmar (Burma)`]],[`MN`,[`🇲🇳`,`Mongolia`]],[`MO`,[`🇲🇴`,`Macao`]],[`MP`,[`🇲🇵`,`Northern Mariana Islands`]],[`MQ`,[`🇲🇶`,`Martinique`]],[`MR`,[`🇲🇷`,`Mauritania`]],[`MS`,[`🇲🇸`,`Montserrat`]],[`MT`,[`🇲🇹`,`Malta`]],[`MU`,[`🇲🇺`,`Mauritius`]],[`MV`,[`🇲🇻`,`Maldives`]],[`MW`,[`🇲🇼`,`Malawi`]],[`MX`,[`🇲🇽`,`Mexico`]],[`MY`,[`🇲🇾`,`Malaysia`]],[`MZ`,[`🇲🇿`,`Mozambique`]],[`NA`,[`🇳🇦`,`Namibia`]],[`NC`,[`🇳🇨`,`New Caledonia`]],[`NE`,[`🇳🇪`,`Niger`]],[`NF`,[`🇳🇫`,`Norfolk Island`]],[`NG`,[`🇳🇬`,`Nigeria`]],[`NI`,[`🇳🇮`,`Nicaragua`]],[`NL`,[`🇳🇱`,`Netherlands`]],[`NO`,[`🇳🇴`,`Norway`]],[`NP`,[`🇳🇵`,`Nepal`]],[`NR`,[`🇳🇷`,`Nauru`]],[`NU`,[`🇳🇺`,`Niue`]],[`NZ`,[`🇳🇿`,`New Zealand`]],[`OM`,[`🇴🇲`,`Oman`]],[`PA`,[`🇵🇦`,`Panama`]],[`PE`,[`🇵🇪`,`Peru`]],[`PF`,[`🇵🇫`,`French Polynesia`]],[`PG`,[`🇵🇬`,`Papua New Guinea`]],[`PH`,[`🇵🇭`,`Philippines`]],[`PK`,[`🇵🇰`,`Pakistan`]],[`PL`,[`🇵🇱`,`Poland`]],[`PM`,[`🇵🇲`,`Saint Pierre and Miquelon`]],[`PN`,[`🇵🇳`,`Pitcairn Islands`]],[`PR`,[`🇵🇷`,`Puerto Rico`]],[`PS`,[`🇵🇸`,`State of Palestine`]],[`PT`,[`🇵🇹`,`Portugal`]],[`PW`,[`🇵🇼`,`Palau`]],[`PY`,[`🇵🇾`,`Paraguay`]],[`QA`,[`🇶🇦`,`Qatar`]],[`RE`,[`🇷🇪`,`Réunion`]],[`RO`,[`🇷🇴`,`Romania`]],[`RS`,[`🇷🇸`,`Serbia`]],[`RU`,[`🇷🇺`,`Russia`]],[`RW`,[`🇷🇼`,`Rwanda`]],[`SA`,[`🇸🇦`,`Saudi Arabia`]],[`SB`,[`🇸🇧`,`Solomon Islands`]],[`SC`,[`🇸🇨`,`Seychelles`]],[`SD`,[`🇸🇩`,`Sudan`]],[`SE`,[`🇸🇪`,`Sweden`]],[`SG`,[`🇸🇬`,`Singapore`]],[`SH`,[`🇸🇭`,`Saint Helena`]],[`SI`,[`🇸🇮`,`Slovenia`]],[`SJ`,[`🇸🇯`,`Svalbard and Jan Mayen`]],[`SK`,[`🇸🇰`,`Slovakia`]],[`SL`,[`🇸🇱`,`Sierra Leone`]],[`SM`,[`🇸🇲`,`San Marino`]],[`SN`,[`🇸🇳`,`Senegal`]],[`SO`,[`🇸🇴`,`Somalia`]],[`SR`,[`🇸🇷`,`Suriname`]],[`SS`,[`🇸🇸`,`South Sudan`]],[`ST`,[`🇸🇹`,`São Tomé and Príncipe`]],[`SV`,[`🇸🇻`,`El Salvador`]],[`SX`,[`🇸🇽`,`Sint Maarten`]],[`SY`,[`🇸🇾`,`Syria`]],[`SZ`,[`🇸🇿`,`Eswatini`]],[`TA`,[`🇹🇦`,`Tristan da Cunha`]],[`TC`,[`🇹🇨`,`Turks and Caicos Islands`]],[`TD`,[`🇹🇩`,`Chad`]],[`TF`,[`🇹🇫`,`French Southern Territories`]],[`TG`,[`🇹🇬`,`Togo`]],[`TH`,[`🇹🇭`,`Thailand`]],[`TJ`,[`🇹🇯`,`Tajikistan`]],[`TK`,[`🇹🇰`,`Tokelau`]],[`TL`,[`🇹🇱`,`Timor-Leste`]],[`TM`,[`🇹🇲`,`Turkmenistan`]],[`TN`,[`🇹🇳`,`Tunisia`]],[`TO`,[`🇹🇴`,`Tonga`]],[`TR`,[`🇹🇷`,`Turkey`]],[`TT`,[`🇹🇹`,`Trinidad and Tobago`]],[`TV`,[`🇹🇻`,`Tuvalu`]],[`TW`,[`🇹🇼`,`Taiwan`]],[`TZ`,[`🇹🇿`,`Tanzania`]],[`UA`,[`🇺🇦`,`Ukraine`]],[`UG`,[`🇺🇬`,`Uganda`]],[`UM`,[`🇺🇲`,`U.S. Outlying Islands`]],[`UN`,[`🇺🇳`,`United Nations`]],[`US`,[`🇺🇸`,`United States`]],[`UY`,[`🇺🇾`,`Uruguay`]],[`UZ`,[`🇺🇿`,`Uzbekistan`]],[`VA`,[`🇻🇦`,`Vatican City`]],[`VC`,[`🇻🇨`,`Saint Vincent and the Grenadines`]],[`VE`,[`🇻🇪`,`Venezuela`]],[`VG`,[`🇻🇬`,`British Virgin Islands`]],[`VI`,[`🇻🇮`,`U.S. Virgin Islands`]],[`VN`,[`🇻🇳`,`Vietnam`]],[`VU`,[`🇻🇺`,`Vanuatu`]],[`WF`,[`🇼🇫`,`Wallis and Futuna`]],[`WS`,[`🇼🇸`,`Samoa`]],[`XK`,[`🇽🇰`,`Kosovo`]],[`YE`,[`🇾🇪`,`Yemen`]],[`YT`,[`🇾🇹`,`Mayotte`]],[`ZA`,[`🇿🇦`,`South Africa`]],[`ZM`,[`🇿🇲`,`Zambia`]],[`ZW`,[`🇿🇼`,`Zimbabwe`]]]);function bo(e){let t=Q.get(e);return t?{code:e,name:t[1]||`Unknown`,flag:t[0]||``}:{code:e,name:`Unknown`,flag:``}}var xo={class:`page-container`},So={class:`grid grid-cols-1 gap-4 md:grid-cols-3`},Co={class:`relative h-32 pt-2`},wo={class:`grid grid-cols-1 gap-4 lg:grid-cols-2 xl:grid-cols-3`},To={key:1,class:`h-full max-h-[300px] overflow-y-auto`},Eo={class:`w-full text-sm`},Do={class:`w-min`},Oo={class:`text-secondary-300`},ko={class:`w-full px-2`},Ao={class:`inline-flex flex-wrap gap-0.5`},jo={class:`w-min text-right whitespace-nowrap`},Mo={key:2,class:`flex items-center justify-center py-4 text-sm text-stone-500`},No=d({__name:`HomeView`,setup(e){let t=Na(),n=Ma(),r=P(()=>t.stats),i=P(()=>t.loading&&!r.value),o=P(()=>n.loading&&n.blocklist.length===0),s=P(()=>n.blocklist.map(e=>({label:e.address,expires:e.expires,tags:e.reason.split(`,`),routerLink:`/ip/${e.address}`}))),c=P(()=>(r.value?.stats_24h?.remote_addrs||[]).map(e=>({label:e.label,count:e.count,routerLink:`/ip/${e.label}`}))),l=P(()=>(r.value?.stats_24h?.ports||[]).map(e=>({label:e.label,count:e.count,routerLink:`/port/${e.label}`}))),u=P(()=>(r.value?.stats_24h?.types||[]).map(e=>({label:Ia(e.label)?.label??e.label,count:e.count,routerLink:`/honeypot/${e.label}`}))),d=P(()=>(r.value?.stats_24h?.domains||[]).map(e=>({label:e.label,count:e.count,routerLink:`/domain/${e.label}`}))),f=P(()=>(r.value?.stats_24h?.countries||[]).map(e=>({label:Q.get(e.label)===void 0?e.label:Q.get(e.label)?.[0]+` `+Q.get(e.label)?.[1],count:e.count,routerLink:`/country/${e.label}`}))),p=P(()=>r.value?.sparkline?{x:r.value.sparkline.map(e=>new Date(e.time).getTime()),y:r.value.sparkline.map(e=>e.count)}:{x:[],y:[]});return x(()=>{t.fetchStats(),n.fetchBlocklist()}),(e,t)=>{let n=a(`router-link`);return _(),C(`div`,xo,[I(`div`,So,[m(Ya,{label:`24h Activity Trend`,icon:k(J).activity},{default:g(()=>[I(`div`,Co,[i.value?(_(),O(Za,{key:0})):F(``,!0),m(lo,{data:p.value,class:`text-primary-500 h-full w-full`},null,8,[`data`])])]),_:1},8,[`icon`]),m(Ya,{label:`Last 24 Hours`,value:r.value?.count_24h,icon:k(J).time,"value-class":`text-3xl font-bold`},null,8,[`value`,`icon`]),m(Ya,{label:`Total Events`,value:r.value?.stats_all?.types?.reduce((e,t)=>e+t.count,0)??0,icon:k(J).total,"value-class":`text-3xl font-bold`},null,8,[`value`,`icon`])]),I(`div`,wo,[m(ao,{title:`Blocked Addresses (${s.value.length})`,icon:k(J).blocked,class:`relative`},{default:g(()=>[o.value?(_(),O(Za,{key:0})):F(``,!0),s.value.length>0?(_(),C(`div`,To,[I(`table`,Eo,[t[0]||=I(`thead`,null,[I(`tr`,{class:`text-stone-400`},[I(`th`,{class:`w-min pb-2 text-left`},`Address`),I(`th`,{class:`w-full px-2 pb-2 text-left`},`Tags`),I(`th`,{class:`w-min pb-2 text-right whitespace-nowrap`},`Expires`)])],-1),I(`tbody`,null,[(_(!0),C(j,null,S(s.value,e=>(_(),C(`tr`,{key:e.label},[I(`td`,Do,[m(n,{to:e.routerLink,class:`hover:text-secondary-400`},{default:g(()=>[I(`span`,null,[T(b(k(xt)(e.label).address),1),I(`span`,Oo,b(k(xt)(e.label).mask),1)])]),_:2},1032,[`to`])]),I(`td`,ko,[I(`span`,Ao,[(_(!0),C(j,null,S(e.tags,e=>(_(),O(to,{key:e,tag:e},null,8,[`tag`]))),128))])]),I(`td`,jo,b(k(Pe)(e.expires)),1)]))),128))])])])):(_(),C(`div`,Mo,` No data available `))]),_:1},8,[`title`,`icon`]),m(ao,{title:`Top Remote Addresses`,icon:k(J).address},{default:g(()=>[m(yo,{items:c.value,loading:i.value,class:`max-h-[300px]`},null,8,[`items`,`loading`])]),_:1},8,[`icon`]),m(ao,{title:`Top Countries`,icon:k(J).country},{default:g(()=>[m(yo,{items:f.value,loading:i.value,class:`max-h-[300px]`},null,8,[`items`,`loading`])]),_:1},8,[`icon`]),m(ao,{title:`Top Domains`,icon:k(J).domain},{default:g(()=>[m(yo,{items:d.value,loading:i.value,class:`max-h-[300px]`},null,8,[`items`,`loading`])]),_:1},8,[`icon`]),m(ao,{title:`Top Ports`,icon:k(J).port},{default:g(()=>[m(yo,{items:l.value,loading:i.value,class:`max-h-[300px]`},null,8,[`items`,`loading`])]),_:1},8,[`icon`]),m(ao,{title:`Top Honeypots`,icon:k(J).honeypotType},{default:g(()=>[m(yo,{items:u.value,loading:i.value,class:`max-h-[300px]`},null,8,[`items`,`loading`])]),_:1},8,[`icon`])])])}}}),Po={class:`flex flex-1 items-center justify-center p-6`},Fo={key:0,class:`text-sm font-bold text-red-500`},Io=[`disabled`],Lo=M(d({__name:`LoginView`,setup(e){let t=La(),n=jr(),r=N(``),i=N(``),a=N(!1),o=async()=>{a.value=!0,i.value=``;try{await t.login(r.value)?n.push(`/`):i.value=`Invalid password`}catch{i.value=`An error occurred`}finally{a.value=!1}};return le(()=>{Fa()}),(e,t)=>(_(),C(`div`,Po,[m(ao,{class:`w-full max-w-md`},{default:g(()=>[t[2]||=I(`div`,{class:`mb-6 text-center`},[I(`h1`,{class:`text-primary-600 font-mono text-2xl font-medium tracking-tight uppercase`},[I(`strong`,null,`Honey`),I(`em`,null,`pie`)]),I(`p`,{class:`text-muted text-sm`},`Dashboard Login`)],-1),I(`form`,{onSubmit:An(o,[`prevent`]),class:`space-y-4`},[I(`div`,null,[t[1]||=I(`label`,{for:`password`,class:`sr-only mb-1 block text-sm font-medium text-stone-400`},` Password `,-1),y(I(`input`,{id:`password`,"onUpdate:modelValue":t[0]||=e=>r.value=e,type:`password`,required:``,class:`focus:border-primary-600 focus:ring-primary-600 w-full rounded-md border border-stone-700 bg-stone-900 px-3 py-2 font-mono text-stone-200 focus:ring-1 focus:outline-none`,placeholder:`Enter dashboard password`,autofocus:``},null,512),[[wn,r.value]])]),i.value?(_(),C(`div`,Fo,b(i.value),1)):F(``,!0),I(`button`,{type:`submit`,disabled:a.value,class:`bg-primary-600 hover:bg-primary-700 mx-auto rounded-md px-4 py-2 font-medium text-white transition-colors disabled:opacity-50`},[m(k(f),{size:`20`}),T(` `+b(a.value?`Logging in...`:`Login`),1)],8,Io)],32)]),_:1})]))}}),[[`__scopeId`,`data-v-074c0945`]]),Ro={class:`bg-card sticky bottom-0 flex min-h-12 flex-wrap items-center justify-between gap-2 rounded-b-xl border-t border-stone-800 px-4 py-3 text-sm`},zo={class:`flex items-center gap-2`},Bo=[`disabled`],Vo=[`disabled`],Ho={class:`flex items-center gap-2`},Uo=d({__name:`EventTableFooter`,props:{totalEvents:{},filterActions:{}},setup(e){let t=e,n=t.filterActions.state;function r(){n.offset=Math.max(0,n.offset-n.limit)}function i(){n.offset=Math.min(n.offset+n.limit,t.totalEvents)}return(t,a)=>(_(),C(`div`,Ro,[I(`div`,zo,[I(`button`,{onClick:r,disabled:k(n).offset<=0,class:`btn-secondary py-0.5 pl-0.5 font-semibold uppercase select-none`},[m(k(re),{class:`mt-px`}),a[2]||=T(` Previous `,-1)],8,Bo),I(`span`,null,b(Math.floor(k(n).offset/k(n).limit)+1)+` / `+b(k(st)(Math.ceil(e.totalEvents/k(n).limit))),1),I(`button`,{onClick:i,disabled:k(n).offset+k(n).limit>=e.totalEvents,class:`btn-secondary py-0.5 pr-0.5 font-semibold uppercase select-none`},[a[3]||=T(` Next `,-1),m(k(h),{class:`mt-px`})],8,Vo)]),I(`div`,Ho,[a[5]||=I(`span`,{class:`filter-label`},`Events per page:`,-1),y(I(`select`,{"onUpdate:modelValue":a[0]||=e=>k(n).limit=e,class:`select`,onChange:a[1]||=e=>k(n).offset=0},[...a[4]||=[Ot(`<option value="25">25</option><option value="50">50</option><option value="100">100</option><option value="200">200</option><option value="500">500</option><option value="1000">1000</option>`,6)]],544),[[Tn,k(n).limit,void 0,{number:!0}]])])]))}}),Wo=[{value:`auth_attempt`,label:`Auth Attempt`},{value:`request`,label:`Request`},{value:`icmp_packet`,label:`ICMP Packet`},{value:`tcp_packet`,label:`TCP Packet`},{value:`udp_packet`,label:`UDP Packet`},{value:`dns_query`,label:`DNS Query`},{value:`tls_handshake`,label:`TLS Handshake`}],Go={class:`filter-item`},Ko=M(d({__name:`FilterPill`,props:{label:{}},setup(e){return(t,n)=>(_(),C(`div`,Go,b(e.label),1))}}),[[`__scopeId`,`data-v-02aaec99`]]),qo={class:`flex items-center gap-2`},Jo={class:`filter-label`},Yo={class:`relative flex items-center gap-1`},Xo=[`placeholder`],Zo=[`title`],Qo={key:0,class:`flex flex-wrap items-center`},$o=d({__name:`CommaSeparatedFilter`,props:{modelValue:{},label:{},placeholder:{},title:{},inputClass:{},validateRegex:{},icon:{type:[Function,Object]}},emits:[`update:modelValue`,`change`],setup(e,{emit:t}){let n=e,r=t,i=N(``),a=N(!1),o=N(!1);function s(){if(!n.validateRegex){a.value=!1;return}let e=i.value.split(`,`).map(e=>e.trim()).filter(Boolean);if(e.length===0){a.value=!1;return}a.value=!e.every(e=>n.validateRegex.test(e))}function c(){let e=i.value;if(!e)return;let t=e.split(`,`).map(e=>e.trim()).filter(Boolean);if(n.validateRegex&&!t.every(e=>n.validateRegex.test(e))){a.value=!0,o.value=!0;return}if(t.length>0){r(`update:modelValue`,[...new Set([...n.modelValue,...t])]),r(`change`),a.value=!1,o.value=!1,i.value=``;return}a.value=!1,i.value=``}function l(){o.value&&s(),i.value.includes(`,`)&&c()}function u(e){r(`update:modelValue`,n.modelValue.filter(t=>t!==e)),r(`change`)}return(t,n)=>(_(),C(`div`,qo,[I(`span`,Jo,[(_(),O(E(e.icon),{size:`16`})),T(` `+b(e.label)+`: `,1)]),I(`div`,Yo,[y(I(`input`,{type:`text`,"onUpdate:modelValue":n[0]||=e=>i.value=e,onInput:l,onKeypress:Mn(c,[`enter`]),onBlur:c,placeholder:e.placeholder,class:p([e.inputClass||`w-48 pr-5`,{"border-red-500":a.value}])},null,42,Xo),[[wn,i.value]]),i.value.length>0?(_(),C(`button`,{key:0,onMousedown:n[1]||=An(()=>{},[`prevent`]),onClick:n[2]||=e=>i.value=``,class:`absolute top-1 right-1 text-stone-500 hover:text-stone-300`,title:`Clear ${e.label.toLowerCase()} input`},[m(k(A),{size:`16`})],40,Zo)):F(``,!0)]),e.modelValue.length>0?(_(),C(`div`,Qo,[(_(!0),C(j,null,S(e.modelValue,e=>(_(),O(Ko,{key:e,label:e,onClick:t=>u(e)},null,8,[`label`,`onClick`]))),128))])):F(``,!0)]))}}),es={class:`relative`},ts={key:0,class:`absolute top-full left-0 z-100 mt-1 max-h-60 w-full min-w-[150px] overflow-hidden overflow-y-auto rounded border border-stone-700 bg-stone-800 shadow-xl`},ns=[`onClick`,`disabled`],rs={key:0,class:`flex flex-wrap items-center`},is=d({__name:`DropdownFilter`,props:{modelValue:{},label:{},options:{},placeholder:{},icon:{type:[Function,Object]}},emits:[`update:modelValue`,`change`],setup(e,{emit:t}){let n=e,r=t,i=N(!1),a=N(null);function o(){i.value=!i.value}function s(e){a.value&&!a.value.contains(e.target)&&(i.value=!1)}x(()=>{document.addEventListener(`mousedown`,s)}),ee(()=>{document.removeEventListener(`mousedown`,s)});function c(e){n.modelValue.includes(e)||(r(`update:modelValue`,[...n.modelValue,e]),r(`change`)),i.value=!1}function l(e){r(`update:modelValue`,n.modelValue.filter(t=>t!==e)),r(`change`)}function u(){r(`update:modelValue`,[]),r(`change`)}return(t,n)=>(_(),C(`div`,{class:`flex items-center gap-2`,ref_key:`dropdownRef`,ref:a},[I(`span`,{class:p([`filter-label`,{"cursor-pointer":e.modelValue.length>0}]),onClick:u},[(_(),O(E(e.icon),{size:`16`})),T(` `+b(e.label)+`: `,1)],2),I(`div`,es,[I(`button`,{onClick:o,class:`flex min-w-[128px] items-center justify-between gap-2 rounded border border-stone-700 bg-stone-900/70 px-2 py-0.5 text-xs text-stone-300 transition-colors hover:border-stone-600 hover:text-white`},[I(`span`,null,b(e.placeholder||`Select...`),1),m(k(pt),{size:`14`,class:p([{"rotate-180":i.value},`transition-transform`])},null,8,[`class`])]),i.value?(_(),C(`div`,ts,[(_(!0),C(j,null,S(e.options,t=>(_(),C(`button`,{key:t.value,onClick:e=>c(t.value),class:`flex w-full items-center px-3 py-1.5 text-left text-xs text-stone-300 transition-colors hover:bg-stone-700 hover:text-white disabled:cursor-not-allowed disabled:opacity-30`,disabled:e.modelValue.includes(t.value)},b(t.label),9,ns))),128))])):F(``,!0)]),e.modelValue.length>0?(_(),C(`div`,rs,[(_(!0),C(j,null,S(e.modelValue,t=>(_(),O(Ko,{key:t,label:e.options.find(e=>e.value===t)?.label||t,onClick:e=>l(t)},null,8,[`label`,`onClick`]))),128))])):F(``,!0)],512))}}),as=d({__name:`HostFilter`,props:{modelValue:{}},emits:[`update:modelValue`,`change`],setup(e,{emit:t}){let n=e,r=t,i=/^(!)?(?:(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)|(?:[0-9a-fA-F]{1,4}:){1,7}[0-9a-fA-F]{1,4}|(?:[0-9a-fA-F]{1,4}:){1,7}:|:(:[0-9a-fA-F]{1,4}){1,7}|::)(?:\/\d+)?$/;return(e,t)=>(_(),O($o,{label:`Source`,icon:k(J).address,"model-value":n.modelValue,"onUpdate:modelValue":t[0]||=e=>r(`update:modelValue`,e),onChange:t[1]||=e=>r(`change`),placeholder:`192.168.1.0/24`,inputClass:`w-32`,"validate-regex":i},null,8,[`icon`,`model-value`]))}}),os={class:`flex items-center gap-2`},ss={key:0,class:`filter-label cursor-pointer`},cs={key:1,class:`flex items-center gap-1`},ls={class:`relative flex items-center gap-1`},us=[`placeholder`],ds={key:2,class:`flex flex-wrap items-center`},fs=d({__name:`JsonFieldFilter`,props:{fieldKey:{},modelValue:{},fixedKey:{type:Boolean}},emits:[`update:modelValue`,`update:fieldKey`,`imgood`,`remove`],setup(e,{emit:t}){let n=e,r=t,i=N(n.fieldKey||``),a=N(``);function o(){a.value&&=(r(`update:modelValue`,[...n.modelValue||[],a.value]),``)}function s(e){r(`update:modelValue`,(n.modelValue||[]).filter(t=>t!==e))}function c(){r(`update:fieldKey`,i.value)}return(t,n)=>(_(),C(`div`,os,[e.fixedKey?(_(),C(`div`,ss,b(i.value)+`: `,1)):(_(),C(`div`,cs,[y(I(`input`,{"onUpdate:modelValue":n[0]||=e=>i.value=e,onChange:c,type:`text`,placeholder:`key`,class:`w-24`},null,544),[[wn,i.value]]),n[3]||=I(`span`,{class:`text-stone-500`},`:`,-1)])),I(`div`,ls,[y(I(`input`,{"onUpdate:modelValue":n[1]||=e=>a.value=e,onKeydown:Mn(o,[`enter`]),type:`text`,placeholder:e.modelValue?.length?``:`value`,class:`w-32`},null,40,us),[[wn,a.value]]),a.value.length>0?(_(),C(`button`,{key:0,onClick:n[2]||=e=>a.value=``,class:`absolute top-1.5 right-1.5 text-stone-500 hover:text-stone-300`},[m(k(A),{size:`14`})])):F(``,!0)]),e.modelValue?.length?(_(),C(`div`,ds,[(_(!0),C(j,null,S(e.modelValue,e=>(_(),O(Ko,{key:e,label:e,onClick:t=>s(e)},null,8,[`label`,`onClick`]))),128))])):F(``,!0)]))}}),ps=[`title`],ms=d({__name:`SyncButton`,props:{syncWithChart:{type:Boolean}},emits:[`update:syncWithChart`],setup(e,{emit:t}){let r=t;return(t,i)=>(_(),C(`button`,{type:`button`,onClick:i[0]||=t=>r(`update:syncWithChart`,!e.syncWithChart),class:p([`flex items-center gap-1 rounded border p-0.5 text-[10px] font-medium transition-colors`,[e.syncWithChart?`border-secondary-500/50 bg-secondary-500/10 text-secondary-400 hover:bg-secondary-500/20`:`border-stone-600 bg-stone-800 text-stone-400 hover:bg-stone-700`]]),title:e.syncWithChart?`Synced with chart`:`Click to sync with chart`},[(_(),O(E(e.syncWithChart?k(Xe):k(n)),{size:`14`}))],10,ps))}}),hs={class:`flex items-center gap-2`},gs=d({__name:`PortFilter`,props:{modelValue:{},syncWithChart:{type:Boolean},showSync:{type:Boolean}},emits:[`update:modelValue`,`update:syncWithChart`,`change`],setup(e,{emit:t}){let n=e,r=t,i=/^(!?\d+|-|\!)|(!?\d+-\d+)$/;return(t,a)=>(_(),C(`div`,hs,[m($o,{label:`Ports`,icon:k(J).port,"model-value":n.modelValue,"onUpdate:modelValue":a[0]||=e=>r(`update:modelValue`,e),onChange:a[1]||=e=>r(`change`),placeholder:`22,80,443-1024,!23`,inputClass:`w-24`,"validate-regex":i},null,8,[`icon`,`model-value`]),e.showSync?(_(),O(ms,{key:0,onClick:a[2]||=t=>r(`update:syncWithChart`,!e.syncWithChart),"sync-with-chart":e.syncWithChart},null,8,[`sync-with-chart`])):F(``,!0)]))}}),_s={class:`flex flex-wrap items-center gap-2`},vs={class:`filter-label`},ys=[`value`],bs=[`value`],xs=d({__name:`TimeRangeFilter`,props:{timeStart:{},timeEnd:{},syncWithChart:{type:Boolean},showSync:{type:Boolean}},emits:[`update:timeStart`,`update:timeEnd`,`update:syncWithChart`,`change`],setup(e,{emit:t}){let n=e,r=t;function i(e){r(`update:timeStart`,e.target.value),r(`change`)}function a(e){r(`update:timeEnd`,e.target.value),r(`change`)}return(t,o)=>(_(),C(`div`,_s,[I(`span`,vs,[(_(),O(E(k(J).time),{size:`16`})),o[1]||=T(` Time Range: `,-1)]),I(`input`,{type:`datetime-local`,value:k(it)(n.timeStart),onChange:i},null,40,ys),I(`input`,{type:`datetime-local`,value:k(it)(n.timeEnd),onChange:a},null,40,bs),e.showSync?(_(),O(ms,{key:0,onClick:o[0]||=t=>r(`update:syncWithChart`,!e.syncWithChart),"sync-with-chart":e.syncWithChart},null,8,[`sync-with-chart`])):F(``,!0)]))}}),Ss=M(d({__name:`ToggleButton`,props:{label:{},checked:{type:Boolean}},setup(e){return(t,n)=>(_(),C(`button`,{class:p({checked:e.checked})},[L(t.$slots,`default`,{},()=>[T(b(e.label),1)],!0)],2))}}),[[`__scopeId`,`data-v-db6718f1`]]),Cs={key:0,class:`flex`},ws=M(d({__name:`ToggleSwitches`,props:{filters:{}},setup(e){let t=e.filters||Da().state;return(e,n)=>k(Mr)().name?.startsWith(`charts`)?F(``,!0):(_(),C(`div`,Cs,[m(Ss,{checked:k(t).resolve_ips??!1,onClick:n[0]||=e=>k(t).resolve_ips=!k(t).resolve_ips,label:`Resolve IPs`},{default:g(()=>[(_(),O(E(k(t).resolve_ips?k(o):k(Et)),{size:`18`})),n[1]||=T(` Resolve IPs `,-1)]),_:1},8,[`checked`])]))}}),[[`__scopeId`,`data-v-d2928b54`]]),Ts={class:`flex w-full flex-col gap-3`},Es={class:`flex flex-wrap justify-between gap-4`},Ds={class:`flex flex-wrap items-center gap-2`},Os={key:0,class:`absolute top-full left-0 z-50 mt-1 w-max overflow-hidden rounded border border-stone-700 bg-stone-800 shadow-xl`},ks=[`onClick`],As={class:`flex flex-wrap items-start gap-2`},js={key:0,class:`py-1 text-xs text-stone-500 italic`},Ms={key:1,class:`group relative`},Ns={key:2,class:`group relative`},Ps={key:3,class:`group relative`},Fs={key:4,class:`group relative`},Is={key:5,class:`group relative`},Ls={key:6,class:`group relative`},Rs={key:7,class:`group relative`},zs={key:8,class:`group relative`},Bs={key:9,class:`group relative`},Vs={key:10,class:`group relative`},Hs=[`onClick`],Us=[`onClick`],Ws=M(d({__name:`FilterBar`,props:{filters:{}},setup(e){let t=e,n=Mr(),r=t.filters||Da().state,i=N(!1),a=P(()=>Pa.value.map(e=>({value:e.name,label:e.label}))),o=[{id:`type`,label:`Honeypot Type`,icon:J.honeypotType},{id:`event`,label:`Event`,icon:J.eventType},{id:`remote_addr`,label:`Source IP`,icon:J.address},{id:`dst_port`,label:`Destination Port`,icon:J.port},{id:`timerange`,label:`Time Range`,icon:J.time},{id:`country`,label:`Country`,icon:J.country},{id:`city`,label:`City`,icon:J.city},{id:`asn`,label:`ASN`,icon:J.asn},{id:`domain`,label:`Domain`,icon:J.domain},{id:`fqdn`,label:`FQDN`,icon:J.domain},{id:`json`,label:`JSON Field`,icon:Te}],s=N(new Set),c=N([]),l=P(()=>o.filter(e=>!s.value.has(e.id)));r.remote_addr?.length&&s.value.add(`remote_addr`),r.dst_port?.length&&s.value.add(`dst_port`),r.country?.length&&s.value.add(`country`),r.city?.length&&s.value.add(`city`),r.asn?.length&&s.value.add(`asn`),r.domain?.length&&s.value.add(`domain`),r.fqdn?.length&&s.value.add(`fqdn`),(r.time_start||r.time_end)&&s.value.add(`timerange`),r.type?.length&&s.value.add(`type`),r.event?.length&&s.value.add(`event`);let u=e=>{let t=r[e];return Array.isArray(t)?t.length>0:typeof t==`string`?t!==``:!!t};function d(e){e===`json`?c.value.push({key:``,values:[]}):s.value.add(e),i.value=!1}function f(e){s.value.delete(e),e===`remote_addr`&&(r.remote_addr=[]),e===`dst_port`&&(r.dst_port=[]),e===`type`&&(r.type=[]),e===`country`&&(r.country=[]),e===`city`&&(r.city=[]),e===`asn`&&(r.asn=[]),e===`domain`&&(r.domain=[]),e===`fqdn`&&(r.fqdn=[]),e===`event`&&(r.event=[]),e===`timerange`&&(r.time_start=``,r.time_end=``),r.offset=0}let ee=ve(`addMenu`);return je(ee,()=>{i.value=!1}),(e,t)=>(_(),C(`div`,Ts,[I(`div`,Es,[I(`div`,Ds,[[`ip`,`charts`].includes(k(n).name)?F(``,!0):(_(),O(ws,{key:0,filters:k(r)},null,8,[`filters`])),I(`div`,{class:`relative`,ref_key:`addMenu`,ref:ee},[I(`button`,{onClick:t[0]||=e=>i.value=!i.value,class:`flex h-8 items-center gap-2 rounded border border-stone-600 bg-stone-800 px-3 text-xs font-semibold text-stone-300 hover:bg-stone-700 hover:text-white`},[m(k(he),{size:`18`}),t[34]||=T(` Add Filter `,-1),m(k(pt),{size:`14`,class:p([`transition-transform`,{"rotate-180":i.value}])},null,8,[`class`])]),i.value?(_(),C(`div`,Os,[(_(!0),C(j,null,S(l.value,e=>(_(),C(`button`,{key:e.id,onClick:t=>d(e.id),class:`flex w-full items-center gap-2 rounded-none border-b border-stone-700/50 px-3 py-1.5 text-left text-xs text-stone-300 last:border-0 hover:bg-stone-700 hover:text-white`},[(_(),O(E(e.icon),{size:`16`})),T(` `+b(e.label),1)],8,ks))),128))])):F(``,!0)],512)]),L(e.$slots,`right`,{},void 0,!0)]),I(`div`,As,[s.value.size===0&&!Object.keys(k(r).json_fields||{}).length&&c.value.length===0&&!u(`type`)&&!u(`remote_addr`)&&!u(`dst_port`)&&!u(`country`)&&!u(`city`)&&!u(`asn`)&&!u(`time_start`)&&!u(`time_end`)&&!u(`event`)?(_(),C(`div`,js,` No active filters `)):F(``,!0),s.value.has(`type`)||u(`type`)?(_(),C(`div`,Ms,[m(is,{label:`Type`,icon:k(J).honeypotType,modelValue:k(r).type,"onUpdate:modelValue":t[1]||=e=>k(r).type=e,options:a.value,onChange:t[2]||=e=>k(r).offset=0,placeholder:`Select type`,class:`filter-card`},null,8,[`icon`,`modelValue`,`options`]),I(`button`,{onClick:t[3]||=e=>f(`type`),title:`Remove filter`,class:`filter-remove-button`},[m(k(A),{size:`12`})])])):F(``,!0),s.value.has(`event`)||u(`event`)?(_(),C(`div`,Ns,[m(is,{label:`Event`,icon:k(J).eventType,modelValue:k(r).event,"onUpdate:modelValue":t[4]||=e=>k(r).event=e,options:k(Wo),onChange:t[5]||=e=>k(r).offset=0,placeholder:`Select event`,class:`filter-card`},null,8,[`icon`,`modelValue`,`options`]),I(`button`,{onClick:t[6]||=e=>f(`event`),title:`Remove filter`,class:`filter-remove-button`},[m(k(A),{size:`12`})])])):F(``,!0),s.value.has(`remote_addr`)||u(`remote_addr`)?(_(),C(`div`,Ps,[m(as,{modelValue:k(r).remote_addr,"onUpdate:modelValue":t[7]||=e=>k(r).remote_addr=e,onChange:t[8]||=e=>k(r).offset=0,class:`filter-card`},null,8,[`modelValue`]),I(`button`,{onClick:t[9]||=e=>f(`remote_addr`),title:`Remove filter`,class:`filter-remove-button`},[m(k(A),{size:`12`})])])):F(``,!0),s.value.has(`dst_port`)||u(`dst_port`)?(_(),C(`div`,Fs,[m(gs,{modelValue:k(r).dst_port,"onUpdate:modelValue":t[10]||=e=>k(r).dst_port=e,"sync-with-chart":k(r).sync_ports_with_chart,"onUpdate:syncWithChart":t[11]||=e=>k(r).sync_ports_with_chart=e,"show-sync":k(n).name===`charts-port`,onChange:t[12]||=e=>k(r).offset=0,class:`filter-card`},null,8,[`modelValue`,`sync-with-chart`,`show-sync`]),I(`button`,{onClick:t[13]||=e=>f(`dst_port`),title:`Remove filter`,class:`filter-remove-button`},[m(k(A),{size:`12`})])])):F(``,!0),s.value.has(`country`)||u(`country`)?(_(),C(`div`,Is,[m($o,{label:`Country`,icon:k(J).country,modelValue:k(r).country,"onUpdate:modelValue":t[14]||=e=>k(r).country=e,onChange:t[15]||=e=>k(r).offset=0,placeholder:`US, DE`,inputClass:`w-24`,class:`filter-card`},null,8,[`icon`,`modelValue`]),I(`button`,{onClick:t[16]||=e=>f(`country`),title:`Remove filter`,class:`filter-remove-button`},[m(k(A),{size:`12`})])])):F(``,!0),s.value.has(`city`)||u(`city`)?(_(),C(`div`,Ls,[m($o,{label:`City`,icon:k(J).city,modelValue:k(r).city,"onUpdate:modelValue":t[17]||=e=>k(r).city=e,onChange:t[18]||=e=>k(r).offset=0,placeholder:`New York, Zurich`,inputClass:`w-24`,class:`filter-card`},null,8,[`icon`,`modelValue`]),I(`button`,{onClick:t[19]||=e=>f(`city`),title:`Remove filter`,class:`filter-remove-button`},[m(k(A),{size:`12`})])])):F(``,!0),s.value.has(`asn`)||u(`asn`)?(_(),C(`div`,Rs,[m($o,{label:`ASN`,icon:k(J).asn,modelValue:k(r).asn,"onUpdate:modelValue":t[20]||=e=>k(r).asn=e,onChange:t[21]||=e=>k(r).offset=0,placeholder:`12345`,inputClass:`w-24`,class:`filter-card`},null,8,[`icon`,`modelValue`]),I(`button`,{onClick:t[22]||=e=>f(`asn`),title:`Remove filter`,class:`filter-remove-button`},[m(k(A),{size:`12`})])])):F(``,!0),s.value.has(`domain`)||u(`domain`)?(_(),C(`div`,zs,[m($o,{label:`Domain`,icon:k(J).domain,modelValue:k(r).domain,"onUpdate:modelValue":t[23]||=e=>k(r).domain=e,onChange:t[24]||=e=>k(r).offset=0,placeholder:`example.com`,inputClass:`w-32`,class:`filter-card`},null,8,[`icon`,`modelValue`]),I(`button`,{onClick:t[25]||=e=>f(`domain`),title:`Remove filter`,class:`filter-remove-button`},[m(k(A),{size:`12`})])])):F(``,!0),s.value.has(`fqdn`)||u(`fqdn`)?(_(),C(`div`,Bs,[m($o,{label:`FQDN`,icon:k(J).domain,modelValue:k(r).fqdn,"onUpdate:modelValue":t[26]||=e=>k(r).fqdn=e,onChange:t[27]||=e=>k(r).offset=0,placeholder:`*.example.com`,inputClass:`w-32`,class:`filter-card`},null,8,[`icon`,`modelValue`]),I(`button`,{onClick:t[28]||=e=>f(`fqdn`),title:`Remove filter`,class:`filter-remove-button`},[m(k(A),{size:`12`})])])):F(``,!0),s.value.has(`timerange`)||u(`time_start`)||u(`time_end`)?(_(),C(`div`,Vs,[m(xs,{"time-start":k(r).time_start,"onUpdate:timeStart":t[29]||=e=>k(r).time_start=e,"time-end":k(r).time_end,"onUpdate:timeEnd":t[30]||=e=>k(r).time_end=e,"sync-with-chart":k(r).sync_time_with_chart,"onUpdate:syncWithChart":t[31]||=e=>k(r).sync_time_with_chart=e,"show-sync":k(n).name===`charts-activity`||k(n).name===`charts-port`,onChange:t[32]||=e=>k(r).offset=0,class:`filter-card`},null,8,[`time-start`,`time-end`,`sync-with-chart`,`show-sync`]),I(`button`,{onClick:t[33]||=e=>f(`timerange`),title:`Remove filter`,class:`filter-remove-button`},[m(k(A),{size:`12`})])])):F(``,!0),(_(!0),C(j,null,S(k(r).json_fields,(e,t)=>(_(),C(`div`,{key:t,class:`group relative`},[m(fs,{"field-key":t,"model-value":e,"fixed-key":``,"onUpdate:modelValue":e=>k(r).json_fields[t]=e,class:`filter-card`},null,8,[`field-key`,`model-value`,`onUpdate:modelValue`]),I(`button`,{onClick:e=>delete k(r).json_fields[t],title:`Remove filter`,class:`filter-remove-button`},[m(k(A),{size:`12`})],8,Hs)]))),128)),(_(!0),C(j,null,S(c.value,(e,t)=>(_(),C(`div`,{key:t,class:`group relative`},[m(fs,{"field-key":e.key,"onUpdate:fieldKey":t=>e.key=t,"model-value":[],"onUpdate:modelValue":n=>{e.key&&n.length>0&&(k(Da)().addJsonField(e.key,n[0]),c.value.splice(t,1))},class:`filter-card`},null,8,[`field-key`,`onUpdate:fieldKey`,`onUpdate:modelValue`]),I(`button`,{onClick:e=>c.value.splice(t,1),class:`filter-remove-button`,title:`Remove filter`},[m(k(A),{size:`12`})],8,Us)]))),128))])]))}}),[[`__scopeId`,`data-v-56f38a83`]]),Gs={class:`flex items-start justify-center gap-2`},Ks=d({__name:`EventFilter`,props:{filters:{}},setup(e){let t=e.filters||Da().state;return(e,n)=>(_(),C(`div`,Gs,[m(Ws,{filters:k(t)},null,8,[`filters`])]))}}),qs={class:`flex flex-wrap-reverse items-end justify-between gap-4 p-4`},Js={class:`flex items-center gap-2`},Ys=d({__name:`EventTableHeader`,props:{filterActions:{}},setup(e){return(t,n)=>(_(),C(`header`,qs,[m(Ks,{filters:e.filterActions.state},null,8,[`filters`]),I(`div`,Js,[L(t.$slots,`header-right`)])]))}}),Xs=d({__name:`DnsDetails`,props:{evt:{}},emits:[`field-click`],setup(e,{emit:t}){let n=t;return(t,r)=>(_(),C(j,null,[e.evt.fields?.opcode?(_(),C(`button`,{key:0,onClick:r[0]||=t=>n(`field-click`,t,`opcode`,e.evt.fields.opcode)},[r[3]||=I(`span`,null,`Opcode:`,-1),T(` `+b(e.evt.fields.opcode),1)])):F(``,!0),e.evt.fields?.qtype?(_(),C(`button`,{key:1,onClick:r[1]||=t=>n(`field-click`,t,`qtype`,e.evt.fields.qtype)},[r[4]||=I(`span`,null,`QType:`,-1),T(` `+b(e.evt.fields.qtype),1)])):F(``,!0),e.evt.fields?.qname?(_(),C(`button`,{key:2,onClick:r[2]||=t=>n(`field-click`,t,`qname`,e.evt.fields.qname)},[r[5]||=I(`span`,null,`Domain:`,-1),T(` `+b(e.evt.fields.qname),1)])):F(``,!0)],64))}}),Zs={key:0},Qs={key:1},$s=d({__name:`HttpDetails`,props:{evt:{}},emits:[`field-click`],setup(e,{emit:t}){let n=t;return(t,r)=>(_(),C(j,null,[e.evt.fields?.method?(_(),C(`button`,{key:0,onClick:r[0]||=t=>n(`field-click`,t,`method`,e.evt.fields.method)},[r[8]||=I(`span`,null,`Method:`,-1),e.evt.fields.method.toUpperCase()===`POST`?(_(),C(`strong`,Zs,b(e.evt.fields.method),1)):(_(),C(`span`,Qs,b(e.evt.fields.method),1))])):F(``,!0),e.evt.fields?.token?(_(),C(`button`,{key:1,onClick:r[1]||=t=>n(`field-click`,t,`token`,e.evt.fields.token)},[r[9]||=I(`span`,null,`Token:`,-1),T(` `+b(e.evt.fields.token),1)])):F(``,!0),e.evt.fields?.body?(_(),C(`button`,{key:2,onClick:r[2]||=t=>n(`field-click`,t,`body`,e.evt.fields.body)},[r[10]||=I(`span`,null,`Body:`,-1),T(` `+b(e.evt.fields.body),1)])):F(``,!0),e.evt.fields?.headers&&typeof e.evt.fields.headers==`object`&&`User-Agent`in e.evt.fields.headers?(_(),C(`button`,{key:3,onClick:r[3]||=t=>n(`field-click`,t,`headers.User-Agent`,e.evt.fields.headers[`User-Agent`])},[r[11]||=I(`span`,null,`User Agent:`,-1),T(` `+b(e.evt.fields.headers[`User-Agent`]),1)])):F(``,!0),e.evt.fields?.uri?(_(),C(`button`,{key:4,onClick:r[4]||=t=>n(`field-click`,t,`uri`,e.evt.fields.uri)},[r[12]||=I(`span`,null,`URI:`,-1),T(` `+b(e.evt.fields.uri),1)])):F(``,!0),e.evt.fields?.query?(_(),C(`button`,{key:5,onClick:r[5]||=t=>n(`field-click`,t,`query`,e.evt.fields.query)},[r[13]||=I(`span`,null,`Query:`,-1),T(` `+b(e.evt.fields.query),1)])):F(``,!0),e.evt.fields?.form_data?(_(),C(`button`,{key:6,onClick:r[6]||=t=>n(`field-click`,t,`form_data`,e.evt.fields.form_data)},[r[14]||=I(`span`,null,`Form Data:`,-1),T(` `+b(e.evt.fields.form_data),1)])):F(``,!0),e.evt.fields?.host?(_(),C(`button`,{key:7,onClick:r[7]||=t=>n(`field-click`,t,`host`,e.evt.fields.host)},[r[15]||=I(`span`,null,`Host:`,-1),T(` `+b(e.evt.fields.host),1)])):F(``,!0)],64))}}),ec=[`innerHTML`],tc=d({__name:`PrettyJson`,props:{json:{}},setup(e){let t=e,n=P(()=>t.json?Ke(t.json):``);return(e,t)=>(_(),C(`pre`,{innerHTML:n.value,class:`max-w-full overflow-x-auto`},null,8,ec))}}),nc=d({__name:`RdpDetails`,props:{evt:{}},emits:[`field-click`],setup(e,{emit:t}){let n=t;return(t,r)=>(_(),C(j,null,[e.evt.fields?.domain?(_(),C(`button`,{key:0,onClick:r[0]||=t=>n(`field-click`,t,`domain`,e.evt.fields.domain)},[r[3]||=I(`span`,null,`Domain:`,-1),I(`strong`,null,b(e.evt.fields.domain),1)])):F(``,!0),e.evt.fields?.security_layer?(_(),C(`button`,{key:1,onClick:r[1]||=t=>n(`field-click`,t,`security_layer`,e.evt.fields.security_layer)},[r[4]||=I(`span`,null,`Security Layer:`,-1),I(`strong`,null,b(e.evt.fields.security_layer),1)])):F(``,!0),e.evt.fields?.workstation?(_(),C(`button`,{key:2,onClick:r[2]||=t=>n(`field-click`,t,`workstation`,e.evt.fields.workstation)},[r[5]||=I(`span`,null,`Workstation:`,-1),I(`strong`,null,b(e.evt.fields.workstation),1)])):F(``,!0)],64))}}),rc=d({__name:`SipDetails`,props:{evt:{}},emits:[`field-click`],setup(e,{emit:t}){let n=t;return(t,r)=>(_(),C(j,null,[e.evt.fields?.from?(_(),C(`button`,{key:0,onClick:r[0]||=t=>n(`field-click`,t,`from`,e.evt.fields.from)},[r[3]||=I(`span`,null,`From:`,-1),T(` `+b(e.evt.fields.from),1)])):F(``,!0),e.evt.fields?.to?(_(),C(`button`,{key:1,onClick:r[1]||=t=>n(`field-click`,t,`to`,e.evt.fields.to)},[r[4]||=I(`span`,null,`To:`,-1),T(` `+b(e.evt.fields.to),1)])):F(``,!0),e.evt.fields?.uri?(_(),C(`button`,{key:2,onClick:r[2]||=t=>n(`field-click`,t,`uri`,e.evt.fields.uri)},[r[5]||=I(`span`,null,`URI:`,-1),T(` `+b(e.evt.fields.uri),1)])):F(``,!0)],64))}}),ic=d({__name:`SmtpDetails`,props:{evt:{}},emits:[`field-click`],setup(e,{emit:t}){let n=t;return(t,r)=>(_(),C(j,null,[e.evt.fields?.from?(_(),C(`button`,{key:0,onClick:r[0]||=t=>n(`field-click`,t,`from`,e.evt.fields.from)},[r[4]||=I(`span`,null,`From:`,-1),I(`strong`,null,b(e.evt.fields.from),1)])):F(``,!0),e.evt.fields?.to?(_(),C(`button`,{key:1,onClick:r[1]||=t=>n(`field-click`,t,`to`,e.evt.fields.to)},[r[5]||=I(`span`,null,`To:`,-1),I(`strong`,null,b(e.evt.fields.to),1)])):F(``,!0),e.evt.fields?.commands?(_(),C(`button`,{key:2,onClick:r[2]||=t=>n(`field-click`,t,`commands`,e.evt.fields.commands)},[r[6]||=I(`span`,null,`Commands:`,-1),T(` `+b(e.evt.fields.commands),1)])):F(``,!0),e.evt.fields?.data?(_(),C(`button`,{key:3,onClick:r[3]||=t=>n(`field-click`,t,`data`,e.evt.fields.data)},[r[7]||=I(`span`,null,`Data:`,-1),T(` `+b(e.evt.fields.data),1)])):F(``,!0)],64))}}),ac={key:0},oc=d({__name:`SshDetails`,props:{evt:{}},emits:[`field-click`],setup(e,{emit:t}){let n=t;return(t,r)=>(_(),C(j,null,[e.evt.fields?.public_key_fingerprint?(_(),C(`button`,ac,[r[1]||=I(`span`,null,`Public Key Fingerprint:`,-1),I(`strong`,null,b(e.evt.fields.public_key_fingerprint),1)])):F(``,!0),e.evt.fields?.client_version?(_(),C(`button`,{key:1,onClick:r[0]||=t=>n(`field-click`,t,`client_version`,e.evt.fields.client_version)},[r[2]||=I(`span`,null,`Client:`,-1),T(` `+b(e.evt.fields.client_version),1)])):F(``,!0)],64))}}),sc={key:0,class:`mb-1 font-medium`},cc={key:2,class:`details`},lc=d({__name:`EventDetails`,props:{evt:{},filterActions:{},width:{}},setup(e){let t=e,n=t.filterActions?.state||Da().state,r=t.filterActions||Da();function i(e,t,i){i&&(e.metaKey||e.ctrlKey?r.addJsonField(t,`!`+i):r.addJsonField(t,i),n.offset=0)}return(t,r)=>{let o=a(`router-link`);return _(),C(j,null,[e.width&&e.width>768&&e.evt.dst_port?(_(),C(`div`,sc,[r[2]||=I(`span`,{class:`text-muted`},`Port: `,-1),m(o,{to:`/port/${e.evt.dst_port}`,class:`hover:text-secondary-400`},{default:g(()=>[T(b(e.evt.dst_port),1)]),_:1},8,[`to`])])):F(``,!0),k(n).expand_details?(_(),O(tc,{key:1,json:e.evt.fields},null,8,[`json`])):(_(),C(`div`,cc,[e.evt.fields?.username?(_(),C(`button`,{key:0,onClick:r[0]||=t=>i(t,`username`,e.evt.fields.username),class:`cursor-pointer`},[r[3]||=I(`span`,null,`Username:`,-1),I(`strong`,null,b(e.evt.fields.username),1)])):F(``,!0),e.evt.fields?.password?(_(),C(`button`,{key:1,onClick:r[1]||=t=>i(t,`password`,e.evt.fields.password)},[r[4]||=I(`span`,null,`Password:`,-1),I(`strong`,null,b(e.evt.fields.password),1)])):F(``,!0),e.evt.type===`http`?(_(),O($s,{key:2,evt:e.evt,onFieldClick:i},null,8,[`evt`])):F(``,!0),e.evt.type===`ssh`?(_(),O(oc,{key:3,evt:e.evt,onFieldClick:i},null,8,[`evt`])):F(``,!0),e.evt.type===`smtp`?(_(),O(ic,{key:4,evt:e.evt,onFieldClick:i},null,8,[`evt`])):F(``,!0),e.evt.type===`rdp`?(_(),O(nc,{key:5,evt:e.evt,onFieldClick:i},null,8,[`evt`])):F(``,!0),e.evt.type===`dns`?(_(),O(Xs,{key:6,evt:e.evt,onFieldClick:i},null,8,[`evt`])):F(``,!0),e.evt.type===`sip`?(_(),O(rc,{key:7,evt:e.evt,onFieldClick:i},null,8,[`evt`])):F(``,!0)]))],64)}}}),uc={class:`flex flex-col py-1`},dc=M(d({__name:`EventFilterMenu`,props:{evt:{},geo:{},filterActions:{},showLinks:{type:Boolean}},setup(e){let t=N(!1),n=N(null),r=N(null),i=N(null),{top:a,left:o,bottom:s}=lt(r),{height:c,width:l}=Ie(),d=P(()=>{if(!t.value)return{};let e=c.value-s.value<300&&a.value>300,n=Math.max(10,Math.min(o.value,l.value-200-10));return e?{position:`fixed`,bottom:`${c.value-a.value+4}px`,left:`${n}px`}:{position:`fixed`,top:`${s.value+4}px`,left:`${n}px`}});je(n,()=>{t.value=!1},{ignore:[i]});function f(e){return e.metaKey||e.ctrlKey}function ee(e){return e.target?.closest(`svg`)!==null}function h(e,n,r){n!==void 0&&(e((f(r)||ee(r)?`!`:``)+n.toString()),t.value=!1)}return(a,o)=>(_(),C(`div`,{class:`relative`,ref_key:`filterMenuRef`,ref:n},[I(`button`,{ref_key:`triggerRef`,ref:r,class:p([`icon-button group-hover/row:opacity-100`,{"opacity-100":t.value||e.showLinks,"opacity-0":!e.showLinks}]),onClick:o[0]||=An(e=>t.value=!t.value,[`stop`]),title:`Filter by property`},[m(k(ie),{size:`16`})],2),(_(),O(Ue,{to:`body`},[t.value?(_(),C(`div`,{key:0,ref_key:`menuRef`,ref:i,class:`menu z-50 min-w-40 overflow-hidden rounded bg-stone-900 shadow-xl ring-1 ring-stone-800`,style:u(d.value)},[o[11]||=I(`div`,{class:`text-muted bg-stone-800/50 px-3 py-1.5 text-[10px] font-bold tracking-wider uppercase`},` Add Filter `,-1),I(`div`,uc,[e.evt.type?(_(),C(`button`,{key:0,onClick:o[1]||=t=>h(e.filterActions.addHoneypotType,e.evt.type,t)},[(_(),O(E(k(J).honeypotType),{size:`16`})),T(` Service: `+b(k(Ia)(e.evt.type)?.label||e.evt.type),1)])):F(``,!0),I(`button`,{onClick:o[2]||=t=>h(e.filterActions.addRemoteAddr,e.evt.remote_addr,t)},[(_(),O(E(k(J).address),{size:`16`})),T(` IP: `+b(e.evt.remote_addr),1)]),e.evt.event?(_(),C(`button`,{key:1,onClick:o[3]||=t=>h(e.filterActions.addEvent,e.evt.event,t)},[(_(),O(E(k(J).eventType),{size:`16`})),T(` Event: `+b(e.evt.event),1)])):F(``,!0),e.evt.dst_port?(_(),C(`button`,{key:2,onClick:o[4]||=t=>h(e.filterActions.addDstPort,e.evt.dst_port,t)},[(_(),O(E(k(J).port),{size:`16`})),T(` Port: `+b(e.evt.dst_port),1)])):F(``,!0),e.geo?(_(),C(j,{key:3},[o[10]||=I(`div`,{class:`mt-1 border-t border-stone-800 pt-1`},null,-1),e.geo.domain?(_(),C(`button`,{key:0,onClick:o[5]||=t=>h(e.filterActions.addDomain,e.geo.domain,t)},[(_(),O(E(k(J).domain),{size:`16`})),T(` Domain: `+b(e.geo.domain),1)])):F(``,!0),e.geo.fqdn?(_(),C(`button`,{key:1,onClick:o[6]||=t=>h(e.filterActions.addFqdn,e.geo.fqdn,t)},[(_(),O(E(k(J).domain),{size:`16`})),T(` FQDN: `+b(e.geo.fqdn),1)])):F(``,!0),e.geo.asn?(_(),C(`button`,{key:2,onClick:o[7]||=t=>h(e.filterActions.addAsn,e.geo.asn.autonomous_system_number,t)},[(_(),O(E(k(J).asn),{size:`16`})),T(` ASN `+b(e.geo.asn.autonomous_system_number),1)])):F(``,!0),e.geo.country?.iso_code?(_(),C(`button`,{key:3,onClick:o[8]||=t=>h(e.filterActions.addCountry,e.geo.country.iso_code,t)},[(_(),O(E(k(J).country),{size:`16`})),T(` Country: `+b(e.geo.country.iso_code),1)])):F(``,!0),e.geo.city?.name?(_(),C(`button`,{key:4,onClick:o[9]||=t=>h(e.filterActions.addCity,e.geo.city.name,t)},[(_(),O(E(k(J).city),{size:`16`})),T(` City: `+b(e.geo.city.name),1)])):F(``,!0)],64)):F(``,!0)]),o[12]||=I(`div`,{class:`text-muted bg-stone-800/30 px-3 py-1.5 text-[9px] italic`},` Cmd/Ctrl + Click or click Icon for "NOT filter" `,-1)],4)):F(``,!0)]))],512))}}),[[`__scopeId`,`data-v-0c5d7899`]]),fc={class:`flex flex-col gap-0.5`},pc={key:0,class:`font-medium`},mc={key:2,class:`text-muted text-xs`},hc=[`title`],gc={key:1},_c={key:0},vc=M(d({__name:`EventSourceInfo`,props:{evt:{},filterActions:{},geo:{},isMobile:{type:Boolean}},setup(e){let t=e,{ipInfoIsLoading:n}=ja(),r=P(()=>t.geo?.country?.iso_code?{flag:Q.get(t.geo.country.iso_code)?.[0],title:Q.get(t.geo.country.iso_code)?.[1]}:{flag:`🌐`,title:`Unknown`});return(t,i)=>{let o=a(`router-link`);return _(),C(`div`,fc,[e.filterActions.state.resolve_ips&&(e.geo?.domain||e.geo?.fqdn)?(_(),C(`div`,pc,[e.geo.domain&&e.geo.fqdn&&e.geo.domain!==e.geo.fqdn&&e.geo.fqdn.endsWith(e.geo.domain)?(_(),C(j,{key:0},[m(o,{to:`/fqdn/${e.geo.fqdn}`,class:`peer`,title:`View FQDN ${e.geo.fqdn} Stats (${e.evt.remote_addr})`},{default:g(()=>[T(b(e.geo.fqdn.slice(0,-e.geo.domain.length)),1)]),_:1},8,[`to`,`title`]),m(o,{to:`/domain/${e.geo.domain}`,class:`font-semibold`,title:`View Domain ${e.geo.domain} Stats (${e.evt.remote_addr})`},{default:g(()=>[T(b(e.geo.domain),1)]),_:1},8,[`to`,`title`])],64)):(_(),C(j,{key:1},[e.geo.domain?(_(),O(o,{key:0,to:`/domain/${e.geo.domain}`,class:`font-bold`,title:`View Domain ${e.geo.domain} Stats (${e.evt.remote_addr})`},{default:g(()=>[T(b(e.geo.domain),1)]),_:1},8,[`to`,`title`])):F(``,!0),e.geo.fqdn&&e.geo.fqdn!==e.geo.domain?(_(),O(o,{key:1,to:`/fqdn/${e.geo.fqdn}`,title:`View FQDN ${e.geo.fqdn} Stats (${e.evt.remote_addr})`},{default:g(()=>[T(b(e.geo.fqdn),1)]),_:1},8,[`to`,`title`])):F(``,!0)],64)),i[0]||=T(` (`,-1),m(o,{to:`/ip/${e.evt.remote_addr}`,class:p({"animate-pulse":k(n)(e.evt.remote_addr)}),title:`View IP Details`},{default:g(()=>[T(b(e.evt.remote_addr),1)]),_:1},8,[`to`,`class`]),i[1]||=T(`) `,-1)])):(_(),O(o,{key:1,to:`/ip/${e.evt.remote_addr}`,class:p([`inline-flex items-center gap-1 font-medium`,{"animate-pulse":k(n)(e.evt.remote_addr)}]),title:`View IP Details`},{default:g(()=>[T(b(e.evt.remote_addr),1)]),_:1},8,[`to`,`class`])),e.filterActions.state.resolve_ips&&e.geo?(_(),C(`div`,mc,[r.value?.flag?(_(),C(`span`,{key:0,title:r.value.title},b(r.value.flag)+`\xA0 `,9,hc)):F(``,!0),e.geo.country?.iso_code?(_(),C(`span`,gc,[e.geo.city?.name?(_(),O(o,{key:0,to:`/city/${e.geo.city.name}`,title:`View ${e.geo.city.name} Stats`},{default:g(()=>[T(b(e.geo.city.name)+`, `,1)]),_:1},8,[`to`,`title`])):F(``,!0),m(o,{to:`/country/${e.geo.country.iso_code}`,title:`View ${k(Q).get(e.geo.country.iso_code)?.[1]} Stats`},{default:g(()=>[T(b(k(Q).get(e.geo.country.iso_code)?.[1])+`, `,1)]),_:1},8,[`to`,`title`])])):F(``,!0),e.geo.asn?(_(),O(o,{key:2,to:`/asn/${e.geo.asn.autonomous_system_number}`,title:`View ASN ${e.geo.asn.autonomous_system_number} Stats`+(e.geo.asn.autonomous_system_organization?` (${e.geo.asn.autonomous_system_organization})`:``)},{default:g(()=>[e.geo.asn.autonomous_system_organization?(_(),C(`span`,_c,b(e.geo.asn.autonomous_system_organization),1)):F(``,!0),I(`span`,null,` (ASN`+b(e.geo.asn.autonomous_system_number)+`)`,1)]),_:1},8,[`to`,`title`])):F(``,!0)])):F(``,!0)])}}}),[[`__scopeId`,`data-v-e6895af0`]]),yc={key:0,class:`md:whitespace-nowrap`},bc={key:1},xc={class:`max-w-48 md:whitespace-nowrap`},Sc={class:`text-xs font-semibold`},Cc={class:`uppercase`},wc={key:2},Tc={key:0,class:`group flex items-center justify-between gap-2`},Ec={class:`flex items-center gap-2`},Dc={key:0,class:`flex gap-1`},Oc={key:1,class:`text-muted`},kc={key:3,class:`align-top text-xs`},Ac=M(d({__name:`EventTableRow`,props:{evt:{},columns:{default:()=>[`time`,`event`,`remote_addr`,`details`]},filterActions:{},width:{}},setup(e){let{getIPInfo:t}=ja(),n=Ma(),r=e,i=r.filterActions||Ea(),o=P(()=>{if(i.state.resolve_ips)return t(r.evt.remote_addr).value}),s=N(!1);return(t,r)=>{let c=a(`router-link`);return _(),C(`tr`,{onMouseenter:r[0]||=e=>s.value=!0,onMouseleave:r[1]||=e=>s.value=!1,onClick:r[2]||=e=>s.value=!s.value},[e.columns.includes(`time`)?(_(),C(`td`,yc,b(k(vt)(e.evt.time,!0)),1)):F(``,!0),e.columns.includes(`event`)?(_(),C(`td`,bc,[I(`div`,xc,[I(`span`,Sc,[k(Ia)(e.evt.type)?(_(),O(c,{key:0,to:`/honeypot/${e.evt.type}`,class:`text-muted hover:text-secondary-400`},{default:g(()=>[T(b(k(Ia)(e.evt.type)?.label)+`: `,1)]),_:1},8,[`to`])):F(``,!0),I(`span`,Cc,b(e.evt.event||`—`),1)])])])):F(``,!0),e.columns.includes(`remote_addr`)?(_(),C(`td`,wc,[e.evt.remote_addr?(_(),C(`div`,Tc,[m(vc,{evt:e.evt,"filter-actions":k(i),geo:o.value},null,8,[`evt`,`filter-actions`,`geo`]),I(`div`,Ec,[k(n).getTagsByIp(e.evt.remote_addr).length?(_(),C(`div`,Dc,[(_(!0),C(j,null,S(k(n).getTagsByIp(e.evt.remote_addr),e=>(_(),O(to,{key:e,tag:e,"no-label":``},null,8,[`tag`]))),128))])):F(``,!0),m(dc,{evt:e.evt,geo:o.value,"filter-actions":k(i),"show-links":s.value},null,8,[`evt`,`geo`,`filter-actions`,`show-links`])])])):(_(),C(`span`,Oc,`—`))])):F(``,!0),e.columns.includes(`details`)?(_(),C(`td`,kc,[m(lc,{evt:e.evt,"filter-actions":k(i),width:e.width||1e3},null,8,[`evt`,`filter-actions`,`width`])])):F(``,!0)],32)}}}),[[`__scopeId`,`data-v-d8612bdd`]]),jc={class:`group border-b border-stone-800/50`},Mc={colspan:`100%`,class:`p-0`},Nc={class:`flex flex-col gap-3 py-2`},Pc={class:`flex items-center justify-between`},Fc={class:`flex items-center gap-2`},Ic={class:`text-muted text-sm font-medium tracking-wide uppercase`},Lc={class:`flex items-center gap-2`},Rc={class:`flex flex-wrap items-center justify-between gap-4`},zc={class:`flex gap-1`},Bc={class:`text-muted font-semibold`},Vc={class:`font-bold uppercase`},Hc={key:0,class:`flex shrink-0 gap-1`},Uc={class:`flex flex-col gap-2.5 py-0.5`},Wc={class:`flex items-center gap-2`},Gc={key:0,class:`flex items-center gap-2`},Kc={key:0,class:`border-stone-800 pt-4 duration-300`},qc={class:`relative`},Jc=d({__name:`EventTableMobileRow`,props:{evt:{},columns:{default:()=>[`time`,`event`,`remote_addr`,`details`]},filterActions:{},width:{}},setup(e){let{getIPInfo:t}=ja(),n=Ma(),r=e,i=r.filterActions||Ea(),o=P(()=>{if(i.state.resolve_ips)return t(r.evt.remote_addr).value}),s=P(()=>r.evt.fields&&Object.keys(r.evt.fields).length>0);return(t,r)=>{let c=a(`router-link`);return _(),C(`tr`,jc,[I(`td`,Mc,[I(`div`,Nc,[I(`div`,Pc,[I(`div`,Fc,[I(`span`,Ic,b(k(vt)(e.evt.time,!0)),1)]),I(`div`,Lc,[m(dc,{evt:e.evt,geo:o.value,"filter-actions":k(i),"show-links":``},null,8,[`evt`,`geo`,`filter-actions`])])]),I(`div`,Rc,[I(`div`,zc,[I(`span`,Bc,[m(c,{to:`/honeypot/${e.evt.type}`,class:`hover:text-secondary-400`},{default:g(()=>[T(b(k(Ia)(e.evt.type)?.label||e.evt.type),1)]),_:1},8,[`to`]),r[1]||=T(`: `,-1)]),I(`span`,Vc,b(e.evt.event),1)]),k(n).getTagsByIp(e.evt.remote_addr).length?(_(),C(`div`,Hc,[(_(!0),C(j,null,S(k(n).getTagsByIp(e.evt.remote_addr),e=>(_(),O(to,{key:e,tag:e},null,8,[`tag`]))),128))])):F(``,!0)]),I(`div`,Uc,[I(`div`,Wc,[(_(),O(E(k(J).address),{size:`20`,class:`text-muted mt-px`})),m(vc,{evt:e.evt,"filter-actions":k(i),geo:o.value,"is-mobile":!0},null,8,[`evt`,`filter-actions`,`geo`])]),e.evt.dst_port?(_(),C(`div`,Gc,[(_(),O(E(k(J).port),{class:`text-muted mt-px`,size:`20`})),m(c,{to:`/port/${e.evt.dst_port}`,class:`hover:text-stone-50`},{default:g(()=>[T(b(e.evt.dst_port),1)]),_:1},8,[`to`])])):F(``,!0)]),s.value?(_(),C(`div`,Kc,[r[2]||=I(`div`,{class:`mb-3 flex items-center gap-2`},[I(`span`,{class:`text-muted text-[10px] font-bold tracking-widest uppercase`},` Details `)],-1),I(`div`,qc,[I(`button`,{onClick:r[0]||=e=>k(i).state.expand_details=!k(i).state.expand_details,class:`icon-button absolute -top-8 right-0 text-xs`},[(_(),O(E(k(i).state.expand_details?k(Re):k(bt)),{size:`16`}))]),m(lc,{evt:e.evt,"filter-actions":k(i),width:e.width||1e3},null,8,[`evt`,`filter-actions`,`width`])])])):F(``,!0)])])])}}}),Yc={class:`bg-card sticky top-0`,style:{"box-shadow":`0 1px var(--color-stone-800)`}},Xc={class:`flex items-center gap-1`},Zc={key:1,class:`w-36 min-w-36`},Qc={key:3,class:`min-w-full`},$c={class:`flex items-center gap-2`},el=d({__name:`EventTableTHead`,props:{columns:{},filterState:{}},setup(e){let t=e;function n(){t.filterState.order_direction=t.filterState.order_direction===`asc`?`desc`:`asc`}return(t,r)=>(_(),C(`thead`,Yc,[I(`tr`,null,[e.columns.includes(`time`)?(_(),C(`th`,{key:0,class:`w-48 max-w-48 cursor-pointer`,onClick:n},[I(`span`,Xc,[r[1]||=T(` Timestamp `,-1),(_(),O(E(e.filterState.order_direction===`asc`?k(De):k(Ve)),{size:`16`}))])])):F(``,!0),e.columns.includes(`event`)?(_(),C(`th`,Zc,`Event`)):F(``,!0),e.columns.includes(`remote_addr`)?(_(),C(`th`,{key:2,class:p([`min-w-64`,{"w-64":!e.filterState.resolve_ips}])},` Source `,2)):F(``,!0),e.columns.includes(`details`)?(_(),C(`th`,Qc,[I(`span`,$c,[r[2]||=T(` Details `,-1),I(`button`,{onClick:r[0]||=t=>e.filterState.expand_details=!e.filterState.expand_details,class:`text-muted`},[(_(),O(E(e.filterState.expand_details?k(Re):k(bt)),{size:`16`}))])])])):F(``,!0)])]))}}),tl={class:`card relative p-0`},nl={class:`flex flex-wrap items-center gap-2`},rl={class:`stat-label`},il=[`href`],al={class:``},ol={class:`event-table w-full table-fixed text-sm`},sl={key:0},cl=[`colspan`],ll=d({__name:`EventTable`,props:{events:{},totalEvents:{},loading:{type:Boolean},columns:{default:()=>[`time`,`event`,`remote_addr`,`details`]},filterActions:{}},setup(e){let t=e.filterActions.state,n=P(()=>{let e=`${Y()}/api/events/export/json`,n=Ta(t);return n&&(e+=`?${n}`),e}),{width:r}=Ie();return(t,i)=>(_(),C(`div`,tl,[m(Ys,{"filter-actions":e.filterActions},{"header-right":g(()=>[I(`div`,nl,[L(t.$slots,`header-right`,{},()=>[I(`span`,rl,b(k(st)(e.totalEvents))+` entries `,1)]),I(`a`,{href:n.value,class:`btn-secondary h-8 py-0.5 text-[11px]`},[m(k(ye)),i[0]||=T(` JSON `,-1)],8,il)])]),_:3},8,[`filter-actions`]),e.loading?(_(),O(Za,{key:0})):F(``,!0),I(`div`,al,[I(`table`,ol,[k(r)>768?(_(),O(el,{key:0,columns:e.columns,"filter-state":e.filterActions.state},null,8,[`columns`,`filter-state`])):F(``,!0),I(`tbody`,null,[e.events.length===0?(_(),C(`tr`,sl,[I(`td`,{colspan:e.columns.length,class:`px-3 py-8 text-center text-sm`},[L(t.$slots,`empty-state`,{},()=>[i[1]||=T(` No events found. `,-1)])],8,cl)])):F(``,!0),L(t.$slots,`rows`,{events:e.events},()=>[k(r)>768?(_(!0),C(j,{key:0},S(e.events,t=>(_(),O(Ac,{key:t.id,evt:t,columns:e.columns,"filter-actions":e.filterActions,width:k(r)},null,8,[`evt`,`columns`,`filter-actions`,`width`]))),128)):(_(!0),C(j,{key:1},S(e.events,t=>(_(),O(Jc,{key:`mobile-${t.id}`,evt:t,columns:e.columns,"filter-actions":e.filterActions,width:k(r)},null,8,[`evt`,`columns`,`filter-actions`,`width`]))),128))])])])]),m(Uo,{"total-events":e.totalEvents,"filter-actions":e.filterActions},null,8,[`total-events`,`filter-actions`])]))}}),ul=N(`disconnected`),dl=null,fl=null,pl=!1,ml=new Set;function hl(){return`${Y().replace(`http`,`ws`)}/ws`}function gl(){if(dl?.readyState===WebSocket.OPEN||ul.value===`connecting`)return;ul.value=`connecting`;let e=hl(),t=new WebSocket(e);dl=t,t.onopen=()=>{ul.value=`open`,fl&&=(clearTimeout(fl),null)},t.onclose=()=>{ul.value=`disconnected`,pl||(fl=setTimeout(()=>gl(),2e3))},t.onerror=()=>{ul.value=`disconnected`},t.onmessage=e=>{try{let t=JSON.parse(e.data),n=Array.isArray(t)?t:[t];for(let e of n)delete e.fields?.body,delete e.fields?.port,delete e.fields?.remote_addr;ml.forEach(e=>e(n))}catch{}}}function _l(){pl=!0,fl&&=(clearTimeout(fl),null),dl&&=(dl.close(),null)}function vl(e,t=1e3){let n=N([]),r=r=>{n.value.unshift(...r),n.value.length>t&&(n.value.length=t),e&&e(r)};return ml.add(r),le(()=>{ml.delete(r),ml.size===0&&_l()}),{connectionStatus:ul,events:n,connect:()=>{pl=!1,gl()},disconnect:_l}}var yl={key:0,class:`relative flex h-2 w-2`},bl=d({__name:`LiveUpdateButton`,props:{st:{}},emits:[`toggleConnection`],setup(e,{emit:t}){let n=t,r={open:{label:`Live`,btn:`text-lime-400 border-lime-500 hover:border-lime-400 pl-2.5 hover:bg-lime-950`,dot:`bg-lime-500`},connecting:{label:`Connecting`,btn:`text-amber-400 border-amber-500 pl-2.5 hover:border-amber-400 hover:bg-amber-950`,dot:`bg-amber-500`},disconnected:{label:`Update Live`,btn:`btn-secondary`,dot:`bg-stone-500`}};return(t,i)=>(_(),C(`button`,{class:p([`btn-secondary h-8`,r[e.st].btn]),onClick:i[0]||=e=>n(`toggleConnection`)},[e.st===`open`||e.st===`connecting`?(_(),C(`span`,yl,[e.st===`open`||e.st===`connecting`?(_(),C(`span`,{key:0,class:p([`absolute inline-flex h-full w-full animate-ping rounded-full opacity-75`,r[e.st].dot])},null,2)):F(``,!0),I(`span`,{class:p([`relative inline-flex h-2 w-2 rounded-full`,r[e.st].dot])},null,2)])):(_(),O(k(xe),{key:1})),I(`span`,null,b(r[e.st].label),1)],2))}});function xl(e){let t=Da(),n=Le(e?.filterState||t.state),r=P(()=>Ta({...n})),i=P(()=>new URLSearchParams(r.value)),a=N([]),o=N(0),s=N(!1),c=N(null),{connect:l,disconnect:u,connectionStatus:d}=vl(e=>{let t=va(e,n);if(t.length>0){a.value=[...t,...a.value],o.value+=t.length;let e=Math.max(n.limit,1e3);a.value.length>e&&(a.value=a.value.slice(0,e))}});async function f(){s.value=!0,c.value=null;try{let t=await(await fetch(`${Y()}/api/events?${r.value}`)).json();a.value=t.events??[],o.value=t.total??0,e?.onLoaded?.(t.events??[])}catch(e){c.value=e instanceof Error?e:Error(String(e)),a.value=[],o.value=0}finally{s.value=!1}}let p=ft(f,250);return x(()=>{f()}),D(()=>r.value,()=>{p()}),{entries:a,total:o,loading:s,error:c,fetchLogs:f,filterString:i,connectionStatus:d,connect:l,disconnect:u}}var Sl=new WeakMap;function Cl(e,t,n={}){let{mode:r=`replace`,route:i=Mr(),router:a=jr(),transform:o}=n,s=e=>e,c=e=>e;typeof o==`function`?s=o:o&&(o.get&&(s=o.get),o.set&&(c=o.set)),Sl.has(a)||Sl.set(a,new Map);let l=Sl.get(a),u=i.query[e];Be(()=>{u=void 0});let d,f=mt((n,o)=>(d=o,{get(){return n(),s(u===void 0?yt(t):u)},set(n){n=c(n),u!==n&&(u=n===yt(t)?void 0:n,l.set(e,n===yt(t)?void 0:n),o(),se(()=>{if(l.size===0)return;let e=Object.fromEntries(l.entries());l.clear();let{params:t,query:n,hash:o}=i;a[yt(r)]({params:t,query:{...n,...e},hash:o})}))}}));return D(()=>i.query[e],e=>{u!==s(e)&&(u=e,d())},{flush:`sync`}),f}function wl(e,t){let n=Mr(),r=jr();for(let i in t){let a=t[i];if(a.dynamicPrefix){let t=a.dynamicPrefix;D(()=>n.query,n=>{let r={};Object.entries(n).forEach(([e,n])=>{if(e.startsWith(t)&&n!=null){let i=e.slice(t.length);r[i]=Array.isArray(n)?n.filter(e=>e!==null):[n]}});let a=e[i];if(a&&Object.keys(a).forEach(e=>{!r[e]&&Array.isArray(a[e])&&a[e].length===0&&(r[e]=[])}),Object.keys(r).length!==Object.keys(a).length){e[i]=r;return}let o=!1;for(let e in r){let t=r[e],n=a[e];if(!n||!t||t.length!==n.length||!t.every((e,t)=>e===n[t])){o=!0;break}}o&&(e[i]=r)},{immediate:!0,deep:!0}),D(()=>e[i],e=>{let i={...n.query},a=!1;Object.keys(i).forEach(e=>{e.startsWith(t)&&(delete i[e],a=!0)}),Object.entries(e).forEach(([e,n])=>{n&&n.length>0&&(i[t+e]=n,a=!0)}),a&&r.push({query:i})},{deep:!0});continue}let o=a.name||i,s=a.defaultValue===void 0?e[i]:a.defaultValue;Array.isArray(s)&&(s=[...s]);let c=Cl(o,s,{mode:`push`,transform:{get:e=>{if(e==null)return s;if(a.array)return Array.isArray(e)?e:typeof e==`string`&&a.comma?e?e.split(`,`):[]:[e];if(a.number){let t=Number(e);return isNaN(t)?s:t}return a.boolean?e===`true`||e===!0:e},set:e=>{if(!(e===s||JSON.stringify(e)===JSON.stringify(s)))return a.array&&a.comma&&Array.isArray(e)?e.join(`,`):e}}});D(c,t=>{JSON.stringify(e[i])!==JSON.stringify(t)&&(e[i]=t)},{immediate:!0}),D(()=>e[i],e=>{JSON.stringify(c.value)!==JSON.stringify(e)&&(c.value=e)},{deep:!0})}}var Tl={class:`page-container`},El={class:`stat-label`},Dl=d({__name:`LogView`,setup(e){let t=Da();wl(t.state,{remote_addr:{array:!0,comma:!0},dst_port:{array:!0,comma:!0},event:{array:!0,comma:!0},time_start:{},time_end:{},type:{array:!0},order_direction:{},offset:{number:!0},limit:{number:!0},domain:{array:!0,comma:!0},fqdn:{array:!0,comma:!0},asn:{array:!0,comma:!0},country:{array:!0,comma:!0},city:{array:!0,comma:!0},json_fields:{dynamicPrefix:`f:`}});let{entries:n,total:r,loading:i,connectionStatus:a,connect:o,disconnect:s}=xl();function c(){a.value===`open`?s():o()}return(e,o)=>(_(),C(`div`,Tl,[m(ll,{events:k(n),"total-events":k(r),loading:k(i),"filter-actions":k(t)},{"header-right":g(()=>[I(`span`,El,b(k(st)(k(r)))+` entries`,1),m(bl,{st:k(a),onToggleConnection:c},null,8,[`st`])]),"empty-state":g(()=>[...o[0]||=[T(` No events found. `,-1)]]),_:1},8,[`events`,`total-events`,`loading`,`filter-actions`])]))}}),Ol=`modulepreload`,kl=function(e){return`/`+e},Al={},jl=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}r=o(t.map(t=>{if(t=kl(t,n),t in Al)return;Al[t]=!0;let r=t.endsWith(`.css`),i=r?`[rel="stylesheet"]`:``;if(n)for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}else if(document.querySelector(`link[href="${t}"]${i}`))return;let o=document.createElement(`link`);if(o.rel=r?`stylesheet`:Ol,r||(o.as=`script`),o.crossOrigin=``,o.href=t,a&&o.setAttribute(`nonce`,a),document.head.appendChild(o),r)return new Promise((e,n)=>{o.addEventListener(`load`,e),o.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},Ml=()=>jl(()=>import(`./ChartView-BHCNO8eu.js`),__vite__mapDeps([0,1,2,3])),$=()=>jl(()=>import(`./EntityDetailView-OKBlF-Gx.js`),__vite__mapDeps([4,1,5,2,6,7])),Nl=[{path:`/login`,component:Lo,name:`login`},{path:`/`,component:No,name:`home`},{path:`/events`,component:Dl,name:`events`},{path:`/charts`,component:Ml,children:[{path:``,redirect:`/charts/port`},{path:`port`,component:()=>jl(()=>import(`./PortChart-Xz1yXGfz.js`),__vite__mapDeps([8,1,7,9,10,6])),name:`charts-port`},{path:`map`,component:()=>jl(()=>import(`./MapChart-BYopDhbv.js`),__vite__mapDeps([11,1,7,9,10])),name:`charts-map`},{path:`activity`,component:()=>jl(()=>import(`./ActivityChart-DSzDmM-f.js`),__vite__mapDeps([12,1,7])),name:`charts-activity`}]},{path:`/stats`,component:()=>jl(()=>import(`./StatsView-BGLUezcu.js`),__vite__mapDeps([13,1,5,14])),name:`stats`},{path:`/ip/:ip`,component:$,name:`ip`},{path:`/ip/:ip/:mask`,component:$,name:`subnet`},{path:`/port/:port`,component:$,name:`port`},{path:`/city/:value`,component:$,props:{type:`city`},name:`city`},{path:`/country/:value`,component:$,props:{type:`country`},name:`country`},{path:`/asn/:value`,component:$,props:{type:`asn`},name:`asn`},{path:`/domain/:value`,component:$,props:{type:`domain`},name:`domain`},{path:`/fqdn/:value`,component:$,props:{type:`fqdn`},name:`fqdn`},{path:`/honeypot/:honeypot`,component:$,name:`honeypot`}],Pl=ha({history:Ii(),routes:Nl}),Fl=rr();Vn(Fl),Pl.beforeEach(async e=>{let t=La();if(t.statusChecked||await t.fetchAuthStatus(),t.authRequired&&!t.authenticated&&e.path!==`/login`)return`/login`;if(t.authenticated&&e.path===`/login`)return`/`}),In(Wa).use(Pl).use(Fl).mount(`#app`);export{_a as A,ja as C,Ca as D,Sa as E,Tn as F,wn as I,An as L,Mr as M,jr as N,va as O,_r as P,Ea as S,Y as T,Ta as _,ll as a,Ma as b,Ws as c,yo as d,lo as f,Ya as g,Za as h,vl as i,J as j,ya as k,Q as l,to as m,xl as n,Jc as o,ao as p,bl as r,Ac as s,wl as t,bo as u,wa as v,ka as w,Oa as x,Ia as y};