diff --git a/Changelog.md b/Changelog.md index d6ccec6da02c1aebdeb70614bd74f19d0ec6fbd2..3627d0b5f2c74431155d7e127615f1a89c2d5931 100644 --- a/Changelog.md +++ b/Changelog.md @@ -2,6 +2,9 @@ All notable changes to this project will be documented in this file. +## [0.93] - 2025-03-03 +- Fix CSV/Excel export for data that includes object/array values + ## [0.92] - 2025-02-13 - Put hashes on all filenames to bust nginx cache without forcing client cache update diff --git a/compendium-frontend/src/components/download/DownloadDataButton.tsx b/compendium-frontend/src/components/download/DownloadDataButton.tsx index f3f0a1e711bb22542de8cf00f3d700bed2465778..9ba9329d8fe8665584301ea80fe5cd34e533d74a 100644 --- a/compendium-frontend/src/components/download/DownloadDataButton.tsx +++ b/compendium-frontend/src/components/download/DownloadDataButton.tsx @@ -10,20 +10,30 @@ interface DownloadProps { exportType: ExportType; } +function simplifyObjectOrArray(obj) { + if (Array.isArray(obj)) { + return obj.map(simplifyObjectOrArray).join(', '); + } + if (typeof obj === 'object') { + return Object.entries(obj).map(([key, value]) => `${key}: ${simplifyObjectOrArray(value)}`).join(', '); + } + return obj; +} + function createCSVRows(jsonData: NrenAndYearDatapoint[], header: string[]): string[] { return jsonData.map(obj => { return header.map(fieldName => { - const value = obj[fieldName]; + let value = obj[fieldName]; if (value === null) { return ""; } + value = simplifyObjectOrArray(value); // Always wrap strings in double quotes and escape internal double quotes if (typeof value === 'string') { return `"${value.replace(/"/g, '""')}"`; } - return value; }).join(','); }); @@ -40,7 +50,16 @@ function convertToCSV(jsonData: NrenAndYearDatapoint[]): string { } function convertToExcel(jsonData: NrenAndYearDatapoint[], sheetName = "Sheet1"): Blob { - const ws = XLSX.utils.json_to_sheet(jsonData); + + const cleanedData = jsonData.map(obj => { + const newObj = {}; + for (const key in obj) { + newObj[key] = simplifyObjectOrArray(obj[key]); + } + return newObj; + }); + + const ws = XLSX.utils.json_to_sheet(cleanedData); const wb = XLSX.utils.book_new(); XLSX.utils.book_append_sheet(wb, ws, sheetName); const wbout = XLSX.write(wb, { bookType: 'xlsx', type: 'binary' }); diff --git a/compendium_v2/static/AlienWave-CpRPpDKT.js b/compendium_v2/static/AlienWave-DnjbI9kz.js similarity index 87% rename from compendium_v2/static/AlienWave-CpRPpDKT.js rename to compendium_v2/static/AlienWave-DnjbI9kz.js index 7598fb4f3a7abf1180a8fca1c4fda606f5901006..dbbbfd43e9f8253a9a4549cbcde703900162d443 100644 --- a/compendium_v2/static/AlienWave-CpRPpDKT.js +++ b/compendium_v2/static/AlienWave-DnjbI9kz.js @@ -1,4 +1,4 @@ -import{c as D,r as T,F as Y,j as v,t as j,S as E}from"./index-DBbSOdjk.js";import{u as S,g as W,n as C,D as F,F as M,f as P}from"./useData-CcKTpALT.js";import{P as R}from"./PillTable-CIcKqQJh.js";import"./SideBar-DfD7Pj8p.js";import"./xlsx-BHRztzV8.js";import"./index-DkYuYqrz.js";import"./hook-D9Tuu5oJ.js";import"./ColorPill-CuYEYQ56.js";import"./Table-DNomfHX4.js";function K(){const e=D.c(29),c=A,{filterSelection:t,setFilterSelection:d}=T.useContext(Y),{data:_,years:w,nrens:y}=S("/api/alien-wave",d,c);let a,p;if(e[0]!==_||e[1]!==t.selectedNrens||e[2]!==t.selectedYears){let f;e[5]!==t.selectedNrens||e[6]!==t.selectedYears?(f=g=>t.selectedYears.includes(g.year)&&t.selectedNrens.includes(g.nren),e[5]=t.selectedNrens,e[6]=t.selectedYears,e[7]=f):f=e[7],a=_.filter(f);const k=W(a,"alien_wave_third_party");p=C(k,L),e[0]=_,e[1]=t.selectedNrens,e[2]=t.selectedYears,e[3]=a,e[4]=p}else a=e[3],p=e[4];const N=p;let s,h;e[8]===Symbol.for("react.memo_cache_sentinel")?(s=["Yes","Planned","No"],h=new Map([[s[0],"yes"],[s[1],"planned"],[s[2],"no"]]),e[8]=s,e[9]=h):(s=e[8],h=e[9]);const x=h;let n;e[10]!==w?(n=[...w],e[10]=w,e[11]=n):n=e[11];let i;e[12]!==y?(i=y.values(),e[12]=y,e[13]=i):i=e[13];let r;e[14]!==i?(r=[...i],e[14]=i,e[15]=r):r=e[15];let l;e[16]!==n||e[17]!==r?(l={availableYears:n,availableNrens:r},e[16]=n,e[17]=r,e[18]=l):l=e[18];let u;e[19]!==t||e[20]!==d||e[21]!==l?(u=v.jsx(M,{filterOptions:l,filterSelection:t,setFilterSelection:d,coloredYears:!0}),e[19]=t,e[20]=d,e[21]=l,e[22]=u):u=e[22];const b=u;let o;e[23]!==N?(o=v.jsx(P,{children:v.jsx(R,{columns:s,columnLookup:x,dataLookup:N})}),e[23]=N,e[24]=o):o=e[24];let m;return e[25]!==b||e[26]!==a||e[27]!==o?(m=v.jsx(F,{title:j["alien-wave"],description:`The table below shows NREN usage of alien wavelength or lightpath services provided by third parties. +import{c as D,r as T,F as Y,j as v,t as j,S as E}from"./index-bwDVKb7d.js";import{u as S,g as W,n as C,D as F,F as M,f as P}from"./useData-Ba-3avp3.js";import{P as R}from"./PillTable-C7hMt52B.js";import"./SideBar-D_Yxr_mj.js";import"./xlsx-BHRztzV8.js";import"./index-Y7aK5es_.js";import"./hook-BGVjY_62.js";import"./ColorPill-D7RILPI9.js";import"./Table-D4mMg192.js";function K(){const e=D.c(29),c=A,{filterSelection:t,setFilterSelection:d}=T.useContext(Y),{data:_,years:w,nrens:y}=S("/api/alien-wave",d,c);let a,p;if(e[0]!==_||e[1]!==t.selectedNrens||e[2]!==t.selectedYears){let f;e[5]!==t.selectedNrens||e[6]!==t.selectedYears?(f=g=>t.selectedYears.includes(g.year)&&t.selectedNrens.includes(g.nren),e[5]=t.selectedNrens,e[6]=t.selectedYears,e[7]=f):f=e[7],a=_.filter(f);const k=W(a,"alien_wave_third_party");p=C(k,L),e[0]=_,e[1]=t.selectedNrens,e[2]=t.selectedYears,e[3]=a,e[4]=p}else a=e[3],p=e[4];const N=p;let s,h;e[8]===Symbol.for("react.memo_cache_sentinel")?(s=["Yes","Planned","No"],h=new Map([[s[0],"yes"],[s[1],"planned"],[s[2],"no"]]),e[8]=s,e[9]=h):(s=e[8],h=e[9]);const x=h;let n;e[10]!==w?(n=[...w],e[10]=w,e[11]=n):n=e[11];let i;e[12]!==y?(i=y.values(),e[12]=y,e[13]=i):i=e[13];let r;e[14]!==i?(r=[...i],e[14]=i,e[15]=r):r=e[15];let l;e[16]!==n||e[17]!==r?(l={availableYears:n,availableNrens:r},e[16]=n,e[17]=r,e[18]=l):l=e[18];let u;e[19]!==t||e[20]!==d||e[21]!==l?(u=v.jsx(M,{filterOptions:l,filterSelection:t,setFilterSelection:d,coloredYears:!0}),e[19]=t,e[20]=d,e[21]=l,e[22]=u):u=e[22];const b=u;let o;e[23]!==N?(o=v.jsx(P,{children:v.jsx(R,{columns:s,columnLookup:x,dataLookup:N})}),e[23]=N,e[24]=o):o=e[24];let m;return e[25]!==b||e[26]!==a||e[27]!==o?(m=v.jsx(F,{title:j["alien-wave"],description:`The table below shows NREN usage of alien wavelength or lightpath services provided by third parties. It does not include alien waves used internally inside the NRENs own networks, as that is covered in another table. In the optical network world, the term “alien wavelength” or “alien wave” (AW) is used to describe wavelengths in a DWDM line system that pass through the network, i.e. they are not sourced/terminated by the line-system operator’s diff --git a/compendium_v2/static/AlienWaveInternal-DDEuk0kg.js b/compendium_v2/static/AlienWaveInternal-D_ajTXTF.js similarity index 85% rename from compendium_v2/static/AlienWaveInternal-DDEuk0kg.js rename to compendium_v2/static/AlienWaveInternal-D_ajTXTF.js index 252b7d0531f5908600772276a8a4eacca21c27da..a351a9b4c1cb58ca3d930d8c090c30d19e83100d 100644 --- a/compendium_v2/static/AlienWaveInternal-DDEuk0kg.js +++ b/compendium_v2/static/AlienWaveInternal-D_ajTXTF.js @@ -1,4 +1,4 @@ -import{c as b,r as k,F as Y,j as f,t as j,S as F}from"./index-DBbSOdjk.js";import{u as M,g as S,D as T,F as W,f as C}from"./useData-CcKTpALT.js";import{P as E}from"./PillTable-CIcKqQJh.js";import"./SideBar-DfD7Pj8p.js";import"./xlsx-BHRztzV8.js";import"./index-DkYuYqrz.js";import"./hook-D9Tuu5oJ.js";import"./ColorPill-CuYEYQ56.js";import"./Table-DNomfHX4.js";function B(){const e=b.c(29),N=P,{filterSelection:t,setFilterSelection:c}=k.useContext(Y),{data:w,years:v,nrens:g}=M("/api/alien-wave",c,N);let s,d;if(e[0]!==w||e[1]!==t.selectedNrens||e[2]!==t.selectedYears){let h;e[5]!==t.selectedNrens||e[6]!==t.selectedYears?(h=D=>t.selectedYears.includes(D.year)&&t.selectedNrens.includes(D.nren),e[5]=t.selectedNrens,e[6]=t.selectedYears,e[7]=h):h=e[7],s=w.filter(h),d=S(s,"alien_wave_internal"),e[0]=w,e[1]=t.selectedNrens,e[2]=t.selectedYears,e[3]=s,e[4]=d}else s=e[3],d=e[4];const x=d;let n,m;e[8]===Symbol.for("react.memo_cache_sentinel")?(n=["Yes","No"],m=new Map([[n[0],"True"],[n[1],"False"]]),e[8]=n,e[9]=m):(n=e[8],m=e[9]);const _=m;let a;e[10]!==v?(a=[...v],e[10]=v,e[11]=a):a=e[11];let l;e[12]!==g?(l=g.values(),e[12]=g,e[13]=l):l=e[13];let i;e[14]!==l?(i=[...l],e[14]=l,e[15]=i):i=e[15];let r;e[16]!==a||e[17]!==i?(r={availableYears:a,availableNrens:i},e[16]=a,e[17]=i,e[18]=r):r=e[18];let p;e[19]!==t||e[20]!==c||e[21]!==r?(p=f.jsx(W,{filterOptions:r,filterSelection:t,setFilterSelection:c,coloredYears:!0}),e[19]=t,e[20]=c,e[21]=r,e[22]=p):p=e[22];const y=p;let o;e[23]!==x?(o=f.jsx(C,{children:f.jsx(E,{columns:n,columnLookup:_,dataLookup:x})}),e[23]=x,e[24]=o):o=e[24];let u;return e[25]!==y||e[26]!==s||e[27]!==o?(u=f.jsx(T,{title:j["alien-wave-internal"],description:`The table below shows NREN usage of alien waves internally within their own networks. +import{c as b,r as k,F as Y,j as f,t as j,S as F}from"./index-bwDVKb7d.js";import{u as M,g as S,D as T,F as W,f as C}from"./useData-Ba-3avp3.js";import{P as E}from"./PillTable-C7hMt52B.js";import"./SideBar-D_Yxr_mj.js";import"./xlsx-BHRztzV8.js";import"./index-Y7aK5es_.js";import"./hook-BGVjY_62.js";import"./ColorPill-D7RILPI9.js";import"./Table-D4mMg192.js";function B(){const e=b.c(29),N=P,{filterSelection:t,setFilterSelection:c}=k.useContext(Y),{data:w,years:v,nrens:g}=M("/api/alien-wave",c,N);let s,d;if(e[0]!==w||e[1]!==t.selectedNrens||e[2]!==t.selectedYears){let h;e[5]!==t.selectedNrens||e[6]!==t.selectedYears?(h=D=>t.selectedYears.includes(D.year)&&t.selectedNrens.includes(D.nren),e[5]=t.selectedNrens,e[6]=t.selectedYears,e[7]=h):h=e[7],s=w.filter(h),d=S(s,"alien_wave_internal"),e[0]=w,e[1]=t.selectedNrens,e[2]=t.selectedYears,e[3]=s,e[4]=d}else s=e[3],d=e[4];const x=d;let n,m;e[8]===Symbol.for("react.memo_cache_sentinel")?(n=["Yes","No"],m=new Map([[n[0],"True"],[n[1],"False"]]),e[8]=n,e[9]=m):(n=e[8],m=e[9]);const _=m;let a;e[10]!==v?(a=[...v],e[10]=v,e[11]=a):a=e[11];let l;e[12]!==g?(l=g.values(),e[12]=g,e[13]=l):l=e[13];let i;e[14]!==l?(i=[...l],e[14]=l,e[15]=i):i=e[15];let r;e[16]!==a||e[17]!==i?(r={availableYears:a,availableNrens:i},e[16]=a,e[17]=i,e[18]=r):r=e[18];let p;e[19]!==t||e[20]!==c||e[21]!==r?(p=f.jsx(W,{filterOptions:r,filterSelection:t,setFilterSelection:c,coloredYears:!0}),e[19]=t,e[20]=c,e[21]=r,e[22]=p):p=e[22];const y=p;let o;e[23]!==x?(o=f.jsx(C,{children:f.jsx(E,{columns:n,columnLookup:_,dataLookup:x})}),e[23]=x,e[24]=o):o=e[24];let u;return e[25]!==y||e[26]!==s||e[27]!==o?(u=f.jsx(T,{title:j["alien-wave-internal"],description:`The table below shows NREN usage of alien waves internally within their own networks. This includes, for example, alien waves used between two equipment vendors, eg. coloured optics on routes carried over DWDM (dense wavelength division multiplexing) equipment. diff --git a/compendium_v2/static/Audits-DrRfyBs4.js b/compendium_v2/static/Audits-C9KWJV7H.js similarity index 83% rename from compendium_v2/static/Audits-DrRfyBs4.js rename to compendium_v2/static/Audits-C9KWJV7H.js index d1d86eba360b81a30369f9981f72942cc221076d..6f881a9fada65ee2f5b979c64269c8b88af8ec77 100644 --- a/compendium_v2/static/Audits-DrRfyBs4.js +++ b/compendium_v2/static/Audits-C9KWJV7H.js @@ -1,4 +1,4 @@ -import{c as _,r as w,F as S,j as x,t as j,S as F}from"./index-DBbSOdjk.js";import{u as P,g as C,n as D,D as E,F as L,f as R}from"./useData-CcKTpALT.js";import{P as M}from"./PillTable-CIcKqQJh.js";import"./SideBar-DfD7Pj8p.js";import"./xlsx-BHRztzV8.js";import"./index-DkYuYqrz.js";import"./hook-D9Tuu5oJ.js";import"./ColorPill-CuYEYQ56.js";import"./Table-DNomfHX4.js";function K(){const e=_.c(29),c=I,{filterSelection:t,setFilterSelection:d}=w.useContext(S),{data:b,years:y,nrens:N}=P("/api/standards",d,c);let s,u;if(e[0]!==b||e[1]!==t.selectedNrens||e[2]!==t.selectedYears){let h;e[5]!==t.selectedNrens||e[6]!==t.selectedYears?(h=k=>t.selectedYears.includes(k.year)&&t.selectedNrens.includes(k.nren)&&k.audits!==null,e[5]=t.selectedNrens,e[6]=t.selectedYears,e[7]=h):h=e[7],s=b.filter(h);const Y=C(s,"audits");u=D(Y,A),e[0]=b,e[1]=t.selectedNrens,e[2]=t.selectedYears,e[3]=s,e[4]=u}else s=e[3],u=e[4];const g=u;let i,p;e[8]===Symbol.for("react.memo_cache_sentinel")?(i=["Yes","No"],p=new Map([[i[0],"True"],[i[1],"False"]]),e[8]=i,e[9]=p):(i=e[8],p=e[9]);const T=p;let a;e[10]!==y?(a=[...y],e[10]=y,e[11]=a):a=e[11];let r;e[12]!==N?(r=N.values(),e[12]=N,e[13]=r):r=e[13];let l;e[14]!==r?(l=[...r],e[14]=r,e[15]=l):l=e[15];let o;e[16]!==a||e[17]!==l?(o={availableYears:a,availableNrens:l},e[16]=a,e[17]=l,e[18]=o):o=e[18];let m;e[19]!==t||e[20]!==d||e[21]!==o?(m=x.jsx(L,{filterOptions:o,filterSelection:t,setFilterSelection:d,coloredYears:!0}),e[19]=t,e[20]=d,e[21]=o,e[22]=m):m=e[22];const v=m;let n;e[23]!==g?(n=x.jsx(R,{children:x.jsx(M,{columns:i,columnLookup:T,dataLookup:g})}),e[23]=g,e[24]=n):n=e[24];let f;return e[25]!==v||e[26]!==s||e[27]!==n?(f=x.jsx(E,{title:j.audits,description:`The table below shows whether NRENs have external and/or internal audits +import{c as _,r as w,F as S,j as x,t as j,S as F}from"./index-bwDVKb7d.js";import{u as P,g as C,n as D,D as E,F as L,f as R}from"./useData-Ba-3avp3.js";import{P as M}from"./PillTable-C7hMt52B.js";import"./SideBar-D_Yxr_mj.js";import"./xlsx-BHRztzV8.js";import"./index-Y7aK5es_.js";import"./hook-BGVjY_62.js";import"./ColorPill-D7RILPI9.js";import"./Table-D4mMg192.js";function K(){const e=_.c(29),c=I,{filterSelection:t,setFilterSelection:d}=w.useContext(S),{data:b,years:y,nrens:N}=P("/api/standards",d,c);let s,u;if(e[0]!==b||e[1]!==t.selectedNrens||e[2]!==t.selectedYears){let h;e[5]!==t.selectedNrens||e[6]!==t.selectedYears?(h=k=>t.selectedYears.includes(k.year)&&t.selectedNrens.includes(k.nren)&&k.audits!==null,e[5]=t.selectedNrens,e[6]=t.selectedYears,e[7]=h):h=e[7],s=b.filter(h);const Y=C(s,"audits");u=D(Y,A),e[0]=b,e[1]=t.selectedNrens,e[2]=t.selectedYears,e[3]=s,e[4]=u}else s=e[3],u=e[4];const g=u;let i,p;e[8]===Symbol.for("react.memo_cache_sentinel")?(i=["Yes","No"],p=new Map([[i[0],"True"],[i[1],"False"]]),e[8]=i,e[9]=p):(i=e[8],p=e[9]);const T=p;let a;e[10]!==y?(a=[...y],e[10]=y,e[11]=a):a=e[11];let r;e[12]!==N?(r=N.values(),e[12]=N,e[13]=r):r=e[13];let l;e[14]!==r?(l=[...r],e[14]=r,e[15]=l):l=e[15];let o;e[16]!==a||e[17]!==l?(o={availableYears:a,availableNrens:l},e[16]=a,e[17]=l,e[18]=o):o=e[18];let m;e[19]!==t||e[20]!==d||e[21]!==o?(m=x.jsx(L,{filterOptions:o,filterSelection:t,setFilterSelection:d,coloredYears:!0}),e[19]=t,e[20]=d,e[21]=o,e[22]=m):m=e[22];const v=m;let n;e[23]!==g?(n=x.jsx(R,{children:x.jsx(M,{columns:i,columnLookup:T,dataLookup:g})}),e[23]=g,e[24]=n):n=e[24];let f;return e[25]!==v||e[26]!==s||e[27]!==n?(f=x.jsx(E,{title:j.audits,description:`The table below shows whether NRENs have external and/or internal audits of the information security management systems (eg. risk management and policies). Where extra information has been provided, such as whether a certified security auditor on ISP 27001 is performing the audits, it can be viewed by hovering over the indicator diff --git a/compendium_v2/static/Automation-7WUmNT-G.js b/compendium_v2/static/Automation-9p1JVo02.js similarity index 94% rename from compendium_v2/static/Automation-7WUmNT-G.js rename to compendium_v2/static/Automation-9p1JVo02.js index d7b4b6c5180ea3f661acef9a1035fe0bd38de00b..c2caf4ea16c43db965b561e7afe5ac74665fb97d 100644 --- a/compendium_v2/static/Automation-7WUmNT-G.js +++ b/compendium_v2/static/Automation-9p1JVo02.js @@ -1,4 +1,4 @@ -import{c as ee,r as te,F as se,S as ne,j as t,t as le}from"./index-DBbSOdjk.js";import{u as oe,g as re,F as ie,D as ae,f as ce}from"./useData-CcKTpALT.js";import{C as Q}from"./ColorPill-CuYEYQ56.js";import{T as he}from"./Table-DNomfHX4.js";import"./SideBar-DfD7Pj8p.js";import"./xlsx-BHRztzV8.js";import"./index-DkYuYqrz.js";import"./hook-D9Tuu5oJ.js";function we(){const e=ee.c(69),{filterSelection:l,setFilterSelection:p}=te.useContext(se),{data:U,years:c,nrens:R}=oe("/api/network-automation",p);let m,f,x,j,u,g,w,y,_,h,d,b,S,Y,v;if(e[0]!==l||e[1]!==R||e[2]!==U||e[3]!==p||e[4]!==c){let A;e[20]!==l.selectedNrens||e[21]!==l.selectedYears?(A=F=>l.selectedYears.includes(F.year)&&l.selectedNrens.includes(F.nren),e[20]=l.selectedNrens,e[21]=l.selectedYears,e[22]=A):A=e[22];const V=U.filter(A),X=re(V,"network_automation");let C;e[23]!==c?(C=[...c],e[23]=c,e[24]=C):C=e[24];let T;e[25]!==R?(T=R.values(),e[25]=R,e[26]=T):T=e[26];let D;e[27]!==T?(D=[...T],e[27]=T,e[28]=D):D=e[28];let $;e[29]!==C||e[30]!==D?($={availableYears:C,availableNrens:D},e[29]=C,e[30]=D,e[31]=$):$=e[31];let L;e[32]!==l||e[33]!==p||e[34]!==$?(L=t.jsx(ie,{filterOptions:$,filterSelection:l,setFilterSelection:p,coloredYears:!0}),e[32]=l,e[33]=p,e[34]=$,e[35]=L):L=e[35];const Z=L;let M;e[36]!==c?(M=F=>c.has(F),e[36]=c,e[37]=M):M=e[37];const W=[...l.selectedYears.filter(M)].sort();x=ae,b=le["network-automation"],S=`The table below shows which NRENs have, or plan to, automate their +import{c as ee,r as te,F as se,S as ne,j as t,t as le}from"./index-bwDVKb7d.js";import{u as oe,g as re,F as ie,D as ae,f as ce}from"./useData-Ba-3avp3.js";import{C as Q}from"./ColorPill-D7RILPI9.js";import{T as he}from"./Table-D4mMg192.js";import"./SideBar-D_Yxr_mj.js";import"./xlsx-BHRztzV8.js";import"./index-Y7aK5es_.js";import"./hook-BGVjY_62.js";function we(){const e=ee.c(69),{filterSelection:l,setFilterSelection:p}=te.useContext(se),{data:U,years:c,nrens:R}=oe("/api/network-automation",p);let m,f,x,j,u,g,w,y,_,h,d,b,S,Y,v;if(e[0]!==l||e[1]!==R||e[2]!==U||e[3]!==p||e[4]!==c){let A;e[20]!==l.selectedNrens||e[21]!==l.selectedYears?(A=F=>l.selectedYears.includes(F.year)&&l.selectedNrens.includes(F.nren),e[20]=l.selectedNrens,e[21]=l.selectedYears,e[22]=A):A=e[22];const V=U.filter(A),X=re(V,"network_automation");let C;e[23]!==c?(C=[...c],e[23]=c,e[24]=C):C=e[24];let T;e[25]!==R?(T=R.values(),e[25]=R,e[26]=T):T=e[26];let D;e[27]!==T?(D=[...T],e[27]=T,e[28]=D):D=e[28];let $;e[29]!==C||e[30]!==D?($={availableYears:C,availableNrens:D},e[29]=C,e[30]=D,e[31]=$):$=e[31];let L;e[32]!==l||e[33]!==p||e[34]!==$?(L=t.jsx(ie,{filterOptions:$,filterSelection:l,setFilterSelection:p,coloredYears:!0}),e[32]=l,e[33]=p,e[34]=$,e[35]=L):L=e[35];const Z=L;let M;e[36]!==c?(M=F=>c.has(F),e[36]=c,e[37]=M):M=e[37];const W=[...l.selectedYears.filter(M)].sort();x=ae,b=le["network-automation"],S=`The table below shows which NRENs have, or plan to, automate their operational processes, with specification of which processes, and the names of software and tools used for this given when appropriate. Where NRENs indicated that they are using automation for some network tasks, diff --git a/compendium_v2/static/Budget-CVs5cg26.js b/compendium_v2/static/Budget-Bq0pX5us.js similarity index 84% rename from compendium_v2/static/Budget-CVs5cg26.js rename to compendium_v2/static/Budget-Bq0pX5us.js index a5014ed89bc5662cb5089cd8f1d2d3f7239b60e1..f51d92e013aa4577daf2540776b288516932d7b2 100644 --- a/compendium_v2/static/Budget-CVs5cg26.js +++ b/compendium_v2/static/Budget-Bq0pX5us.js @@ -1 +1 @@ -import{c as _,r as S,F as j,j as s,t as v,S as C}from"./index-DBbSOdjk.js";import{L as R}from"./index-DyJczNpq.js";import{C as L,a as w,L as D,P as F,b as P,p as M,c as O,d as T,u as B,e as G,D as k,F as q,f as A}from"./useData-CcKTpALT.js";import{g as H}from"./charthelpers-CHBq5wBZ.js";import"./SideBar-DfD7Pj8p.js";import"./xlsx-BHRztzV8.js";import"./index-DkYuYqrz.js";import"./hook-D9Tuu5oJ.js";L.register(w,D,F,P,M,O,T);function Q(){const e=_.c(24),{filterSelection:t,setFilterSelection:o}=S.useContext(j),{data:m,nrens:b}=B("/api/budget",o);let a,l;if(e[0]!==m||e[1]!==t.selectedNrens){let h;e[4]!==t.selectedNrens?(h=E=>t.selectedNrens.includes(E.nren),e[4]=t.selectedNrens,e[5]=h):h=e[5],a=m.filter(h),l=G(a,"budget"),e[0]=m,e[1]=t.selectedNrens,e[2]=a,e[3]=l}else a=e[2],l=e[3];const N=l;let c;e[6]===Symbol.for("react.memo_cache_sentinel")?(c=[],e[6]=c):c=e[6];let i;e[7]!==b?(i=b.values(),e[7]=b,e[8]=i):i=e[8];let r;e[9]!==i?(r={availableYears:c,availableNrens:[...i]},e[9]=i,e[10]=r):r=e[10];let d;e[11]!==t||e[12]!==o||e[13]!==r?(d=s.jsx(q,{filterOptions:r,filterSelection:t,setFilterSelection:o}),e[11]=t,e[12]=o,e[13]=r,e[14]=d):d=e[14];const y=d;let f;e[15]===Symbol.for("react.memo_cache_sentinel")?(f=H({title:"Budget in M€",tooltipUnit:"M€",unit:"M€"}),e[15]=f):f=e[15];const x=f;let g;e[16]===Symbol.for("react.memo_cache_sentinel")?(g=s.jsx("br",{}),e[16]=g):g=e[16];let p;e[17]===Symbol.for("react.memo_cache_sentinel")?(p=s.jsxs("span",{children:["The graph shows NREN budgets per year (in millions Euro). When budgets are not per calendar year, the NREN is asked to provide figures of the budget that covers the largest part of the year, and to include any GÉANT subsidy they may receive.",g,"NRENs are free to decide how they define the part of their organisation dedicated to core NREN business, and the budget. The merging of different parts of a large NREN into a single organisation, with a single budget can lead to significant changes between years, as can receiving funding for specific time-bound projects.",s.jsx("br",{}),"Hovering over the graph data points shows the NREN budget for the year. Gaps indicate that the budget question was not filled in for a particular year."]}),e[17]=p):p=e[17];let n;e[18]!==N?(n=s.jsx(A,{children:s.jsx(R,{data:N,options:x})}),e[18]=N,e[19]=n):n=e[19];let u;return e[20]!==y||e[21]!==a||e[22]!==n?(u=s.jsx(k,{title:v.budget,description:p,category:C.Organisation,filter:y,data:a,filename:"budget_data",children:n}),e[20]=y,e[21]=a,e[22]=n,e[23]=u):u=e[23],u}export{Q as default}; +import{c as _,r as S,F as j,j as s,t as v,S as C}from"./index-bwDVKb7d.js";import{L as R}from"./index-0m6TK_PI.js";import{C as L,a as w,L as D,P as F,b as P,p as M,c as O,d as T,u as B,e as G,D as k,F as q,f as A}from"./useData-Ba-3avp3.js";import{g as H}from"./charthelpers-Cs3DRBw0.js";import"./SideBar-D_Yxr_mj.js";import"./xlsx-BHRztzV8.js";import"./index-Y7aK5es_.js";import"./hook-BGVjY_62.js";L.register(w,D,F,P,M,O,T);function Q(){const e=_.c(24),{filterSelection:t,setFilterSelection:o}=S.useContext(j),{data:m,nrens:b}=B("/api/budget",o);let a,l;if(e[0]!==m||e[1]!==t.selectedNrens){let h;e[4]!==t.selectedNrens?(h=E=>t.selectedNrens.includes(E.nren),e[4]=t.selectedNrens,e[5]=h):h=e[5],a=m.filter(h),l=G(a,"budget"),e[0]=m,e[1]=t.selectedNrens,e[2]=a,e[3]=l}else a=e[2],l=e[3];const N=l;let c;e[6]===Symbol.for("react.memo_cache_sentinel")?(c=[],e[6]=c):c=e[6];let i;e[7]!==b?(i=b.values(),e[7]=b,e[8]=i):i=e[8];let r;e[9]!==i?(r={availableYears:c,availableNrens:[...i]},e[9]=i,e[10]=r):r=e[10];let d;e[11]!==t||e[12]!==o||e[13]!==r?(d=s.jsx(q,{filterOptions:r,filterSelection:t,setFilterSelection:o}),e[11]=t,e[12]=o,e[13]=r,e[14]=d):d=e[14];const y=d;let f;e[15]===Symbol.for("react.memo_cache_sentinel")?(f=H({title:"Budget in M€",tooltipUnit:"M€",unit:"M€"}),e[15]=f):f=e[15];const x=f;let g;e[16]===Symbol.for("react.memo_cache_sentinel")?(g=s.jsx("br",{}),e[16]=g):g=e[16];let p;e[17]===Symbol.for("react.memo_cache_sentinel")?(p=s.jsxs("span",{children:["The graph shows NREN budgets per year (in millions Euro). When budgets are not per calendar year, the NREN is asked to provide figures of the budget that covers the largest part of the year, and to include any GÉANT subsidy they may receive.",g,"NRENs are free to decide how they define the part of their organisation dedicated to core NREN business, and the budget. The merging of different parts of a large NREN into a single organisation, with a single budget can lead to significant changes between years, as can receiving funding for specific time-bound projects.",s.jsx("br",{}),"Hovering over the graph data points shows the NREN budget for the year. Gaps indicate that the budget question was not filled in for a particular year."]}),e[17]=p):p=e[17];let n;e[18]!==N?(n=s.jsx(A,{children:s.jsx(R,{data:N,options:x})}),e[18]=N,e[19]=n):n=e[19];let u;return e[20]!==y||e[21]!==a||e[22]!==n?(u=s.jsx(k,{title:v.budget,description:p,category:C.Organisation,filter:y,data:a,filename:"budget_data",children:n}),e[20]=y,e[21]=a,e[22]=n,e[23]=u):u=e[23],u}export{Q as default}; diff --git a/compendium_v2/static/BusinessContinuity-jrf4-tia.js b/compendium_v2/static/BusinessContinuity-BIU4-n6C.js similarity index 84% rename from compendium_v2/static/BusinessContinuity-jrf4-tia.js rename to compendium_v2/static/BusinessContinuity-BIU4-n6C.js index 72c5046988821e491861e9caa135c121fbe3ba5c..347e867f36bcf2ca880bf31f099fae0c9b81e6c1 100644 --- a/compendium_v2/static/BusinessContinuity-jrf4-tia.js +++ b/compendium_v2/static/BusinessContinuity-BIU4-n6C.js @@ -1,4 +1,4 @@ -import{c as g,r as v,F as j,j as y,t as C,S as E}from"./index-DBbSOdjk.js";import{u as F,g as S,n as P,D,F as L,f as R}from"./useData-CcKTpALT.js";import{P as M}from"./PillTable-CIcKqQJh.js";import"./SideBar-DfD7Pj8p.js";import"./xlsx-BHRztzV8.js";import"./index-DkYuYqrz.js";import"./hook-D9Tuu5oJ.js";import"./ColorPill-CuYEYQ56.js";import"./Table-DNomfHX4.js";function Q(){const e=g.c(29),c=O,{filterSelection:t,setFilterSelection:u}=v.useContext(j),{data:b,years:_,nrens:x}=F("/api/standards",u,c);let s,p;if(e[0]!==b||e[1]!==t.selectedNrens||e[2]!==t.selectedYears){let h;e[5]!==t.selectedNrens||e[6]!==t.selectedYears?(h=k=>t.selectedYears.includes(k.year)&&t.selectedNrens.includes(k.nren)&&k.business_continuity_plans!==null,e[5]=t.selectedNrens,e[6]=t.selectedYears,e[7]=h):h=e[7],s=b.filter(h);const Y=S(s,"business_continuity_plans");p=P(Y,B),e[0]=b,e[1]=t.selectedNrens,e[2]=t.selectedYears,e[3]=s,e[4]=p}else s=e[3],p=e[4];const N=p;let n,d;e[8]===Symbol.for("react.memo_cache_sentinel")?(n=["Yes","No"],d=new Map([[n[0],"True"],[n[1],"False"]]),e[8]=n,e[9]=d):(n=e[8],d=e[9]);const w=d;let i;e[10]!==_?(i=[..._],e[10]=_,e[11]=i):i=e[11];let l;e[12]!==x?(l=x.values(),e[12]=x,e[13]=l):l=e[13];let o;e[14]!==l?(o=[...l],e[14]=l,e[15]=o):o=e[15];let a;e[16]!==i||e[17]!==o?(a={availableYears:i,availableNrens:o},e[16]=i,e[17]=o,e[18]=a):a=e[18];let f;e[19]!==t||e[20]!==u||e[21]!==a?(f=y.jsx(L,{filterOptions:a,filterSelection:t,setFilterSelection:u,coloredYears:!0}),e[19]=t,e[20]=u,e[21]=a,e[22]=f):f=e[22];const T=f;let r;e[23]!==N?(r=y.jsx(R,{children:y.jsx(M,{columns:n,columnLookup:w,dataLookup:N})}),e[23]=N,e[24]=r):r=e[24];let m;return e[25]!==T||e[26]!==s||e[27]!==r?(m=y.jsx(D,{title:C["business-continuity"],description:`The table below shows which NRENs have business continuity plans in place to +import{c as g,r as v,F as j,j as y,t as C,S as E}from"./index-bwDVKb7d.js";import{u as F,g as S,n as P,D,F as L,f as R}from"./useData-Ba-3avp3.js";import{P as M}from"./PillTable-C7hMt52B.js";import"./SideBar-D_Yxr_mj.js";import"./xlsx-BHRztzV8.js";import"./index-Y7aK5es_.js";import"./hook-BGVjY_62.js";import"./ColorPill-D7RILPI9.js";import"./Table-D4mMg192.js";function Q(){const e=g.c(29),c=O,{filterSelection:t,setFilterSelection:u}=v.useContext(j),{data:b,years:_,nrens:x}=F("/api/standards",u,c);let s,p;if(e[0]!==b||e[1]!==t.selectedNrens||e[2]!==t.selectedYears){let h;e[5]!==t.selectedNrens||e[6]!==t.selectedYears?(h=k=>t.selectedYears.includes(k.year)&&t.selectedNrens.includes(k.nren)&&k.business_continuity_plans!==null,e[5]=t.selectedNrens,e[6]=t.selectedYears,e[7]=h):h=e[7],s=b.filter(h);const Y=S(s,"business_continuity_plans");p=P(Y,B),e[0]=b,e[1]=t.selectedNrens,e[2]=t.selectedYears,e[3]=s,e[4]=p}else s=e[3],p=e[4];const N=p;let n,d;e[8]===Symbol.for("react.memo_cache_sentinel")?(n=["Yes","No"],d=new Map([[n[0],"True"],[n[1],"False"]]),e[8]=n,e[9]=d):(n=e[8],d=e[9]);const w=d;let i;e[10]!==_?(i=[..._],e[10]=_,e[11]=i):i=e[11];let l;e[12]!==x?(l=x.values(),e[12]=x,e[13]=l):l=e[13];let o;e[14]!==l?(o=[...l],e[14]=l,e[15]=o):o=e[15];let a;e[16]!==i||e[17]!==o?(a={availableYears:i,availableNrens:o},e[16]=i,e[17]=o,e[18]=a):a=e[18];let f;e[19]!==t||e[20]!==u||e[21]!==a?(f=y.jsx(L,{filterOptions:a,filterSelection:t,setFilterSelection:u,coloredYears:!0}),e[19]=t,e[20]=u,e[21]=a,e[22]=f):f=e[22];const T=f;let r;e[23]!==N?(r=y.jsx(R,{children:y.jsx(M,{columns:n,columnLookup:w,dataLookup:N})}),e[23]=N,e[24]=r):r=e[24];let m;return e[25]!==T||e[26]!==s||e[27]!==r?(m=y.jsx(D,{title:C["business-continuity"],description:`The table below shows which NRENs have business continuity plans in place to ensure business continuation and operations. Extra details about whether the NREN complies with any international standards, and whether they test the continuity plans regularly can be seen by hovering over the marker. The presence of this extra information diff --git a/compendium_v2/static/CapacityCoreIP-Br9KX5yH.js b/compendium_v2/static/CapacityCoreIP-CL5l0Sfy.js similarity index 82% rename from compendium_v2/static/CapacityCoreIP-Br9KX5yH.js rename to compendium_v2/static/CapacityCoreIP-CL5l0Sfy.js index 6670b675d69e699e546777d2f7506134c6eeb78a..fa6c1770de3f2db61e218aa31667ce84ef92a6a4 100644 --- a/compendium_v2/static/CapacityCoreIP-Br9KX5yH.js +++ b/compendium_v2/static/CapacityCoreIP-CL5l0Sfy.js @@ -1,3 +1,3 @@ -import{c as F,r as P,F as Y,j as d,S as I,t as G}from"./index-DBbSOdjk.js";import{B as R}from"./index-DyJczNpq.js";import{C as L,a as O,L as $,B as A,p as M,c as T,d as U,u as q,o as z,D as H,F as J,f as K}from"./useData-CcKTpALT.js";import{p as Q}from"./chartjs-plugin-datalabels.esm-C6J4S2ma.js";import{a as V}from"./charthelpers-CHBq5wBZ.js";import"./SideBar-DfD7Pj8p.js";import"./xlsx-BHRztzV8.js";import"./index-DkYuYqrz.js";import"./hook-D9Tuu5oJ.js";L.register(O,$,A,M,T,U);function ne(){const e=F.c(38),j=X,{filterSelection:t,setFilterSelection:s}=P.useContext(Y),{data:N,years:h,nrens:u}=q("/api/capacity",s,j);let i,r,a,y;if(e[0]!==N||e[1]!==t||e[2]!==u||e[3]!==s||e[4]!==h){let _;e[9]!==t.selectedNrens||e[10]!==t.selectedYears?(_=k=>t.selectedYears.includes(k.year)&&t.selectedNrens.includes(k.nren)&&j(k),e[9]=t.selectedNrens,e[10]=t.selectedYears,e[11]=_):_=e[11],a=N.filter(_),i=z(a,"typical_backbone_capacity","Backbone IP Capacity");let o;e[12]!==h?(o=[...h],e[12]=h,e[13]=o):o=e[13];let p;e[14]!==u?(p=u.values(),e[14]=u,e[15]=p):p=e[15];let f;e[16]!==p?(f=[...p],e[16]=p,e[17]=f):f=e[17];let m;e[18]!==o||e[19]!==f?(m={availableYears:o,availableNrens:f},e[18]=o,e[19]=f,e[20]=m):m=e[20];let C;e[21]!==t||e[22]!==s||e[23]!==m?(C=d.jsx(J,{filterOptions:m,filterSelection:t,setFilterSelection:s}),e[21]=t,e[22]=s,e[23]=m,e[24]=C):C=e[24],r=C,y=Array.from(new Set(a.map(W))),e[0]=N,e[1]=t,e[2]=u,e[3]=s,e[4]=h,e[5]=i,e[6]=r,e[7]=a,e[8]=y}else i=e[5],r=e[6],a=e[7],y=e[8];const v=y.length,w=Math.max(v*t.selectedYears.length*1.5+5,50),B=G["capacity-core-ip"],D=`The graph below shows the typical core usable backbone IP capacity of +import{c as F,r as P,F as Y,j as d,S as I,t as G}from"./index-bwDVKb7d.js";import{B as R}from"./index-0m6TK_PI.js";import{C as L,a as O,L as $,B as A,p as M,c as T,d as U,u as q,o as z,D as H,F as J,f as K}from"./useData-Ba-3avp3.js";import{p as Q}from"./chartjs-plugin-datalabels.esm-BoLCz2jr.js";import{a as V}from"./charthelpers-Cs3DRBw0.js";import"./SideBar-D_Yxr_mj.js";import"./xlsx-BHRztzV8.js";import"./index-Y7aK5es_.js";import"./hook-BGVjY_62.js";L.register(O,$,A,M,T,U);function ne(){const e=F.c(38),j=X,{filterSelection:t,setFilterSelection:s}=P.useContext(Y),{data:N,years:h,nrens:u}=q("/api/capacity",s,j);let i,r,a,y;if(e[0]!==N||e[1]!==t||e[2]!==u||e[3]!==s||e[4]!==h){let _;e[9]!==t.selectedNrens||e[10]!==t.selectedYears?(_=k=>t.selectedYears.includes(k.year)&&t.selectedNrens.includes(k.nren)&&j(k),e[9]=t.selectedNrens,e[10]=t.selectedYears,e[11]=_):_=e[11],a=N.filter(_),i=z(a,"typical_backbone_capacity","Backbone IP Capacity");let o;e[12]!==h?(o=[...h],e[12]=h,e[13]=o):o=e[13];let p;e[14]!==u?(p=u.values(),e[14]=u,e[15]=p):p=e[15];let f;e[16]!==p?(f=[...p],e[16]=p,e[17]=f):f=e[17];let m;e[18]!==o||e[19]!==f?(m={availableYears:o,availableNrens:f},e[18]=o,e[19]=f,e[20]=m):m=e[20];let C;e[21]!==t||e[22]!==s||e[23]!==m?(C=d.jsx(J,{filterOptions:m,filterSelection:t,setFilterSelection:s}),e[21]=t,e[22]=s,e[23]=m,e[24]=C):C=e[24],r=C,y=Array.from(new Set(a.map(W))),e[0]=N,e[1]=t,e[2]=u,e[3]=s,e[4]=h,e[5]=i,e[6]=r,e[7]=a,e[8]=y}else i=e[5],r=e[6],a=e[7],y=e[8];const v=y.length,w=Math.max(v*t.selectedYears.length*1.5+5,50),B=G["capacity-core-ip"],D=`The graph below shows the typical core usable backbone IP capacity of NREN networks, expressed in Gbit/s. It refers to the circuit capacity, not the traffic over the network.`;let g;e[25]===Symbol.for("react.memo_cache_sentinel")?(g=V({title:B,tooltipUnit:"Gbit/s",unit:"Gbit/s"}),e[25]=g):g=e[25];const E=g,S=`${w}rem`;let l;e[26]!==S?(l={height:S},e[26]=S,e[27]=l):l=e[27];let b;e[28]===Symbol.for("react.memo_cache_sentinel")?(b=[Q],e[28]=b):b=e[28];let c;e[29]!==i?(c=d.jsx(R,{data:i,options:E,plugins:b}),e[29]=i,e[30]=c):c=e[30];let n;e[31]!==l||e[32]!==c?(n=d.jsx(K,{children:d.jsx("div",{className:"chart-container",style:l,children:c})}),e[31]=l,e[32]=c,e[33]=n):n=e[33];let x;return e[34]!==r||e[35]!==a||e[36]!==n?(x=d.jsx(H,{title:B,description:D,category:I.Network,filter:r,data:a,filename:"capacity_core_ip",children:n}),e[34]=r,e[35]=a,e[36]=n,e[37]=x):x=e[37],x}function W(e){return e.nren}function X(e){return e.typical_backbone_capacity!=null}export{ne as default}; diff --git a/compendium_v2/static/CapacityLargestLink-LEyWpKvI.js b/compendium_v2/static/CapacityLargestLink-BfzlpsDK.js similarity index 83% rename from compendium_v2/static/CapacityLargestLink-LEyWpKvI.js rename to compendium_v2/static/CapacityLargestLink-BfzlpsDK.js index 181aeaf062cf3fe142717a1b904c0658bb958ddc..3f62f10aa5ce49ee7711297e96ef0244a932ff87 100644 --- a/compendium_v2/static/CapacityLargestLink-LEyWpKvI.js +++ b/compendium_v2/static/CapacityLargestLink-BfzlpsDK.js @@ -1,3 +1,3 @@ -import{c as F,r as L,F as Y,j as g,S as G,t as R}from"./index-DBbSOdjk.js";import{B as O}from"./index-DyJczNpq.js";import{C as P,a as $,L as A,B as M,p as U,c as W,d as q,u as z,o as H,D as I,F as J,f as K}from"./useData-CcKTpALT.js";import{p as Q}from"./chartjs-plugin-datalabels.esm-C6J4S2ma.js";import{a as T}from"./charthelpers-CHBq5wBZ.js";import"./SideBar-DfD7Pj8p.js";import"./xlsx-BHRztzV8.js";import"./index-DkYuYqrz.js";import"./hook-D9Tuu5oJ.js";P.register($,A,M,U,W,q);function ce(){const e=F.c(38),v=X,{filterSelection:t,setFilterSelection:s}=L.useContext(Y),{data:N,years:m,nrens:u}=z("/api/capacity",s,v);let i,l,a,h;if(e[0]!==N||e[1]!==t||e[2]!==u||e[3]!==s||e[4]!==m){let x;e[9]!==t.selectedNrens||e[10]!==t.selectedYears?(x=b=>t.selectedYears.includes(b.year)&&t.selectedNrens.includes(b.nren)&&v(b),e[9]=t.selectedNrens,e[10]=t.selectedYears,e[11]=x):x=e[11],a=N.filter(x),i=H(a,"largest_link_capacity","Link capacity");let o;e[12]!==m?(o=[...m],e[12]=m,e[13]=o):o=e[13];let p;e[14]!==u?(p=u.values(),e[14]=u,e[15]=p):p=e[15];let f;e[16]!==p?(f=[...p],e[16]=p,e[17]=f):f=e[17];let d;e[18]!==o||e[19]!==f?(d={availableYears:o,availableNrens:f},e[18]=o,e[19]=f,e[20]=d):d=e[20];let C;e[21]!==t||e[22]!==s||e[23]!==d?(C=g.jsx(J,{filterOptions:d,filterSelection:t,setFilterSelection:s}),e[21]=t,e[22]=s,e[23]=d,e[24]=C):C=e[24],l=C,h=Array.from(new Set(a.map(V))),e[0]=N,e[1]=t,e[2]=u,e[3]=s,e[4]=m,e[5]=i,e[6]=l,e[7]=a,e[8]=h}else i=e[5],l=e[6],a=e[7],h=e[8];const w=h.length,B=Math.max(w*t.selectedYears.length*1.5+5,50),j=R["capacity-largest-link"],D=`NRENs were asked to give the capacity (in Gbits/s) of the largest link in +import{c as F,r as L,F as Y,j as g,S as G,t as R}from"./index-bwDVKb7d.js";import{B as O}from"./index-0m6TK_PI.js";import{C as P,a as $,L as A,B as M,p as U,c as W,d as q,u as z,o as H,D as I,F as J,f as K}from"./useData-Ba-3avp3.js";import{p as Q}from"./chartjs-plugin-datalabels.esm-BoLCz2jr.js";import{a as T}from"./charthelpers-Cs3DRBw0.js";import"./SideBar-D_Yxr_mj.js";import"./xlsx-BHRztzV8.js";import"./index-Y7aK5es_.js";import"./hook-BGVjY_62.js";P.register($,A,M,U,W,q);function ce(){const e=F.c(38),v=X,{filterSelection:t,setFilterSelection:s}=L.useContext(Y),{data:N,years:m,nrens:u}=z("/api/capacity",s,v);let i,l,a,h;if(e[0]!==N||e[1]!==t||e[2]!==u||e[3]!==s||e[4]!==m){let x;e[9]!==t.selectedNrens||e[10]!==t.selectedYears?(x=b=>t.selectedYears.includes(b.year)&&t.selectedNrens.includes(b.nren)&&v(b),e[9]=t.selectedNrens,e[10]=t.selectedYears,e[11]=x):x=e[11],a=N.filter(x),i=H(a,"largest_link_capacity","Link capacity");let o;e[12]!==m?(o=[...m],e[12]=m,e[13]=o):o=e[13];let p;e[14]!==u?(p=u.values(),e[14]=u,e[15]=p):p=e[15];let f;e[16]!==p?(f=[...p],e[16]=p,e[17]=f):f=e[17];let d;e[18]!==o||e[19]!==f?(d={availableYears:o,availableNrens:f},e[18]=o,e[19]=f,e[20]=d):d=e[20];let C;e[21]!==t||e[22]!==s||e[23]!==d?(C=g.jsx(J,{filterOptions:d,filterSelection:t,setFilterSelection:s}),e[21]=t,e[22]=s,e[23]=d,e[24]=C):C=e[24],l=C,h=Array.from(new Set(a.map(V))),e[0]=N,e[1]=t,e[2]=u,e[3]=s,e[4]=m,e[5]=i,e[6]=l,e[7]=a,e[8]=h}else i=e[5],l=e[6],a=e[7],h=e[8];const w=h.length,B=Math.max(w*t.selectedYears.length*1.5+5,50),j=R["capacity-largest-link"],D=`NRENs were asked to give the capacity (in Gbits/s) of the largest link in their network used for internet traffic (either shared or dedicated). While they were invited to provide the sum of aggregated links, backup capacity was not to be included.`;let y;e[25]===Symbol.for("react.memo_cache_sentinel")?(y=T({title:j,tooltipUnit:"Gbit/s",unit:"Gbit/s"}),e[25]=y):y=e[25];const E=y,S=`${B}rem`;let r;e[26]!==S?(r={height:S},e[26]=S,e[27]=r):r=e[27];let _;e[28]===Symbol.for("react.memo_cache_sentinel")?(_=[Q],e[28]=_):_=e[28];let n;e[29]!==i?(n=g.jsx(O,{data:i,options:E,plugins:_}),e[29]=i,e[30]=n):n=e[30];let c;e[31]!==r||e[32]!==n?(c=g.jsx(K,{children:g.jsx("div",{className:"chart-container",style:r,children:n})}),e[31]=r,e[32]=n,e[33]=c):c=e[33];let k;return e[34]!==l||e[35]!==a||e[36]!==c?(k=g.jsx(I,{title:j,description:D,category:G.Network,filter:l,data:a,filename:"capacity_largest_link",children:c}),e[34]=l,e[35]=a,e[36]=c,e[37]=k):k=e[37],k}function V(e){return e.nren}function X(e){return e.largest_link_capacity!=null}export{ce as default}; diff --git a/compendium_v2/static/CentralProcurement-C2sliv5Z.js b/compendium_v2/static/CentralProcurement-CAaLLWzc.js similarity index 82% rename from compendium_v2/static/CentralProcurement-C2sliv5Z.js rename to compendium_v2/static/CentralProcurement-CAaLLWzc.js index 17548f3c07b0d0235af7a8960044e61978f9acf7..73a093b92992a57b7dbfe22ef5a48ae72357a1ff 100644 --- a/compendium_v2/static/CentralProcurement-C2sliv5Z.js +++ b/compendium_v2/static/CentralProcurement-CAaLLWzc.js @@ -1 +1 @@ -import{c as R,r as Y,F as I,j as h,S as T,t as $}from"./index-DBbSOdjk.js";import{C as L,a as O,L as V,B as k,p as A,c as M,d as U,u as Z,o as q,D as z,F as G,f as H}from"./useData-CcKTpALT.js";import{p as J}from"./chartjs-plugin-datalabels.esm-C6J4S2ma.js";import{B as K}from"./index-DyJczNpq.js";import{a as Q}from"./charthelpers-CHBq5wBZ.js";import"./SideBar-DfD7Pj8p.js";import"./xlsx-BHRztzV8.js";import"./index-DkYuYqrz.js";import"./hook-D9Tuu5oJ.js";L.register(O,V,k,A,M,U);function ce(){const e=R.c(39),j=X,{filterSelection:t,setFilterSelection:a}=Y.useContext(I),{data:b,years:d,nrens:y}=Z("/api/central-procurement",a,j);let l,n,r,g;if(e[0]!==b||e[1]!==t||e[2]!==y||e[3]!==a||e[4]!==d){let m;e[9]!==t.selectedNrens||e[10]!==t.selectedYears?(m=E=>t.selectedYears.includes(E.year)&&t.selectedNrens.includes(E.nren),e[9]=t.selectedNrens,e[10]=t.selectedYears,e[11]=m):m=e[11],r=b.filter(m),l=q(r,"amount","Procurement Value");let s;e[12]!==d?(s=[...d],e[12]=d,e[13]=s):s=e[13];let f;e[14]!==y?(f=y.values(),e[14]=y,e[15]=f):f=e[15];let u;e[16]!==f?(u=[...f],e[16]=f,e[17]=u):u=e[17];let p;e[18]!==s||e[19]!==u?(p={availableYears:s,availableNrens:u},e[18]=s,e[19]=u,e[20]=p):p=e[20];let C;e[21]!==t||e[22]!==a||e[23]!==p?(C=h.jsx(G,{filterOptions:p,filterSelection:t,setFilterSelection:a}),e[21]=t,e[22]=a,e[23]=p,e[24]=C):C=e[24],n=C,g=Array.from(new Set(r.map(W))),e[0]=b,e[1]=t,e[2]=y,e[3]=a,e[4]=d,e[5]=l,e[6]=n,e[7]=r,e[8]=g}else l=e[5],n=e[6],r=e[7],g=e[8];const v=g.length,P=Math.max(v*t.selectedYears.length*1.5+5,50),B=$["central-procurement"];let x;e[25]===Symbol.for("react.memo_cache_sentinel")?(x=h.jsx("span",{children:"Some NRENs centrally procure software for their customers. The graph below shows the total value (in Euro) of software procured in the previous year by the NRENs. Please note you can only see the select NRENs which carry out this type of procurement. Those who do not offer this are not selectable."}),e[25]=x):x=e[25];const D=x;let N;e[26]===Symbol.for("react.memo_cache_sentinel")?(N=Q({title:"Software Procurement Value",valueTransform(m){return`${new Intl.NumberFormat(void 0,{style:"currency",currency:"EUR",trailingZeroDisplay:"stripIfInteger"}).format(m)}`}}),e[26]=N):N=e[26];const F=N,w=`${P}rem`;let o;e[27]!==w?(o={height:w},e[27]=w,e[28]=o):o=e[28];let S;e[29]===Symbol.for("react.memo_cache_sentinel")?(S=[J],e[29]=S):S=e[29];let i;e[30]!==l?(i=h.jsx(K,{data:l,options:F,plugins:S}),e[30]=l,e[31]=i):i=e[31];let c;e[32]!==o||e[33]!==i?(c=h.jsx(H,{children:h.jsx("div",{className:"chart-container",style:o,children:i})}),e[32]=o,e[33]=i,e[34]=c):c=e[34];let _;return e[35]!==n||e[36]!==r||e[37]!==c?(_=h.jsx(z,{title:B,description:D,category:T.Policy,filter:n,data:r,filename:"central_procurement",children:c}),e[35]=n,e[36]=r,e[37]=c,e[38]=_):_=e[38],_}function W(e){return e.nren}function X(e){return e.amount!=null}export{ce as default}; +import{c as R,r as Y,F as I,j as h,S as T,t as $}from"./index-bwDVKb7d.js";import{C as L,a as O,L as V,B as k,p as A,c as M,d as U,u as Z,o as q,D as z,F as G,f as H}from"./useData-Ba-3avp3.js";import{p as J}from"./chartjs-plugin-datalabels.esm-BoLCz2jr.js";import{B as K}from"./index-0m6TK_PI.js";import{a as Q}from"./charthelpers-Cs3DRBw0.js";import"./SideBar-D_Yxr_mj.js";import"./xlsx-BHRztzV8.js";import"./index-Y7aK5es_.js";import"./hook-BGVjY_62.js";L.register(O,V,k,A,M,U);function ce(){const e=R.c(39),j=X,{filterSelection:t,setFilterSelection:a}=Y.useContext(I),{data:b,years:d,nrens:y}=Z("/api/central-procurement",a,j);let l,n,r,g;if(e[0]!==b||e[1]!==t||e[2]!==y||e[3]!==a||e[4]!==d){let m;e[9]!==t.selectedNrens||e[10]!==t.selectedYears?(m=E=>t.selectedYears.includes(E.year)&&t.selectedNrens.includes(E.nren),e[9]=t.selectedNrens,e[10]=t.selectedYears,e[11]=m):m=e[11],r=b.filter(m),l=q(r,"amount","Procurement Value");let s;e[12]!==d?(s=[...d],e[12]=d,e[13]=s):s=e[13];let f;e[14]!==y?(f=y.values(),e[14]=y,e[15]=f):f=e[15];let u;e[16]!==f?(u=[...f],e[16]=f,e[17]=u):u=e[17];let p;e[18]!==s||e[19]!==u?(p={availableYears:s,availableNrens:u},e[18]=s,e[19]=u,e[20]=p):p=e[20];let C;e[21]!==t||e[22]!==a||e[23]!==p?(C=h.jsx(G,{filterOptions:p,filterSelection:t,setFilterSelection:a}),e[21]=t,e[22]=a,e[23]=p,e[24]=C):C=e[24],n=C,g=Array.from(new Set(r.map(W))),e[0]=b,e[1]=t,e[2]=y,e[3]=a,e[4]=d,e[5]=l,e[6]=n,e[7]=r,e[8]=g}else l=e[5],n=e[6],r=e[7],g=e[8];const v=g.length,P=Math.max(v*t.selectedYears.length*1.5+5,50),B=$["central-procurement"];let x;e[25]===Symbol.for("react.memo_cache_sentinel")?(x=h.jsx("span",{children:"Some NRENs centrally procure software for their customers. The graph below shows the total value (in Euro) of software procured in the previous year by the NRENs. Please note you can only see the select NRENs which carry out this type of procurement. Those who do not offer this are not selectable."}),e[25]=x):x=e[25];const D=x;let N;e[26]===Symbol.for("react.memo_cache_sentinel")?(N=Q({title:"Software Procurement Value",valueTransform(m){return`${new Intl.NumberFormat(void 0,{style:"currency",currency:"EUR",trailingZeroDisplay:"stripIfInteger"}).format(m)}`}}),e[26]=N):N=e[26];const F=N,w=`${P}rem`;let o;e[27]!==w?(o={height:w},e[27]=w,e[28]=o):o=e[28];let S;e[29]===Symbol.for("react.memo_cache_sentinel")?(S=[J],e[29]=S):S=e[29];let i;e[30]!==l?(i=h.jsx(K,{data:l,options:F,plugins:S}),e[30]=l,e[31]=i):i=e[31];let c;e[32]!==o||e[33]!==i?(c=h.jsx(H,{children:h.jsx("div",{className:"chart-container",style:o,children:i})}),e[32]=o,e[33]=i,e[34]=c):c=e[34];let _;return e[35]!==n||e[36]!==r||e[37]!==c?(_=h.jsx(z,{title:B,description:D,category:T.Policy,filter:n,data:r,filename:"central_procurement",children:c}),e[35]=n,e[36]=r,e[37]=c,e[38]=_):_=e[38],_}function W(e){return e.nren}function X(e){return e.amount!=null}export{ce as default}; diff --git a/compendium_v2/static/CertificateProvider-Bvo47nf9.js b/compendium_v2/static/CertificateProvider-B_JLIZxE.js similarity index 81% rename from compendium_v2/static/CertificateProvider-Bvo47nf9.js rename to compendium_v2/static/CertificateProvider-B_JLIZxE.js index 9cd0c0ca4d195a428ae15bd696e51562e8d4d57c..919ca7e421d20782e1687bfd909c6280fca09e7c 100644 --- a/compendium_v2/static/CertificateProvider-Bvo47nf9.js +++ b/compendium_v2/static/CertificateProvider-B_JLIZxE.js @@ -1 +1 @@ -import{c as _,r as Y,F as j,j as S,t as k,S as D}from"./index-DBbSOdjk.js";import{u as E,g as P,D as T,F as w,f as F}from"./useData-CcKTpALT.js";import{P as L}from"./PillTable-CIcKqQJh.js";import"./SideBar-DfD7Pj8p.js";import"./xlsx-BHRztzV8.js";import"./index-DkYuYqrz.js";import"./hook-D9Tuu5oJ.js";import"./ColorPill-CuYEYQ56.js";import"./Table-DNomfHX4.js";function G(){const e=_.c(29),{filterSelection:t,setFilterSelection:c}=Y.useContext(j),{data:N,years:x,nrens:b}=E("/api/certificate-providers",c);let s,n;if(e[0]!==N||e[1]!==t.selectedNrens||e[2]!==t.selectedYears){let u;e[5]!==t.selectedNrens||e[6]!==t.selectedYears?(u=g=>t.selectedYears.includes(g.year)&&t.selectedNrens.includes(g.nren),e[5]=t.selectedNrens,e[6]=t.selectedYears,e[7]=u):u=e[7],s=N.filter(u),n=P(s,"provider_names"),e[0]=N,e[1]=t.selectedNrens,e[2]=t.selectedYears,e[3]=s,e[4]=n}else s=e[3],n=e[4];const v=n;let r;e[8]!==x?(r=[...x],e[8]=x,e[9]=r):r=e[9];let i;e[10]!==b?(i=b.values(),e[10]=b,e[11]=i):i=e[11];let l;e[12]!==i?(l=[...i],e[12]=i,e[13]=l):l=e[13];let o;e[14]!==r||e[15]!==l?(o={availableYears:r,availableNrens:l},e[14]=r,e[15]=l,e[16]=o):o=e[16];let f;e[17]!==t||e[18]!==c||e[19]!==o?(f=S.jsx(w,{filterOptions:o,filterSelection:t,setFilterSelection:c,coloredYears:!0}),e[17]=t,e[18]=c,e[19]=o,e[20]=f):f=e[20];const C=f;let d;e[21]===Symbol.for("react.memo_cache_sentinel")?(d=["TCS","Digicert","Sectigo (outside of TCS)","Let's Encrypt","Entrust Datacard"],e[21]=d):d=e[21];const h=d;let p;e[22]===Symbol.for("react.memo_cache_sentinel")?(p=new Map([["Sectigo (outside of TCS)","Sectigo"]]),e[22]=p):p=e[22];const y=p;let a;e[23]!==v?(a=S.jsx(F,{children:S.jsx(L,{columns:h,dataLookup:v,circle:!0,columnLookup:y})}),e[23]=v,e[24]=a):a=e[24];let m;return e[25]!==C||e[26]!==s||e[27]!==a?(m=S.jsx(T,{title:k["certificate-provider"],description:"The table below shows the kinds of Network Certificate Providers used by NRENs.",category:D.Network,filter:C,data:s,filename:"certificate_provider_nrens_per_year",children:a}),e[25]=C,e[26]=s,e[27]=a,e[28]=m):m=e[28],m}export{G as default}; +import{c as _,r as Y,F as j,j as S,t as k,S as D}from"./index-bwDVKb7d.js";import{u as E,g as P,D as T,F as w,f as F}from"./useData-Ba-3avp3.js";import{P as L}from"./PillTable-C7hMt52B.js";import"./SideBar-D_Yxr_mj.js";import"./xlsx-BHRztzV8.js";import"./index-Y7aK5es_.js";import"./hook-BGVjY_62.js";import"./ColorPill-D7RILPI9.js";import"./Table-D4mMg192.js";function G(){const e=_.c(29),{filterSelection:t,setFilterSelection:c}=Y.useContext(j),{data:N,years:x,nrens:b}=E("/api/certificate-providers",c);let s,n;if(e[0]!==N||e[1]!==t.selectedNrens||e[2]!==t.selectedYears){let u;e[5]!==t.selectedNrens||e[6]!==t.selectedYears?(u=g=>t.selectedYears.includes(g.year)&&t.selectedNrens.includes(g.nren),e[5]=t.selectedNrens,e[6]=t.selectedYears,e[7]=u):u=e[7],s=N.filter(u),n=P(s,"provider_names"),e[0]=N,e[1]=t.selectedNrens,e[2]=t.selectedYears,e[3]=s,e[4]=n}else s=e[3],n=e[4];const v=n;let r;e[8]!==x?(r=[...x],e[8]=x,e[9]=r):r=e[9];let i;e[10]!==b?(i=b.values(),e[10]=b,e[11]=i):i=e[11];let l;e[12]!==i?(l=[...i],e[12]=i,e[13]=l):l=e[13];let o;e[14]!==r||e[15]!==l?(o={availableYears:r,availableNrens:l},e[14]=r,e[15]=l,e[16]=o):o=e[16];let f;e[17]!==t||e[18]!==c||e[19]!==o?(f=S.jsx(w,{filterOptions:o,filterSelection:t,setFilterSelection:c,coloredYears:!0}),e[17]=t,e[18]=c,e[19]=o,e[20]=f):f=e[20];const C=f;let d;e[21]===Symbol.for("react.memo_cache_sentinel")?(d=["TCS","Digicert","Sectigo (outside of TCS)","Let's Encrypt","Entrust Datacard"],e[21]=d):d=e[21];const h=d;let p;e[22]===Symbol.for("react.memo_cache_sentinel")?(p=new Map([["Sectigo (outside of TCS)","Sectigo"]]),e[22]=p):p=e[22];const y=p;let a;e[23]!==v?(a=S.jsx(F,{children:S.jsx(L,{columns:h,dataLookup:v,circle:!0,columnLookup:y})}),e[23]=v,e[24]=a):a=e[24];let m;return e[25]!==C||e[26]!==s||e[27]!==a?(m=S.jsx(T,{title:k["certificate-provider"],description:"The table below shows the kinds of Network Certificate Providers used by NRENs.",category:D.Network,filter:C,data:s,filename:"certificate_provider_nrens_per_year",children:a}),e[25]=C,e[26]=s,e[27]=a,e[28]=m):m=e[28],m}export{G as default}; diff --git a/compendium_v2/static/ChargingStructure-CPkeaV7G.js b/compendium_v2/static/ChargingStructure-1_V-4vcV.js similarity index 83% rename from compendium_v2/static/ChargingStructure-CPkeaV7G.js rename to compendium_v2/static/ChargingStructure-1_V-4vcV.js index 91479751ad7192457efc36e631b09d27e2552e46..57e832ed06aeddceacf3d786e71a72eecaf154b8 100644 --- a/compendium_v2/static/ChargingStructure-CPkeaV7G.js +++ b/compendium_v2/static/ChargingStructure-1_V-4vcV.js @@ -1,3 +1,3 @@ -import{c as Y,r as j,F as v,j as p,t as E,S as F}from"./index-DBbSOdjk.js";import{u as D,g as R,D as k,F as w,f as P}from"./useData-CcKTpALT.js";import{P as T}from"./PillTable-CIcKqQJh.js";import"./SideBar-DfD7Pj8p.js";import"./xlsx-BHRztzV8.js";import"./index-DkYuYqrz.js";import"./hook-D9Tuu5oJ.js";import"./ColorPill-CuYEYQ56.js";import"./Table-DNomfHX4.js";function G(){const e=Y.c(29),C=L,{filterSelection:t,setFilterSelection:c}=j.useContext(v),{data:g,years:b,nrens:N}=D("/api/charging",c,C);let a,f;if(e[0]!==g||e[1]!==t.selectedNrens||e[2]!==t.selectedYears){let m;e[5]!==t.selectedNrens||e[6]!==t.selectedYears?(m=x=>t.selectedYears.includes(x.year)&&t.selectedNrens.includes(x.nren),e[5]=t.selectedNrens,e[6]=t.selectedYears,e[7]=m):m=e[7],a=g.filter(m),f=R(a,"fee_type"),e[0]=g,e[1]=t.selectedNrens,e[2]=t.selectedYears,e[3]=a,e[4]=f}else a=e[3],f=e[4];const _=f;let r;e[8]!==b?(r=[...b],e[8]=b,e[9]=r):r=e[9];let i;e[10]!==N?(i=N.values(),e[10]=N,e[11]=i):i=e[11];let l;e[12]!==i?(l=[...i],e[12]=i,e[13]=l):l=e[13];let n;e[14]!==r||e[15]!==l?(n={availableYears:r,availableNrens:l},e[14]=r,e[15]=l,e[16]=n):n=e[16];let u;e[17]!==t||e[18]!==c||e[19]!==n?(u=p.jsx(w,{filterOptions:n,filterSelection:t,setFilterSelection:c,coloredYears:!0}),e[17]=t,e[18]=c,e[19]=n,e[20]=u):u=e[20];const y=u;let s,d;e[21]===Symbol.for("react.memo_cache_sentinel")?(s=["Flat fee based on bandwidth","Usage based fee","Combination flat fee & usage basedfee","No Direct Charge","Other"],d=new Map([[s[0],"flat_fee"],[s[1],"usage_based_fee"],[s[2],"combination"],[s[3],"no_charge"],[s[4],"other"]]),e[21]=s,e[22]=d):(s=e[21],d=e[22]);const S=d;let o;e[23]!==_?(o=p.jsx(P,{children:p.jsx(T,{columns:s,dataLookup:_,columnLookup:S})}),e[23]=_,e[24]=o):o=e[24];let h;return e[25]!==y||e[26]!==a||e[27]!==o?(h=p.jsx(k,{title:E.charging,description:`The charging structure is the way in which NRENs charge their customers for the services they provide. +import{c as Y,r as j,F as v,j as p,t as E,S as F}from"./index-bwDVKb7d.js";import{u as D,g as R,D as k,F as w,f as P}from"./useData-Ba-3avp3.js";import{P as T}from"./PillTable-C7hMt52B.js";import"./SideBar-D_Yxr_mj.js";import"./xlsx-BHRztzV8.js";import"./index-Y7aK5es_.js";import"./hook-BGVjY_62.js";import"./ColorPill-D7RILPI9.js";import"./Table-D4mMg192.js";function G(){const e=Y.c(29),C=L,{filterSelection:t,setFilterSelection:c}=j.useContext(v),{data:g,years:b,nrens:N}=D("/api/charging",c,C);let a,f;if(e[0]!==g||e[1]!==t.selectedNrens||e[2]!==t.selectedYears){let m;e[5]!==t.selectedNrens||e[6]!==t.selectedYears?(m=x=>t.selectedYears.includes(x.year)&&t.selectedNrens.includes(x.nren),e[5]=t.selectedNrens,e[6]=t.selectedYears,e[7]=m):m=e[7],a=g.filter(m),f=R(a,"fee_type"),e[0]=g,e[1]=t.selectedNrens,e[2]=t.selectedYears,e[3]=a,e[4]=f}else a=e[3],f=e[4];const _=f;let r;e[8]!==b?(r=[...b],e[8]=b,e[9]=r):r=e[9];let i;e[10]!==N?(i=N.values(),e[10]=N,e[11]=i):i=e[11];let l;e[12]!==i?(l=[...i],e[12]=i,e[13]=l):l=e[13];let n;e[14]!==r||e[15]!==l?(n={availableYears:r,availableNrens:l},e[14]=r,e[15]=l,e[16]=n):n=e[16];let u;e[17]!==t||e[18]!==c||e[19]!==n?(u=p.jsx(w,{filterOptions:n,filterSelection:t,setFilterSelection:c,coloredYears:!0}),e[17]=t,e[18]=c,e[19]=n,e[20]=u):u=e[20];const y=u;let s,d;e[21]===Symbol.for("react.memo_cache_sentinel")?(s=["Flat fee based on bandwidth","Usage based fee","Combination flat fee & usage basedfee","No Direct Charge","Other"],d=new Map([[s[0],"flat_fee"],[s[1],"usage_based_fee"],[s[2],"combination"],[s[3],"no_charge"],[s[4],"other"]]),e[21]=s,e[22]=d):(s=e[21],d=e[22]);const S=d;let o;e[23]!==_?(o=p.jsx(P,{children:p.jsx(T,{columns:s,dataLookup:_,columnLookup:S})}),e[23]=_,e[24]=o):o=e[24];let h;return e[25]!==y||e[26]!==a||e[27]!==o?(h=p.jsx(k,{title:E.charging,description:`The charging structure is the way in which NRENs charge their customers for the services they provide. The charging structure can be based on a flat fee, usage based fee, a combination of both, or no direct charge. By selecting multiple years and NRENs, the table can be used to compare the charging structure of NRENs.`,category:F.Organisation,filter:y,data:a,filename:"charging_mechanism_of_nrens_per_year",children:o}),e[25]=y,e[26]=a,e[27]=o,e[28]=h):h=e[28],h}function L(e){return e.fee_type!=null}export{G as default}; diff --git a/compendium_v2/static/ColorPill-CuYEYQ56.js b/compendium_v2/static/ColorPill-D7RILPI9.js similarity index 92% rename from compendium_v2/static/ColorPill-CuYEYQ56.js rename to compendium_v2/static/ColorPill-D7RILPI9.js index 57f13e5a47e097bbea221b737fbb40e2b75d0089..fd09b38e0b6a226525f83d34637497b8d7f0a5af 100644 --- a/compendium_v2/static/ColorPill-CuYEYQ56.js +++ b/compendium_v2/static/ColorPill-D7RILPI9.js @@ -1 +1 @@ -import{c as m,j as a}from"./index-DBbSOdjk.js";function f(p){const t=m.c(10),{year:e,active:s,tooltip:i,rounded:c}=p,n=(c===void 0?!1:c)?"30px":"75px";let d;t[0]!==n?(d={width:n,height:"30px",margin:"2px"},t[0]=n,t[1]=d):d=t[1];const l=d;let o;t[2]!==s||t[3]!==l||t[4]!==i||t[5]!==e?(o=s&&i?a.jsx("div",{className:`rounded-pill bg-color-of-the-year-${e%9} bottom-tooltip pill-shadow`,style:l,"data-description":`${e}: ${i}`}):s?a.jsx("div",{className:`rounded-pill bg-color-of-the-year-${e%9} bottom-tooltip-small`,style:l,"data-description":e}):a.jsx("div",{className:"rounded-pill bg-color-of-the-year-blank",style:l}),t[2]=s,t[3]=l,t[4]=i,t[5]=e,t[6]=o):o=t[6];let r;return t[7]!==o||t[8]!==e?(r=a.jsx("div",{className:"d-inline-block",children:o},e),t[7]=o,t[8]=e,t[9]=r):r=t[9],r}export{f as C}; +import{c as m,j as a}from"./index-bwDVKb7d.js";function f(p){const t=m.c(10),{year:e,active:s,tooltip:i,rounded:c}=p,n=(c===void 0?!1:c)?"30px":"75px";let d;t[0]!==n?(d={width:n,height:"30px",margin:"2px"},t[0]=n,t[1]=d):d=t[1];const l=d;let o;t[2]!==s||t[3]!==l||t[4]!==i||t[5]!==e?(o=s&&i?a.jsx("div",{className:`rounded-pill bg-color-of-the-year-${e%9} bottom-tooltip pill-shadow`,style:l,"data-description":`${e}: ${i}`}):s?a.jsx("div",{className:`rounded-pill bg-color-of-the-year-${e%9} bottom-tooltip-small`,style:l,"data-description":e}):a.jsx("div",{className:"rounded-pill bg-color-of-the-year-blank",style:l}),t[2]=s,t[3]=l,t[4]=i,t[5]=e,t[6]=o):o=t[6];let r;return t[7]!==o||t[8]!==e?(r=a.jsx("div",{className:"d-inline-block",children:o},e),t[7]=o,t[8]=e,t[9]=r):r=t[9],r}export{f as C}; diff --git a/compendium_v2/static/ConnectedInstitutionsURLs-BmsNaWXO.js b/compendium_v2/static/ConnectedInstitutionsURLs-B0cjkEDo.js similarity index 78% rename from compendium_v2/static/ConnectedInstitutionsURLs-BmsNaWXO.js rename to compendium_v2/static/ConnectedInstitutionsURLs-B0cjkEDo.js index 8750ac9332eb0d6c9f79ef8da84723c75fbdf5c3..4257c3dbdd09d2eeb6fa5ed5bf6cb885f65a8b61 100644 --- a/compendium_v2/static/ConnectedInstitutionsURLs-BmsNaWXO.js +++ b/compendium_v2/static/ConnectedInstitutionsURLs-B0cjkEDo.js @@ -1 +1 @@ -import{c as g,r as y,F as C,j as x,t as L,S as R}from"./index-DBbSOdjk.js";import{u as S,q as k,k as v,i as F,D as T,F as U,f as w,s as E}from"./useData-CcKTpALT.js";import{N as O}from"./NrenYearTable-C1JRhqy_.js";import"./SideBar-DfD7Pj8p.js";import"./xlsx-BHRztzV8.js";import"./index-DkYuYqrz.js";import"./hook-D9Tuu5oJ.js";import"./Table-DNomfHX4.js";function G(){const t=g.c(24),{filterSelection:e,setFilterSelection:s}=y.useContext(C),{data:i,nrens:a}=S("/api/institution-urls",s);let n,o,u;if(t[0]!==i||t[1]!==e||t[2]!==a||t[3]!==s){const j=i?k(i):[];let d;t[7]!==e.selectedNrens?(d=N=>e.selectedNrens.includes(N.nren),t[7]=e.selectedNrens,t[8]=d):d=t[8];const D=j.filter(d),h=v(D);n=F(h,_);let m;t[9]===Symbol.for("react.memo_cache_sentinel")?(m=[],t[9]=m):m=t[9];let l;t[10]!==a?(l=a.values(),t[10]=a,t[11]=l):l=t[11];let c;t[12]!==l?(c={availableYears:m,availableNrens:[...l]},t[12]=l,t[13]=c):c=t[13];let p;t[14]!==e||t[15]!==s||t[16]!==c?(p=x.jsx(U,{filterOptions:c,filterSelection:e,setFilterSelection:s}),t[14]=e,t[15]=s,t[16]=c,t[17]=p):p=t[17],o=p,u=D.map(Y),t[0]=i,t[1]=e,t[2]=a,t[3]=s,t[4]=n,t[5]=o,t[6]=u}else n=t[4],o=t[5],u=t[6];const b=u;let r;t[18]!==n?(r=x.jsx(w,{children:x.jsx(O,{data:n,columnTitle:"Institution URLs",keysAreURLs:!0,noDots:!0})}),t[18]=n,t[19]=r):r=t[19];let f;return t[20]!==b||t[21]!==o||t[22]!==r?(f=x.jsx(T,{title:L["institutions-urls"],description:"Many NRENs have a page on their website listing user institutions. Links to the pages are shown in the table below.",category:R.ConnectedUsers,filter:o,data:b,filename:"institution_urls",children:r}),t[20]=b,t[21]=o,t[22]=r,t[23]=f):f=t[23],f}function Y(t){return{...t,urls:(t.urls??[]).join(", ")}}function _(t,e){const s=E(e);if(s!=null)for(const[i,a]of Object.entries(s))t[i]=a}export{G as default}; +import{c as g,r as y,F as C,j as x,t as L,S as R}from"./index-bwDVKb7d.js";import{u as S,q as k,k as v,i as F,D as T,F as U,f as w,s as E}from"./useData-Ba-3avp3.js";import{N as O}from"./NrenYearTable-9mB4hcmt.js";import"./SideBar-D_Yxr_mj.js";import"./xlsx-BHRztzV8.js";import"./index-Y7aK5es_.js";import"./hook-BGVjY_62.js";import"./Table-D4mMg192.js";function G(){const t=g.c(24),{filterSelection:e,setFilterSelection:s}=y.useContext(C),{data:i,nrens:a}=S("/api/institution-urls",s);let n,o,u;if(t[0]!==i||t[1]!==e||t[2]!==a||t[3]!==s){const j=i?k(i):[];let d;t[7]!==e.selectedNrens?(d=N=>e.selectedNrens.includes(N.nren),t[7]=e.selectedNrens,t[8]=d):d=t[8];const D=j.filter(d),h=v(D);n=F(h,_);let m;t[9]===Symbol.for("react.memo_cache_sentinel")?(m=[],t[9]=m):m=t[9];let l;t[10]!==a?(l=a.values(),t[10]=a,t[11]=l):l=t[11];let c;t[12]!==l?(c={availableYears:m,availableNrens:[...l]},t[12]=l,t[13]=c):c=t[13];let p;t[14]!==e||t[15]!==s||t[16]!==c?(p=x.jsx(U,{filterOptions:c,filterSelection:e,setFilterSelection:s}),t[14]=e,t[15]=s,t[16]=c,t[17]=p):p=t[17],o=p,u=D.map(Y),t[0]=i,t[1]=e,t[2]=a,t[3]=s,t[4]=n,t[5]=o,t[6]=u}else n=t[4],o=t[5],u=t[6];const b=u;let r;t[18]!==n?(r=x.jsx(w,{children:x.jsx(O,{data:n,columnTitle:"Institution URLs",keysAreURLs:!0,noDots:!0})}),t[18]=n,t[19]=r):r=t[19];let f;return t[20]!==b||t[21]!==o||t[22]!==r?(f=x.jsx(T,{title:L["institutions-urls"],description:"Many NRENs have a page on their website listing user institutions. Links to the pages are shown in the table below.",category:R.ConnectedUsers,filter:o,data:b,filename:"institution_urls",children:r}),t[20]=b,t[21]=o,t[22]=r,t[23]=f):f=t[23],f}function Y(t){return{...t,urls:(t.urls??[]).join(", ")}}function _(t,e){const s=E(e);if(s!=null)for(const[i,a]of Object.entries(s))t[i]=a}export{G as default}; diff --git a/compendium_v2/static/ConnectedUser-CfYJAE0v.js b/compendium_v2/static/ConnectedUser-B-GDv3Er.js similarity index 95% rename from compendium_v2/static/ConnectedUser-CfYJAE0v.js rename to compendium_v2/static/ConnectedUser-B-GDv3Er.js index f5c0c7fe0f6e46dddf81113b11186a6b59ca61e9..ae074be0c987f9f221b5bf6b48a7550996339a60 100644 --- a/compendium_v2/static/ConnectedUser-CfYJAE0v.js +++ b/compendium_v2/static/ConnectedUser-B-GDv3Er.js @@ -1 +1 @@ -import{a as t,t as l,j as o,L as Y,c as F,r as U,F as D,S as A,b as T,d as P,U as j}from"./index-DBbSOdjk.js";import{u as G,r as u,D as $,F as q,f as B}from"./useData-CcKTpALT.js";import{S as z}from"./ScrollableMatrix-CNydABqZ.js";import"./SideBar-DfD7Pj8p.js";import"./xlsx-BHRztzV8.js";import"./index-DkYuYqrz.js";import"./hook-D9Tuu5oJ.js";import"./Table-DNomfHX4.js";const I={[t.ConnectedProportion]:l["connected-proportion"],[t.ConnectivityLevel]:l["connectivity-level"],[t.ConnectionCarrier]:l["connection-carrier"],[t.ConnectivityLoad]:l["connectivity-load"],[t.ConnectivityGrowth]:l["connectivity-growth"],[t.CommercialChargingLevel]:l["commercial-charging-level"],[t.CommercialConnectivity]:l["commercial-connectivity"]},H={[t.ConnectedProportion]:o.jsxs("span",{children:["European NRENs all have different connectivity remits, as is shown in the table below. The categories of institutions make use of the ISCED 2011 classification system, the UNESCO scheme for International Standard Classification of Education.",o.jsx("br",{}),"The table shows whether a particular category of institution falls within the connectivity remit of the NREN, the actual number of such institutions connected, the % market share this represents, and the actual number of end users served in the category."]}),[t.ConnectivityLevel]:o.jsxs("span",{children:["The table below shows the average level of connectivity for each category of institution. The connectivity remit of different NRENs is shown on a different page, and NRENs are asked, at a minimum, to provide information about the typical and highest capacities (in Mbit/s) at which Universities and Research Institutes are connected.",o.jsx("br",{}),"NRENs are also asked to show proportionally how many institutions are connected at the highest capacity they offer."]}),[t.ConnectionCarrier]:o.jsxs("span",{children:["The table below shows the different mechanisms employed by NRENs to carry traffic to the different types of users they serve. Not all NRENs connect all of the types of institution listed below - details of connectivity remits can be found here: ",o.jsx(Y,{to:"/connected-proportion",className:"",children:o.jsx("span",{children:I[t.ConnectedProportion]})})]}),[t.ConnectivityLoad]:o.jsx("span",{children:"The table below shows the traffic load in Mbit/s to and from institutions served by NRENs; both the average load, and peak load, when given. The types of institutions are broken down using the ISCED 2011 classification system (the UNESCO scheme for International Standard Classification of Education), plus other types."}),[t.ConnectivityGrowth]:o.jsx("span",{children:"The table below illustrates the anticipated traffic growth within NREN networks over the next three years."}),[t.CommercialChargingLevel]:o.jsx("span",{children:"The table below outlines the typical charging levels for various types of commercial connections."}),[t.CommercialConnectivity]:o.jsx("span",{children:"The table below outlines the types of commercial organizations NRENs connect."})},L={[t.ConnectedProportion]:{"Remit cover connectivity":"coverage","Number of institutions connected":"number_connected","Percentage market share of institutions connected":"market_share","Number of users served":"users_served"},[t.ConnectivityLevel]:{"Typical link speed (Mbit/s):":"typical_speed","Highest speed link (Mbit/s):":"highest_speed","Proportionally how many institutions in this category are connected at the highest capacity? (%):":"highest_speed_proportion"},[t.ConnectionCarrier]:{"Commercial Provider Backbone":"commercial_provider_backbone","NREN Local Loops":"nren_local_loops","Regional NREN Backbone":"regional_nren_backbone",MAN:"man",Other:"other"},[t.ConnectivityLoad]:{"Average Load From Institutions (Mbit/s)":"average_load_from_institutions","Average Load To Institutions (Mbit/s)":"average_load_to_institutions","Peak Load To Institution (Mbit/s)":"peak_load_to_institutions","Peak Load From Institution (Mbit/s)":"peak_load_from_institutions"},[t.ConnectivityGrowth]:{"Percentage growth":"growth"},[t.CommercialChargingLevel]:{"No charges applied if requested by R&E users":"no_charges_if_r_e_requested","Same charging model as for R&E users":"same_as_r_e_charges","Charges typically higher than for R&E users":"higher_than_r_e_charges","Charges typically lower than for R&E users":"lower_than_r_e_charges"},[t.CommercialConnectivity]:{"No - but we offer a direct or IX peering":"no_but_direct_peering","No - not eligible for policy reasons":"no_policy","No - financial restrictions (NREN is unable to charge/recover costs)":"no_financial","No - other reason / unsure":"no_other","Yes - National NREN access only":"yes_national_nren","Yes - Including transit to other networks":"yes_incl_other","Yes - only if sponsored by a connected institution":"yes_if_sponsored"}};function te(M){const e=F.c(36),{page:n}=M,O=`/api/connected-${n.toString()}`,{filterSelection:i,setFilterSelection:y}=U.useContext(D),{data:_,years:b,nrens:N}=G(O,y);let r,a,c,s;if(e[0]!==_||e[1]!==i.selectedNrens||e[2]!==i.selectedYears||e[3]!==n){let C;e[8]!==i.selectedNrens||e[9]!==i.selectedYears?(C=S=>i.selectedYears.includes(S.year)&&i.selectedNrens.includes(S.nren),e[8]=i.selectedNrens,e[9]=i.selectedYears,e[10]=C):C=e[10],s=_.filter(C),c=!1,n==t.CommercialConnectivity?(r=T,c=!0,a=u(s,Object.keys(T),void 0)):n==t.CommercialChargingLevel?(r=P,c=!0,a=u(s,Object.keys(P),void 0)):n==t.ConnectionCarrier?(r=j,c=!0,a=u(s,["carry_mechanism"],"user_category")):n==t.ConnectedProportion?(r=j,a=u(s,Object.values(L[n]),"user_category",!1)):(r=j,a=u(s,Object.values(L[n]),"user_category",!1)),e[0]=_,e[1]=i.selectedNrens,e[2]=i.selectedYears,e[3]=n,e[4]=r,e[5]=a,e[6]=c,e[7]=s}else r=e[4],a=e[5],c=e[6],s=e[7];let h;e[11]!==b?(h=[...b],e[11]=b,e[12]=h):h=e[12];let d;e[13]!==N?(d=N.values(),e[13]=N,e[14]=d):d=e[14];let f;e[15]!==d?(f=[...d],e[15]=d,e[16]=f):f=e[16];let p;e[17]!==h||e[18]!==f?(p={availableYears:h,availableNrens:f},e[17]=h,e[18]=f,e[19]=p):p=e[19];let g;e[20]!==i||e[21]!==y||e[22]!==p?(g=o.jsx(q,{filterOptions:p,filterSelection:i,setFilterSelection:y}),e[20]=i,e[21]=y,e[22]=p,e[23]=g):g=e[23];const w=g,E=L[n],k=`nren_connected_${n.toString()}`,x=I[n],R=H[n];let m;e[24]!==r||e[25]!==a||e[26]!==c||e[27]!==E?(m=o.jsx(B,{children:o.jsx(z,{dataLookup:a,rowInfo:E,isTickIcon:c,categoryLookup:r})}),e[24]=r,e[25]=a,e[26]=c,e[27]=E,e[28]=m):m=e[28];let v;return e[29]!==k||e[30]!==w||e[31]!==s||e[32]!==x||e[33]!==R||e[34]!==m?(v=o.jsx($,{title:x,description:R,category:A.ConnectedUsers,filter:w,data:s,filename:k,children:m}),e[29]=k,e[30]=w,e[31]=s,e[32]=x,e[33]=R,e[34]=m,e[35]=v):v=e[35],v}export{te as default}; +import{a as t,t as l,j as o,L as Y,c as F,r as U,F as D,S as A,b as T,d as P,U as j}from"./index-bwDVKb7d.js";import{u as G,r as u,D as $,F as q,f as B}from"./useData-Ba-3avp3.js";import{S as z}from"./ScrollableMatrix-BXISTRn4.js";import"./SideBar-D_Yxr_mj.js";import"./xlsx-BHRztzV8.js";import"./index-Y7aK5es_.js";import"./hook-BGVjY_62.js";import"./Table-D4mMg192.js";const I={[t.ConnectedProportion]:l["connected-proportion"],[t.ConnectivityLevel]:l["connectivity-level"],[t.ConnectionCarrier]:l["connection-carrier"],[t.ConnectivityLoad]:l["connectivity-load"],[t.ConnectivityGrowth]:l["connectivity-growth"],[t.CommercialChargingLevel]:l["commercial-charging-level"],[t.CommercialConnectivity]:l["commercial-connectivity"]},H={[t.ConnectedProportion]:o.jsxs("span",{children:["European NRENs all have different connectivity remits, as is shown in the table below. The categories of institutions make use of the ISCED 2011 classification system, the UNESCO scheme for International Standard Classification of Education.",o.jsx("br",{}),"The table shows whether a particular category of institution falls within the connectivity remit of the NREN, the actual number of such institutions connected, the % market share this represents, and the actual number of end users served in the category."]}),[t.ConnectivityLevel]:o.jsxs("span",{children:["The table below shows the average level of connectivity for each category of institution. The connectivity remit of different NRENs is shown on a different page, and NRENs are asked, at a minimum, to provide information about the typical and highest capacities (in Mbit/s) at which Universities and Research Institutes are connected.",o.jsx("br",{}),"NRENs are also asked to show proportionally how many institutions are connected at the highest capacity they offer."]}),[t.ConnectionCarrier]:o.jsxs("span",{children:["The table below shows the different mechanisms employed by NRENs to carry traffic to the different types of users they serve. Not all NRENs connect all of the types of institution listed below - details of connectivity remits can be found here: ",o.jsx(Y,{to:"/connected-proportion",className:"",children:o.jsx("span",{children:I[t.ConnectedProportion]})})]}),[t.ConnectivityLoad]:o.jsx("span",{children:"The table below shows the traffic load in Mbit/s to and from institutions served by NRENs; both the average load, and peak load, when given. The types of institutions are broken down using the ISCED 2011 classification system (the UNESCO scheme for International Standard Classification of Education), plus other types."}),[t.ConnectivityGrowth]:o.jsx("span",{children:"The table below illustrates the anticipated traffic growth within NREN networks over the next three years."}),[t.CommercialChargingLevel]:o.jsx("span",{children:"The table below outlines the typical charging levels for various types of commercial connections."}),[t.CommercialConnectivity]:o.jsx("span",{children:"The table below outlines the types of commercial organizations NRENs connect."})},L={[t.ConnectedProportion]:{"Remit cover connectivity":"coverage","Number of institutions connected":"number_connected","Percentage market share of institutions connected":"market_share","Number of users served":"users_served"},[t.ConnectivityLevel]:{"Typical link speed (Mbit/s):":"typical_speed","Highest speed link (Mbit/s):":"highest_speed","Proportionally how many institutions in this category are connected at the highest capacity? (%):":"highest_speed_proportion"},[t.ConnectionCarrier]:{"Commercial Provider Backbone":"commercial_provider_backbone","NREN Local Loops":"nren_local_loops","Regional NREN Backbone":"regional_nren_backbone",MAN:"man",Other:"other"},[t.ConnectivityLoad]:{"Average Load From Institutions (Mbit/s)":"average_load_from_institutions","Average Load To Institutions (Mbit/s)":"average_load_to_institutions","Peak Load To Institution (Mbit/s)":"peak_load_to_institutions","Peak Load From Institution (Mbit/s)":"peak_load_from_institutions"},[t.ConnectivityGrowth]:{"Percentage growth":"growth"},[t.CommercialChargingLevel]:{"No charges applied if requested by R&E users":"no_charges_if_r_e_requested","Same charging model as for R&E users":"same_as_r_e_charges","Charges typically higher than for R&E users":"higher_than_r_e_charges","Charges typically lower than for R&E users":"lower_than_r_e_charges"},[t.CommercialConnectivity]:{"No - but we offer a direct or IX peering":"no_but_direct_peering","No - not eligible for policy reasons":"no_policy","No - financial restrictions (NREN is unable to charge/recover costs)":"no_financial","No - other reason / unsure":"no_other","Yes - National NREN access only":"yes_national_nren","Yes - Including transit to other networks":"yes_incl_other","Yes - only if sponsored by a connected institution":"yes_if_sponsored"}};function te(M){const e=F.c(36),{page:n}=M,O=`/api/connected-${n.toString()}`,{filterSelection:i,setFilterSelection:y}=U.useContext(D),{data:_,years:b,nrens:N}=G(O,y);let r,a,c,s;if(e[0]!==_||e[1]!==i.selectedNrens||e[2]!==i.selectedYears||e[3]!==n){let C;e[8]!==i.selectedNrens||e[9]!==i.selectedYears?(C=S=>i.selectedYears.includes(S.year)&&i.selectedNrens.includes(S.nren),e[8]=i.selectedNrens,e[9]=i.selectedYears,e[10]=C):C=e[10],s=_.filter(C),c=!1,n==t.CommercialConnectivity?(r=T,c=!0,a=u(s,Object.keys(T),void 0)):n==t.CommercialChargingLevel?(r=P,c=!0,a=u(s,Object.keys(P),void 0)):n==t.ConnectionCarrier?(r=j,c=!0,a=u(s,["carry_mechanism"],"user_category")):n==t.ConnectedProportion?(r=j,a=u(s,Object.values(L[n]),"user_category",!1)):(r=j,a=u(s,Object.values(L[n]),"user_category",!1)),e[0]=_,e[1]=i.selectedNrens,e[2]=i.selectedYears,e[3]=n,e[4]=r,e[5]=a,e[6]=c,e[7]=s}else r=e[4],a=e[5],c=e[6],s=e[7];let h;e[11]!==b?(h=[...b],e[11]=b,e[12]=h):h=e[12];let d;e[13]!==N?(d=N.values(),e[13]=N,e[14]=d):d=e[14];let f;e[15]!==d?(f=[...d],e[15]=d,e[16]=f):f=e[16];let p;e[17]!==h||e[18]!==f?(p={availableYears:h,availableNrens:f},e[17]=h,e[18]=f,e[19]=p):p=e[19];let g;e[20]!==i||e[21]!==y||e[22]!==p?(g=o.jsx(q,{filterOptions:p,filterSelection:i,setFilterSelection:y}),e[20]=i,e[21]=y,e[22]=p,e[23]=g):g=e[23];const w=g,E=L[n],k=`nren_connected_${n.toString()}`,x=I[n],R=H[n];let m;e[24]!==r||e[25]!==a||e[26]!==c||e[27]!==E?(m=o.jsx(B,{children:o.jsx(z,{dataLookup:a,rowInfo:E,isTickIcon:c,categoryLookup:r})}),e[24]=r,e[25]=a,e[26]=c,e[27]=E,e[28]=m):m=e[28];let v;return e[29]!==k||e[30]!==w||e[31]!==s||e[32]!==x||e[33]!==R||e[34]!==m?(v=o.jsx($,{title:x,description:R,category:A.ConnectedUsers,filter:w,data:s,filename:k,children:m}),e[29]=k,e[30]=w,e[31]=s,e[32]=x,e[33]=R,e[34]=m,e[35]=v):v=e[35],v}export{te as default}; diff --git a/compendium_v2/static/CorporateStrategy-B96fGlR3.js b/compendium_v2/static/CorporateStrategy-BxCdux2s.js similarity index 79% rename from compendium_v2/static/CorporateStrategy-B96fGlR3.js rename to compendium_v2/static/CorporateStrategy-BxCdux2s.js index d1225269ef5040774563674a033cd9ecb9722c34..b677f28b9d55fd905a2efa4488ef5f0bab575d63 100644 --- a/compendium_v2/static/CorporateStrategy-B96fGlR3.js +++ b/compendium_v2/static/CorporateStrategy-BxCdux2s.js @@ -1,3 +1,3 @@ -import{c as v,r as _,F as b,j as f,t as S,S as k}from"./index-DBbSOdjk.js";import{u as C,q as j,k as E,i as F,D as R,F as T,f as Y}from"./useData-CcKTpALT.js";import{N as w}from"./NrenYearTable-C1JRhqy_.js";import"./SideBar-DfD7Pj8p.js";import"./xlsx-BHRztzV8.js";import"./index-DkYuYqrz.js";import"./hook-D9Tuu5oJ.js";import"./Table-DNomfHX4.js";function H(){const e=v.c(21),u=P,{filterSelection:t,setFilterSelection:i}=_.useContext(b),{data:l,nrens:y}=C("/api/policy",i,u);let a,n;if(e[0]!==l||e[1]!==t.selectedNrens){const N=l?j(l):[];let d;e[4]!==t.selectedNrens?(d=D=>t.selectedNrens.includes(D.nren),e[4]=t.selectedNrens,e[5]=d):d=e[5],a=N.filter(d);const x=E(a);n=F(x,L),e[0]=l,e[1]=t.selectedNrens,e[2]=a,e[3]=n}else a=e[2],n=e[3];const g=n;let c;e[6]===Symbol.for("react.memo_cache_sentinel")?(c=[],e[6]=c):c=e[6];let s;e[7]!==y?(s=y.values(),e[7]=y,e[8]=s):s=e[8];let r;e[9]!==s?(r={availableYears:c,availableNrens:[...s]},e[9]=s,e[10]=r):r=e[10];let p;e[11]!==t||e[12]!==i||e[13]!==r?(p=f.jsx(T,{filterOptions:r,filterSelection:t,setFilterSelection:i}),e[11]=t,e[12]=i,e[13]=r,e[14]=p):p=e[14];const h=p;let o;e[15]!==g?(o=f.jsx(Y,{children:f.jsx(w,{data:g,columnTitle:"Corporate Strategy",noDots:!0,keysAreURLs:!0,removeDecoration:!0})}),e[15]=g,e[16]=o):o=e[16];let m;return e[17]!==h||e[18]!==a||e[19]!==o?(m=f.jsx(R,{title:S["corporate-strategy"],description:`The table below contains links to the NRENs most recent corporate strategic plans. +import{c as v,r as _,F as b,j as f,t as S,S as k}from"./index-bwDVKb7d.js";import{u as C,q as j,k as E,i as F,D as R,F as T,f as Y}from"./useData-Ba-3avp3.js";import{N as w}from"./NrenYearTable-9mB4hcmt.js";import"./SideBar-D_Yxr_mj.js";import"./xlsx-BHRztzV8.js";import"./index-Y7aK5es_.js";import"./hook-BGVjY_62.js";import"./Table-D4mMg192.js";function H(){const e=v.c(21),u=P,{filterSelection:t,setFilterSelection:i}=_.useContext(b),{data:l,nrens:y}=C("/api/policy",i,u);let a,n;if(e[0]!==l||e[1]!==t.selectedNrens){const N=l?j(l):[];let d;e[4]!==t.selectedNrens?(d=D=>t.selectedNrens.includes(D.nren),e[4]=t.selectedNrens,e[5]=d):d=e[5],a=N.filter(d);const x=E(a);n=F(x,L),e[0]=l,e[1]=t.selectedNrens,e[2]=a,e[3]=n}else a=e[2],n=e[3];const g=n;let c;e[6]===Symbol.for("react.memo_cache_sentinel")?(c=[],e[6]=c):c=e[6];let s;e[7]!==y?(s=y.values(),e[7]=y,e[8]=s):s=e[8];let r;e[9]!==s?(r={availableYears:c,availableNrens:[...s]},e[9]=s,e[10]=r):r=e[10];let p;e[11]!==t||e[12]!==i||e[13]!==r?(p=f.jsx(T,{filterOptions:r,filterSelection:t,setFilterSelection:i}),e[11]=t,e[12]=i,e[13]=r,e[14]=p):p=e[14];const h=p;let o;e[15]!==g?(o=f.jsx(Y,{children:f.jsx(w,{data:g,columnTitle:"Corporate Strategy",noDots:!0,keysAreURLs:!0,removeDecoration:!0})}),e[15]=g,e[16]=o):o=e[16];let m;return e[17]!==h||e[18]!==a||e[19]!==o?(m=f.jsx(R,{title:S["corporate-strategy"],description:`The table below contains links to the NRENs most recent corporate strategic plans. NRENs are asked if updates have been made to their corporate strategy over the previous year. To avoid showing outdated links, only the most recent responses are shown.`,category:k.Policy,filter:h,data:a,filename:"nren_corporate_strategy",children:o}),e[17]=h,e[18]=a,e[19]=o,e[20]=m):m=e[20],m}function L(e,u){const t=u.strategic_plan;e[t]=t}function P(e){return!!e.strategic_plan}export{H as default}; diff --git a/compendium_v2/static/CrisisExercises-D8VSuWUx.js b/compendium_v2/static/CrisisExercises-E4bPkDFW.js similarity index 87% rename from compendium_v2/static/CrisisExercises-D8VSuWUx.js rename to compendium_v2/static/CrisisExercises-E4bPkDFW.js index e9cee4b86879982757118de05b058212f4a72ac7..fd6c23c8a01748375a9074b302a5fd0579279d54 100644 --- a/compendium_v2/static/CrisisExercises-D8VSuWUx.js +++ b/compendium_v2/static/CrisisExercises-E4bPkDFW.js @@ -1,2 +1,2 @@ -import{c as P,r as S,F as D,S as L,j as W,t as M}from"./index-DBbSOdjk.js";import{u as R,g as O,F as A,D as G,f as V}from"./useData-CcKTpALT.js";import{P as $}from"./PillTable-CIcKqQJh.js";import"./SideBar-DfD7Pj8p.js";import"./xlsx-BHRztzV8.js";import"./index-DkYuYqrz.js";import"./hook-D9Tuu5oJ.js";import"./ColorPill-CuYEYQ56.js";import"./Table-DNomfHX4.js";function Z(){const e=P.c(51),{filterSelection:t,setFilterSelection:i}=S.useContext(D),{data:C,years:E,nrens:T}=R("/api/crisis-exercises",i);let s,w;if(e[0]!==C||e[1]!==t.selectedNrens||e[2]!==t.selectedYears){let r;e[5]!==t.selectedNrens||e[6]!==t.selectedYears?(r=F=>t.selectedYears.includes(F.year)&&t.selectedNrens.includes(F.nren),e[5]=t.selectedNrens,e[6]=t.selectedYears,e[7]=r):r=e[7],s=C.filter(r),w=O(s,"exercise_descriptions"),e[0]=C,e[1]=t.selectedNrens,e[2]=t.selectedYears,e[3]=s,e[4]=w}else s=e[3],w=e[4];const Y=w;let a;e[8]!==E?(a=[...E],e[8]=E,e[9]=a):a=e[9];let l;e[10]!==T?(l=T.values(),e[10]=T,e[11]=l):l=e[11];let n;e[12]!==l?(n=[...l],e[12]=l,e[13]=n):n=e[13];let o;e[14]!==a||e[15]!==n?(o={availableYears:a,availableNrens:n},e[14]=a,e[15]=n,e[16]=o):o=e[16];let v;e[17]!==t||e[18]!==i||e[19]!==o?(v=W.jsx(A,{filterOptions:o,filterSelection:t,setFilterSelection:i,coloredYears:!0}),e[17]=t,e[18]=i,e[19]=o,e[20]=v):v=e[20];const k=v;let c,p,u,d,m,x,f,h,N,_,y;if(e[21]!==k||e[22]!==s){const r={geant_workshops:"We participate in GEANT Crisis workshops such as CLAW",national_excercises:"We participated in National crisis exercises ",tabletop_exercises:"We run our own tabletop exercises",simulation_excercises:"We run our own simulation exercises",other_excercises:"We have done/participated in other exercises or trainings",real_crisis:"We had a real crisis",internal_security_programme:"We run an internal security awareness programme",none:"No, we have not done any crisis exercises or trainings"};d=new Map(Object.entries(r).map(q)),u=G,N=M["crisis-exercise"],_=`Many NRENs run or participate in crisis exercises to test procedures and train employees. +import{c as P,r as S,F as D,S as L,j as W,t as M}from"./index-bwDVKb7d.js";import{u as R,g as O,F as A,D as G,f as V}from"./useData-Ba-3avp3.js";import{P as $}from"./PillTable-C7hMt52B.js";import"./SideBar-D_Yxr_mj.js";import"./xlsx-BHRztzV8.js";import"./index-Y7aK5es_.js";import"./hook-BGVjY_62.js";import"./ColorPill-D7RILPI9.js";import"./Table-D4mMg192.js";function Z(){const e=P.c(51),{filterSelection:t,setFilterSelection:i}=S.useContext(D),{data:C,years:E,nrens:T}=R("/api/crisis-exercises",i);let s,w;if(e[0]!==C||e[1]!==t.selectedNrens||e[2]!==t.selectedYears){let r;e[5]!==t.selectedNrens||e[6]!==t.selectedYears?(r=F=>t.selectedYears.includes(F.year)&&t.selectedNrens.includes(F.nren),e[5]=t.selectedNrens,e[6]=t.selectedYears,e[7]=r):r=e[7],s=C.filter(r),w=O(s,"exercise_descriptions"),e[0]=C,e[1]=t.selectedNrens,e[2]=t.selectedYears,e[3]=s,e[4]=w}else s=e[3],w=e[4];const Y=w;let a;e[8]!==E?(a=[...E],e[8]=E,e[9]=a):a=e[9];let l;e[10]!==T?(l=T.values(),e[10]=T,e[11]=l):l=e[11];let n;e[12]!==l?(n=[...l],e[12]=l,e[13]=n):n=e[13];let o;e[14]!==a||e[15]!==n?(o={availableYears:a,availableNrens:n},e[14]=a,e[15]=n,e[16]=o):o=e[16];let v;e[17]!==t||e[18]!==i||e[19]!==o?(v=W.jsx(A,{filterOptions:o,filterSelection:t,setFilterSelection:i,coloredYears:!0}),e[17]=t,e[18]=i,e[19]=o,e[20]=v):v=e[20];const k=v;let c,p,u,d,m,x,f,h,N,_,y;if(e[21]!==k||e[22]!==s){const r={geant_workshops:"We participate in GEANT Crisis workshops such as CLAW",national_excercises:"We participated in National crisis exercises ",tabletop_exercises:"We run our own tabletop exercises",simulation_excercises:"We run our own simulation exercises",other_excercises:"We have done/participated in other exercises or trainings",real_crisis:"We had a real crisis",internal_security_programme:"We run an internal security awareness programme",none:"No, we have not done any crisis exercises or trainings"};d=new Map(Object.entries(r).map(q)),u=G,N=M["crisis-exercise"],_=`Many NRENs run or participate in crisis exercises to test procedures and train employees. The table below shows whether NRENs have run or participated in an exercise in the previous year. `,y=L.Policy,m=k,x=s,f="crisis_exercise_nrens_per_year",p=V,c=$,h=Object.values(r),e[21]=k,e[22]=s,e[23]=c,e[24]=p,e[25]=u,e[26]=d,e[27]=m,e[28]=x,e[29]=f,e[30]=h,e[31]=N,e[32]=_,e[33]=y}else c=e[23],p=e[24],u=e[25],d=e[26],m=e[27],x=e[28],f=e[29],h=e[30],N=e[31],_=e[32],y=e[33];let b;e[34]!==c||e[35]!==d||e[36]!==Y||e[37]!==h?(b=W.jsx(c,{columns:h,dataLookup:Y,circle:!0,columnLookup:d}),e[34]=c,e[35]=d,e[36]=Y,e[37]=h,e[38]=b):b=e[38];let g;e[39]!==p||e[40]!==b?(g=W.jsx(p,{children:b}),e[39]=p,e[40]=b,e[41]=g):g=e[41];let j;return e[42]!==u||e[43]!==m||e[44]!==x||e[45]!==f||e[46]!==g||e[47]!==N||e[48]!==_||e[49]!==y?(j=W.jsx(u,{title:N,description:_,category:y,filter:m,data:x,filename:f,children:g}),e[42]=u,e[43]=m,e[44]=x,e[45]=f,e[46]=g,e[47]=N,e[48]=_,e[49]=y,e[50]=j):j=e[50],j}function q(e){const[t,i]=e;return[i,t]}export{Z as default}; diff --git a/compendium_v2/static/CrisisManagement-DPAIuZEV.js b/compendium_v2/static/CrisisManagement-ClnT7m7H.js similarity index 80% rename from compendium_v2/static/CrisisManagement-DPAIuZEV.js rename to compendium_v2/static/CrisisManagement-ClnT7m7H.js index ab3538240ead8f1832a295be0b74becc23073336..df60bb8955d0d120b75526e6b987588080ebda2c 100644 --- a/compendium_v2/static/CrisisManagement-DPAIuZEV.js +++ b/compendium_v2/static/CrisisManagement-ClnT7m7H.js @@ -1 +1 @@ -import{c as C,r as F,F as S,j as x,t as v,S as P}from"./index-DBbSOdjk.js";import{u as k,g as w,D,F as E,f as T}from"./useData-CcKTpALT.js";import{P as L}from"./PillTable-CIcKqQJh.js";import"./SideBar-DfD7Pj8p.js";import"./xlsx-BHRztzV8.js";import"./index-DkYuYqrz.js";import"./hook-D9Tuu5oJ.js";import"./ColorPill-CuYEYQ56.js";import"./Table-DNomfHX4.js";function H(){const e=C.c(29),y=M,{filterSelection:t,setFilterSelection:c}=F.useContext(S),{data:N,years:g,nrens:h}=k("/api/standards",c,y);let s,m;if(e[0]!==N||e[1]!==t.selectedNrens||e[2]!==t.selectedYears){let f;e[5]!==t.selectedNrens||e[6]!==t.selectedYears?(f=b=>t.selectedYears.includes(b.year)&&t.selectedNrens.includes(b.nren)&&y(b),e[5]=t.selectedNrens,e[6]=t.selectedYears,e[7]=f):f=e[7],s=N.filter(f),m=w(s,"crisis_management_procedure"),e[0]=N,e[1]=t.selectedNrens,e[2]=t.selectedYears,e[3]=s,e[4]=m}else s=e[3],m=e[4];const _=m;let r,d;e[8]===Symbol.for("react.memo_cache_sentinel")?(r=["Yes","No"],d=new Map([[r[0],"True"],[r[1],"False"]]),e[8]=r,e[9]=d):(r=e[8],d=e[9]);const j=d;let a;e[10]!==g?(a=[...g],e[10]=g,e[11]=a):a=e[11];let l;e[12]!==h?(l=h.values(),e[12]=h,e[13]=l):l=e[13];let i;e[14]!==l?(i=[...l],e[14]=l,e[15]=i):i=e[15];let n;e[16]!==a||e[17]!==i?(n={availableYears:a,availableNrens:i},e[16]=a,e[17]=i,e[18]=n):n=e[18];let p;e[19]!==t||e[20]!==c||e[21]!==n?(p=x.jsx(E,{filterOptions:n,filterSelection:t,setFilterSelection:c,coloredYears:!0}),e[19]=t,e[20]=c,e[21]=n,e[22]=p):p=e[22];const Y=p;let o;e[23]!==_?(o=x.jsx(T,{children:x.jsx(L,{columns:r,columnLookup:j,dataLookup:_})}),e[23]=_,e[24]=o):o=e[24];let u;return e[25]!==Y||e[26]!==s||e[27]!==o?(u=x.jsx(D,{title:v["crisis-management"],description:"The table below shows whether NRENs have a formal crisis management procedure.",category:P.Policy,filter:Y,data:s,filename:"crisis_management_nrens_per_year",children:o}),e[25]=Y,e[26]=s,e[27]=o,e[28]=u):u=e[28],u}function M(e){return e.crisis_management_procedure!==null}export{H as default}; +import{c as C,r as F,F as S,j as x,t as v,S as P}from"./index-bwDVKb7d.js";import{u as k,g as w,D,F as E,f as T}from"./useData-Ba-3avp3.js";import{P as L}from"./PillTable-C7hMt52B.js";import"./SideBar-D_Yxr_mj.js";import"./xlsx-BHRztzV8.js";import"./index-Y7aK5es_.js";import"./hook-BGVjY_62.js";import"./ColorPill-D7RILPI9.js";import"./Table-D4mMg192.js";function H(){const e=C.c(29),y=M,{filterSelection:t,setFilterSelection:c}=F.useContext(S),{data:N,years:g,nrens:h}=k("/api/standards",c,y);let s,m;if(e[0]!==N||e[1]!==t.selectedNrens||e[2]!==t.selectedYears){let f;e[5]!==t.selectedNrens||e[6]!==t.selectedYears?(f=b=>t.selectedYears.includes(b.year)&&t.selectedNrens.includes(b.nren)&&y(b),e[5]=t.selectedNrens,e[6]=t.selectedYears,e[7]=f):f=e[7],s=N.filter(f),m=w(s,"crisis_management_procedure"),e[0]=N,e[1]=t.selectedNrens,e[2]=t.selectedYears,e[3]=s,e[4]=m}else s=e[3],m=e[4];const _=m;let r,d;e[8]===Symbol.for("react.memo_cache_sentinel")?(r=["Yes","No"],d=new Map([[r[0],"True"],[r[1],"False"]]),e[8]=r,e[9]=d):(r=e[8],d=e[9]);const j=d;let a;e[10]!==g?(a=[...g],e[10]=g,e[11]=a):a=e[11];let l;e[12]!==h?(l=h.values(),e[12]=h,e[13]=l):l=e[13];let i;e[14]!==l?(i=[...l],e[14]=l,e[15]=i):i=e[15];let n;e[16]!==a||e[17]!==i?(n={availableYears:a,availableNrens:i},e[16]=a,e[17]=i,e[18]=n):n=e[18];let p;e[19]!==t||e[20]!==c||e[21]!==n?(p=x.jsx(E,{filterOptions:n,filterSelection:t,setFilterSelection:c,coloredYears:!0}),e[19]=t,e[20]=c,e[21]=n,e[22]=p):p=e[22];const Y=p;let o;e[23]!==_?(o=x.jsx(T,{children:x.jsx(L,{columns:r,columnLookup:j,dataLookup:_})}),e[23]=_,e[24]=o):o=e[24];let u;return e[25]!==Y||e[26]!==s||e[27]!==o?(u=x.jsx(D,{title:v["crisis-management"],description:"The table below shows whether NRENs have a formal crisis management procedure.",category:P.Policy,filter:Y,data:s,filename:"crisis_management_nrens_per_year",children:o}),e[25]=Y,e[26]=s,e[27]=o,e[28]=u):u=e[28],u}function M(e){return e.crisis_management_procedure!==null}export{H as default}; diff --git a/compendium_v2/static/DarkFibreInstalled-Dlwn_bKp.js b/compendium_v2/static/DarkFibreInstalled-B2WOEBMo.js similarity index 82% rename from compendium_v2/static/DarkFibreInstalled-Dlwn_bKp.js rename to compendium_v2/static/DarkFibreInstalled-B2WOEBMo.js index 31f137163294c62662cf051a0b553d378374b9fe..d29153f5d2e2ab4bbce988d33997d0c10e85965c 100644 --- a/compendium_v2/static/DarkFibreInstalled-Dlwn_bKp.js +++ b/compendium_v2/static/DarkFibreInstalled-B2WOEBMo.js @@ -1 +1 @@ -import{c as N,r as S,F as j,j as l,t as D,S as F}from"./index-DBbSOdjk.js";import{L}from"./index-DyJczNpq.js";import{C as w,a as E,L as v,P,b as R,p as I,c as K,d as O,u as T,e as U,D as Y,F as $,f as q}from"./useData-CcKTpALT.js";import{g as z}from"./charthelpers-CHBq5wBZ.js";import"./SideBar-DfD7Pj8p.js";import"./xlsx-BHRztzV8.js";import"./index-DkYuYqrz.js";import"./hook-D9Tuu5oJ.js";w.register(E,v,P,R,I,K,O);function X(){const e=N.c(23),x=A,{filterSelection:t,setFilterSelection:n}=S.useContext(j),{data:u,nrens:b}=T("/api/dark-fibre-installed",n,x);let i,o;if(e[0]!==u||e[1]!==t.selectedNrens){let h;e[4]!==t.selectedNrens?(h=k=>t.selectedNrens.includes(k.nren)&&x(k),e[4]=t.selectedNrens,e[5]=h):h=e[5],i=u.filter(h),o=U(i,"fibre_length_in_country"),e[0]=u,e[1]=t.selectedNrens,e[2]=i,e[3]=o}else i=e[2],o=e[3];const _=o;let c;e[6]===Symbol.for("react.memo_cache_sentinel")?(c=[],e[6]=c):c=e[6];let s;e[7]!==b?(s=b.values(),e[7]=b,e[8]=s):s=e[8];let a;e[9]!==s?(a={availableYears:c,availableNrens:[...s]},e[9]=s,e[10]=a):a=e[10];let f;e[11]!==t||e[12]!==n||e[13]!==a?(f=l.jsx($,{filterOptions:a,filterSelection:t,setFilterSelection:n}),e[11]=t,e[12]=n,e[13]=a,e[14]=f):f=e[14];const g=f;let m;e[15]===Symbol.for("react.memo_cache_sentinel")?(m=z({title:"Kilometres of Installed Dark Fibre",tooltipUnit:"km",unit:"km"}),e[15]=m):m=e[15];const y=m;let d;e[16]===Symbol.for("react.memo_cache_sentinel")?(d=l.jsx("span",{children:"This graph shows the number of Kilometres of dark fibre installed by NRENs within their own countries, which they own themselves. The distance is the number of kilometres of the fibre pairs, or if bidirectional traffic on a single fibre, it is treated as a fibre pair."}),e[16]=d):d=e[16];const C=d;let r;e[17]!==_?(r=l.jsx(q,{children:l.jsx(L,{data:_,options:y})}),e[17]=_,e[18]=r):r=e[18];let p;return e[19]!==g||e[20]!==i||e[21]!==r?(p=l.jsx(Y,{title:D["dark-fibre-installed"],description:C,category:F.Network,filter:g,data:i,filename:"dark_fibre_lease_installed",children:r}),e[19]=g,e[20]=i,e[21]=r,e[22]=p):p=e[22],p}function A(e){return e.fibre_length_in_country!=null}export{X as default}; +import{c as N,r as S,F as j,j as l,t as D,S as F}from"./index-bwDVKb7d.js";import{L}from"./index-0m6TK_PI.js";import{C as w,a as E,L as v,P,b as R,p as I,c as K,d as O,u as T,e as U,D as Y,F as $,f as q}from"./useData-Ba-3avp3.js";import{g as z}from"./charthelpers-Cs3DRBw0.js";import"./SideBar-D_Yxr_mj.js";import"./xlsx-BHRztzV8.js";import"./index-Y7aK5es_.js";import"./hook-BGVjY_62.js";w.register(E,v,P,R,I,K,O);function X(){const e=N.c(23),x=A,{filterSelection:t,setFilterSelection:n}=S.useContext(j),{data:u,nrens:b}=T("/api/dark-fibre-installed",n,x);let i,o;if(e[0]!==u||e[1]!==t.selectedNrens){let h;e[4]!==t.selectedNrens?(h=k=>t.selectedNrens.includes(k.nren)&&x(k),e[4]=t.selectedNrens,e[5]=h):h=e[5],i=u.filter(h),o=U(i,"fibre_length_in_country"),e[0]=u,e[1]=t.selectedNrens,e[2]=i,e[3]=o}else i=e[2],o=e[3];const _=o;let c;e[6]===Symbol.for("react.memo_cache_sentinel")?(c=[],e[6]=c):c=e[6];let s;e[7]!==b?(s=b.values(),e[7]=b,e[8]=s):s=e[8];let a;e[9]!==s?(a={availableYears:c,availableNrens:[...s]},e[9]=s,e[10]=a):a=e[10];let f;e[11]!==t||e[12]!==n||e[13]!==a?(f=l.jsx($,{filterOptions:a,filterSelection:t,setFilterSelection:n}),e[11]=t,e[12]=n,e[13]=a,e[14]=f):f=e[14];const g=f;let m;e[15]===Symbol.for("react.memo_cache_sentinel")?(m=z({title:"Kilometres of Installed Dark Fibre",tooltipUnit:"km",unit:"km"}),e[15]=m):m=e[15];const y=m;let d;e[16]===Symbol.for("react.memo_cache_sentinel")?(d=l.jsx("span",{children:"This graph shows the number of Kilometres of dark fibre installed by NRENs within their own countries, which they own themselves. The distance is the number of kilometres of the fibre pairs, or if bidirectional traffic on a single fibre, it is treated as a fibre pair."}),e[16]=d):d=e[16];const C=d;let r;e[17]!==_?(r=l.jsx(q,{children:l.jsx(L,{data:_,options:y})}),e[17]=_,e[18]=r):r=e[18];let p;return e[19]!==g||e[20]!==i||e[21]!==r?(p=l.jsx(Y,{title:D["dark-fibre-installed"],description:C,category:F.Network,filter:g,data:i,filename:"dark_fibre_lease_installed",children:r}),e[19]=g,e[20]=i,e[21]=r,e[22]=p):p=e[22],p}function A(e){return e.fibre_length_in_country!=null}export{X as default}; diff --git a/compendium_v2/static/DarkFibreLease-rEaEK83T.js b/compendium_v2/static/DarkFibreLease-GvJ-CvnR.js similarity index 85% rename from compendium_v2/static/DarkFibreLease-rEaEK83T.js rename to compendium_v2/static/DarkFibreLease-GvJ-CvnR.js index 197d80c90130d23793341b2a261162d92ca8b940..0191648333ace8defc27420dfa6d9ca8fa188c47 100644 --- a/compendium_v2/static/DarkFibreLease-rEaEK83T.js +++ b/compendium_v2/static/DarkFibreLease-GvJ-CvnR.js @@ -1 +1 @@ -import{c as w,r as R,F as P,j as c,S as I,t as D}from"./index-DBbSOdjk.js";import{L as U}from"./index-DyJczNpq.js";import{C as K,a as O,L as T,P as $,b as A,p as Y,c as q,d as z,u as B,e as G,D as H,F as J,f as M}from"./useData-CcKTpALT.js";import{g as Q}from"./charthelpers-CHBq5wBZ.js";import"./SideBar-DfD7Pj8p.js";import"./xlsx-BHRztzV8.js";import"./index-DkYuYqrz.js";import"./hook-D9Tuu5oJ.js";K.register(O,T,$,A,Y,q,z);function ae(E){const e=w.c(32),{national:f}=E,s=f?"fibre_length_in_country":"fibre_length_outside_country";let d;e[0]!==s?(d=o=>o[s]!=null,e[0]=s,e[1]=d):d=e[1];const a=d,{filterSelection:t,setFilterSelection:m}=R.useContext(P),{data:k,nrens:x}=B("/api/dark-fibre-lease",m,a);let i,p;if(e[2]!==k||e[3]!==s||e[4]!==t.selectedNrens||e[5]!==a){let o;e[8]!==t.selectedNrens||e[9]!==a?(o=j=>t.selectedNrens.includes(j.nren)&&a(j),e[8]=t.selectedNrens,e[9]=a,e[10]=o):o=e[10],i=k.filter(o),p=G(i,s),e[2]=k,e[3]=s,e[4]=t.selectedNrens,e[5]=a,e[6]=i,e[7]=p}else i=e[6],p=e[7];const N=p;let h;e[11]===Symbol.for("react.memo_cache_sentinel")?(h=[],e[11]=h):h=e[11];let l;e[12]!==x?(l=x.values(),e[12]=x,e[13]=l):l=e[13];let r;e[14]!==l?(r={availableYears:h,availableNrens:[...l]},e[14]=l,e[15]=r):r=e[15];let b;e[16]!==t||e[17]!==m||e[18]!==r?(b=c.jsx(J,{filterOptions:r,filterSelection:t,setFilterSelection:m}),e[16]=t,e[17]=m,e[18]=r,e[19]=b):b=e[19];const y=b;let u;e[20]===Symbol.for("react.memo_cache_sentinel")?(u=Q({title:"Kilometres of Leased Dark Fibre",tooltipUnit:"km",unit:"km"}),e[20]=u):u=e[20];const F=u,C=f?"within":"outside";let g;e[21]!==C?(g=c.jsxs("span",{children:["This graph shows the number of Kilometres of dark fibre leased by NRENs ",C," their own countries. Also included is fibre leased via an IRU (Indefeasible Right of Use), a type of long-term lease of a portion of the capacity of a cable. It does not however, include fibre NRENs have installed, and own, themselves. The distance is the number of kilometres of the fibre pairs, or if bidirectional traffic on a single fibre, it is treated as a fibre pair."]}),e[21]=C,e[22]=g):g=e[22];const L=g,S=f?D["dark-fibre-lease"]:D["dark-fibre-lease-international"],v=`dark_fibre_lease_${f?"national":"international"}`;let n;e[23]!==N?(n=c.jsx(M,{children:c.jsx(U,{data:N,options:F})}),e[23]=N,e[24]=n):n=e[24];let _;return e[25]!==L||e[26]!==y||e[27]!==i||e[28]!==S||e[29]!==v||e[30]!==n?(_=c.jsx(H,{title:S,description:L,category:I.Network,filter:y,data:i,filename:v,children:n}),e[25]=L,e[26]=y,e[27]=i,e[28]=S,e[29]=v,e[30]=n,e[31]=_):_=e[31],_}export{ae as default}; +import{c as w,r as R,F as P,j as c,S as I,t as D}from"./index-bwDVKb7d.js";import{L as U}from"./index-0m6TK_PI.js";import{C as K,a as O,L as T,P as $,b as A,p as Y,c as q,d as z,u as B,e as G,D as H,F as J,f as M}from"./useData-Ba-3avp3.js";import{g as Q}from"./charthelpers-Cs3DRBw0.js";import"./SideBar-D_Yxr_mj.js";import"./xlsx-BHRztzV8.js";import"./index-Y7aK5es_.js";import"./hook-BGVjY_62.js";K.register(O,T,$,A,Y,q,z);function ae(E){const e=w.c(32),{national:f}=E,s=f?"fibre_length_in_country":"fibre_length_outside_country";let d;e[0]!==s?(d=o=>o[s]!=null,e[0]=s,e[1]=d):d=e[1];const a=d,{filterSelection:t,setFilterSelection:m}=R.useContext(P),{data:k,nrens:x}=B("/api/dark-fibre-lease",m,a);let i,p;if(e[2]!==k||e[3]!==s||e[4]!==t.selectedNrens||e[5]!==a){let o;e[8]!==t.selectedNrens||e[9]!==a?(o=j=>t.selectedNrens.includes(j.nren)&&a(j),e[8]=t.selectedNrens,e[9]=a,e[10]=o):o=e[10],i=k.filter(o),p=G(i,s),e[2]=k,e[3]=s,e[4]=t.selectedNrens,e[5]=a,e[6]=i,e[7]=p}else i=e[6],p=e[7];const N=p;let h;e[11]===Symbol.for("react.memo_cache_sentinel")?(h=[],e[11]=h):h=e[11];let l;e[12]!==x?(l=x.values(),e[12]=x,e[13]=l):l=e[13];let r;e[14]!==l?(r={availableYears:h,availableNrens:[...l]},e[14]=l,e[15]=r):r=e[15];let b;e[16]!==t||e[17]!==m||e[18]!==r?(b=c.jsx(J,{filterOptions:r,filterSelection:t,setFilterSelection:m}),e[16]=t,e[17]=m,e[18]=r,e[19]=b):b=e[19];const y=b;let u;e[20]===Symbol.for("react.memo_cache_sentinel")?(u=Q({title:"Kilometres of Leased Dark Fibre",tooltipUnit:"km",unit:"km"}),e[20]=u):u=e[20];const F=u,C=f?"within":"outside";let g;e[21]!==C?(g=c.jsxs("span",{children:["This graph shows the number of Kilometres of dark fibre leased by NRENs ",C," their own countries. Also included is fibre leased via an IRU (Indefeasible Right of Use), a type of long-term lease of a portion of the capacity of a cable. It does not however, include fibre NRENs have installed, and own, themselves. The distance is the number of kilometres of the fibre pairs, or if bidirectional traffic on a single fibre, it is treated as a fibre pair."]}),e[21]=C,e[22]=g):g=e[22];const L=g,S=f?D["dark-fibre-lease"]:D["dark-fibre-lease-international"],v=`dark_fibre_lease_${f?"national":"international"}`;let n;e[23]!==N?(n=c.jsx(M,{children:c.jsx(U,{data:N,options:F})}),e[23]=N,e[24]=n):n=e[24];let _;return e[25]!==L||e[26]!==y||e[27]!==i||e[28]!==S||e[29]!==v||e[30]!==n?(_=c.jsx(H,{title:S,description:L,category:I.Network,filter:y,data:i,filename:v,children:n}),e[25]=L,e[26]=y,e[27]=i,e[28]=S,e[29]=v,e[30]=n,e[31]=_):_=e[31],_}export{ae as default}; diff --git a/compendium_v2/static/ECProjects-CegfdWfI.js b/compendium_v2/static/ECProjects-XbmNbffI.js similarity index 81% rename from compendium_v2/static/ECProjects-CegfdWfI.js rename to compendium_v2/static/ECProjects-XbmNbffI.js index a76bda0f0709fcc6402e71d3e9c58d00ae9b5c5f..ba0fae22a4b19dc1477ee30cd98a01a582e291fa 100644 --- a/compendium_v2/static/ECProjects-CegfdWfI.js +++ b/compendium_v2/static/ECProjects-XbmNbffI.js @@ -1 +1 @@ -import{c as v,r as Y,F as y,j as u,S as C}from"./index-DBbSOdjk.js";import{u as D,h as T,i as _,D as g,F,f as P}from"./useData-CcKTpALT.js";import{N as R}from"./NrenYearTable-C1JRhqy_.js";import"./SideBar-DfD7Pj8p.js";import"./xlsx-BHRztzV8.js";import"./index-DkYuYqrz.js";import"./hook-D9Tuu5oJ.js";import"./Table-DNomfHX4.js";function $(){const e=v.c(27),{filterSelection:t,setFilterSelection:s}=Y.useContext(y),{data:a,years:j,nrens:N}=D("/api/ec-project",s);let r,d;if(e[0]!==t.selectedNrens||e[1]!==t.selectedYears||e[2]!==a){let f;e[5]!==t.selectedNrens||e[6]!==t.selectedYears?(f=x=>t.selectedYears.includes(x.year)&&t.selectedNrens.includes(x.nren),e[5]=t.selectedNrens,e[6]=t.selectedYears,e[7]=f):f=e[7],r=a.filter(f);const E=T(r);d=_(E,S),e[0]=t.selectedNrens,e[1]=t.selectedYears,e[2]=a,e[3]=r,e[4]=d}else r=e[3],d=e[4];const b=d;let o;e[8]!==j?(o=[...j],e[8]=j,e[9]=o):o=e[9];let i;e[10]!==N?(i=N.values(),e[10]=N,e[11]=i):i=e[11];let n;e[12]!==i?(n=[...i],e[12]=i,e[13]=n):n=e[13];let l;e[14]!==o||e[15]!==n?(l={availableYears:o,availableNrens:n},e[14]=o,e[15]=n,e[16]=l):l=e[16];let p;e[17]!==t||e[18]!==s||e[19]!==l?(p=u.jsx(F,{filterOptions:l,filterSelection:t,setFilterSelection:s}),e[17]=t,e[18]=s,e[19]=l,e[20]=p):p=e[20];const h=p;let c;e[21]!==b?(c=u.jsx(P,{children:u.jsx(R,{data:b,columnTitle:"EC Project Membership",dottedBorder:!0})}),e[21]=b,e[22]=c):c=e[22];let m;return e[23]!==h||e[24]!==r||e[25]!==c?(m=u.jsx(g,{title:"NREN Involvement in European Commission Projects",description:"Many NRENs are involved in a number of different European Commission project, besides GÉANT. The list of projects in the table below is not necessarily exhaustive, but does contain projects the NRENs consider important or worthy of mention.",category:C.Organisation,filter:h,data:r,filename:"nren_involvement_in_european_commission_projects",children:c}),e[23]=h,e[24]=r,e[25]=c,e[26]=m):m=e[26],m}function S(e,t){const s=t.map(O).sort();s.length&&s.forEach(a=>{e[a]=a})}function O(e){return e.project}export{$ as default}; +import{c as v,r as Y,F as y,j as u,S as C}from"./index-bwDVKb7d.js";import{u as D,h as T,i as _,D as g,F,f as P}from"./useData-Ba-3avp3.js";import{N as R}from"./NrenYearTable-9mB4hcmt.js";import"./SideBar-D_Yxr_mj.js";import"./xlsx-BHRztzV8.js";import"./index-Y7aK5es_.js";import"./hook-BGVjY_62.js";import"./Table-D4mMg192.js";function $(){const e=v.c(27),{filterSelection:t,setFilterSelection:s}=Y.useContext(y),{data:a,years:j,nrens:N}=D("/api/ec-project",s);let r,d;if(e[0]!==t.selectedNrens||e[1]!==t.selectedYears||e[2]!==a){let f;e[5]!==t.selectedNrens||e[6]!==t.selectedYears?(f=x=>t.selectedYears.includes(x.year)&&t.selectedNrens.includes(x.nren),e[5]=t.selectedNrens,e[6]=t.selectedYears,e[7]=f):f=e[7],r=a.filter(f);const E=T(r);d=_(E,S),e[0]=t.selectedNrens,e[1]=t.selectedYears,e[2]=a,e[3]=r,e[4]=d}else r=e[3],d=e[4];const b=d;let o;e[8]!==j?(o=[...j],e[8]=j,e[9]=o):o=e[9];let i;e[10]!==N?(i=N.values(),e[10]=N,e[11]=i):i=e[11];let n;e[12]!==i?(n=[...i],e[12]=i,e[13]=n):n=e[13];let l;e[14]!==o||e[15]!==n?(l={availableYears:o,availableNrens:n},e[14]=o,e[15]=n,e[16]=l):l=e[16];let p;e[17]!==t||e[18]!==s||e[19]!==l?(p=u.jsx(F,{filterOptions:l,filterSelection:t,setFilterSelection:s}),e[17]=t,e[18]=s,e[19]=l,e[20]=p):p=e[20];const h=p;let c;e[21]!==b?(c=u.jsx(P,{children:u.jsx(R,{data:b,columnTitle:"EC Project Membership",dottedBorder:!0})}),e[21]=b,e[22]=c):c=e[22];let m;return e[23]!==h||e[24]!==r||e[25]!==c?(m=u.jsx(g,{title:"NREN Involvement in European Commission Projects",description:"Many NRENs are involved in a number of different European Commission project, besides GÉANT. The list of projects in the table below is not necessarily exhaustive, but does contain projects the NRENs consider important or worthy of mention.",category:C.Organisation,filter:h,data:r,filename:"nren_involvement_in_european_commission_projects",children:c}),e[23]=h,e[24]=r,e[25]=c,e[26]=m):m=e[26],m}function S(e,t){const s=t.map(O).sort();s.length&&s.forEach(a=>{e[a]=a})}function O(e){return e.project}export{$ as default}; diff --git a/compendium_v2/static/EOSCListings-cU4UG7og.js b/compendium_v2/static/EOSCListings-BDxaE5x6.js similarity index 81% rename from compendium_v2/static/EOSCListings-cU4UG7og.js rename to compendium_v2/static/EOSCListings-BDxaE5x6.js index 15a2efde1e30f52d9fb6b8dd9c2066da8ac2e301..c8e4c6750f864f00a76377b54cc1f63caa78cae5 100644 --- a/compendium_v2/static/EOSCListings-cU4UG7og.js +++ b/compendium_v2/static/EOSCListings-BDxaE5x6.js @@ -1 +1 @@ -import{c as Y,r as j,F as C,j as f,t as D,S as E}from"./index-DBbSOdjk.js";import{u as _,h as F,i as R,D as L,F as k,f as O}from"./useData-CcKTpALT.js";import{N as P}from"./NrenYearTable-C1JRhqy_.js";import"./SideBar-DfD7Pj8p.js";import"./xlsx-BHRztzV8.js";import"./index-DkYuYqrz.js";import"./hook-D9Tuu5oJ.js";import"./Table-DNomfHX4.js";function H(){const e=Y.c(28),{filterSelection:t,setFilterSelection:l}=j.useContext(C),{data:a,years:N,nrens:x}=_("/api/eosc-listings",l);let s,d;if(e[0]!==a||e[1]!==t.selectedNrens||e[2]!==t.selectedYears){let h;e[5]!==t.selectedNrens||e[6]!==t.selectedYears?(h=b=>t.selectedYears.includes(b.year)&&t.selectedNrens.includes(b.nren),e[5]=t.selectedNrens,e[6]=t.selectedYears,e[7]=h):h=e[7],s=a.filter(h);const y=F(s);d=R(y,T),e[0]=a,e[1]=t.selectedNrens,e[2]=t.selectedYears,e[3]=s,e[4]=d}else s=e[3],d=e[4];const S=d;let i;e[8]!==N?(i=[...N],e[8]=N,e[9]=i):i=e[9];let r;e[10]!==x?(r=x.values(),e[10]=x,e[11]=r):r=e[11];let o;e[12]!==r?(o=[...r],e[12]=r,e[13]=o):o=e[13];let n;e[14]!==i||e[15]!==o?(n={availableYears:i,availableNrens:o},e[14]=i,e[15]=o,e[16]=n):n=e[16];let m;e[17]!==t||e[18]!==l||e[19]!==n?(m=f.jsx(k,{filterOptions:n,filterSelection:t,setFilterSelection:l}),e[17]=t,e[18]=l,e[19]=n,e[20]=m):m=e[20];const g=m;let p;e[21]===Symbol.for("react.memo_cache_sentinel")?(p=f.jsx("span",{children:"Some NRENs choose to list services on the EOSC portal, these can be seen in the table below. Click on the name of the NREN to expand the detail and see the names of the services they list."}),e[21]=p):p=e[21];const v=p;let c;e[22]!==S?(c=f.jsx(O,{children:f.jsx(P,{data:S,columnTitle:"Service Name",dottedBorder:!0,keysAreURLs:!0,noDots:!0})}),e[22]=S,e[23]=c):c=e[23];let u;return e[24]!==g||e[25]!==s||e[26]!==c?(u=f.jsx(L,{title:D.eosc_listings,description:v,category:E.Policy,filter:g,data:s,filename:"nren_eosc_listings",children:c}),e[24]=g,e[25]=s,e[26]=c,e[27]=u):u=e[27],u}function T(e,t){for(const l of t)for(const a of l.service_names)e[a]=a}export{H as default}; +import{c as Y,r as j,F as C,j as f,t as D,S as E}from"./index-bwDVKb7d.js";import{u as _,h as F,i as R,D as L,F as k,f as O}from"./useData-Ba-3avp3.js";import{N as P}from"./NrenYearTable-9mB4hcmt.js";import"./SideBar-D_Yxr_mj.js";import"./xlsx-BHRztzV8.js";import"./index-Y7aK5es_.js";import"./hook-BGVjY_62.js";import"./Table-D4mMg192.js";function H(){const e=Y.c(28),{filterSelection:t,setFilterSelection:l}=j.useContext(C),{data:a,years:N,nrens:x}=_("/api/eosc-listings",l);let s,d;if(e[0]!==a||e[1]!==t.selectedNrens||e[2]!==t.selectedYears){let h;e[5]!==t.selectedNrens||e[6]!==t.selectedYears?(h=b=>t.selectedYears.includes(b.year)&&t.selectedNrens.includes(b.nren),e[5]=t.selectedNrens,e[6]=t.selectedYears,e[7]=h):h=e[7],s=a.filter(h);const y=F(s);d=R(y,T),e[0]=a,e[1]=t.selectedNrens,e[2]=t.selectedYears,e[3]=s,e[4]=d}else s=e[3],d=e[4];const S=d;let i;e[8]!==N?(i=[...N],e[8]=N,e[9]=i):i=e[9];let r;e[10]!==x?(r=x.values(),e[10]=x,e[11]=r):r=e[11];let o;e[12]!==r?(o=[...r],e[12]=r,e[13]=o):o=e[13];let n;e[14]!==i||e[15]!==o?(n={availableYears:i,availableNrens:o},e[14]=i,e[15]=o,e[16]=n):n=e[16];let m;e[17]!==t||e[18]!==l||e[19]!==n?(m=f.jsx(k,{filterOptions:n,filterSelection:t,setFilterSelection:l}),e[17]=t,e[18]=l,e[19]=n,e[20]=m):m=e[20];const g=m;let p;e[21]===Symbol.for("react.memo_cache_sentinel")?(p=f.jsx("span",{children:"Some NRENs choose to list services on the EOSC portal, these can be seen in the table below. Click on the name of the NREN to expand the detail and see the names of the services they list."}),e[21]=p):p=e[21];const v=p;let c;e[22]!==S?(c=f.jsx(O,{children:f.jsx(P,{data:S,columnTitle:"Service Name",dottedBorder:!0,keysAreURLs:!0,noDots:!0})}),e[22]=S,e[23]=c):c=e[23];let u;return e[24]!==g||e[25]!==s||e[26]!==c?(u=f.jsx(L,{title:D.eosc_listings,description:v,category:E.Policy,filter:g,data:s,filename:"nren_eosc_listings",children:c}),e[24]=g,e[25]=s,e[26]=c,e[27]=u):u=e[27],u}function T(e,t){for(const l of t)for(const a of l.service_names)e[a]=a}export{H as default}; diff --git a/compendium_v2/static/ExternalConnections-CQ5ri9Cp.js b/compendium_v2/static/ExternalConnections-FNDoV6sd.js similarity index 93% rename from compendium_v2/static/ExternalConnections-CQ5ri9Cp.js rename to compendium_v2/static/ExternalConnections-FNDoV6sd.js index e784cb2fb9c2c2cbc5d3fbecd6ef16eb14ccefb2..7dfaa4e246513e6dcc6773f9f2eb5f689c792f98 100644 --- a/compendium_v2/static/ExternalConnections-CQ5ri9Cp.js +++ b/compendium_v2/static/ExternalConnections-FNDoV6sd.js @@ -1 +1 @@ -import{c as _,j as r,e as C,r as S,F as E,t as w,S as D}from"./index-DBbSOdjk.js";import{u as F,h as T,D as Y,F as R,f as L}from"./useData-CcKTpALT.js";import{T as O}from"./Table-DNomfHX4.js";import"./SideBar-DfD7Pj8p.js";import"./xlsx-BHRztzV8.js";import"./index-DkYuYqrz.js";import"./hook-D9Tuu5oJ.js";function $(e){const t=_.c(8),{dataLookup:l,columnInfo:a}=e;if(!l){let s;return t[0]===Symbol.for("react.memo_cache_sentinel")?(s=r.jsx("div",{className:"matrix-border-round"}),t[0]=s):s=t[0],s}let d;if(t[1]!==a||t[2]!==l){let s;t[4]!==a?(s=j=>{const[i,h]=j;return r.jsx(C,{title:i,theme:"-table",startCollapsed:!0,children:r.jsx("div",{className:"scrollable-horizontal",children:Array.from(h.entries()).map(m=>{const[o,b]=m,x={"--before-color":`var(--color-of-the-year-muted-${o%9})`};return r.jsxs("div",{children:[r.jsx("span",{className:`scrollable-table-year color-of-the-year-${o%9} bold-caps-16pt pt-3 ps-3`,style:x,children:o}),r.jsx("div",{className:`colored-table bg-muted-color-of-the-year-${o%9}`,children:r.jsxs(O,{children:[r.jsx("thead",{children:r.jsx("tr",{children:Object.keys(a).map(c=>r.jsx("th",{style:{position:"relative"},children:r.jsx("span",{style:x,children:c})},c))})}),r.jsx("tbody",{children:b.map((c,k)=>r.jsx("tr",{children:Object.entries(a).map(u=>{const[g,f]=u,y=c[f];return r.jsx("td",{children:y},g)})},k))})]})})]},o)})})},i)},t[4]=a,t[5]=s):s=t[5],d=Array.from(l.entries()).map(s),t[1]=a,t[2]=l,t[3]=d}else d=t[3];const p=d;let n;return t[6]!==p?(n=r.jsx("div",{className:"matrix-border-round",children:p}),t[6]=p,t[7]=n):n=t[7],n}function q(){const e=_.c(29),{filterSelection:t,setFilterSelection:l}=S.useContext(E),{data:a,years:d,nrens:p}=F("/api/external-connections",l);let n,s;if(e[0]!==a||e[1]!==t.selectedNrens||e[2]!==t.selectedYears){let N;e[5]!==t.selectedNrens||e[6]!==t.selectedYears?(N=v=>t.selectedYears.includes(v.year)&&t.selectedNrens.includes(v.nren),e[5]=t.selectedNrens,e[6]=t.selectedYears,e[7]=N):N=e[7],n=a.filter(N),s=T([...n]),e[0]=a,e[1]=t.selectedNrens,e[2]=t.selectedYears,e[3]=n,e[4]=s}else n=e[3],s=e[4];const j=s;let i;e[8]!==d?(i=[...d],e[8]=d,e[9]=i):i=e[9];let h;e[10]!==p?(h=p.values(),e[10]=p,e[11]=h):h=e[11];let m;e[12]!==h?(m=[...h],e[12]=h,e[13]=m):m=e[13];let o;e[14]!==i||e[15]!==m?(o={availableYears:i,availableNrens:m},e[14]=i,e[15]=m,e[16]=o):o=e[16];let b;e[17]!==t||e[18]!==l||e[19]!==o?(b=r.jsx(R,{filterOptions:o,filterSelection:t,setFilterSelection:l,coloredYears:!0}),e[17]=t,e[18]=l,e[19]=o,e[20]=b):b=e[20];const x=b;let c;e[21]===Symbol.for("react.memo_cache_sentinel")?(c={"Link Name":"link_name","Capacity (Gbit/s)":"capacity","From Organisation":"from_organization","To Organisation":"to_organization","Interconnection Method":"interconnection_method"},e[21]=c):c=e[21];const k=c;let u;e[22]===Symbol.for("react.memo_cache_sentinel")?(u=r.jsxs(r.Fragment,{children:[r.jsx("p",{children:"The table below shows the operational external IP connections of each NREN. These include links to their regional backbone (ie. GÉANT), to other research locations, to the commercial internet, peerings to internet exchanges, cross-border dark fibre links, and any other links they may have."}),r.jsx("p",{children:"NRENs are asked to state the capacity for production purposes, not any additional link that may be there solely for the purpose of giving resilience. Cross-border fibre links are meant as those links which have been commissioned or established by the NREN from a point on their network, which is near the border to another point near the border on the network of a neighbouring NREN."})]}),e[22]=u):u=e[22];const g=u;let f;e[23]!==j?(f=r.jsx(L,{children:r.jsx($,{dataLookup:j,columnInfo:k})}),e[23]=j,e[24]=f):f=e[24];let y;return e[25]!==x||e[26]!==n||e[27]!==f?(y=r.jsx(Y,{title:w["external-connections"],description:g,category:D.Network,filter:x,data:n,filename:"nren_external_connections",children:f}),e[25]=x,e[26]=n,e[27]=f,e[28]=y):y=e[28],y}export{q as default}; +import{c as _,j as r,e as C,r as S,F as E,t as w,S as D}from"./index-bwDVKb7d.js";import{u as F,h as T,D as Y,F as R,f as L}from"./useData-Ba-3avp3.js";import{T as O}from"./Table-D4mMg192.js";import"./SideBar-D_Yxr_mj.js";import"./xlsx-BHRztzV8.js";import"./index-Y7aK5es_.js";import"./hook-BGVjY_62.js";function $(e){const t=_.c(8),{dataLookup:l,columnInfo:a}=e;if(!l){let s;return t[0]===Symbol.for("react.memo_cache_sentinel")?(s=r.jsx("div",{className:"matrix-border-round"}),t[0]=s):s=t[0],s}let d;if(t[1]!==a||t[2]!==l){let s;t[4]!==a?(s=j=>{const[i,h]=j;return r.jsx(C,{title:i,theme:"-table",startCollapsed:!0,children:r.jsx("div",{className:"scrollable-horizontal",children:Array.from(h.entries()).map(m=>{const[o,b]=m,x={"--before-color":`var(--color-of-the-year-muted-${o%9})`};return r.jsxs("div",{children:[r.jsx("span",{className:`scrollable-table-year color-of-the-year-${o%9} bold-caps-16pt pt-3 ps-3`,style:x,children:o}),r.jsx("div",{className:`colored-table bg-muted-color-of-the-year-${o%9}`,children:r.jsxs(O,{children:[r.jsx("thead",{children:r.jsx("tr",{children:Object.keys(a).map(c=>r.jsx("th",{style:{position:"relative"},children:r.jsx("span",{style:x,children:c})},c))})}),r.jsx("tbody",{children:b.map((c,k)=>r.jsx("tr",{children:Object.entries(a).map(u=>{const[g,f]=u,y=c[f];return r.jsx("td",{children:y},g)})},k))})]})})]},o)})})},i)},t[4]=a,t[5]=s):s=t[5],d=Array.from(l.entries()).map(s),t[1]=a,t[2]=l,t[3]=d}else d=t[3];const p=d;let n;return t[6]!==p?(n=r.jsx("div",{className:"matrix-border-round",children:p}),t[6]=p,t[7]=n):n=t[7],n}function q(){const e=_.c(29),{filterSelection:t,setFilterSelection:l}=S.useContext(E),{data:a,years:d,nrens:p}=F("/api/external-connections",l);let n,s;if(e[0]!==a||e[1]!==t.selectedNrens||e[2]!==t.selectedYears){let N;e[5]!==t.selectedNrens||e[6]!==t.selectedYears?(N=v=>t.selectedYears.includes(v.year)&&t.selectedNrens.includes(v.nren),e[5]=t.selectedNrens,e[6]=t.selectedYears,e[7]=N):N=e[7],n=a.filter(N),s=T([...n]),e[0]=a,e[1]=t.selectedNrens,e[2]=t.selectedYears,e[3]=n,e[4]=s}else n=e[3],s=e[4];const j=s;let i;e[8]!==d?(i=[...d],e[8]=d,e[9]=i):i=e[9];let h;e[10]!==p?(h=p.values(),e[10]=p,e[11]=h):h=e[11];let m;e[12]!==h?(m=[...h],e[12]=h,e[13]=m):m=e[13];let o;e[14]!==i||e[15]!==m?(o={availableYears:i,availableNrens:m},e[14]=i,e[15]=m,e[16]=o):o=e[16];let b;e[17]!==t||e[18]!==l||e[19]!==o?(b=r.jsx(R,{filterOptions:o,filterSelection:t,setFilterSelection:l,coloredYears:!0}),e[17]=t,e[18]=l,e[19]=o,e[20]=b):b=e[20];const x=b;let c;e[21]===Symbol.for("react.memo_cache_sentinel")?(c={"Link Name":"link_name","Capacity (Gbit/s)":"capacity","From Organisation":"from_organization","To Organisation":"to_organization","Interconnection Method":"interconnection_method"},e[21]=c):c=e[21];const k=c;let u;e[22]===Symbol.for("react.memo_cache_sentinel")?(u=r.jsxs(r.Fragment,{children:[r.jsx("p",{children:"The table below shows the operational external IP connections of each NREN. These include links to their regional backbone (ie. GÉANT), to other research locations, to the commercial internet, peerings to internet exchanges, cross-border dark fibre links, and any other links they may have."}),r.jsx("p",{children:"NRENs are asked to state the capacity for production purposes, not any additional link that may be there solely for the purpose of giving resilience. Cross-border fibre links are meant as those links which have been commissioned or established by the NREN from a point on their network, which is near the border to another point near the border on the network of a neighbouring NREN."})]}),e[22]=u):u=e[22];const g=u;let f;e[23]!==j?(f=r.jsx(L,{children:r.jsx($,{dataLookup:j,columnInfo:k})}),e[23]=j,e[24]=f):f=e[24];let y;return e[25]!==x||e[26]!==n||e[27]!==f?(y=r.jsx(Y,{title:w["external-connections"],description:g,category:D.Network,filter:x,data:n,filename:"nren_external_connections",children:f}),e[25]=x,e[26]=n,e[27]=f,e[28]=y):y=e[28],y}export{q as default}; diff --git a/compendium_v2/static/FibreLight-BhW_HRmH.js b/compendium_v2/static/FibreLight-CUiE7wzj.js similarity index 82% rename from compendium_v2/static/FibreLight-BhW_HRmH.js rename to compendium_v2/static/FibreLight-CUiE7wzj.js index 523b3f7ca1b1e52f5d4bfe4a46511d67a24db22b..5d728d6e9bfbe0e09a6b5f1fefc86bfd536a2492 100644 --- a/compendium_v2/static/FibreLight-BhW_HRmH.js +++ b/compendium_v2/static/FibreLight-CUiE7wzj.js @@ -1,2 +1,2 @@ -import{c as Y,r as j,F as k,j as h,t as v,S as E}from"./index-DBbSOdjk.js";import{u as F,g as S,D as R,F as C,f as D}from"./useData-CcKTpALT.js";import{P as L}from"./PillTable-CIcKqQJh.js";import"./SideBar-DfD7Pj8p.js";import"./xlsx-BHRztzV8.js";import"./index-DkYuYqrz.js";import"./hook-D9Tuu5oJ.js";import"./ColorPill-CuYEYQ56.js";import"./Table-DNomfHX4.js";function B(){const e=Y.c(29),{filterSelection:t,setFilterSelection:c}=j.useContext(k),{data:_,years:N,nrens:g}=F("/api/fibre-light",c);let s,p;if(e[0]!==_||e[1]!==t.selectedNrens||e[2]!==t.selectedYears){let m;e[5]!==t.selectedNrens||e[6]!==t.selectedYears?(m=b=>t.selectedYears.includes(b.year)&&t.selectedNrens.includes(b.nren),e[5]=t.selectedNrens,e[6]=t.selectedYears,e[7]=m):m=e[7],s=_.filter(m),p=S(s,"light_description"),e[0]=_,e[1]=t.selectedNrens,e[2]=t.selectedYears,e[3]=s,e[4]=p}else s=e[3],p=e[4];const w=p;let i;e[8]!==N?(i=[...N],e[8]=N,e[9]=i):i=e[9];let o;e[10]!==g?(o=g.values(),e[10]=g,e[11]=o):o=e[11];let n;e[12]!==o?(n=[...o],e[12]=o,e[13]=n):n=e[13];let l;e[14]!==i||e[15]!==n?(l={availableYears:i,availableNrens:n},e[14]=i,e[15]=n,e[16]=l):l=e[16];let d;e[17]!==t||e[18]!==c||e[19]!==l?(d=h.jsx(C,{filterOptions:l,filterSelection:t,setFilterSelection:c,coloredYears:!0}),e[17]=t,e[18]=c,e[19]=l,e[20]=d):d=e[20];const x=d;let r,f;e[21]===Symbol.for("react.memo_cache_sentinel")?(r=["NREN owns and operates equipment","NREN owns equipment and operation is outsourced","Ownership and management are out-sourced (turn-key model)"],f=new Map([[r[0],"nren_owns_and_operates"],[r[1],"nren_owns_outsourced_operation"],[r[2],"outsourced_ownership_and_operation"]]),e[21]=r,e[22]=f):(r=e[21],f=e[22]);const y=f;let a;e[23]!==w?(a=h.jsx(D,{children:h.jsx(L,{columns:r,dataLookup:w,columnLookup:y,circle:!0})}),e[23]=w,e[24]=a):a=e[24];let u;return e[25]!==x||e[26]!==s||e[27]!==a?(u=h.jsx(R,{title:v["fibre-light"],description:`This graphic shows the different ways NRENs can light their fibre networks. +import{c as Y,r as j,F as k,j as h,t as v,S as E}from"./index-bwDVKb7d.js";import{u as F,g as S,D as R,F as C,f as D}from"./useData-Ba-3avp3.js";import{P as L}from"./PillTable-C7hMt52B.js";import"./SideBar-D_Yxr_mj.js";import"./xlsx-BHRztzV8.js";import"./index-Y7aK5es_.js";import"./hook-BGVjY_62.js";import"./ColorPill-D7RILPI9.js";import"./Table-D4mMg192.js";function B(){const e=Y.c(29),{filterSelection:t,setFilterSelection:c}=j.useContext(k),{data:_,years:N,nrens:g}=F("/api/fibre-light",c);let s,p;if(e[0]!==_||e[1]!==t.selectedNrens||e[2]!==t.selectedYears){let m;e[5]!==t.selectedNrens||e[6]!==t.selectedYears?(m=b=>t.selectedYears.includes(b.year)&&t.selectedNrens.includes(b.nren),e[5]=t.selectedNrens,e[6]=t.selectedYears,e[7]=m):m=e[7],s=_.filter(m),p=S(s,"light_description"),e[0]=_,e[1]=t.selectedNrens,e[2]=t.selectedYears,e[3]=s,e[4]=p}else s=e[3],p=e[4];const w=p;let i;e[8]!==N?(i=[...N],e[8]=N,e[9]=i):i=e[9];let o;e[10]!==g?(o=g.values(),e[10]=g,e[11]=o):o=e[11];let n;e[12]!==o?(n=[...o],e[12]=o,e[13]=n):n=e[13];let l;e[14]!==i||e[15]!==n?(l={availableYears:i,availableNrens:n},e[14]=i,e[15]=n,e[16]=l):l=e[16];let d;e[17]!==t||e[18]!==c||e[19]!==l?(d=h.jsx(C,{filterOptions:l,filterSelection:t,setFilterSelection:c,coloredYears:!0}),e[17]=t,e[18]=c,e[19]=l,e[20]=d):d=e[20];const x=d;let r,f;e[21]===Symbol.for("react.memo_cache_sentinel")?(r=["NREN owns and operates equipment","NREN owns equipment and operation is outsourced","Ownership and management are out-sourced (turn-key model)"],f=new Map([[r[0],"nren_owns_and_operates"],[r[1],"nren_owns_outsourced_operation"],[r[2],"outsourced_ownership_and_operation"]]),e[21]=r,e[22]=f):(r=e[21],f=e[22]);const y=f;let a;e[23]!==w?(a=h.jsx(D,{children:h.jsx(L,{columns:r,dataLookup:w,columnLookup:y,circle:!0})}),e[23]=w,e[24]=a):a=e[24];let u;return e[25]!==x||e[26]!==s||e[27]!==a?(u=h.jsx(R,{title:v["fibre-light"],description:`This graphic shows the different ways NRENs can light their fibre networks. The option 'Other' is given, with extra information if you hover over the icon.`,category:E.Network,filter:x,data:s,filename:"fibre_light_of_nrens_per_year",children:a}),e[25]=x,e[26]=s,e[27]=a,e[28]=u):u=e[28],u}export{B as default}; diff --git a/compendium_v2/static/FundingSource-BB230uTC.js b/compendium_v2/static/FundingSource-gsVmQ_kq.js similarity index 94% rename from compendium_v2/static/FundingSource-BB230uTC.js rename to compendium_v2/static/FundingSource-gsVmQ_kq.js index 5bb8a6f09cb3673645f929189abbe7cb961a659c..93375fcfbf852608abfe43862d1a3fa36cfc3027 100644 --- a/compendium_v2/static/FundingSource-BB230uTC.js +++ b/compendium_v2/static/FundingSource-gsVmQ_kq.js @@ -1 +1 @@ -import{c as D,j as s,r as P,F as z,t as G,S as M,C as y,R as T}from"./index-DBbSOdjk.js";import{B as H}from"./index-DyJczNpq.js";import{C as N,a as W,L as q,B as J,p as K,c as Q,d as U,u as V,j as X,D as Z,F as I,f as ee}from"./useData-CcKTpALT.js";import{p as te}from"./chartjs-plugin-datalabels.esm-C6J4S2ma.js";import"./SideBar-DfD7Pj8p.js";import"./xlsx-BHRztzV8.js";import"./index-DkYuYqrz.js";import"./hook-D9Tuu5oJ.js";function j(e){const t=D.c(6),{index:i,active:l}=e,n=l===void 0?!0:l;let a;t[0]!==n||t[1]!==i?(a=n?s.jsx("div",{className:`color-of-badge-${i%5}`,style:{width:"20px",height:"35px",margin:"2px"}}):s.jsx("div",{className:"color-of-badge-blank",style:{width:"15px",height:"30px",margin:"2px"}}),t[0]=n,t[1]=i,t[2]=a):a=t[2];let r;return t[3]!==i||t[4]!==a?(r=s.jsx("div",{className:"d-inline-block m-2",children:a},i),t[3]=i,t[4]=a,t[5]=r):r=t[5],r}N.register(W,q,J,K,Q,U);const se={maintainAspectRatio:!1,layout:{padding:{right:60}},animation:{duration:0},plugins:{legend:{display:!1},tooltip:{callbacks:{label:function(e){let t=e.dataset.label||"";return e.parsed.y!==null&&(t+=`: ${e.parsed.x}%`),t}}}},scales:{x:{position:"top",ticks:{callback:e=>`${e}%`,stepSize:10},max:100,min:0},xBottom:{ticks:{callback:e=>`${e}%`,stepSize:10},max:100,min:0,grid:{drawOnChartArea:!1},afterDataLimits:function(e){const t=Object.keys(N.instances);let i=-999999,l=999999;for(const n of t)N.instances[n]&&e.chart.scales.xBottom&&(l=Math.min(N.instances[n].scales.x.min,l),i=Math.max(N.instances[n].scales.x.max,i));e.chart.scales.xBottom.options.min=l,e.chart.scales.xBottom.options.max=i,e.chart.scales.xBottom.min=l,e.chart.scales.xBottom.max=i}},y:{ticks:{autoSkip:!1}}},indexAxis:"y"};function $(){const e=D.c(5);let t;e[0]===Symbol.for("react.memo_cache_sentinel")?(t=s.jsxs(y,{className:"d-flex align-items-center",children:[s.jsx(j,{index:0},0),"Client Institutions"]}),e[0]=t):t=e[0];let i;e[1]===Symbol.for("react.memo_cache_sentinel")?(i=s.jsxs(y,{className:"d-flex align-items-center",children:[s.jsx(j,{index:1},1),"Commercial"]}),e[1]=i):i=e[1];let l;e[2]===Symbol.for("react.memo_cache_sentinel")?(l=s.jsxs(y,{className:"d-flex align-items-center",children:[s.jsx(j,{index:2},2),"European Funding"]}),e[2]=l):l=e[2];let n;e[3]===Symbol.for("react.memo_cache_sentinel")?(n=s.jsxs(y,{className:"d-flex align-items-center",children:[s.jsx(j,{index:3},3),"Gov/Public Bodies"]}),e[3]=n):n=e[3];let a;return e[4]===Symbol.for("react.memo_cache_sentinel")?(a=s.jsx("div",{className:"d-flex justify-content-center bold-grey-12pt",children:s.jsxs(T,{xs:"auto",className:"border rounded-3 border-1 my-5 justify-content-center",children:[t,i,l,n,s.jsxs(y,{className:"d-flex align-items-center",children:[s.jsx(j,{index:4},4),"Other"]})]})}),e[4]=a):a=e[4],a}function ue(){const e=D.c(44),{filterSelection:t,setFilterSelection:i}=P.useContext(z),{data:l,years:n,nrens:a}=V("/api/funding",i);let r,c,o,_;if(e[0]!==t||e[1]!==l||e[2]!==a||e[3]!==i||e[4]!==n){let E;e[9]!==t.selectedNrens||e[10]!==t.selectedYears?(E=m=>t.selectedYears.includes(m.year)&&t.selectedNrens.includes(m.nren),e[9]=t.selectedNrens,e[10]=t.selectedYears,e[11]=E):E=e[11],o=l.filter(E),c=X(o),c.datasets.forEach(m=>{m.data=m.data.filter((ne,L)=>t.selectedNrens.includes(c.labels[L]))});let k;e[12]!==t.selectedNrens?(k=m=>t.selectedNrens.includes(m),e[12]=t.selectedNrens,e[13]=k):k=e[13],c.labels=c.labels.filter(k);let x;e[14]!==n?(x=[...n],e[14]=n,e[15]=x):x=e[15];let p;e[16]!==a?(p=a.values(),e[16]=a,e[17]=p):p=e[17];let g;e[18]!==p?(g=[...p],e[18]=p,e[19]=g):g=e[19];let b;e[20]!==x||e[21]!==g?(b={availableYears:x,availableNrens:g},e[20]=x,e[21]=g,e[22]=b):b=e[22];let F;e[23]!==t||e[24]!==i||e[25]!==b?(F=s.jsx(I,{filterOptions:b,filterSelection:t,setFilterSelection:i}),e[23]=t,e[24]=i,e[25]=b,e[26]=F):F=e[26],r=F,_=Array.from(new Set(o.map(ie))),e[0]=t,e[1]=l,e[2]=a,e[3]=i,e[4]=n,e[5]=r,e[6]=c,e[7]=o,e[8]=_}else r=e[5],c=e[6],o=e[7],_=e[8];const O=_.length,Y=t.selectedYears.length,A=O*Y*2+5;let S;e[27]===Symbol.for("react.memo_cache_sentinel")?(S=s.jsxs("span",{children:['The graph shows the percentage share of their income that NRENs derive from different sources, with any funding and NREN may receive from GÉANT included within "European funding". By "Client institutions" NRENs may be referring to universities, schools, research institutes, commercial clients, or other types of organisation. "Commercial services" include services such as being a domain registry, or security support.',s.jsx("br",{}),"Hovering over the graph bars will show the exact figures, per source. When viewing multiple years, it is advisable to restrict the number of NRENs being compared."]}),e[27]=S):S=e[27];let v;e[28]===Symbol.for("react.memo_cache_sentinel")?(v=s.jsx($,{}),e[28]=v):v=e[28];const R=`${A}rem`;let d;e[29]!==R?(d={height:R},e[29]=R,e[30]=d):d=e[30];let C;e[31]===Symbol.for("react.memo_cache_sentinel")?(C=[te],e[31]=C):C=e[31];let f;e[32]!==c?(f=s.jsx(H,{plugins:C,data:c,options:se}),e[32]=c,e[33]=f):f=e[33];let u;e[34]!==d||e[35]!==f?(u=s.jsx("div",{className:"chart-container",style:d,children:f}),e[34]=d,e[35]=f,e[36]=u):u=e[36];let B;e[37]===Symbol.for("react.memo_cache_sentinel")?(B=s.jsx($,{}),e[37]=B):B=e[37];let h;e[38]!==u?(h=s.jsxs(ee,{children:[v,u,B]}),e[38]=u,e[39]=h):h=e[39];let w;return e[40]!==r||e[41]!==o||e[42]!==h?(w=s.jsx(Z,{title:G.funding,description:S,category:M.Organisation,filter:r,data:o,filename:"income_source_of_nren_per_year",children:h}),e[40]=r,e[41]=o,e[42]=h,e[43]=w):w=e[43],w}function ie(e){return e.nren}export{ue as default}; +import{c as D,j as s,r as P,F as z,t as G,S as M,C as y,R as T}from"./index-bwDVKb7d.js";import{B as H}from"./index-0m6TK_PI.js";import{C as N,a as W,L as q,B as J,p as K,c as Q,d as U,u as V,j as X,D as Z,F as I,f as ee}from"./useData-Ba-3avp3.js";import{p as te}from"./chartjs-plugin-datalabels.esm-BoLCz2jr.js";import"./SideBar-D_Yxr_mj.js";import"./xlsx-BHRztzV8.js";import"./index-Y7aK5es_.js";import"./hook-BGVjY_62.js";function j(e){const t=D.c(6),{index:i,active:l}=e,n=l===void 0?!0:l;let a;t[0]!==n||t[1]!==i?(a=n?s.jsx("div",{className:`color-of-badge-${i%5}`,style:{width:"20px",height:"35px",margin:"2px"}}):s.jsx("div",{className:"color-of-badge-blank",style:{width:"15px",height:"30px",margin:"2px"}}),t[0]=n,t[1]=i,t[2]=a):a=t[2];let r;return t[3]!==i||t[4]!==a?(r=s.jsx("div",{className:"d-inline-block m-2",children:a},i),t[3]=i,t[4]=a,t[5]=r):r=t[5],r}N.register(W,q,J,K,Q,U);const se={maintainAspectRatio:!1,layout:{padding:{right:60}},animation:{duration:0},plugins:{legend:{display:!1},tooltip:{callbacks:{label:function(e){let t=e.dataset.label||"";return e.parsed.y!==null&&(t+=`: ${e.parsed.x}%`),t}}}},scales:{x:{position:"top",ticks:{callback:e=>`${e}%`,stepSize:10},max:100,min:0},xBottom:{ticks:{callback:e=>`${e}%`,stepSize:10},max:100,min:0,grid:{drawOnChartArea:!1},afterDataLimits:function(e){const t=Object.keys(N.instances);let i=-999999,l=999999;for(const n of t)N.instances[n]&&e.chart.scales.xBottom&&(l=Math.min(N.instances[n].scales.x.min,l),i=Math.max(N.instances[n].scales.x.max,i));e.chart.scales.xBottom.options.min=l,e.chart.scales.xBottom.options.max=i,e.chart.scales.xBottom.min=l,e.chart.scales.xBottom.max=i}},y:{ticks:{autoSkip:!1}}},indexAxis:"y"};function $(){const e=D.c(5);let t;e[0]===Symbol.for("react.memo_cache_sentinel")?(t=s.jsxs(y,{className:"d-flex align-items-center",children:[s.jsx(j,{index:0},0),"Client Institutions"]}),e[0]=t):t=e[0];let i;e[1]===Symbol.for("react.memo_cache_sentinel")?(i=s.jsxs(y,{className:"d-flex align-items-center",children:[s.jsx(j,{index:1},1),"Commercial"]}),e[1]=i):i=e[1];let l;e[2]===Symbol.for("react.memo_cache_sentinel")?(l=s.jsxs(y,{className:"d-flex align-items-center",children:[s.jsx(j,{index:2},2),"European Funding"]}),e[2]=l):l=e[2];let n;e[3]===Symbol.for("react.memo_cache_sentinel")?(n=s.jsxs(y,{className:"d-flex align-items-center",children:[s.jsx(j,{index:3},3),"Gov/Public Bodies"]}),e[3]=n):n=e[3];let a;return e[4]===Symbol.for("react.memo_cache_sentinel")?(a=s.jsx("div",{className:"d-flex justify-content-center bold-grey-12pt",children:s.jsxs(T,{xs:"auto",className:"border rounded-3 border-1 my-5 justify-content-center",children:[t,i,l,n,s.jsxs(y,{className:"d-flex align-items-center",children:[s.jsx(j,{index:4},4),"Other"]})]})}),e[4]=a):a=e[4],a}function ue(){const e=D.c(44),{filterSelection:t,setFilterSelection:i}=P.useContext(z),{data:l,years:n,nrens:a}=V("/api/funding",i);let r,c,o,_;if(e[0]!==t||e[1]!==l||e[2]!==a||e[3]!==i||e[4]!==n){let E;e[9]!==t.selectedNrens||e[10]!==t.selectedYears?(E=m=>t.selectedYears.includes(m.year)&&t.selectedNrens.includes(m.nren),e[9]=t.selectedNrens,e[10]=t.selectedYears,e[11]=E):E=e[11],o=l.filter(E),c=X(o),c.datasets.forEach(m=>{m.data=m.data.filter((ne,L)=>t.selectedNrens.includes(c.labels[L]))});let k;e[12]!==t.selectedNrens?(k=m=>t.selectedNrens.includes(m),e[12]=t.selectedNrens,e[13]=k):k=e[13],c.labels=c.labels.filter(k);let x;e[14]!==n?(x=[...n],e[14]=n,e[15]=x):x=e[15];let p;e[16]!==a?(p=a.values(),e[16]=a,e[17]=p):p=e[17];let g;e[18]!==p?(g=[...p],e[18]=p,e[19]=g):g=e[19];let b;e[20]!==x||e[21]!==g?(b={availableYears:x,availableNrens:g},e[20]=x,e[21]=g,e[22]=b):b=e[22];let F;e[23]!==t||e[24]!==i||e[25]!==b?(F=s.jsx(I,{filterOptions:b,filterSelection:t,setFilterSelection:i}),e[23]=t,e[24]=i,e[25]=b,e[26]=F):F=e[26],r=F,_=Array.from(new Set(o.map(ie))),e[0]=t,e[1]=l,e[2]=a,e[3]=i,e[4]=n,e[5]=r,e[6]=c,e[7]=o,e[8]=_}else r=e[5],c=e[6],o=e[7],_=e[8];const O=_.length,Y=t.selectedYears.length,A=O*Y*2+5;let S;e[27]===Symbol.for("react.memo_cache_sentinel")?(S=s.jsxs("span",{children:['The graph shows the percentage share of their income that NRENs derive from different sources, with any funding and NREN may receive from GÉANT included within "European funding". By "Client institutions" NRENs may be referring to universities, schools, research institutes, commercial clients, or other types of organisation. "Commercial services" include services such as being a domain registry, or security support.',s.jsx("br",{}),"Hovering over the graph bars will show the exact figures, per source. When viewing multiple years, it is advisable to restrict the number of NRENs being compared."]}),e[27]=S):S=e[27];let v;e[28]===Symbol.for("react.memo_cache_sentinel")?(v=s.jsx($,{}),e[28]=v):v=e[28];const R=`${A}rem`;let d;e[29]!==R?(d={height:R},e[29]=R,e[30]=d):d=e[30];let C;e[31]===Symbol.for("react.memo_cache_sentinel")?(C=[te],e[31]=C):C=e[31];let f;e[32]!==c?(f=s.jsx(H,{plugins:C,data:c,options:se}),e[32]=c,e[33]=f):f=e[33];let u;e[34]!==d||e[35]!==f?(u=s.jsx("div",{className:"chart-container",style:d,children:f}),e[34]=d,e[35]=f,e[36]=u):u=e[36];let B;e[37]===Symbol.for("react.memo_cache_sentinel")?(B=s.jsx($,{}),e[37]=B):B=e[37];let h;e[38]!==u?(h=s.jsxs(ee,{children:[v,u,B]}),e[38]=u,e[39]=h):h=e[39];let w;return e[40]!==r||e[41]!==o||e[42]!==h?(w=s.jsx(Z,{title:G.funding,description:S,category:M.Organisation,filter:r,data:o,filename:"income_source_of_nren_per_year",children:h}),e[40]=r,e[41]=o,e[42]=h,e[43]=w):w=e[43],w}function ie(e){return e.nren}export{ue as default}; diff --git a/compendium_v2/static/HTMLLegendPlugin-Ci0zt1Jy.js b/compendium_v2/static/HTMLLegendPlugin-sf8csfcD.js similarity index 93% rename from compendium_v2/static/HTMLLegendPlugin-Ci0zt1Jy.js rename to compendium_v2/static/HTMLLegendPlugin-sf8csfcD.js index 5923668a1de4f0d1c81bafbb874b4fc5e8d5e2cf..745a4484920134a445d5a7c17818f2289f2a0b6c 100644 --- a/compendium_v2/static/HTMLLegendPlugin-Ci0zt1Jy.js +++ b/compendium_v2/static/HTMLLegendPlugin-sf8csfcD.js @@ -1 +1 @@ -import{c as g,j as p}from"./index-DBbSOdjk.js";import{f as m,C as c}from"./useData-CcKTpALT.js";const C=o=>{const e=g.c(8);let{children:s,location:t}=o;t||(t="both");const r=t==="top"||t==="both",a=t==="bottom"||t==="both";let n;e[0]!==r?(n=r&&p.jsx("div",{style:{paddingLeft:"33%",paddingTop:"2.5rem",paddingBottom:"1.5rem"},id:"legendtop"}),e[0]=r,e[1]=n):n=e[1];let l;e[2]!==a?(l=a&&p.jsx("div",{style:{paddingLeft:"33%",paddingTop:"1.5rem"},id:"legendbottom"}),e[2]=a,e[3]=l):l=e[3];let i;return e[4]!==s||e[5]!==n||e[6]!==l?(i=p.jsxs(m,{children:[n,s,l]}),e[4]=s,e[5]=n,e[6]=l,e[7]=i):i=e[7],i},u=(o,e)=>{const s=document.getElementById(e);if(!s)return null;let t=s.querySelector("ul");return t||(t=document.createElement("ul"),t.style.display="flex",t.style.flexDirection="row",t.style.margin="0",t.style.padding="0",s.appendChild(t)),t},b={id:"htmlLegend",afterUpdate(o,e,s){for(const t of s.containerIDs){const r=u(o,t);if(!r)return;for(;r.firstChild;)r.firstChild.remove();o.options.plugins.legend.labels.generateLabels(o).forEach(n=>{const l=document.createElement("li");l.style.alignItems="center",l.style.cursor="pointer",l.style.display="flex",l.style.flexDirection="row",l.style.marginLeft="10px",l.onclick=()=>{const{type:f}=o.config;f==="pie"||f==="doughnut"?o.toggleDataVisibility(n.index):o.setDatasetVisibility(n.datasetIndex,!o.isDatasetVisible(n.datasetIndex)),o.update()};const i=document.createElement("span");i.style.background=n.fillStyle,i.style.borderColor=n.strokeStyle,i.style.borderWidth=n.lineWidth+"px",i.style.display="inline-block",i.style.height="1rem",i.style.marginRight="10px",i.style.width="2.5rem";const d=document.createElement("p");d.style.color=n.fontColor,d.style.margin="0",d.style.padding="0",d.style.textDecoration=n.hidden?"line-through":"",d.style.fontSize=`${c.defaults.font.size}px`,d.style.fontFamily=`${c.defaults.font.family}`,d.style.fontWeight=`${c.defaults.font.weight}`;const y=document.createTextNode(n.text);d.appendChild(y),l.appendChild(i),l.appendChild(d),r.appendChild(l)})}}};export{C as W,b as h}; +import{c as g,j as p}from"./index-bwDVKb7d.js";import{f as m,C as c}from"./useData-Ba-3avp3.js";const C=o=>{const e=g.c(8);let{children:s,location:t}=o;t||(t="both");const r=t==="top"||t==="both",a=t==="bottom"||t==="both";let n;e[0]!==r?(n=r&&p.jsx("div",{style:{paddingLeft:"33%",paddingTop:"2.5rem",paddingBottom:"1.5rem"},id:"legendtop"}),e[0]=r,e[1]=n):n=e[1];let l;e[2]!==a?(l=a&&p.jsx("div",{style:{paddingLeft:"33%",paddingTop:"1.5rem"},id:"legendbottom"}),e[2]=a,e[3]=l):l=e[3];let i;return e[4]!==s||e[5]!==n||e[6]!==l?(i=p.jsxs(m,{children:[n,s,l]}),e[4]=s,e[5]=n,e[6]=l,e[7]=i):i=e[7],i},u=(o,e)=>{const s=document.getElementById(e);if(!s)return null;let t=s.querySelector("ul");return t||(t=document.createElement("ul"),t.style.display="flex",t.style.flexDirection="row",t.style.margin="0",t.style.padding="0",s.appendChild(t)),t},b={id:"htmlLegend",afterUpdate(o,e,s){for(const t of s.containerIDs){const r=u(o,t);if(!r)return;for(;r.firstChild;)r.firstChild.remove();o.options.plugins.legend.labels.generateLabels(o).forEach(n=>{const l=document.createElement("li");l.style.alignItems="center",l.style.cursor="pointer",l.style.display="flex",l.style.flexDirection="row",l.style.marginLeft="10px",l.onclick=()=>{const{type:f}=o.config;f==="pie"||f==="doughnut"?o.toggleDataVisibility(n.index):o.setDatasetVisibility(n.datasetIndex,!o.isDatasetVisible(n.datasetIndex)),o.update()};const i=document.createElement("span");i.style.background=n.fillStyle,i.style.borderColor=n.strokeStyle,i.style.borderWidth=n.lineWidth+"px",i.style.display="inline-block",i.style.height="1rem",i.style.marginRight="10px",i.style.width="2.5rem";const d=document.createElement("p");d.style.color=n.fontColor,d.style.margin="0",d.style.padding="0",d.style.textDecoration=n.hidden?"line-through":"",d.style.fontSize=`${c.defaults.font.size}px`,d.style.fontFamily=`${c.defaults.font.family}`,d.style.fontWeight=`${c.defaults.font.weight}`;const y=document.createTextNode(n.text);d.appendChild(y),l.appendChild(i),l.appendChild(d),r.appendChild(l)})}}};export{C as W,b as h}; diff --git a/compendium_v2/static/IRUDuration-RAtcDfR4.js b/compendium_v2/static/IRUDuration-BjNHS_5I.js similarity index 81% rename from compendium_v2/static/IRUDuration-RAtcDfR4.js rename to compendium_v2/static/IRUDuration-BjNHS_5I.js index 4a04ec0bc892fbe450d52b899f388ac4bf3859de..13045174b90d177d777304a3ec871ec8cacae099 100644 --- a/compendium_v2/static/IRUDuration-RAtcDfR4.js +++ b/compendium_v2/static/IRUDuration-BjNHS_5I.js @@ -1 +1 @@ -import{c as C,r as S,F as D,j as l,t as L,S as R}from"./index-DBbSOdjk.js";import{L as j}from"./index-DyJczNpq.js";import{C as E,a as v,L as k,P as F,b as I,p as U,c as P,d as w,u as O,e as Y,D as T,F as $,f as q}from"./useData-CcKTpALT.js";import{g as z}from"./charthelpers-CHBq5wBZ.js";import"./SideBar-DfD7Pj8p.js";import"./xlsx-BHRztzV8.js";import"./index-DkYuYqrz.js";import"./hook-D9Tuu5oJ.js";E.register(v,k,F,I,U,P,w);function W(){const e=C.c(23),N=A,{filterSelection:t,setFilterSelection:n}=S.useContext(D),{data:h,nrens:g}=O("/api/dark-fibre-lease",n,N);let a,o;if(e[0]!==h||e[1]!==t.selectedNrens){let d;e[4]!==t.selectedNrens?(d=b=>t.selectedNrens.includes(b.nren),e[4]=t.selectedNrens,e[5]=d):d=e[5],a=h.filter(d),o=Y(a,"iru_duration"),e[0]=h,e[1]=t.selectedNrens,e[2]=a,e[3]=o}else a=e[2],o=e[3];const _=o;let c;e[6]===Symbol.for("react.memo_cache_sentinel")?(c=[],e[6]=c):c=e[6];let s;e[7]!==g?(s=g.values(),e[7]=g,e[8]=s):s=e[8];let i;e[9]!==s?(i={availableYears:c,availableNrens:[...s]},e[9]=s,e[10]=i):i=e[10];let f;e[11]!==t||e[12]!==n||e[13]!==i?(f=l.jsx($,{filterOptions:i,filterSelection:t,setFilterSelection:n}),e[11]=t,e[12]=n,e[13]=i,e[14]=f):f=e[14];const x=f;let m;e[15]===Symbol.for("react.memo_cache_sentinel")?(m=z({title:"Lease Duration In Years",tooltipUnit:"years",tickLimit:999}),e[15]=m):m=e[15];const y=m;let u;e[16]===Symbol.for("react.memo_cache_sentinel")?(u=l.jsx("span",{children:"NRENs sometimes take out an IRU (Indefeasible Right of Use), which is essentially a long-term lease, on a portion of the capacity of a cable rather than laying cable themselves. This graph shows the average duration, in years, of the IRUs of NRENs."}),e[16]=u):u=e[16];let r;e[17]!==_?(r=l.jsx(q,{children:l.jsx(j,{data:_,options:y})}),e[17]=_,e[18]=r):r=e[18];let p;return e[19]!==x||e[20]!==a||e[21]!==r?(p=l.jsx(T,{title:L["iru-duration"],description:u,category:R.Network,filter:x,data:a,filename:"iru_duration_data",children:r}),e[19]=x,e[20]=a,e[21]=r,e[22]=p):p=e[22],p}function A(e){return e.iru_duration!=null}export{W as default}; +import{c as C,r as S,F as D,j as l,t as L,S as R}from"./index-bwDVKb7d.js";import{L as j}from"./index-0m6TK_PI.js";import{C as E,a as v,L as k,P as F,b as I,p as U,c as P,d as w,u as O,e as Y,D as T,F as $,f as q}from"./useData-Ba-3avp3.js";import{g as z}from"./charthelpers-Cs3DRBw0.js";import"./SideBar-D_Yxr_mj.js";import"./xlsx-BHRztzV8.js";import"./index-Y7aK5es_.js";import"./hook-BGVjY_62.js";E.register(v,k,F,I,U,P,w);function W(){const e=C.c(23),N=A,{filterSelection:t,setFilterSelection:n}=S.useContext(D),{data:h,nrens:g}=O("/api/dark-fibre-lease",n,N);let a,o;if(e[0]!==h||e[1]!==t.selectedNrens){let d;e[4]!==t.selectedNrens?(d=b=>t.selectedNrens.includes(b.nren),e[4]=t.selectedNrens,e[5]=d):d=e[5],a=h.filter(d),o=Y(a,"iru_duration"),e[0]=h,e[1]=t.selectedNrens,e[2]=a,e[3]=o}else a=e[2],o=e[3];const _=o;let c;e[6]===Symbol.for("react.memo_cache_sentinel")?(c=[],e[6]=c):c=e[6];let s;e[7]!==g?(s=g.values(),e[7]=g,e[8]=s):s=e[8];let i;e[9]!==s?(i={availableYears:c,availableNrens:[...s]},e[9]=s,e[10]=i):i=e[10];let f;e[11]!==t||e[12]!==n||e[13]!==i?(f=l.jsx($,{filterOptions:i,filterSelection:t,setFilterSelection:n}),e[11]=t,e[12]=n,e[13]=i,e[14]=f):f=e[14];const x=f;let m;e[15]===Symbol.for("react.memo_cache_sentinel")?(m=z({title:"Lease Duration In Years",tooltipUnit:"years",tickLimit:999}),e[15]=m):m=e[15];const y=m;let u;e[16]===Symbol.for("react.memo_cache_sentinel")?(u=l.jsx("span",{children:"NRENs sometimes take out an IRU (Indefeasible Right of Use), which is essentially a long-term lease, on a portion of the capacity of a cable rather than laying cable themselves. This graph shows the average duration, in years, of the IRUs of NRENs."}),e[16]=u):u=e[16];let r;e[17]!==_?(r=l.jsx(q,{children:l.jsx(j,{data:_,options:y})}),e[17]=_,e[18]=r):r=e[18];let p;return e[19]!==x||e[20]!==a||e[21]!==r?(p=l.jsx(T,{title:L["iru-duration"],description:u,category:R.Network,filter:x,data:a,filename:"iru_duration_data",children:r}),e[19]=x,e[20]=a,e[21]=r,e[22]=p):p=e[22],p}function A(e){return e.iru_duration!=null}export{W as default}; diff --git a/compendium_v2/static/Landing-Dx2MGVWO.js b/compendium_v2/static/Landing-B1fxodP3.js similarity index 98% rename from compendium_v2/static/Landing-Dx2MGVWO.js rename to compendium_v2/static/Landing-B1fxodP3.js index 1f9b2db3f45eae5598baf273e4581ec208697aaf..b59871e581ee466c84f280f006f96a59bfa1dbb3 100644 --- a/compendium_v2/static/Landing-Dx2MGVWO.js +++ b/compendium_v2/static/Landing-B1fxodP3.js @@ -1 +1 @@ -import{c as Q,Q as K,r as L,a1 as X,D as Z,j as t,L as z,E as ee,R as te}from"./index-DBbSOdjk.js";import{u as W,w as ne}from"./xlsx-BHRztzV8.js";import{S as re}from"./SurveySidebar-C_LqylD3.js";import{f as se,a as le}from"./survey-3meXCY6T.js";import{T as q}from"./Table-DNomfHX4.js";import"./SideBar-DfD7Pj8p.js";const oe=()=>{const e=Q.c(32);let i;e[0]===Symbol.for("react.memo_cache_sentinel")?(i=[],e[0]=i):i=e[0];const[u,m]=L.useState(i);let n;e[1]===Symbol.for("react.memo_cache_sentinel")?(n=[],e[1]=n):n=e[1];const[a,h]=L.useState(n);let s;e[2]===Symbol.for("react.memo_cache_sentinel")?(s=function(){fetch("/api/nren-exclusions").then(de).then(r=>{m(r)}).catch(me)},e[2]=s):s=e[2];const c=s;let f,P;e[3]===Symbol.for("react.memo_cache_sentinel")?(f=()=>{fetch("/api/nren/list").then(he).then(l=>{const r=l.map(ue);h(r)}).catch(fe)},P=[],e[3]=f,e[4]=P):(f=e[3],P=e[4]),L.useEffect(f,P);let E;e[5]===Symbol.for("react.memo_cache_sentinel")?(E=async function(r,D){const N=await fetch("/api/nren-exclusions",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({nren:r,year:D})}),$=await N.json();N.ok?m($):alert($.message),document.getElementById("excludenren").value="",document.getElementById("excludeyear").value=""},e[5]=E):E=e[5];const G=E;let S;e[6]===Symbol.for("react.memo_cache_sentinel")?(S=async function(r,D){const N=await fetch("/api/nren-exclusions",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({nren:r,year:D})}),$=await N.json();N.ok?m($):alert($.message)},e[6]=S):S=e[6];const H=S;let w,M;e[7]===Symbol.for("react.memo_cache_sentinel")?(w=()=>{c()},M=[],e[7]=w,e[8]=M):(w=e[7],M=e[8]),L.useEffect(w,M);let x,C,k,R;e[9]===Symbol.for("react.memo_cache_sentinel")?(R=t.jsx("hr",{className:"fake-divider"}),x=t.jsx("h2",{children:"NREN Exclusions"}),C=t.jsx("p",{children:"Use this table to exclude data for a specific NREN and year."}),k=t.jsx("p",{children:"If an NREN shows up in this table, they will not be allowed to view/edit or answer their survey."}),e[9]=x,e[10]=C,e[11]=k,e[12]=R):(x=e[9],C=e[10],k=e[11],R=e[12]);let T;e[13]===Symbol.for("react.memo_cache_sentinel")?(T=t.jsx("thead",{children:t.jsxs("tr",{children:[t.jsx("th",{children:"NREN"}),t.jsx("th",{children:"Year"}),t.jsx("th",{children:"Actions"})]})}),e[13]=T):T=e[13];let A;e[14]===Symbol.for("react.memo_cache_sentinel")?(A=t.jsx("option",{value:"",children:"Select NREN"}),e[14]=A):A=e[14];let y;e[15]!==a?(y=a.map(xe),e[15]=a,e[16]=y):y=e[16];let p;e[17]!==y?(p=t.jsx("td",{children:t.jsxs("select",{id:"excludenren",children:[A,y]})}),e[17]=y,e[18]=p):p=e[18];let O;e[19]===Symbol.for("react.memo_cache_sentinel")?(O=t.jsx("td",{children:t.jsx("input",{id:"excludeyear",type:"year",name:"year"})}),e[19]=O):O=e[19];let I;e[20]===Symbol.for("react.memo_cache_sentinel")?(I=t.jsx("td",{children:t.jsx("button",{className:"btn btn-primary",onClick:()=>{const l=document.getElementById("excludenren").value,r=parseInt(document.getElementById("excludeyear").value);if(!l||!r){alert("Please enter an NREN and year");return}G(l,r)},children:"Add Exclusion"})}),e[20]=I):I=e[20];let j;e[21]!==p?(j=t.jsxs("tr",{children:[p,O,I]}),e[21]=p,e[22]=j):j=e[22];let b;if(e[23]!==u){let l;e[25]===Symbol.for("react.memo_cache_sentinel")?(l=r=>t.jsxs("tr",{children:[t.jsx("td",{children:r.nren}),t.jsx("td",{children:r.year}),t.jsx("td",{children:t.jsx("button",{className:"btn btn-danger",onClick:()=>H(r.nren,r.year),children:"Delete"})})]},r.nren+r.year),e[25]=l):l=e[25],b=u.map(l),e[23]=u,e[24]=b}else b=e[24];let d;e[26]!==j||e[27]!==b?(d=t.jsxs(q,{striped:!0,bordered:!0,responsive:!0,children:[T,t.jsxs("tbody",{children:[j,b]})]}),e[26]=j,e[27]=b,e[28]=d):d=e[28];let _;e[29]===Symbol.for("react.memo_cache_sentinel")?(_=t.jsx("hr",{className:"fake-divider"}),e[29]=_):_=e[29];let v;return e[30]!==d?(v=t.jsxs(t.Fragment,{children:[R,x,C,k,d,_]}),e[30]=d,e[31]=v):v=e[31],v},ce=()=>{const e=Q.c(7),[i,u]=L.useState();let m,n;e[0]===Symbol.for("react.memo_cache_sentinel")?(m=()=>{le().then(c=>{u(c[0])})},n=[],e[0]=m,e[1]=n):(m=e[0],n=e[1]),L.useEffect(m,n);let a;e[2]===Symbol.for("react.memo_cache_sentinel")?(a=t.jsx("thead",{children:t.jsxs("tr",{children:[t.jsx("th",{children:"(N)REN"}),t.jsx("th",{children:"Link"}),t.jsx("th",{children:"Survey Status"})]})}),e[2]=a):a=e[2];let h;e[3]!==i?(h=i&&i.responses.map(c=>t.jsxs("tr",{children:[t.jsx("td",{children:c.nren.name}),t.jsx("td",{children:t.jsx(z,{to:`/survey/response/${i.year}/${c.nren.name}`,children:t.jsx("span",{children:"Navigate to survey"})})}),t.jsx("td",{children:c.status})]},c.nren.id)),e[3]=i,e[4]=h):h=e[4];let s;return e[5]!==h?(s=t.jsxs(q,{striped:!0,bordered:!0,responsive:!0,children:[a,t.jsx("tbody",{children:h})]}),e[5]=h,e[6]=s):s=e[6],s};function ge(){const e=Q.c(40),{trackPageView:i}=K(),{user:u}=L.useContext(X),m=Z(),n=!!u.id,a=n?!!u.nrens.length:!1,h=a?u.nrens[0]:"",s=n?u.permissions.admin:!1,c=n?u.role==="observer":!1,[f,P]=L.useState(null);let E,G;e[0]!==i?(E=()=>{(async()=>{const N=await se();P(N)})(),i({documentTitle:"GEANT Survey Landing Page"})},G=[i],e[0]=i,e[1]=E,e[2]=G):(E=e[1],G=e[2]),L.useEffect(E,G);let S;e[3]!==h||e[4]!==f||e[5]!==m?(S=()=>{try{return m(`/survey/response/${f}/${h}`),t.jsx("li",{children:"Redirecting to survey..."})}catch(D){return console.error("Error navigating:",D),null}},e[3]=h,e[4]=f,e[5]=m,e[6]=S):S=e[6];const H=S;let w;if(e[7]===Symbol.for("react.memo_cache_sentinel")){const D=function(Y,F,g){const B=W.decode_range(Y["!ref"]??"");let J=-1;for(let o=B.s.c;o<=B.e.c;o++){const U=W.encode_cell({r:B.s.r,c:o}),V=Y[U];if(V&&typeof V.v=="string"&&V.v===F){J=o;break}}if(J===-1){console.error(`Column '${F}' not found.`);return}for(let o=B.s.r+1;o<=B.e.r;++o){const U=W.encode_cell({r:o,c:J});Y[U]&&Y[U].t==="n"&&(Y[U].z=g)}},N=function(Y){const F=W.book_new();Y.forEach(o=>{const U=W.json_to_sheet(o.data);o.meta&&D(U,o.meta.columnName,o.meta.format),W.book_append_sheet(F,U,o.name)});const g=ne(F,{bookType:"xlsx",type:"binary"}),B=new ArrayBuffer(g.length),J=new Uint8Array(B);for(let o=0;o<g.length;o++)J[o]=g.charCodeAt(o)&255;return new Blob([B],{type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8"})};w=function(){fetch("/api/data-download").then(ae).then(Y=>{const F=N(Y),g=document.createElement("a");g.href=URL.createObjectURL(F),g.download="data.xlsx",document.body.appendChild(g),g.click(),document.body.removeChild(g)}).catch(ie)},e[7]=w}else w=e[7];const M=w;let x;e[8]!==s?(x=s&&t.jsx(re,{}),e[8]=s,e[9]=x):x=e[9];let C;e[10]===Symbol.for("react.memo_cache_sentinel")?(C=t.jsx("h1",{className:"geant-header",children:"THE GÉANT COMPENDIUM OF NRENS SURVEY"}),e[10]=C):C=e[10];let k,R;e[11]===Symbol.for("react.memo_cache_sentinel")?(k={maxWidth:"75rem"},R={textAlign:"left"},e[11]=k,e[12]=R):(k=e[11],R=e[12]);let T;e[13]===Symbol.for("react.memo_cache_sentinel")?(T=t.jsx("br",{}),e[13]=T):T=e[13];let A;e[14]===Symbol.for("react.memo_cache_sentinel")?(A=t.jsx("a",{href:"/login",children:"here"}),e[14]=A):A=e[14];let y;e[15]===Symbol.for("react.memo_cache_sentinel")?(y=t.jsx("br",{}),e[15]=y):y=e[15];let p;e[16]===Symbol.for("react.memo_cache_sentinel")?(p=t.jsx("br",{}),e[16]=p):p=e[16];let O,I,j,b;e[17]===Symbol.for("react.memo_cache_sentinel")?(O=t.jsxs("p",{style:R,children:["Hello,",T,"Welcome to the GÉANT Compendium Survey. (N)REN Compendium administrators can login via Single Sign On (SSO) ",A,", which will complete their registration to fill in the latest Compendium survey. This will send a notification to the Compendium administration team and they will assign you to your (N)REN.",y,"Once this step has been completed, you will receive an email from the administration team. We aim to get back to you the same working day, but sometimes may take a little longer.",p,"If you are not sure whether you are a Compendium Administrator for your (N)REN, please contact your GÉANT Partner Relations relationship manager.",t.jsx("br",{}),"Thank you."]}),I=t.jsx("span",{children:"Current registration status:"}),j=t.jsx("br",{}),b=t.jsx("br",{}),e[17]=O,e[18]=I,e[19]=j,e[20]=b):(O=e[17],I=e[18],j=e[19],b=e[20]);let d;e[21]!==f||e[22]!==a||e[23]!==s||e[24]!==c||e[25]!==n||e[26]!==H?(d=s?t.jsxs("ul",{children:[t.jsx("li",{children:t.jsx("span",{children:"You are logged in as a Compendium Administrator"})}),t.jsx("li",{children:t.jsxs("span",{children:["Click ",t.jsx(z,{to:"/survey/admin/surveys",children:"here"})," to access the survey management page."]})}),t.jsx("li",{children:t.jsxs("span",{children:["Click ",t.jsx(z,{to:"/survey/admin/users",children:"here"})," to access the user management page."]})}),t.jsx("li",{children:t.jsxs("span",{children:["Click ",t.jsx("a",{href:"#",onClick:M,children:"here"})," to do the full data download."]})})]}):t.jsxs("ul",{children:[f&&!s&&!c&&a&&H(),n?t.jsx("li",{children:t.jsx("span",{children:"You are logged in"})}):t.jsx("li",{children:t.jsx("span",{children:"You are not logged in"})}),n&&!c&&!a&&t.jsx("li",{children:t.jsx("span",{children:"Your access to the survey has not yet been approved"})}),n&&!c&&!a&&t.jsx("li",{children:t.jsx("span",{children:"Once you have been approved, you will immediately be directed to the relevant survey upon visiting this page"})}),n&&c&&t.jsx("li",{children:t.jsx("span",{children:"You have read-only access to the following surveys:"})})]}),e[21]=f,e[22]=a,e[23]=s,e[24]=c,e[25]=n,e[26]=H,e[27]=d):d=e[27];let _;e[28]!==s?(_=s&&t.jsx(oe,{}),e[28]=s,e[29]=_):_=e[29];let v;e[30]!==c||e[31]!==n?(v=n&&c&&t.jsx(ce,{}),e[30]=c,e[31]=n,e[32]=v):v=e[32];let l;e[33]!==d||e[34]!==_||e[35]!==v?(l=t.jsx(ee,{className:"py-5 grey-container",children:t.jsx(te,{children:t.jsxs("div",{className:"center-text",children:[C,t.jsxs("div",{className:"wordwrap pt-4",style:k,children:[O,I,j,b,d,_,v]})]})})}),e[33]=d,e[34]=_,e[35]=v,e[36]=l):l=e[36];let r;return e[37]!==l||e[38]!==x?(r=t.jsxs(t.Fragment,{children:[x,l]}),e[37]=l,e[38]=x,e[39]=r):r=e[39],r}function ie(e){console.error("Error fetching data:",e),alert("An error occurred while creating the data download Excel file.")}function ae(e){if(!e.ok)throw new Error("Network response was not ok");return e.json()}function de(e){return e.json()}function me(e){console.error("Error fetching NREN exclusions:",e)}function he(e){return e.json()}function ue(e){return e.name}function fe(e){console.error("Error fetching NRENs:",e)}function xe(e){return t.jsx("option",{value:e,children:e},e)}export{ge as default}; +import{c as Q,Q as K,r as L,a1 as X,D as Z,j as t,L as z,E as ee,R as te}from"./index-bwDVKb7d.js";import{u as W,w as ne}from"./xlsx-BHRztzV8.js";import{S as re}from"./SurveySidebar-Ef_si00x.js";import{f as se,a as le}from"./survey-3meXCY6T.js";import{T as q}from"./Table-D4mMg192.js";import"./SideBar-D_Yxr_mj.js";const oe=()=>{const e=Q.c(32);let i;e[0]===Symbol.for("react.memo_cache_sentinel")?(i=[],e[0]=i):i=e[0];const[u,m]=L.useState(i);let n;e[1]===Symbol.for("react.memo_cache_sentinel")?(n=[],e[1]=n):n=e[1];const[a,h]=L.useState(n);let s;e[2]===Symbol.for("react.memo_cache_sentinel")?(s=function(){fetch("/api/nren-exclusions").then(de).then(r=>{m(r)}).catch(me)},e[2]=s):s=e[2];const c=s;let f,P;e[3]===Symbol.for("react.memo_cache_sentinel")?(f=()=>{fetch("/api/nren/list").then(he).then(l=>{const r=l.map(ue);h(r)}).catch(fe)},P=[],e[3]=f,e[4]=P):(f=e[3],P=e[4]),L.useEffect(f,P);let E;e[5]===Symbol.for("react.memo_cache_sentinel")?(E=async function(r,D){const N=await fetch("/api/nren-exclusions",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({nren:r,year:D})}),$=await N.json();N.ok?m($):alert($.message),document.getElementById("excludenren").value="",document.getElementById("excludeyear").value=""},e[5]=E):E=e[5];const G=E;let S;e[6]===Symbol.for("react.memo_cache_sentinel")?(S=async function(r,D){const N=await fetch("/api/nren-exclusions",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({nren:r,year:D})}),$=await N.json();N.ok?m($):alert($.message)},e[6]=S):S=e[6];const H=S;let w,M;e[7]===Symbol.for("react.memo_cache_sentinel")?(w=()=>{c()},M=[],e[7]=w,e[8]=M):(w=e[7],M=e[8]),L.useEffect(w,M);let x,C,k,R;e[9]===Symbol.for("react.memo_cache_sentinel")?(R=t.jsx("hr",{className:"fake-divider"}),x=t.jsx("h2",{children:"NREN Exclusions"}),C=t.jsx("p",{children:"Use this table to exclude data for a specific NREN and year."}),k=t.jsx("p",{children:"If an NREN shows up in this table, they will not be allowed to view/edit or answer their survey."}),e[9]=x,e[10]=C,e[11]=k,e[12]=R):(x=e[9],C=e[10],k=e[11],R=e[12]);let T;e[13]===Symbol.for("react.memo_cache_sentinel")?(T=t.jsx("thead",{children:t.jsxs("tr",{children:[t.jsx("th",{children:"NREN"}),t.jsx("th",{children:"Year"}),t.jsx("th",{children:"Actions"})]})}),e[13]=T):T=e[13];let A;e[14]===Symbol.for("react.memo_cache_sentinel")?(A=t.jsx("option",{value:"",children:"Select NREN"}),e[14]=A):A=e[14];let y;e[15]!==a?(y=a.map(xe),e[15]=a,e[16]=y):y=e[16];let p;e[17]!==y?(p=t.jsx("td",{children:t.jsxs("select",{id:"excludenren",children:[A,y]})}),e[17]=y,e[18]=p):p=e[18];let O;e[19]===Symbol.for("react.memo_cache_sentinel")?(O=t.jsx("td",{children:t.jsx("input",{id:"excludeyear",type:"year",name:"year"})}),e[19]=O):O=e[19];let I;e[20]===Symbol.for("react.memo_cache_sentinel")?(I=t.jsx("td",{children:t.jsx("button",{className:"btn btn-primary",onClick:()=>{const l=document.getElementById("excludenren").value,r=parseInt(document.getElementById("excludeyear").value);if(!l||!r){alert("Please enter an NREN and year");return}G(l,r)},children:"Add Exclusion"})}),e[20]=I):I=e[20];let j;e[21]!==p?(j=t.jsxs("tr",{children:[p,O,I]}),e[21]=p,e[22]=j):j=e[22];let b;if(e[23]!==u){let l;e[25]===Symbol.for("react.memo_cache_sentinel")?(l=r=>t.jsxs("tr",{children:[t.jsx("td",{children:r.nren}),t.jsx("td",{children:r.year}),t.jsx("td",{children:t.jsx("button",{className:"btn btn-danger",onClick:()=>H(r.nren,r.year),children:"Delete"})})]},r.nren+r.year),e[25]=l):l=e[25],b=u.map(l),e[23]=u,e[24]=b}else b=e[24];let d;e[26]!==j||e[27]!==b?(d=t.jsxs(q,{striped:!0,bordered:!0,responsive:!0,children:[T,t.jsxs("tbody",{children:[j,b]})]}),e[26]=j,e[27]=b,e[28]=d):d=e[28];let _;e[29]===Symbol.for("react.memo_cache_sentinel")?(_=t.jsx("hr",{className:"fake-divider"}),e[29]=_):_=e[29];let v;return e[30]!==d?(v=t.jsxs(t.Fragment,{children:[R,x,C,k,d,_]}),e[30]=d,e[31]=v):v=e[31],v},ce=()=>{const e=Q.c(7),[i,u]=L.useState();let m,n;e[0]===Symbol.for("react.memo_cache_sentinel")?(m=()=>{le().then(c=>{u(c[0])})},n=[],e[0]=m,e[1]=n):(m=e[0],n=e[1]),L.useEffect(m,n);let a;e[2]===Symbol.for("react.memo_cache_sentinel")?(a=t.jsx("thead",{children:t.jsxs("tr",{children:[t.jsx("th",{children:"(N)REN"}),t.jsx("th",{children:"Link"}),t.jsx("th",{children:"Survey Status"})]})}),e[2]=a):a=e[2];let h;e[3]!==i?(h=i&&i.responses.map(c=>t.jsxs("tr",{children:[t.jsx("td",{children:c.nren.name}),t.jsx("td",{children:t.jsx(z,{to:`/survey/response/${i.year}/${c.nren.name}`,children:t.jsx("span",{children:"Navigate to survey"})})}),t.jsx("td",{children:c.status})]},c.nren.id)),e[3]=i,e[4]=h):h=e[4];let s;return e[5]!==h?(s=t.jsxs(q,{striped:!0,bordered:!0,responsive:!0,children:[a,t.jsx("tbody",{children:h})]}),e[5]=h,e[6]=s):s=e[6],s};function ge(){const e=Q.c(40),{trackPageView:i}=K(),{user:u}=L.useContext(X),m=Z(),n=!!u.id,a=n?!!u.nrens.length:!1,h=a?u.nrens[0]:"",s=n?u.permissions.admin:!1,c=n?u.role==="observer":!1,[f,P]=L.useState(null);let E,G;e[0]!==i?(E=()=>{(async()=>{const N=await se();P(N)})(),i({documentTitle:"GEANT Survey Landing Page"})},G=[i],e[0]=i,e[1]=E,e[2]=G):(E=e[1],G=e[2]),L.useEffect(E,G);let S;e[3]!==h||e[4]!==f||e[5]!==m?(S=()=>{try{return m(`/survey/response/${f}/${h}`),t.jsx("li",{children:"Redirecting to survey..."})}catch(D){return console.error("Error navigating:",D),null}},e[3]=h,e[4]=f,e[5]=m,e[6]=S):S=e[6];const H=S;let w;if(e[7]===Symbol.for("react.memo_cache_sentinel")){const D=function(Y,F,g){const B=W.decode_range(Y["!ref"]??"");let J=-1;for(let o=B.s.c;o<=B.e.c;o++){const U=W.encode_cell({r:B.s.r,c:o}),V=Y[U];if(V&&typeof V.v=="string"&&V.v===F){J=o;break}}if(J===-1){console.error(`Column '${F}' not found.`);return}for(let o=B.s.r+1;o<=B.e.r;++o){const U=W.encode_cell({r:o,c:J});Y[U]&&Y[U].t==="n"&&(Y[U].z=g)}},N=function(Y){const F=W.book_new();Y.forEach(o=>{const U=W.json_to_sheet(o.data);o.meta&&D(U,o.meta.columnName,o.meta.format),W.book_append_sheet(F,U,o.name)});const g=ne(F,{bookType:"xlsx",type:"binary"}),B=new ArrayBuffer(g.length),J=new Uint8Array(B);for(let o=0;o<g.length;o++)J[o]=g.charCodeAt(o)&255;return new Blob([B],{type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8"})};w=function(){fetch("/api/data-download").then(ae).then(Y=>{const F=N(Y),g=document.createElement("a");g.href=URL.createObjectURL(F),g.download="data.xlsx",document.body.appendChild(g),g.click(),document.body.removeChild(g)}).catch(ie)},e[7]=w}else w=e[7];const M=w;let x;e[8]!==s?(x=s&&t.jsx(re,{}),e[8]=s,e[9]=x):x=e[9];let C;e[10]===Symbol.for("react.memo_cache_sentinel")?(C=t.jsx("h1",{className:"geant-header",children:"THE GÉANT COMPENDIUM OF NRENS SURVEY"}),e[10]=C):C=e[10];let k,R;e[11]===Symbol.for("react.memo_cache_sentinel")?(k={maxWidth:"75rem"},R={textAlign:"left"},e[11]=k,e[12]=R):(k=e[11],R=e[12]);let T;e[13]===Symbol.for("react.memo_cache_sentinel")?(T=t.jsx("br",{}),e[13]=T):T=e[13];let A;e[14]===Symbol.for("react.memo_cache_sentinel")?(A=t.jsx("a",{href:"/login",children:"here"}),e[14]=A):A=e[14];let y;e[15]===Symbol.for("react.memo_cache_sentinel")?(y=t.jsx("br",{}),e[15]=y):y=e[15];let p;e[16]===Symbol.for("react.memo_cache_sentinel")?(p=t.jsx("br",{}),e[16]=p):p=e[16];let O,I,j,b;e[17]===Symbol.for("react.memo_cache_sentinel")?(O=t.jsxs("p",{style:R,children:["Hello,",T,"Welcome to the GÉANT Compendium Survey. (N)REN Compendium administrators can login via Single Sign On (SSO) ",A,", which will complete their registration to fill in the latest Compendium survey. This will send a notification to the Compendium administration team and they will assign you to your (N)REN.",y,"Once this step has been completed, you will receive an email from the administration team. We aim to get back to you the same working day, but sometimes may take a little longer.",p,"If you are not sure whether you are a Compendium Administrator for your (N)REN, please contact your GÉANT Partner Relations relationship manager.",t.jsx("br",{}),"Thank you."]}),I=t.jsx("span",{children:"Current registration status:"}),j=t.jsx("br",{}),b=t.jsx("br",{}),e[17]=O,e[18]=I,e[19]=j,e[20]=b):(O=e[17],I=e[18],j=e[19],b=e[20]);let d;e[21]!==f||e[22]!==a||e[23]!==s||e[24]!==c||e[25]!==n||e[26]!==H?(d=s?t.jsxs("ul",{children:[t.jsx("li",{children:t.jsx("span",{children:"You are logged in as a Compendium Administrator"})}),t.jsx("li",{children:t.jsxs("span",{children:["Click ",t.jsx(z,{to:"/survey/admin/surveys",children:"here"})," to access the survey management page."]})}),t.jsx("li",{children:t.jsxs("span",{children:["Click ",t.jsx(z,{to:"/survey/admin/users",children:"here"})," to access the user management page."]})}),t.jsx("li",{children:t.jsxs("span",{children:["Click ",t.jsx("a",{href:"#",onClick:M,children:"here"})," to do the full data download."]})})]}):t.jsxs("ul",{children:[f&&!s&&!c&&a&&H(),n?t.jsx("li",{children:t.jsx("span",{children:"You are logged in"})}):t.jsx("li",{children:t.jsx("span",{children:"You are not logged in"})}),n&&!c&&!a&&t.jsx("li",{children:t.jsx("span",{children:"Your access to the survey has not yet been approved"})}),n&&!c&&!a&&t.jsx("li",{children:t.jsx("span",{children:"Once you have been approved, you will immediately be directed to the relevant survey upon visiting this page"})}),n&&c&&t.jsx("li",{children:t.jsx("span",{children:"You have read-only access to the following surveys:"})})]}),e[21]=f,e[22]=a,e[23]=s,e[24]=c,e[25]=n,e[26]=H,e[27]=d):d=e[27];let _;e[28]!==s?(_=s&&t.jsx(oe,{}),e[28]=s,e[29]=_):_=e[29];let v;e[30]!==c||e[31]!==n?(v=n&&c&&t.jsx(ce,{}),e[30]=c,e[31]=n,e[32]=v):v=e[32];let l;e[33]!==d||e[34]!==_||e[35]!==v?(l=t.jsx(ee,{className:"py-5 grey-container",children:t.jsx(te,{children:t.jsxs("div",{className:"center-text",children:[C,t.jsxs("div",{className:"wordwrap pt-4",style:k,children:[O,I,j,b,d,_,v]})]})})}),e[33]=d,e[34]=_,e[35]=v,e[36]=l):l=e[36];let r;return e[37]!==l||e[38]!==x?(r=t.jsxs(t.Fragment,{children:[x,l]}),e[37]=l,e[38]=x,e[39]=r):r=e[39],r}function ie(e){console.error("Error fetching data:",e),alert("An error occurred while creating the data download Excel file.")}function ae(e){if(!e.ok)throw new Error("Network response was not ok");return e.json()}function de(e){return e.json()}function me(e){console.error("Error fetching NREN exclusions:",e)}function he(e){return e.json()}function ue(e){return e.name}function fe(e){console.error("Error fetching NRENs:",e)}function xe(e){return t.jsx("option",{value:e,children:e},e)}export{ge as default}; diff --git a/compendium_v2/static/MonitoringTools-DrashCOV.js b/compendium_v2/static/MonitoringTools-CbBhIorB.js similarity index 84% rename from compendium_v2/static/MonitoringTools-DrashCOV.js rename to compendium_v2/static/MonitoringTools-CbBhIorB.js index e2605fe9606b91e3ba00e7f449247601d80aa0f2..2a389f1d37bd528256f6209d3b6c704bade5add8 100644 --- a/compendium_v2/static/MonitoringTools-DrashCOV.js +++ b/compendium_v2/static/MonitoringTools-CbBhIorB.js @@ -1,2 +1,2 @@ -import{c as v,r as S,F as T,j as h,t as Y,S as j}from"./index-DBbSOdjk.js";import{u as F,g as D,n as E,D as L,F as C,f as P}from"./useData-CcKTpALT.js";import{P as R}from"./PillTable-CIcKqQJh.js";import"./SideBar-DfD7Pj8p.js";import"./xlsx-BHRztzV8.js";import"./index-DkYuYqrz.js";import"./hook-D9Tuu5oJ.js";import"./ColorPill-CuYEYQ56.js";import"./Table-DNomfHX4.js";function J(){const e=v.c(29),{filterSelection:t,setFilterSelection:c}=S.useContext(T),{data:w,years:_,nrens:N}=F("/api/monitoring-tools",c);let s,f;if(e[0]!==w||e[1]!==t.selectedNrens||e[2]!==t.selectedYears){let u;e[5]!==t.selectedNrens||e[6]!==t.selectedYears?(u=x=>t.selectedYears.includes(x.year)&&t.selectedNrens.includes(x.nren),e[5]=t.selectedNrens,e[6]=t.selectedYears,e[7]=u):u=e[7],s=w.filter(u);const k=D(s,"tool_descriptions");f=E(k,M),e[0]=w,e[1]=t.selectedNrens,e[2]=t.selectedYears,e[3]=s,e[4]=f}else s=e[3],f=e[4];const g=f;let o,p;e[8]===Symbol.for("react.memo_cache_sentinel")?(o=["Looking Glass","Network or Services Status Dashboard","Historical traffic volume information","Netflow analysis tool"],p=new Map([[o[0],"looking_glass"],[o[1],"status_dashboard"],[o[2],"historical_traffic_volumes"],[o[3],"netflow_analysis"]]),e[8]=o,e[9]=p):(o=e[8],p=e[9]);const y=p;let l;e[10]!==_?(l=[..._],e[10]=_,e[11]=l):l=e[11];let i;e[12]!==N?(i=N.values(),e[12]=N,e[13]=i):i=e[13];let r;e[14]!==i?(r=[...i],e[14]=i,e[15]=r):r=e[15];let a;e[16]!==l||e[17]!==r?(a={availableYears:l,availableNrens:r},e[16]=l,e[17]=r,e[18]=a):a=e[18];let d;e[19]!==t||e[20]!==c||e[21]!==a?(d=h.jsx(C,{filterOptions:a,filterSelection:t,setFilterSelection:c,coloredYears:!0}),e[19]=t,e[20]=c,e[21]=a,e[22]=d):d=e[22];const b=d;let n;e[23]!==g?(n=h.jsx(P,{children:h.jsx(R,{columns:o,columnLookup:y,dataLookup:g})}),e[23]=g,e[24]=n):n=e[24];let m;return e[25]!==b||e[26]!==s||e[27]!==n?(m=h.jsx(L,{title:Y["monitoring-tools"],description:`The table below shows which tools the NREN offers to client institutions to allow them to monitor the network and troubleshoot any issues which arise. +import{c as v,r as S,F as T,j as h,t as Y,S as j}from"./index-bwDVKb7d.js";import{u as F,g as D,n as E,D as L,F as C,f as P}from"./useData-Ba-3avp3.js";import{P as R}from"./PillTable-C7hMt52B.js";import"./SideBar-D_Yxr_mj.js";import"./xlsx-BHRztzV8.js";import"./index-Y7aK5es_.js";import"./hook-BGVjY_62.js";import"./ColorPill-D7RILPI9.js";import"./Table-D4mMg192.js";function J(){const e=v.c(29),{filterSelection:t,setFilterSelection:c}=S.useContext(T),{data:w,years:_,nrens:N}=F("/api/monitoring-tools",c);let s,f;if(e[0]!==w||e[1]!==t.selectedNrens||e[2]!==t.selectedYears){let u;e[5]!==t.selectedNrens||e[6]!==t.selectedYears?(u=x=>t.selectedYears.includes(x.year)&&t.selectedNrens.includes(x.nren),e[5]=t.selectedNrens,e[6]=t.selectedYears,e[7]=u):u=e[7],s=w.filter(u);const k=D(s,"tool_descriptions");f=E(k,M),e[0]=w,e[1]=t.selectedNrens,e[2]=t.selectedYears,e[3]=s,e[4]=f}else s=e[3],f=e[4];const g=f;let o,p;e[8]===Symbol.for("react.memo_cache_sentinel")?(o=["Looking Glass","Network or Services Status Dashboard","Historical traffic volume information","Netflow analysis tool"],p=new Map([[o[0],"looking_glass"],[o[1],"status_dashboard"],[o[2],"historical_traffic_volumes"],[o[3],"netflow_analysis"]]),e[8]=o,e[9]=p):(o=e[8],p=e[9]);const y=p;let l;e[10]!==_?(l=[..._],e[10]=_,e[11]=l):l=e[11];let i;e[12]!==N?(i=N.values(),e[12]=N,e[13]=i):i=e[13];let r;e[14]!==i?(r=[...i],e[14]=i,e[15]=r):r=e[15];let a;e[16]!==l||e[17]!==r?(a={availableYears:l,availableNrens:r},e[16]=l,e[17]=r,e[18]=a):a=e[18];let d;e[19]!==t||e[20]!==c||e[21]!==a?(d=h.jsx(C,{filterOptions:a,filterSelection:t,setFilterSelection:c,coloredYears:!0}),e[19]=t,e[20]=c,e[21]=a,e[22]=d):d=e[22];const b=d;let n;e[23]!==g?(n=h.jsx(P,{children:h.jsx(R,{columns:o,columnLookup:y,dataLookup:g})}),e[23]=g,e[24]=n):n=e[24];let m;return e[25]!==b||e[26]!==s||e[27]!==n?(m=h.jsx(L,{title:Y["monitoring-tools"],description:`The table below shows which tools the NREN offers to client institutions to allow them to monitor the network and troubleshoot any issues which arise. Four common tools are named, however NRENs also have the opportunity to add their own tools to the table.`,category:j.Network,filter:b,data:s,filename:"monitoring_tools_nrens_per_year",children:n}),e[25]=b,e[26]=s,e[27]=n,e[28]=m):m=e[28],m}function M(e,t){if(e==="netflow_analysis"&&t.netflow_processing_description)return t.netflow_processing_description}export{J as default}; diff --git a/compendium_v2/static/NetworkFunctionVirtualisation-DgYBul36.js b/compendium_v2/static/NetworkFunctionVirtualisation-CzNYu8co.js similarity index 92% rename from compendium_v2/static/NetworkFunctionVirtualisation-DgYBul36.js rename to compendium_v2/static/NetworkFunctionVirtualisation-CzNYu8co.js index 19c1aeaf0d25f58063c6a572185b00b241f5909e..00db6e5a313583b5f0680892e28aefffbb862ef0 100644 --- a/compendium_v2/static/NetworkFunctionVirtualisation-DgYBul36.js +++ b/compendium_v2/static/NetworkFunctionVirtualisation-CzNYu8co.js @@ -1 +1 @@ -import{c as W,r as X,F as Z,S as k,j as t,t as ee}from"./index-DBbSOdjk.js";import{u as te,g as se,F as le,D as re,f as ne}from"./useData-CcKTpALT.js";import{C as I}from"./ColorPill-CuYEYQ56.js";import{T as ae}from"./Table-DNomfHX4.js";import"./SideBar-DfD7Pj8p.js";import"./xlsx-BHRztzV8.js";import"./index-DkYuYqrz.js";import"./hook-D9Tuu5oJ.js";function ue(){const e=W.c(67),{filterSelection:n,setFilterSelection:h}=X.useContext(Z),{data:J,years:c,nrens:R}=te("/api/nfv",h);let f,p,x,j,m,u,g,v,b,o,d,w,S,Y,N;if(e[0]!==J||e[1]!==n||e[2]!==R||e[3]!==h||e[4]!==c){let A;e[20]!==n.selectedNrens||e[21]!==n.selectedYears?(A=E=>n.selectedYears.includes(E.year)&&n.selectedNrens.includes(E.nren),e[20]=n.selectedNrens,e[21]=n.selectedYears,e[22]=A):A=e[22];const K=J.filter(A),Q=se(K,"nfv_specifics");let C;e[23]!==c?(C=[...c],e[23]=c,e[24]=C):C=e[24];let T;e[25]!==R?(T=R.values(),e[25]=R,e[26]=T):T=e[26];let $;e[27]!==T?($=[...T],e[27]=T,e[28]=$):$=e[28];let D;e[29]!==C||e[30]!==$?(D={availableYears:C,availableNrens:$},e[29]=C,e[30]=$,e[31]=D):D=e[31];let L;e[32]!==n||e[33]!==h||e[34]!==D?(L=t.jsx(le,{filterOptions:D,filterSelection:n,setFilterSelection:h,coloredYears:!0}),e[32]=n,e[33]=h,e[34]=D,e[35]=L):L=e[35];const U=L;let O;e[36]!==c?(O=E=>c.has(E),e[36]=c,e[37]=O):O=e[37];const M=[...n.selectedYears.filter(O)].sort();x=re,w=ee.nfv,S="The table below shows the kinds of Network Function Virtualisation (NFV) used by NRENs.",Y=k.Network,N=U,u=K,g="network_function_virtualisation_nrens_per_year",p=ne,f=ae,m="charging-struct-table",v=!0,b=!0;let _;e[38]===Symbol.for("react.memo_cache_sentinel")?(_=t.jsx("col",{span:1,style:{width:"20%"}}),e[38]=_):_=e[38];let q;e[39]===Symbol.for("react.memo_cache_sentinel")?(q=t.jsx("col",{span:2,style:{width:"16%"}}),e[39]=q):q=e[39];let z;e[40]===Symbol.for("react.memo_cache_sentinel")?(z=t.jsx("col",{span:2,style:{width:"16%"}}),e[40]=z):z=e[40];let B;e[41]===Symbol.for("react.memo_cache_sentinel")?(B=t.jsx("col",{span:2,style:{width:"16%"}}),e[41]=B):B=e[41];let G;e[42]===Symbol.for("react.memo_cache_sentinel")?(G=t.jsx("col",{span:2,style:{width:"16%"}}),e[42]=G):G=e[42],e[43]===Symbol.for("react.memo_cache_sentinel")?(o=t.jsxs("colgroup",{children:[_,q,z,B,G,t.jsx("col",{span:2,style:{width:"16%"}})]}),d=t.jsxs("thead",{children:[t.jsxs("tr",{children:[t.jsx("th",{}),t.jsx("th",{colSpan:2,children:"Routers/switches"}),t.jsx("th",{colSpan:2,children:"Firewalls"}),t.jsx("th",{colSpan:2,children:"Load balancers"}),t.jsx("th",{colSpan:2,children:"VPN Concentrator Services"}),t.jsx("th",{colSpan:2,children:"Other"})]}),t.jsxs("tr",{children:[t.jsx("th",{}),t.jsx("th",{children:"Yes"}),t.jsx("th",{children:"Planned"}),t.jsx("th",{children:"Yes"}),t.jsx("th",{children:"Planned"}),t.jsx("th",{children:"Yes"}),t.jsx("th",{children:"Planned"}),t.jsx("th",{children:"Yes"}),t.jsx("th",{children:"Planned"}),t.jsx("th",{children:"Yes"}),t.jsx("th",{children:"Planned"})]})]}),e[43]=o,e[44]=d):(o=e[43],d=e[44]),j=Array.from(Q.entries()).map(E=>{const[H,i]=E;return t.jsxs("tr",{children:[t.jsx("td",{children:H}),["routers","firewalls","load_balancers","vpn_concentrators"].map(l=>t.jsxs(t.Fragment,{children:[t.jsx("td",{children:i.has(l)&&M.map(s=>{const a=i.get(l),r=a.get(s);return t.jsx(I,{year:s,active:a.has(s)&&!!(r&&r.nfv=="yes"),tooltip:"",rounded:!0},s)})},`${l}-yes`),t.jsx("td",{children:i.has(l)&&M.map(s=>{const a=i.get(l),r=a.get(s);return t.jsx(I,{year:s,active:a.has(s)&&!!(r&&r.nfv=="planned"),tooltip:"",rounded:!0},s)})},`${l}-planned`)]})),t.jsx("td",{children:Array.from(i.keys()).filter(ce).map(l=>t.jsx("div",{children:i.has(l)&&M.map(s=>{const a=i.get(l),r=a.get(s);return t.jsx(I,{year:s,active:a.has(s)&&!!(r&&(r==null?void 0:r.nfv)=="yes"),tooltip:l,rounded:!0},s)})},`${l}-yes`))},`${H}-other-yes`),t.jsx("td",{children:Array.from(i.keys()).filter(ie).map(l=>t.jsx("div",{children:i.has(l)&&M.map(s=>{const a=i.get(l),r=a.get(s);return t.jsx(I,{year:s,active:a.has(s)&&!!(r&&(r==null?void 0:r.nfv)=="planned"),tooltip:l,rounded:!0},s)})},`${l}-planned`))},`${H}-other-planned`)]},H)}),e[0]=J,e[1]=n,e[2]=R,e[3]=h,e[4]=c,e[5]=f,e[6]=p,e[7]=x,e[8]=j,e[9]=m,e[10]=u,e[11]=g,e[12]=v,e[13]=b,e[14]=o,e[15]=d,e[16]=w,e[17]=S,e[18]=Y,e[19]=N}else f=e[5],p=e[6],x=e[7],j=e[8],m=e[9],u=e[10],g=e[11],v=e[12],b=e[13],o=e[14],d=e[15],w=e[16],S=e[17],Y=e[18],N=e[19];let F;e[45]!==j?(F=t.jsx("tbody",{children:j}),e[45]=j,e[46]=F):F=e[46];let y;e[47]!==f||e[48]!==m||e[49]!==F||e[50]!==v||e[51]!==b||e[52]!==o||e[53]!==d?(y=t.jsxs(f,{className:m,striped:v,bordered:b,children:[o,d,F]}),e[47]=f,e[48]=m,e[49]=F,e[50]=v,e[51]=b,e[52]=o,e[53]=d,e[54]=y):y=e[54];let P;e[55]!==p||e[56]!==y?(P=t.jsx(p,{children:y}),e[55]=p,e[56]=y,e[57]=P):P=e[57];let V;return e[58]!==x||e[59]!==u||e[60]!==g||e[61]!==P||e[62]!==w||e[63]!==S||e[64]!==Y||e[65]!==N?(V=t.jsx(x,{title:w,description:S,category:Y,filter:N,data:u,filename:g,children:P}),e[58]=x,e[59]=u,e[60]=g,e[61]=P,e[62]=w,e[63]=S,e[64]=Y,e[65]=N,e[66]=V):V=e[66],V}function ie(e){return!["routers","firewalls","load_balancers","vpn_concentrators"].includes(e)}function ce(e){return!["routers","firewalls","load_balancers","vpn_concentrators"].includes(e)}export{ue as default}; +import{c as W,r as X,F as Z,S as k,j as t,t as ee}from"./index-bwDVKb7d.js";import{u as te,g as se,F as le,D as re,f as ne}from"./useData-Ba-3avp3.js";import{C as I}from"./ColorPill-D7RILPI9.js";import{T as ae}from"./Table-D4mMg192.js";import"./SideBar-D_Yxr_mj.js";import"./xlsx-BHRztzV8.js";import"./index-Y7aK5es_.js";import"./hook-BGVjY_62.js";function ue(){const e=W.c(67),{filterSelection:n,setFilterSelection:h}=X.useContext(Z),{data:J,years:c,nrens:R}=te("/api/nfv",h);let f,p,x,j,m,u,g,v,b,o,d,w,S,Y,N;if(e[0]!==J||e[1]!==n||e[2]!==R||e[3]!==h||e[4]!==c){let A;e[20]!==n.selectedNrens||e[21]!==n.selectedYears?(A=E=>n.selectedYears.includes(E.year)&&n.selectedNrens.includes(E.nren),e[20]=n.selectedNrens,e[21]=n.selectedYears,e[22]=A):A=e[22];const K=J.filter(A),Q=se(K,"nfv_specifics");let C;e[23]!==c?(C=[...c],e[23]=c,e[24]=C):C=e[24];let T;e[25]!==R?(T=R.values(),e[25]=R,e[26]=T):T=e[26];let $;e[27]!==T?($=[...T],e[27]=T,e[28]=$):$=e[28];let D;e[29]!==C||e[30]!==$?(D={availableYears:C,availableNrens:$},e[29]=C,e[30]=$,e[31]=D):D=e[31];let L;e[32]!==n||e[33]!==h||e[34]!==D?(L=t.jsx(le,{filterOptions:D,filterSelection:n,setFilterSelection:h,coloredYears:!0}),e[32]=n,e[33]=h,e[34]=D,e[35]=L):L=e[35];const U=L;let O;e[36]!==c?(O=E=>c.has(E),e[36]=c,e[37]=O):O=e[37];const M=[...n.selectedYears.filter(O)].sort();x=re,w=ee.nfv,S="The table below shows the kinds of Network Function Virtualisation (NFV) used by NRENs.",Y=k.Network,N=U,u=K,g="network_function_virtualisation_nrens_per_year",p=ne,f=ae,m="charging-struct-table",v=!0,b=!0;let _;e[38]===Symbol.for("react.memo_cache_sentinel")?(_=t.jsx("col",{span:1,style:{width:"20%"}}),e[38]=_):_=e[38];let q;e[39]===Symbol.for("react.memo_cache_sentinel")?(q=t.jsx("col",{span:2,style:{width:"16%"}}),e[39]=q):q=e[39];let z;e[40]===Symbol.for("react.memo_cache_sentinel")?(z=t.jsx("col",{span:2,style:{width:"16%"}}),e[40]=z):z=e[40];let B;e[41]===Symbol.for("react.memo_cache_sentinel")?(B=t.jsx("col",{span:2,style:{width:"16%"}}),e[41]=B):B=e[41];let G;e[42]===Symbol.for("react.memo_cache_sentinel")?(G=t.jsx("col",{span:2,style:{width:"16%"}}),e[42]=G):G=e[42],e[43]===Symbol.for("react.memo_cache_sentinel")?(o=t.jsxs("colgroup",{children:[_,q,z,B,G,t.jsx("col",{span:2,style:{width:"16%"}})]}),d=t.jsxs("thead",{children:[t.jsxs("tr",{children:[t.jsx("th",{}),t.jsx("th",{colSpan:2,children:"Routers/switches"}),t.jsx("th",{colSpan:2,children:"Firewalls"}),t.jsx("th",{colSpan:2,children:"Load balancers"}),t.jsx("th",{colSpan:2,children:"VPN Concentrator Services"}),t.jsx("th",{colSpan:2,children:"Other"})]}),t.jsxs("tr",{children:[t.jsx("th",{}),t.jsx("th",{children:"Yes"}),t.jsx("th",{children:"Planned"}),t.jsx("th",{children:"Yes"}),t.jsx("th",{children:"Planned"}),t.jsx("th",{children:"Yes"}),t.jsx("th",{children:"Planned"}),t.jsx("th",{children:"Yes"}),t.jsx("th",{children:"Planned"}),t.jsx("th",{children:"Yes"}),t.jsx("th",{children:"Planned"})]})]}),e[43]=o,e[44]=d):(o=e[43],d=e[44]),j=Array.from(Q.entries()).map(E=>{const[H,i]=E;return t.jsxs("tr",{children:[t.jsx("td",{children:H}),["routers","firewalls","load_balancers","vpn_concentrators"].map(l=>t.jsxs(t.Fragment,{children:[t.jsx("td",{children:i.has(l)&&M.map(s=>{const a=i.get(l),r=a.get(s);return t.jsx(I,{year:s,active:a.has(s)&&!!(r&&r.nfv=="yes"),tooltip:"",rounded:!0},s)})},`${l}-yes`),t.jsx("td",{children:i.has(l)&&M.map(s=>{const a=i.get(l),r=a.get(s);return t.jsx(I,{year:s,active:a.has(s)&&!!(r&&r.nfv=="planned"),tooltip:"",rounded:!0},s)})},`${l}-planned`)]})),t.jsx("td",{children:Array.from(i.keys()).filter(ce).map(l=>t.jsx("div",{children:i.has(l)&&M.map(s=>{const a=i.get(l),r=a.get(s);return t.jsx(I,{year:s,active:a.has(s)&&!!(r&&(r==null?void 0:r.nfv)=="yes"),tooltip:l,rounded:!0},s)})},`${l}-yes`))},`${H}-other-yes`),t.jsx("td",{children:Array.from(i.keys()).filter(ie).map(l=>t.jsx("div",{children:i.has(l)&&M.map(s=>{const a=i.get(l),r=a.get(s);return t.jsx(I,{year:s,active:a.has(s)&&!!(r&&(r==null?void 0:r.nfv)=="planned"),tooltip:l,rounded:!0},s)})},`${l}-planned`))},`${H}-other-planned`)]},H)}),e[0]=J,e[1]=n,e[2]=R,e[3]=h,e[4]=c,e[5]=f,e[6]=p,e[7]=x,e[8]=j,e[9]=m,e[10]=u,e[11]=g,e[12]=v,e[13]=b,e[14]=o,e[15]=d,e[16]=w,e[17]=S,e[18]=Y,e[19]=N}else f=e[5],p=e[6],x=e[7],j=e[8],m=e[9],u=e[10],g=e[11],v=e[12],b=e[13],o=e[14],d=e[15],w=e[16],S=e[17],Y=e[18],N=e[19];let F;e[45]!==j?(F=t.jsx("tbody",{children:j}),e[45]=j,e[46]=F):F=e[46];let y;e[47]!==f||e[48]!==m||e[49]!==F||e[50]!==v||e[51]!==b||e[52]!==o||e[53]!==d?(y=t.jsxs(f,{className:m,striped:v,bordered:b,children:[o,d,F]}),e[47]=f,e[48]=m,e[49]=F,e[50]=v,e[51]=b,e[52]=o,e[53]=d,e[54]=y):y=e[54];let P;e[55]!==p||e[56]!==y?(P=t.jsx(p,{children:y}),e[55]=p,e[56]=y,e[57]=P):P=e[57];let V;return e[58]!==x||e[59]!==u||e[60]!==g||e[61]!==P||e[62]!==w||e[63]!==S||e[64]!==Y||e[65]!==N?(V=t.jsx(x,{title:w,description:S,category:Y,filter:N,data:u,filename:g,children:P}),e[58]=x,e[59]=u,e[60]=g,e[61]=P,e[62]=w,e[63]=S,e[64]=Y,e[65]=N,e[66]=V):V=e[66],V}function ie(e){return!["routers","firewalls","load_balancers","vpn_concentrators"].includes(e)}function ce(e){return!["routers","firewalls","load_balancers","vpn_concentrators"].includes(e)}export{ue as default}; diff --git a/compendium_v2/static/NetworkMapUrls-xqgin1fL.js b/compendium_v2/static/NetworkMapUrls-Dt6zTyC6.js similarity index 77% rename from compendium_v2/static/NetworkMapUrls-xqgin1fL.js rename to compendium_v2/static/NetworkMapUrls-Dt6zTyC6.js index 68df5cfb8489d03d66d7b668f4da8b7c1a9689f1..73ccee69034e73b9835099d965c4edad977f12b1 100644 --- a/compendium_v2/static/NetworkMapUrls-xqgin1fL.js +++ b/compendium_v2/static/NetworkMapUrls-Dt6zTyC6.js @@ -1 +1 @@ -import{c as b,r as h,F as j,j as u,t as y,S as _}from"./index-DBbSOdjk.js";import{u as g,q as v,k as S,i as F,D as C,F as E,f as L,s as R}from"./useData-CcKTpALT.js";import{N as T}from"./NrenYearTable-C1JRhqy_.js";import"./SideBar-DfD7Pj8p.js";import"./xlsx-BHRztzV8.js";import"./index-DkYuYqrz.js";import"./hook-D9Tuu5oJ.js";import"./Table-DNomfHX4.js";function z(){const e=b.c(21),{filterSelection:t,setFilterSelection:r}=h.useContext(j),{data:a,nrens:i}=g("/api/network-map-urls",r);let s,c;if(e[0]!==a||e[1]!==t.selectedNrens){const x=a?v(a):[];let d;e[4]!==t.selectedNrens?(d=w=>t.selectedNrens.includes(w.nren),e[4]=t.selectedNrens,e[5]=d):d=e[5],s=x.filter(d);const D=S(s);c=F(D,Y),e[0]=a,e[1]=t.selectedNrens,e[2]=s,e[3]=c}else s=e[2],c=e[3];const k=c;let p;e[6]===Symbol.for("react.memo_cache_sentinel")?(p=[],e[6]=p):p=e[6];let o;e[7]!==i?(o=i.values(),e[7]=i,e[8]=o):o=e[8];let l;e[9]!==o?(l={availableYears:p,availableNrens:[...o]},e[9]=o,e[10]=l):l=e[10];let f;e[11]!==t||e[12]!==r||e[13]!==l?(f=u.jsx(E,{filterOptions:l,filterSelection:t,setFilterSelection:r,coloredYears:!0}),e[11]=t,e[12]=r,e[13]=l,e[14]=f):f=e[14];const N=f;let n;e[15]!==k?(n=u.jsx(L,{children:u.jsx(T,{data:k,columnTitle:"Network Map",dottedBorder:!0,noDots:!0,keysAreURLs:!0,removeDecoration:!0})}),e[15]=k,e[16]=n):n=e[16];let m;return e[17]!==N||e[18]!==s||e[19]!==n?(m=u.jsx(C,{title:y["network-map"],description:"This table provides links to NREN network maps, showing layers 1, 2, and 3 of their networks.",category:_.Network,filter:N,data:s,filename:"network_map_nrens_per_year",children:n}),e[17]=N,e[18]=s,e[19]=n,e[20]=m):m=e[20],m}function Y(e,t){const r=R(t);if(r!=null)for(const[a,i]of Object.entries(r))e[a]=i}export{z as default}; +import{c as b,r as h,F as j,j as u,t as y,S as _}from"./index-bwDVKb7d.js";import{u as g,q as v,k as S,i as F,D as C,F as E,f as L,s as R}from"./useData-Ba-3avp3.js";import{N as T}from"./NrenYearTable-9mB4hcmt.js";import"./SideBar-D_Yxr_mj.js";import"./xlsx-BHRztzV8.js";import"./index-Y7aK5es_.js";import"./hook-BGVjY_62.js";import"./Table-D4mMg192.js";function z(){const e=b.c(21),{filterSelection:t,setFilterSelection:r}=h.useContext(j),{data:a,nrens:i}=g("/api/network-map-urls",r);let s,c;if(e[0]!==a||e[1]!==t.selectedNrens){const x=a?v(a):[];let d;e[4]!==t.selectedNrens?(d=w=>t.selectedNrens.includes(w.nren),e[4]=t.selectedNrens,e[5]=d):d=e[5],s=x.filter(d);const D=S(s);c=F(D,Y),e[0]=a,e[1]=t.selectedNrens,e[2]=s,e[3]=c}else s=e[2],c=e[3];const k=c;let p;e[6]===Symbol.for("react.memo_cache_sentinel")?(p=[],e[6]=p):p=e[6];let o;e[7]!==i?(o=i.values(),e[7]=i,e[8]=o):o=e[8];let l;e[9]!==o?(l={availableYears:p,availableNrens:[...o]},e[9]=o,e[10]=l):l=e[10];let f;e[11]!==t||e[12]!==r||e[13]!==l?(f=u.jsx(E,{filterOptions:l,filterSelection:t,setFilterSelection:r,coloredYears:!0}),e[11]=t,e[12]=r,e[13]=l,e[14]=f):f=e[14];const N=f;let n;e[15]!==k?(n=u.jsx(L,{children:u.jsx(T,{data:k,columnTitle:"Network Map",dottedBorder:!0,noDots:!0,keysAreURLs:!0,removeDecoration:!0})}),e[15]=k,e[16]=n):n=e[16];let m;return e[17]!==N||e[18]!==s||e[19]!==n?(m=u.jsx(C,{title:y["network-map"],description:"This table provides links to NREN network maps, showing layers 1, 2, and 3 of their networks.",category:_.Network,filter:N,data:s,filename:"network_map_nrens_per_year",children:n}),e[17]=N,e[18]=s,e[19]=n,e[20]=m):m=e[20],m}function Y(e,t){const r=R(t);if(r!=null)for(const[a,i]of Object.entries(r))e[a]=i}export{z as default}; diff --git a/compendium_v2/static/NonRAndEPeer-B8hczKc3.js b/compendium_v2/static/NonRAndEPeer-BYXfmV9K.js similarity index 81% rename from compendium_v2/static/NonRAndEPeer-B8hczKc3.js rename to compendium_v2/static/NonRAndEPeer-BYXfmV9K.js index 15bc5de0d5b46d6b72bf968ce65818ea41869dd0..c709010f3481e1a6435fd9688dd056e0275b3c76 100644 --- a/compendium_v2/static/NonRAndEPeer-B8hczKc3.js +++ b/compendium_v2/static/NonRAndEPeer-BYXfmV9K.js @@ -1,2 +1,2 @@ -import{c as D,r as F,F as Y,j as u,S as v,t as k}from"./index-DBbSOdjk.js";import{B as A}from"./index-DyJczNpq.js";import{C as L,a as O,L as T,B as $,p as G,c as I,d as M,u as q,o as z,D as H,F as J,f as K}from"./useData-CcKTpALT.js";import{p as Q}from"./chartjs-plugin-datalabels.esm-C6J4S2ma.js";import{a as U}from"./charthelpers-CHBq5wBZ.js";import"./SideBar-DfD7Pj8p.js";import"./xlsx-BHRztzV8.js";import"./index-DkYuYqrz.js";import"./hook-D9Tuu5oJ.js";L.register(O,T,$,G,I,M);function ne(){const e=D.c(38),{filterSelection:t,setFilterSelection:r}=F.useContext(Y),{data:b,years:d,nrens:h}=q("/api/non-re-peers",r);let a,l,s,g;if(e[0]!==b||e[1]!==t||e[2]!==h||e[3]!==r||e[4]!==d){let S;e[9]!==t.selectedNrens||e[10]!==t.selectedYears?(S=E=>t.selectedYears.includes(E.year)&&t.selectedNrens.includes(E.nren),e[9]=t.selectedNrens,e[10]=t.selectedYears,e[11]=S):S=e[11],s=b.filter(S),a=z(s,"nr_of_non_r_and_e_peers","Number of Peers");let c;e[12]!==d?(c=[...d],e[12]=d,e[13]=c):c=e[13];let m;e[14]!==h?(m=h.values(),e[14]=h,e[15]=m):m=e[15];let p;e[16]!==m?(p=[...m],e[16]=m,e[17]=p):p=e[17];let f;e[18]!==c||e[19]!==p?(f={availableYears:c,availableNrens:p},e[18]=c,e[19]=p,e[20]=f):f=e[20];let C;e[21]!==t||e[22]!==r||e[23]!==f?(C=u.jsx(J,{filterOptions:f,filterSelection:t,setFilterSelection:r}),e[21]=t,e[22]=r,e[23]=f,e[24]=C):C=e[24],l=C,g=Array.from(new Set(s.map(V))),e[0]=b,e[1]=t,e[2]=h,e[3]=r,e[4]=d,e[5]=a,e[6]=l,e[7]=s,e[8]=g}else a=e[5],l=e[6],s=e[7],g=e[8];const j=g.length,w=Math.max(j*t.selectedYears.length*1.5+5,50),B=k["non-rne-peers"],P=`The graph below shows the number of non-Research and Education networks +import{c as D,r as F,F as Y,j as u,S as v,t as k}from"./index-bwDVKb7d.js";import{B as A}from"./index-0m6TK_PI.js";import{C as L,a as O,L as T,B as $,p as G,c as I,d as M,u as q,o as z,D as H,F as J,f as K}from"./useData-Ba-3avp3.js";import{p as Q}from"./chartjs-plugin-datalabels.esm-BoLCz2jr.js";import{a as U}from"./charthelpers-Cs3DRBw0.js";import"./SideBar-D_Yxr_mj.js";import"./xlsx-BHRztzV8.js";import"./index-Y7aK5es_.js";import"./hook-BGVjY_62.js";L.register(O,T,$,G,I,M);function ne(){const e=D.c(38),{filterSelection:t,setFilterSelection:r}=F.useContext(Y),{data:b,years:d,nrens:h}=q("/api/non-re-peers",r);let a,l,s,g;if(e[0]!==b||e[1]!==t||e[2]!==h||e[3]!==r||e[4]!==d){let S;e[9]!==t.selectedNrens||e[10]!==t.selectedYears?(S=E=>t.selectedYears.includes(E.year)&&t.selectedNrens.includes(E.nren),e[9]=t.selectedNrens,e[10]=t.selectedYears,e[11]=S):S=e[11],s=b.filter(S),a=z(s,"nr_of_non_r_and_e_peers","Number of Peers");let c;e[12]!==d?(c=[...d],e[12]=d,e[13]=c):c=e[13];let m;e[14]!==h?(m=h.values(),e[14]=h,e[15]=m):m=e[15];let p;e[16]!==m?(p=[...m],e[16]=m,e[17]=p):p=e[17];let f;e[18]!==c||e[19]!==p?(f={availableYears:c,availableNrens:p},e[18]=c,e[19]=p,e[20]=f):f=e[20];let C;e[21]!==t||e[22]!==r||e[23]!==f?(C=u.jsx(J,{filterOptions:f,filterSelection:t,setFilterSelection:r}),e[21]=t,e[22]=r,e[23]=f,e[24]=C):C=e[24],l=C,g=Array.from(new Set(s.map(V))),e[0]=b,e[1]=t,e[2]=h,e[3]=r,e[4]=d,e[5]=a,e[6]=l,e[7]=s,e[8]=g}else a=e[5],l=e[6],s=e[7],g=e[8];const j=g.length,w=Math.max(j*t.selectedYears.length*1.5+5,50),B=k["non-rne-peers"],P=`The graph below shows the number of non-Research and Education networks NRENs peer with. This includes all direct IP-peerings to commercial networks, eg. Google`;let _;e[25]===Symbol.for("react.memo_cache_sentinel")?(_=U({title:"Number of Non-R&E Peers"}),e[25]=_):_=e[25];const R=_,y=`${w}rem`;let n;e[26]!==y?(n={height:y},e[26]=y,e[27]=n):n=e[27];let N;e[28]===Symbol.for("react.memo_cache_sentinel")?(N=[Q],e[28]=N):N=e[28];let i;e[29]!==a?(i=u.jsx(A,{data:a,options:R,plugins:N}),e[29]=a,e[30]=i):i=e[30];let o;e[31]!==n||e[32]!==i?(o=u.jsx(K,{children:u.jsx("div",{className:"chart-container",style:n,children:i})}),e[31]=n,e[32]=i,e[33]=o):o=e[33];let x;return e[34]!==l||e[35]!==s||e[36]!==o?(x=u.jsx(H,{title:B,description:P,category:v.Network,filter:l,data:s,filename:"non_r_and_e_peering",children:o}),e[34]=l,e[35]=s,e[36]=o,e[37]=x):x=e[37],x}function V(e){return e.nren}export{ne as default}; diff --git a/compendium_v2/static/NrenYearTable-C1JRhqy_.js b/compendium_v2/static/NrenYearTable-9mB4hcmt.js similarity index 93% rename from compendium_v2/static/NrenYearTable-C1JRhqy_.js rename to compendium_v2/static/NrenYearTable-9mB4hcmt.js index 0d63ec0eac90e0d5a6a6466fbf5003d4d5c47854..f31d0a5f1d94e5c96becac1c8ecf44e60389ba0f 100644 --- a/compendium_v2/static/NrenYearTable-C1JRhqy_.js +++ b/compendium_v2/static/NrenYearTable-9mB4hcmt.js @@ -1 +1 @@ -import{c as j,j as r}from"./index-DBbSOdjk.js";import{w as p}from"./useData-CcKTpALT.js";import{T as u}from"./Table-DNomfHX4.js";function N(f,e,s,l,t){return f?l.startsWith("http")?r.jsx("li",{children:r.jsx("a",{href:p(l),target:"_blank",rel:"noopener noreferrer",style:e,children:t})},s):r.jsx("li",{children:r.jsx("span",{children:t})},s):r.jsx("li",{children:r.jsx("span",{children:t})},s)}function b(f,{dottedBorder:e=!1,noDots:s=!1,keysAreURLs:l=!1,removeDecoration:t=!1}){return Array.from(f.entries()).map(([i,x])=>Array.from(x.entries()).map(([o,m],d)=>{const n={};return t&&(n.textDecoration="none"),r.jsxs("tr",{className:e?"dotted-border":"",children:[r.jsx("td",{className:"pt-3 nren-column text-nowrap",children:d===0&&i}),r.jsx("td",{className:"pt-3 year-column",children:o}),r.jsx("td",{className:"pt-3 blue-column",children:r.jsx("ul",{className:s?"no-list-style-type":"",children:Array.from(Object.entries(m)).map(([a,c],h)=>N(l,n,h,c,a))})})]},i+o)}))}function _(f){const e=j.c(15),{data:s,columnTitle:l,dottedBorder:t,noDots:i,keysAreURLs:x,removeDecoration:o}=f;let m;e[0]===Symbol.for("react.memo_cache_sentinel")?(m=r.jsx("th",{className:"nren-column",children:r.jsx("span",{children:"NREN"})}),e[0]=m):m=e[0];let d;e[1]===Symbol.for("react.memo_cache_sentinel")?(d=r.jsx("th",{className:"year-column",children:r.jsx("span",{children:"Year"})}),e[1]=d):d=e[1];let n;e[2]!==l?(n=r.jsx("thead",{children:r.jsxs("tr",{children:[m,d,r.jsx("th",{className:"blue-column",children:r.jsx("span",{children:l})})]})}),e[2]=l,e[3]=n):n=e[3];let a;e[4]!==s||e[5]!==t||e[6]!==x||e[7]!==i||e[8]!==o?(a=b(s,{dottedBorder:t,noDots:i,keysAreURLs:x,removeDecoration:o}),e[4]=s,e[5]=t,e[6]=x,e[7]=i,e[8]=o,e[9]=a):a=e[9];let c;e[10]!==a?(c=r.jsx("tbody",{children:a}),e[10]=a,e[11]=c):c=e[11];let h;return e[12]!==n||e[13]!==c?(h=r.jsxs(u,{borderless:!0,className:"compendium-table",children:[n,c]}),e[12]=n,e[13]=c,e[14]=h):h=e[14],h}export{_ as N}; +import{c as j,j as r}from"./index-bwDVKb7d.js";import{w as p}from"./useData-Ba-3avp3.js";import{T as u}from"./Table-D4mMg192.js";function N(f,e,s,l,t){return f?l.startsWith("http")?r.jsx("li",{children:r.jsx("a",{href:p(l),target:"_blank",rel:"noopener noreferrer",style:e,children:t})},s):r.jsx("li",{children:r.jsx("span",{children:t})},s):r.jsx("li",{children:r.jsx("span",{children:t})},s)}function b(f,{dottedBorder:e=!1,noDots:s=!1,keysAreURLs:l=!1,removeDecoration:t=!1}){return Array.from(f.entries()).map(([i,x])=>Array.from(x.entries()).map(([o,m],d)=>{const n={};return t&&(n.textDecoration="none"),r.jsxs("tr",{className:e?"dotted-border":"",children:[r.jsx("td",{className:"pt-3 nren-column text-nowrap",children:d===0&&i}),r.jsx("td",{className:"pt-3 year-column",children:o}),r.jsx("td",{className:"pt-3 blue-column",children:r.jsx("ul",{className:s?"no-list-style-type":"",children:Array.from(Object.entries(m)).map(([a,c],h)=>N(l,n,h,c,a))})})]},i+o)}))}function _(f){const e=j.c(15),{data:s,columnTitle:l,dottedBorder:t,noDots:i,keysAreURLs:x,removeDecoration:o}=f;let m;e[0]===Symbol.for("react.memo_cache_sentinel")?(m=r.jsx("th",{className:"nren-column",children:r.jsx("span",{children:"NREN"})}),e[0]=m):m=e[0];let d;e[1]===Symbol.for("react.memo_cache_sentinel")?(d=r.jsx("th",{className:"year-column",children:r.jsx("span",{children:"Year"})}),e[1]=d):d=e[1];let n;e[2]!==l?(n=r.jsx("thead",{children:r.jsxs("tr",{children:[m,d,r.jsx("th",{className:"blue-column",children:r.jsx("span",{children:l})})]})}),e[2]=l,e[3]=n):n=e[3];let a;e[4]!==s||e[5]!==t||e[6]!==x||e[7]!==i||e[8]!==o?(a=b(s,{dottedBorder:t,noDots:i,keysAreURLs:x,removeDecoration:o}),e[4]=s,e[5]=t,e[6]=x,e[7]=i,e[8]=o,e[9]=a):a=e[9];let c;e[10]!==a?(c=r.jsx("tbody",{children:a}),e[10]=a,e[11]=c):c=e[11];let h;return e[12]!==n||e[13]!==c?(h=r.jsxs(u,{borderless:!0,className:"compendium-table",children:[n,c]}),e[12]=n,e[13]=c,e[14]=h):h=e[14],h}export{_ as N}; diff --git a/compendium_v2/static/OPsAutomation-CaApYas2.js b/compendium_v2/static/OPsAutomation-Bi0pOS0H.js similarity index 82% rename from compendium_v2/static/OPsAutomation-CaApYas2.js rename to compendium_v2/static/OPsAutomation-Bi0pOS0H.js index efcdc0d56dcfc11e588dc8f12c19213f3a7bad7d..a0dd2ceeee98e5aaaa5f4a067721a3ca4937a6f2 100644 --- a/compendium_v2/static/OPsAutomation-CaApYas2.js +++ b/compendium_v2/static/OPsAutomation-Bi0pOS0H.js @@ -1,3 +1,3 @@ -import{c as y,r as P,F as S,j as h,t as g,S as k}from"./index-DBbSOdjk.js";import{u as v,g as F,n as C,D,F as E,f as L}from"./useData-CcKTpALT.js";import{P as R}from"./PillTable-CIcKqQJh.js";import"./SideBar-DfD7Pj8p.js";import"./xlsx-BHRztzV8.js";import"./index-DkYuYqrz.js";import"./hook-D9Tuu5oJ.js";import"./ColorPill-CuYEYQ56.js";import"./Table-DNomfHX4.js";function J(){const e=y.c(29),{filterSelection:t,setFilterSelection:c}=P.useContext(S),{data:N,years:x,nrens:_}=v("/api/ops-automation",c);let s,p;if(e[0]!==N||e[1]!==t.selectedNrens||e[2]!==t.selectedYears){let d;e[5]!==t.selectedNrens||e[6]!==t.selectedYears?(d=b=>t.selectedYears.includes(b.year)&&t.selectedNrens.includes(b.nren),e[5]=t.selectedNrens,e[6]=t.selectedYears,e[7]=d):d=e[7],s=N.filter(d);const j=F(s,"ops_automation");p=C(j,M),e[0]=N,e[1]=t.selectedNrens,e[2]=t.selectedYears,e[3]=s,e[4]=p}else s=e[3],p=e[4];const w=p;let o,m;e[8]===Symbol.for("react.memo_cache_sentinel")?(o=["Yes","Planned","No"],m=new Map([[o[0],"yes"],[o[1],"planned"],[o[2],"no"]]),e[8]=o,e[9]=m):(o=e[8],m=e[9]);const T=m;let a;e[10]!==x?(a=[...x],e[10]=x,e[11]=a):a=e[11];let l;e[12]!==_?(l=_.values(),e[12]=_,e[13]=l):l=e[13];let i;e[14]!==l?(i=[...l],e[14]=l,e[15]=i):i=e[15];let r;e[16]!==a||e[17]!==i?(r={availableYears:a,availableNrens:i},e[16]=a,e[17]=i,e[18]=r):r=e[18];let u;e[19]!==t||e[20]!==c||e[21]!==r?(u=h.jsx(E,{filterOptions:r,filterSelection:t,setFilterSelection:c,coloredYears:!0}),e[19]=t,e[20]=c,e[21]=r,e[22]=u):u=e[22];const Y=u;let n;e[23]!==w?(n=h.jsx(L,{children:h.jsx(R,{columns:o,columnLookup:T,dataLookup:w})}),e[23]=w,e[24]=n):n=e[24];let f;return e[25]!==Y||e[26]!==s||e[27]!==n?(f=h.jsx(D,{title:g["ops-automation"],description:`The table below shows which NRENs have, or plan to, automate their +import{c as y,r as P,F as S,j as h,t as g,S as k}from"./index-bwDVKb7d.js";import{u as v,g as F,n as C,D,F as E,f as L}from"./useData-Ba-3avp3.js";import{P as R}from"./PillTable-C7hMt52B.js";import"./SideBar-D_Yxr_mj.js";import"./xlsx-BHRztzV8.js";import"./index-Y7aK5es_.js";import"./hook-BGVjY_62.js";import"./ColorPill-D7RILPI9.js";import"./Table-D4mMg192.js";function J(){const e=y.c(29),{filterSelection:t,setFilterSelection:c}=P.useContext(S),{data:N,years:x,nrens:_}=v("/api/ops-automation",c);let s,p;if(e[0]!==N||e[1]!==t.selectedNrens||e[2]!==t.selectedYears){let d;e[5]!==t.selectedNrens||e[6]!==t.selectedYears?(d=b=>t.selectedYears.includes(b.year)&&t.selectedNrens.includes(b.nren),e[5]=t.selectedNrens,e[6]=t.selectedYears,e[7]=d):d=e[7],s=N.filter(d);const j=F(s,"ops_automation");p=C(j,M),e[0]=N,e[1]=t.selectedNrens,e[2]=t.selectedYears,e[3]=s,e[4]=p}else s=e[3],p=e[4];const w=p;let o,m;e[8]===Symbol.for("react.memo_cache_sentinel")?(o=["Yes","Planned","No"],m=new Map([[o[0],"yes"],[o[1],"planned"],[o[2],"no"]]),e[8]=o,e[9]=m):(o=e[8],m=e[9]);const T=m;let a;e[10]!==x?(a=[...x],e[10]=x,e[11]=a):a=e[11];let l;e[12]!==_?(l=_.values(),e[12]=_,e[13]=l):l=e[13];let i;e[14]!==l?(i=[...l],e[14]=l,e[15]=i):i=e[15];let r;e[16]!==a||e[17]!==i?(r={availableYears:a,availableNrens:i},e[16]=a,e[17]=i,e[18]=r):r=e[18];let u;e[19]!==t||e[20]!==c||e[21]!==r?(u=h.jsx(E,{filterOptions:r,filterSelection:t,setFilterSelection:c,coloredYears:!0}),e[19]=t,e[20]=c,e[21]=r,e[22]=u):u=e[22];const Y=u;let n;e[23]!==w?(n=h.jsx(L,{children:h.jsx(R,{columns:o,columnLookup:T,dataLookup:w})}),e[23]=w,e[24]=n):n=e[24];let f;return e[25]!==Y||e[26]!==s||e[27]!==n?(f=h.jsx(D,{title:g["ops-automation"],description:`The table below shows which NRENs have, or plan to, automate their operational processes, with specification of which processes, and the names of software and tools used for this given when appropriate.`,category:k.Network,filter:Y,data:s,filename:"ops_automation_nrens_per_year",children:n}),e[25]=Y,e[26]=s,e[27]=n,e[28]=f):f=e[28],f}function M(e,t){if(t.ops_automation_specifics)return t.ops_automation_specifics}export{J as default}; diff --git a/compendium_v2/static/ParentOrganisation-C_34aAmv.js b/compendium_v2/static/ParentOrganisation-DGI8NZ1v.js similarity index 83% rename from compendium_v2/static/ParentOrganisation-C_34aAmv.js rename to compendium_v2/static/ParentOrganisation-DGI8NZ1v.js index 38e2e1050cacefafb706de227ffb454f822372a6..94488e5625eda4c40edee369629736ccc38f378a 100644 --- a/compendium_v2/static/ParentOrganisation-C_34aAmv.js +++ b/compendium_v2/static/ParentOrganisation-DGI8NZ1v.js @@ -1 +1 @@ -import{c as b,r as y,F as j,j as p,S as v}from"./index-DBbSOdjk.js";import{u as E,k as O,i as S,D as F,F as P,f as R}from"./useData-CcKTpALT.js";import{N as w}from"./NrenYearTable-C1JRhqy_.js";import"./SideBar-DfD7Pj8p.js";import"./xlsx-BHRztzV8.js";import"./index-DkYuYqrz.js";import"./hook-D9Tuu5oJ.js";import"./Table-DNomfHX4.js";function q(){const e=b.c(27),{filterSelection:t,setFilterSelection:a}=y.useContext(j),{data:u,years:g,nrens:N}=E("/api/parent-organizations",a);let s,c;if(e[0]!==t.selectedNrens||e[1]!==t.selectedYears||e[2]!==u){let m;e[5]!==t.selectedNrens||e[6]!==t.selectedYears?(m=h=>t.selectedYears.includes(h.year)&&t.selectedNrens.includes(h.nren),e[5]=t.selectedNrens,e[6]=t.selectedYears,e[7]=m):m=e[7],s=u.filter(m);const Y=O(s);c=S(Y,C),e[0]=t.selectedNrens,e[1]=t.selectedYears,e[2]=u,e[3]=s,e[4]=c}else s=e[3],c=e[4];const x=c;let r;e[8]!==g?(r=[...g],e[8]=g,e[9]=r):r=e[9];let i;e[10]!==N?(i=N.values(),e[10]=N,e[11]=i):i=e[11];let n;e[12]!==i?(n=[...i],e[12]=i,e[13]=n):n=e[13];let l;e[14]!==r||e[15]!==n?(l={availableYears:r,availableNrens:n},e[14]=r,e[15]=n,e[16]=l):l=e[16];let d;e[17]!==t||e[18]!==a||e[19]!==l?(d=p.jsx(P,{filterOptions:l,filterSelection:t,setFilterSelection:a,max1year:!0}),e[17]=t,e[18]=a,e[19]=l,e[20]=d):d=e[20];const D=d;let o;e[21]!==x?(o=p.jsx(R,{children:p.jsx(w,{data:x,columnTitle:"Parent Organisation",dottedBorder:!0,noDots:!0})}),e[21]=x,e[22]=o):o=e[22];let f;return e[23]!==D||e[24]!==s||e[25]!==o?(f=p.jsx(F,{title:"NREN Parent Organisations",description:"Some NRENs are part of larger organisations, including Ministries or universities. These are shown in the table below. Only NRENs who are managed in this way are available to select.",category:v.Organisation,filter:D,data:s,filename:"nren_parent_organisations",children:o}),e[23]=D,e[24]=s,e[25]=o,e[26]=f):f=e[26],f}function C(e,t){const a=t.name;e[a]=a}export{q as default}; +import{c as b,r as y,F as j,j as p,S as v}from"./index-bwDVKb7d.js";import{u as E,k as O,i as S,D as F,F as P,f as R}from"./useData-Ba-3avp3.js";import{N as w}from"./NrenYearTable-9mB4hcmt.js";import"./SideBar-D_Yxr_mj.js";import"./xlsx-BHRztzV8.js";import"./index-Y7aK5es_.js";import"./hook-BGVjY_62.js";import"./Table-D4mMg192.js";function q(){const e=b.c(27),{filterSelection:t,setFilterSelection:a}=y.useContext(j),{data:u,years:g,nrens:N}=E("/api/parent-organizations",a);let s,c;if(e[0]!==t.selectedNrens||e[1]!==t.selectedYears||e[2]!==u){let m;e[5]!==t.selectedNrens||e[6]!==t.selectedYears?(m=h=>t.selectedYears.includes(h.year)&&t.selectedNrens.includes(h.nren),e[5]=t.selectedNrens,e[6]=t.selectedYears,e[7]=m):m=e[7],s=u.filter(m);const Y=O(s);c=S(Y,C),e[0]=t.selectedNrens,e[1]=t.selectedYears,e[2]=u,e[3]=s,e[4]=c}else s=e[3],c=e[4];const x=c;let r;e[8]!==g?(r=[...g],e[8]=g,e[9]=r):r=e[9];let i;e[10]!==N?(i=N.values(),e[10]=N,e[11]=i):i=e[11];let n;e[12]!==i?(n=[...i],e[12]=i,e[13]=n):n=e[13];let l;e[14]!==r||e[15]!==n?(l={availableYears:r,availableNrens:n},e[14]=r,e[15]=n,e[16]=l):l=e[16];let d;e[17]!==t||e[18]!==a||e[19]!==l?(d=p.jsx(P,{filterOptions:l,filterSelection:t,setFilterSelection:a,max1year:!0}),e[17]=t,e[18]=a,e[19]=l,e[20]=d):d=e[20];const D=d;let o;e[21]!==x?(o=p.jsx(R,{children:p.jsx(w,{data:x,columnTitle:"Parent Organisation",dottedBorder:!0,noDots:!0})}),e[21]=x,e[22]=o):o=e[22];let f;return e[23]!==D||e[24]!==s||e[25]!==o?(f=p.jsx(F,{title:"NREN Parent Organisations",description:"Some NRENs are part of larger organisations, including Ministries or universities. These are shown in the table below. Only NRENs who are managed in this way are available to select.",category:v.Organisation,filter:D,data:s,filename:"nren_parent_organisations",children:o}),e[23]=D,e[24]=s,e[25]=o,e[26]=f):f=e[26],f}function C(e,t){const a=t.name;e[a]=a}export{q as default}; diff --git a/compendium_v2/static/PassiveMonitoring-HFCN_S9d.js b/compendium_v2/static/PassiveMonitoring-BNpFmLP-.js similarity index 81% rename from compendium_v2/static/PassiveMonitoring-HFCN_S9d.js rename to compendium_v2/static/PassiveMonitoring-BNpFmLP-.js index 3adc74a8bec6716307ae4dd4a9be9539d08ebfbd..728bc605e1693bae909bbb9bc0c506e9e7d476d6 100644 --- a/compendium_v2/static/PassiveMonitoring-HFCN_S9d.js +++ b/compendium_v2/static/PassiveMonitoring-BNpFmLP-.js @@ -1 +1 @@ -import{c as Y,r as j,F as _,j as N,t as y,S as F}from"./index-DBbSOdjk.js";import{u as T,g as k,D as w,F as A,f as C}from"./useData-CcKTpALT.js";import{P as D}from"./PillTable-CIcKqQJh.js";import"./SideBar-DfD7Pj8p.js";import"./xlsx-BHRztzV8.js";import"./index-DkYuYqrz.js";import"./hook-D9Tuu5oJ.js";import"./ColorPill-CuYEYQ56.js";import"./Table-DNomfHX4.js";function z(){const e=Y.c(29),{filterSelection:t,setFilterSelection:c}=j.useContext(_),{data:h,years:x,nrens:g}=T("/api/passive-monitoring",c);let o,p;if(e[0]!==h||e[1]!==t.selectedNrens||e[2]!==t.selectedYears){let u;e[5]!==t.selectedNrens||e[6]!==t.selectedYears?(u=S=>t.selectedYears.includes(S.year)&&t.selectedNrens.includes(S.nren),e[5]=t.selectedNrens,e[6]=t.selectedYears,e[7]=u):u=e[7],o=h.filter(u),p=k(o,"method",!0),e[0]=h,e[1]=t.selectedNrens,e[2]=t.selectedYears,e[3]=o,e[4]=p}else o=e[3],p=e[4];const v=p;let l;e[8]!==x?(l=[...x],e[8]=x,e[9]=l):l=e[9];let r;e[10]!==g?(r=g.values(),e[10]=g,e[11]=r):r=e[11];let i;e[12]!==r?(i=[...r],e[12]=r,e[13]=i):i=e[13];let a;e[14]!==l||e[15]!==i?(a={availableYears:l,availableNrens:i},e[14]=l,e[15]=i,e[16]=a):a=e[16];let m;e[17]!==t||e[18]!==c||e[19]!==a?(m=N.jsx(A,{filterOptions:a,filterSelection:t,setFilterSelection:c,coloredYears:!0}),e[17]=t,e[18]=c,e[19]=a,e[20]=m):m=e[20];const P=m;let s,f;e[21]===Symbol.for("react.memo_cache_sentinel")?(s=["No monitoring occurs","SPAN ports","Passive optical TAPS","Both SPAN ports and passive optical TAPS"],f=new Map([[s[0],"null"],[s[1],"span_ports"],[s[2],"taps"],[s[3],"both"]]),e[21]=s,e[22]=f):(s=e[21],f=e[22]);const b=f;let n;e[23]!==v?(n=N.jsx(C,{children:N.jsx(D,{columns:s,dataLookup:v,columnLookup:b})}),e[23]=v,e[24]=n):n=e[24];let d;return e[25]!==P||e[26]!==o||e[27]!==n?(d=N.jsx(w,{title:y["passive-monitoring"],description:"The table below shows the methods NRENs use for the passive monitoring of international traffic.",category:F.Network,filter:P,data:o,filename:"passive_monitoring_nrens_per_year",children:n}),e[25]=P,e[26]=o,e[27]=n,e[28]=d):d=e[28],d}export{z as default}; +import{c as Y,r as j,F as _,j as N,t as y,S as F}from"./index-bwDVKb7d.js";import{u as T,g as k,D as w,F as A,f as C}from"./useData-Ba-3avp3.js";import{P as D}from"./PillTable-C7hMt52B.js";import"./SideBar-D_Yxr_mj.js";import"./xlsx-BHRztzV8.js";import"./index-Y7aK5es_.js";import"./hook-BGVjY_62.js";import"./ColorPill-D7RILPI9.js";import"./Table-D4mMg192.js";function z(){const e=Y.c(29),{filterSelection:t,setFilterSelection:c}=j.useContext(_),{data:h,years:x,nrens:g}=T("/api/passive-monitoring",c);let o,p;if(e[0]!==h||e[1]!==t.selectedNrens||e[2]!==t.selectedYears){let u;e[5]!==t.selectedNrens||e[6]!==t.selectedYears?(u=S=>t.selectedYears.includes(S.year)&&t.selectedNrens.includes(S.nren),e[5]=t.selectedNrens,e[6]=t.selectedYears,e[7]=u):u=e[7],o=h.filter(u),p=k(o,"method",!0),e[0]=h,e[1]=t.selectedNrens,e[2]=t.selectedYears,e[3]=o,e[4]=p}else o=e[3],p=e[4];const v=p;let l;e[8]!==x?(l=[...x],e[8]=x,e[9]=l):l=e[9];let r;e[10]!==g?(r=g.values(),e[10]=g,e[11]=r):r=e[11];let i;e[12]!==r?(i=[...r],e[12]=r,e[13]=i):i=e[13];let a;e[14]!==l||e[15]!==i?(a={availableYears:l,availableNrens:i},e[14]=l,e[15]=i,e[16]=a):a=e[16];let m;e[17]!==t||e[18]!==c||e[19]!==a?(m=N.jsx(A,{filterOptions:a,filterSelection:t,setFilterSelection:c,coloredYears:!0}),e[17]=t,e[18]=c,e[19]=a,e[20]=m):m=e[20];const P=m;let s,f;e[21]===Symbol.for("react.memo_cache_sentinel")?(s=["No monitoring occurs","SPAN ports","Passive optical TAPS","Both SPAN ports and passive optical TAPS"],f=new Map([[s[0],"null"],[s[1],"span_ports"],[s[2],"taps"],[s[3],"both"]]),e[21]=s,e[22]=f):(s=e[21],f=e[22]);const b=f;let n;e[23]!==v?(n=N.jsx(C,{children:N.jsx(D,{columns:s,dataLookup:v,columnLookup:b})}),e[23]=v,e[24]=n):n=e[24];let d;return e[25]!==P||e[26]!==o||e[27]!==n?(d=N.jsx(w,{title:y["passive-monitoring"],description:"The table below shows the methods NRENs use for the passive monitoring of international traffic.",category:F.Network,filter:P,data:o,filename:"passive_monitoring_nrens_per_year",children:n}),e[25]=P,e[26]=o,e[27]=n,e[28]=d):d=e[28],d}export{z as default}; diff --git a/compendium_v2/static/PertTeam-CvKn3tG_.js b/compendium_v2/static/PertTeam-DDB9EKsh.js similarity index 80% rename from compendium_v2/static/PertTeam-CvKn3tG_.js rename to compendium_v2/static/PertTeam-DDB9EKsh.js index a6fa52061eb7e59365fb154f167ede8398975c7e..c0f465943ad0d8eec573b93adf154c891a8d496b 100644 --- a/compendium_v2/static/PertTeam-CvKn3tG_.js +++ b/compendium_v2/static/PertTeam-DDB9EKsh.js @@ -1,2 +1,2 @@ -import{c as E,r as _,F as b,j as N,t as g,S as k}from"./index-DBbSOdjk.js";import{u as v,g as F,D as R,F as T,f as C}from"./useData-CcKTpALT.js";import{P as D}from"./PillTable-CIcKqQJh.js";import"./SideBar-DfD7Pj8p.js";import"./xlsx-BHRztzV8.js";import"./index-DkYuYqrz.js";import"./hook-D9Tuu5oJ.js";import"./ColorPill-CuYEYQ56.js";import"./Table-DNomfHX4.js";function B(){const e=E.c(29),{filterSelection:t,setFilterSelection:c}=_.useContext(b),{data:x,years:P,nrens:Y}=v("/api/pert-team",c);let s,m;if(e[0]!==x||e[1]!==t.selectedNrens||e[2]!==t.selectedYears){let u;e[5]!==t.selectedNrens||e[6]!==t.selectedYears?(u=j=>t.selectedYears.includes(j.year)&&t.selectedNrens.includes(j.nren),e[5]=t.selectedNrens,e[6]=t.selectedYears,e[7]=u):u=e[7],s=x.filter(u),m=F(s,"pert_team"),e[0]=x,e[1]=t.selectedNrens,e[2]=t.selectedYears,e[3]=s,e[4]=m}else s=e[3],m=e[4];const h=m;let r,p;e[8]===Symbol.for("react.memo_cache_sentinel")?(r=["Yes","Planned","No"],p=new Map([[r[0],"yes"],[r[1],"planned"],[r[2],"no"]]),e[8]=r,e[9]=p):(r=e[8],p=e[9]);const y=p;let a;e[10]!==P?(a=[...P],e[10]=P,e[11]=a):a=e[11];let l;e[12]!==Y?(l=Y.values(),e[12]=Y,e[13]=l):l=e[13];let n;e[14]!==l?(n=[...l],e[14]=l,e[15]=n):n=e[15];let o;e[16]!==a||e[17]!==n?(o={availableYears:a,availableNrens:n},e[16]=a,e[17]=n,e[18]=o):o=e[18];let f;e[19]!==t||e[20]!==c||e[21]!==o?(f=N.jsx(T,{filterOptions:o,filterSelection:t,setFilterSelection:c,coloredYears:!0}),e[19]=t,e[20]=c,e[21]=o,e[22]=f):f=e[22];const S=f;let i;e[23]!==h?(i=N.jsx(C,{children:N.jsx(D,{columns:r,columnLookup:y,dataLookup:h})}),e[23]=h,e[24]=i):i=e[24];let d;return e[25]!==S||e[26]!==s||e[27]!==i?(d=N.jsx(R,{title:g["pert-team"],description:`Some NRENs have an in-house Performance Enhancement Response Team, +import{c as E,r as _,F as b,j as N,t as g,S as k}from"./index-bwDVKb7d.js";import{u as v,g as F,D as R,F as T,f as C}from"./useData-Ba-3avp3.js";import{P as D}from"./PillTable-C7hMt52B.js";import"./SideBar-D_Yxr_mj.js";import"./xlsx-BHRztzV8.js";import"./index-Y7aK5es_.js";import"./hook-BGVjY_62.js";import"./ColorPill-D7RILPI9.js";import"./Table-D4mMg192.js";function B(){const e=E.c(29),{filterSelection:t,setFilterSelection:c}=_.useContext(b),{data:x,years:P,nrens:Y}=v("/api/pert-team",c);let s,m;if(e[0]!==x||e[1]!==t.selectedNrens||e[2]!==t.selectedYears){let u;e[5]!==t.selectedNrens||e[6]!==t.selectedYears?(u=j=>t.selectedYears.includes(j.year)&&t.selectedNrens.includes(j.nren),e[5]=t.selectedNrens,e[6]=t.selectedYears,e[7]=u):u=e[7],s=x.filter(u),m=F(s,"pert_team"),e[0]=x,e[1]=t.selectedNrens,e[2]=t.selectedYears,e[3]=s,e[4]=m}else s=e[3],m=e[4];const h=m;let r,p;e[8]===Symbol.for("react.memo_cache_sentinel")?(r=["Yes","Planned","No"],p=new Map([[r[0],"yes"],[r[1],"planned"],[r[2],"no"]]),e[8]=r,e[9]=p):(r=e[8],p=e[9]);const y=p;let a;e[10]!==P?(a=[...P],e[10]=P,e[11]=a):a=e[11];let l;e[12]!==Y?(l=Y.values(),e[12]=Y,e[13]=l):l=e[13];let n;e[14]!==l?(n=[...l],e[14]=l,e[15]=n):n=e[15];let o;e[16]!==a||e[17]!==n?(o={availableYears:a,availableNrens:n},e[16]=a,e[17]=n,e[18]=o):o=e[18];let f;e[19]!==t||e[20]!==c||e[21]!==o?(f=N.jsx(T,{filterOptions:o,filterSelection:t,setFilterSelection:c,coloredYears:!0}),e[19]=t,e[20]=c,e[21]=o,e[22]=f):f=e[22];const S=f;let i;e[23]!==h?(i=N.jsx(C,{children:N.jsx(D,{columns:r,columnLookup:y,dataLookup:h})}),e[23]=h,e[24]=i):i=e[24];let d;return e[25]!==S||e[26]!==s||e[27]!==i?(d=N.jsx(R,{title:g["pert-team"],description:`Some NRENs have an in-house Performance Enhancement Response Team, or PERT, to investigate network performance issues.`,category:k.Network,filter:S,data:s,filename:"pert_team_nrens_per_year",children:i}),e[25]=S,e[26]=s,e[27]=i,e[28]=d):d=e[28],d}export{B as default}; diff --git a/compendium_v2/static/PillTable-CIcKqQJh.js b/compendium_v2/static/PillTable-C7hMt52B.js similarity index 90% rename from compendium_v2/static/PillTable-CIcKqQJh.js rename to compendium_v2/static/PillTable-C7hMt52B.js index 2fafae3577aef9de0de000f26c6a0ea1c35f2e34..81b98515bc26c6b31875aaa10b099c76a9a56896 100644 --- a/compendium_v2/static/PillTable-CIcKqQJh.js +++ b/compendium_v2/static/PillTable-C7hMt52B.js @@ -1 +1 @@ -import{j as t}from"./index-DBbSOdjk.js";import{C as c}from"./ColorPill-CuYEYQ56.js";import{T as u}from"./Table-DNomfHX4.js";function b({columns:h,dataLookup:o,circle:p=!1,columnLookup:n=new Map}){const x=Array.from(new Set(Array.from(o.values()).flatMap(r=>Array.from(r.keys())))),d=h.map(r=>n.get(r)||r),j=Array.from(new Set(Array.from(o.values()).flatMap(r=>Array.from(r.values()).flatMap(e=>Array.from(e.keys()))))),f=x.filter(r=>{const e=n.get(r);return e?!d.includes(e):!d.includes(r)}).map(r=>n.get(r)||r);return t.jsxs(u,{className:"charging-struct-table",striped:!0,bordered:!0,children:[t.jsx("colgroup",{children:t.jsx("col",{span:1,style:{width:"12rem"}})}),t.jsx("thead",{children:t.jsxs("tr",{children:[t.jsx("th",{}),h.map(r=>t.jsx("th",{colSpan:1,children:r},r)),f.length?t.jsx("th",{children:"Other"}):null]})}),t.jsx("tbody",{children:Array.from(o.entries()).map(([r,e])=>t.jsxs("tr",{children:[t.jsx("td",{children:r}),d.map(s=>{const a=e.get(s);return a?t.jsx("td",{children:j.map(l=>{const i=a.get(l)||{};return t.jsx(c,{year:l,active:a.has(l),tooltip:i.tooltip,rounded:p},l)})},s):t.jsx("td",{},s)}),!!f.length&&t.jsx("td",{children:f.map(s=>{const a=e.get(s);return a?Array.from(Array.from(a.entries())).map(([i,m])=>t.jsx(c,{year:i,active:!0,tooltip:m.tooltip||s,rounded:p},i)):void 0})},`${r}-other`)]},r))})]})}export{b as P}; +import{j as t}from"./index-bwDVKb7d.js";import{C as c}from"./ColorPill-D7RILPI9.js";import{T as u}from"./Table-D4mMg192.js";function b({columns:h,dataLookup:o,circle:p=!1,columnLookup:n=new Map}){const x=Array.from(new Set(Array.from(o.values()).flatMap(r=>Array.from(r.keys())))),d=h.map(r=>n.get(r)||r),j=Array.from(new Set(Array.from(o.values()).flatMap(r=>Array.from(r.values()).flatMap(e=>Array.from(e.keys()))))),f=x.filter(r=>{const e=n.get(r);return e?!d.includes(e):!d.includes(r)}).map(r=>n.get(r)||r);return t.jsxs(u,{className:"charging-struct-table",striped:!0,bordered:!0,children:[t.jsx("colgroup",{children:t.jsx("col",{span:1,style:{width:"12rem"}})}),t.jsx("thead",{children:t.jsxs("tr",{children:[t.jsx("th",{}),h.map(r=>t.jsx("th",{colSpan:1,children:r},r)),f.length?t.jsx("th",{children:"Other"}):null]})}),t.jsx("tbody",{children:Array.from(o.entries()).map(([r,e])=>t.jsxs("tr",{children:[t.jsx("td",{children:r}),d.map(s=>{const a=e.get(s);return a?t.jsx("td",{children:j.map(l=>{const i=a.get(l)||{};return t.jsx(c,{year:l,active:a.has(l),tooltip:i.tooltip,rounded:p},l)})},s):t.jsx("td",{},s)}),!!f.length&&t.jsx("td",{children:f.map(s=>{const a=e.get(s);return a?Array.from(Array.from(a.entries())).map(([i,m])=>t.jsx(c,{year:i,active:!0,tooltip:m.tooltip||s,rounded:p},i)):void 0})},`${r}-other`)]},r))})]})}export{b as P}; diff --git a/compendium_v2/static/Policy-CuNV_l7a.js b/compendium_v2/static/Policy-BCFRP7W4.js similarity index 80% rename from compendium_v2/static/Policy-CuNV_l7a.js rename to compendium_v2/static/Policy-BCFRP7W4.js index 97aaddc4751716b19f3e4ffd5835ec3d83066fcd..fe2794e5f999d70ba14665b9f524aeba8aa62318 100644 --- a/compendium_v2/static/Policy-CuNV_l7a.js +++ b/compendium_v2/static/Policy-BCFRP7W4.js @@ -1 +1 @@ -import{c as h,r as v,F as E,j as y,t as _,S as b}from"./index-DBbSOdjk.js";import{u as g,q as j,k,i as S,D as q,F as C,f as F}from"./useData-CcKTpALT.js";import{N as R}from"./NrenYearTable-C1JRhqy_.js";import"./SideBar-DfD7Pj8p.js";import"./xlsx-BHRztzV8.js";import"./index-DkYuYqrz.js";import"./hook-D9Tuu5oJ.js";import"./Table-DNomfHX4.js";function W(){const e=h.c(21),{filterSelection:t,setFilterSelection:n}=v.useContext(E),{data:a,nrens:c}=g("/api/policy",n);let i,o;if(e[0]!==a||e[1]!==t.selectedNrens){const D=a?j(a):[];let u;e[4]!==t.selectedNrens?(u=x=>t.selectedNrens.includes(x.nren),e[4]=t.selectedNrens,e[5]=u):u=e[5],i=D.filter(u);const P=k(i);o=S(P,T),e[0]=a,e[1]=t.selectedNrens,e[2]=i,e[3]=o}else i=e[2],o=e[3];const d=o;let p;e[6]===Symbol.for("react.memo_cache_sentinel")?(p=[],e[6]=p):p=e[6];let l;e[7]!==c?(l=c.values(),e[7]=c,e[8]=l):l=e[8];let s;e[9]!==l?(s={availableYears:p,availableNrens:[...l]},e[9]=l,e[10]=s):s=e[10];let f;e[11]!==t||e[12]!==n||e[13]!==s?(f=y.jsx(C,{filterOptions:s,filterSelection:t,setFilterSelection:n}),e[11]=t,e[12]=n,e[13]=s,e[14]=f):f=e[14];const N=f;let r;e[15]!==d?(r=y.jsx(F,{children:y.jsx(R,{data:d,columnTitle:"Policies",noDots:!0,dottedBorder:!0,keysAreURLs:!0,removeDecoration:!0})}),e[15]=d,e[16]=r):r=e[16];let m;return e[17]!==N||e[18]!==i||e[19]!==r?(m=y.jsx(q,{title:_.policy,description:"The table shows links to the NRENs policies. We only include links from the most recent response from each NREN.",category:b.Policy,filter:N,data:i,filename:"nren_policies",children:r}),e[17]=N,e[18]=i,e[19]=r,e[20]=m):m=e[20],m}function T(e,t){[["acceptable_use","Acceptable Use Policy"],["connectivity","Connectivity Policy"],["data_protection","Data Protection Policy"],["environmental","Environmental Policy"],["equal_opportunity","Equal Opportunity Policy"],["gender_equality","Gender Equality Plan"],["privacy_notice","Privacy Notice"]].forEach(a=>{const[c,i]=a,o=t[c];o&&(e[i]=o)})}export{W as default}; +import{c as h,r as v,F as E,j as y,t as _,S as b}from"./index-bwDVKb7d.js";import{u as g,q as j,k,i as S,D as q,F as C,f as F}from"./useData-Ba-3avp3.js";import{N as R}from"./NrenYearTable-9mB4hcmt.js";import"./SideBar-D_Yxr_mj.js";import"./xlsx-BHRztzV8.js";import"./index-Y7aK5es_.js";import"./hook-BGVjY_62.js";import"./Table-D4mMg192.js";function W(){const e=h.c(21),{filterSelection:t,setFilterSelection:n}=v.useContext(E),{data:a,nrens:c}=g("/api/policy",n);let i,o;if(e[0]!==a||e[1]!==t.selectedNrens){const D=a?j(a):[];let u;e[4]!==t.selectedNrens?(u=x=>t.selectedNrens.includes(x.nren),e[4]=t.selectedNrens,e[5]=u):u=e[5],i=D.filter(u);const P=k(i);o=S(P,T),e[0]=a,e[1]=t.selectedNrens,e[2]=i,e[3]=o}else i=e[2],o=e[3];const d=o;let p;e[6]===Symbol.for("react.memo_cache_sentinel")?(p=[],e[6]=p):p=e[6];let l;e[7]!==c?(l=c.values(),e[7]=c,e[8]=l):l=e[8];let s;e[9]!==l?(s={availableYears:p,availableNrens:[...l]},e[9]=l,e[10]=s):s=e[10];let f;e[11]!==t||e[12]!==n||e[13]!==s?(f=y.jsx(C,{filterOptions:s,filterSelection:t,setFilterSelection:n}),e[11]=t,e[12]=n,e[13]=s,e[14]=f):f=e[14];const N=f;let r;e[15]!==d?(r=y.jsx(F,{children:y.jsx(R,{data:d,columnTitle:"Policies",noDots:!0,dottedBorder:!0,keysAreURLs:!0,removeDecoration:!0})}),e[15]=d,e[16]=r):r=e[16];let m;return e[17]!==N||e[18]!==i||e[19]!==r?(m=y.jsx(q,{title:_.policy,description:"The table shows links to the NRENs policies. We only include links from the most recent response from each NREN.",category:b.Policy,filter:N,data:i,filename:"nren_policies",children:r}),e[17]=N,e[18]=i,e[19]=r,e[20]=m):m=e[20],m}function T(e,t){[["acceptable_use","Acceptable Use Policy"],["connectivity","Connectivity Policy"],["data_protection","Data Protection Policy"],["environmental","Environmental Policy"],["equal_opportunity","Equal Opportunity Policy"],["gender_equality","Gender Equality Plan"],["privacy_notice","Privacy Notice"]].forEach(a=>{const[c,i]=a,o=t[c];o&&(e[i]=o)})}export{W as default}; diff --git a/compendium_v2/static/RemoteCampuses-NGRzWQf8.js b/compendium_v2/static/RemoteCampuses-B8JV-PDN.js similarity index 91% rename from compendium_v2/static/RemoteCampuses-NGRzWQf8.js rename to compendium_v2/static/RemoteCampuses-B8JV-PDN.js index 06bcf1e6607b91cad9bed058c8354904e81445cb..5e6fd0ef4336055e115f970a22dbfeb59e984eba 100644 --- a/compendium_v2/static/RemoteCampuses-NGRzWQf8.js +++ b/compendium_v2/static/RemoteCampuses-B8JV-PDN.js @@ -1 +1 @@ -import{c as C,j as n,r as S,F as D,t as R,S as E}from"./index-DBbSOdjk.js";import{u as g,h as w,i as F,D as k,F as T,f as B}from"./useData-CcKTpALT.js";import{T as L}from"./Table-DNomfHX4.js";import"./SideBar-DfD7Pj8p.js";import"./xlsx-BHRztzV8.js";import"./index-DkYuYqrz.js";import"./hook-D9Tuu5oJ.js";function O({data:e,dottedBorder:t=!1,columns:s}){return Array.from(e.entries()).map(([a,o])=>Array.from(o.entries()).map(([m,u],r)=>n.jsxs("tr",{className:t?"dotted-border":"",children:[n.jsx("td",{className:"pt-3 nren-column text-nowrap",children:r===0&&a}),n.jsx("td",{className:"pt-3 year-column",children:m}),Object.keys(s).map((c,i)=>n.jsx("td",{className:"pt-3 blue-column",children:u[c]},i))]},a+m)))}function $(e){const t=C.c(15),{data:s,dottedBorder:a,columns:o}=e;let m;t[0]===Symbol.for("react.memo_cache_sentinel")?(m=n.jsx("th",{className:"nren-column",children:n.jsx("span",{children:"NREN"})}),t[0]=m):m=t[0];let u;t[1]===Symbol.for("react.memo_cache_sentinel")?(u=n.jsx("th",{className:"year-column",children:n.jsx("span",{children:"Year"})}),t[1]=u):u=t[1];let r;t[2]!==o?(r=Object.values(o).map(A),t[2]=o,t[3]=r):r=t[3];let c;t[4]!==r?(c=n.jsx("thead",{children:n.jsxs("tr",{children:[m,u,r]})}),t[4]=r,t[5]=c):c=t[5];let i;t[6]!==o||t[7]!==s||t[8]!==a?(i=O({data:s,dottedBorder:a,columns:o}),t[6]=o,t[7]=s,t[8]=a,t[9]=i):i=t[9];let l;t[10]!==i?(l=n.jsx("tbody",{children:i}),t[10]=i,t[11]=l):l=t[11];let d;return t[12]!==c||t[13]!==l?(d=n.jsxs(L,{borderless:!0,className:"compendium-table",children:[c,l]}),t[12]=c,t[13]=l,t[14]=d):d=t[14],d}function A(e,t){return n.jsx("th",{className:"blue-column",children:n.jsx("span",{children:e})},t)}function Q(){const e=C.c(28),t=X,{filterSelection:s,setFilterSelection:a}=S.useContext(D),{data:o,years:m,nrens:u}=g("/api/remote-campuses",a,t);let r,c;if(e[0]!==o||e[1]!==s.selectedNrens||e[2]!==s.selectedYears){let N;e[5]!==s.selectedNrens||e[6]!==s.selectedYears?(N=b=>s.selectedYears.includes(b.year)&&s.selectedNrens.includes(b.nren),e[5]=s.selectedNrens,e[6]=s.selectedYears,e[7]=N):N=e[7],r=o.filter(N);const v=w(r);c=F(v,P),e[0]=o,e[1]=s.selectedNrens,e[2]=s.selectedYears,e[3]=r,e[4]=c}else r=e[3],c=e[4];const i=c;let l;e[8]!==m?(l=[...m],e[8]=m,e[9]=l):l=e[9];let d;e[10]!==u?(d=u.values(),e[10]=u,e[11]=d):d=e[11];let f;e[12]!==d?(f=[...d],e[12]=d,e[13]=f):f=e[13];let p;e[14]!==l||e[15]!==f?(p={availableYears:l,availableNrens:f},e[14]=l,e[15]=f,e[16]=p):p=e[16];let _;e[17]!==s||e[18]!==a||e[19]!==p?(_=n.jsx(T,{filterOptions:p,filterSelection:s,setFilterSelection:a}),e[17]=s,e[18]=a,e[19]=p,e[20]=_):_=e[20];const y=_;let x;e[21]===Symbol.for("react.memo_cache_sentinel")?(x={countries:"Countries with Remote Campuses",local_r_and_e_connection:"Local R&E Connection"},e[21]=x):x=e[21];const Y=x;let h;e[22]!==i?(h=n.jsx(B,{children:n.jsx($,{data:i,columns:Y,dottedBorder:!0})}),e[22]=i,e[23]=h):h=e[23];let j;return e[24]!==y||e[25]!==r||e[26]!==h?(j=n.jsx(k,{title:R["remote-campuses"],description:"NRENs are asked whether they have remote campuses in other countries, and if so, to list the countries where they have remote campuses and whether they are connected to the local R&E network.",category:E.ConnectedUsers,filter:y,data:r,filename:"nren_remote_campuses",children:h}),e[24]=y,e[25]=r,e[26]=h,e[27]=j):j=e[27],j}function P(e,t){for(const s of t){if(!s.remote_campus_connectivity)continue;const a=s.connections.map(U).join(", ");e.countries=a,e.local_r_and_e_connection=s.connections.map(J).join(", ")}}function J(e){return e.local_r_and_e_connection?"Yes":"No"}function U(e){return e.country}function X(e){return!!e.remote_campus_connectivity}export{Q as default}; +import{c as C,j as n,r as S,F as D,t as R,S as E}from"./index-bwDVKb7d.js";import{u as g,h as w,i as F,D as k,F as T,f as B}from"./useData-Ba-3avp3.js";import{T as L}from"./Table-D4mMg192.js";import"./SideBar-D_Yxr_mj.js";import"./xlsx-BHRztzV8.js";import"./index-Y7aK5es_.js";import"./hook-BGVjY_62.js";function O({data:e,dottedBorder:t=!1,columns:s}){return Array.from(e.entries()).map(([a,o])=>Array.from(o.entries()).map(([m,u],r)=>n.jsxs("tr",{className:t?"dotted-border":"",children:[n.jsx("td",{className:"pt-3 nren-column text-nowrap",children:r===0&&a}),n.jsx("td",{className:"pt-3 year-column",children:m}),Object.keys(s).map((c,i)=>n.jsx("td",{className:"pt-3 blue-column",children:u[c]},i))]},a+m)))}function $(e){const t=C.c(15),{data:s,dottedBorder:a,columns:o}=e;let m;t[0]===Symbol.for("react.memo_cache_sentinel")?(m=n.jsx("th",{className:"nren-column",children:n.jsx("span",{children:"NREN"})}),t[0]=m):m=t[0];let u;t[1]===Symbol.for("react.memo_cache_sentinel")?(u=n.jsx("th",{className:"year-column",children:n.jsx("span",{children:"Year"})}),t[1]=u):u=t[1];let r;t[2]!==o?(r=Object.values(o).map(A),t[2]=o,t[3]=r):r=t[3];let c;t[4]!==r?(c=n.jsx("thead",{children:n.jsxs("tr",{children:[m,u,r]})}),t[4]=r,t[5]=c):c=t[5];let i;t[6]!==o||t[7]!==s||t[8]!==a?(i=O({data:s,dottedBorder:a,columns:o}),t[6]=o,t[7]=s,t[8]=a,t[9]=i):i=t[9];let l;t[10]!==i?(l=n.jsx("tbody",{children:i}),t[10]=i,t[11]=l):l=t[11];let d;return t[12]!==c||t[13]!==l?(d=n.jsxs(L,{borderless:!0,className:"compendium-table",children:[c,l]}),t[12]=c,t[13]=l,t[14]=d):d=t[14],d}function A(e,t){return n.jsx("th",{className:"blue-column",children:n.jsx("span",{children:e})},t)}function Q(){const e=C.c(28),t=X,{filterSelection:s,setFilterSelection:a}=S.useContext(D),{data:o,years:m,nrens:u}=g("/api/remote-campuses",a,t);let r,c;if(e[0]!==o||e[1]!==s.selectedNrens||e[2]!==s.selectedYears){let N;e[5]!==s.selectedNrens||e[6]!==s.selectedYears?(N=b=>s.selectedYears.includes(b.year)&&s.selectedNrens.includes(b.nren),e[5]=s.selectedNrens,e[6]=s.selectedYears,e[7]=N):N=e[7],r=o.filter(N);const v=w(r);c=F(v,P),e[0]=o,e[1]=s.selectedNrens,e[2]=s.selectedYears,e[3]=r,e[4]=c}else r=e[3],c=e[4];const i=c;let l;e[8]!==m?(l=[...m],e[8]=m,e[9]=l):l=e[9];let d;e[10]!==u?(d=u.values(),e[10]=u,e[11]=d):d=e[11];let f;e[12]!==d?(f=[...d],e[12]=d,e[13]=f):f=e[13];let p;e[14]!==l||e[15]!==f?(p={availableYears:l,availableNrens:f},e[14]=l,e[15]=f,e[16]=p):p=e[16];let _;e[17]!==s||e[18]!==a||e[19]!==p?(_=n.jsx(T,{filterOptions:p,filterSelection:s,setFilterSelection:a}),e[17]=s,e[18]=a,e[19]=p,e[20]=_):_=e[20];const y=_;let x;e[21]===Symbol.for("react.memo_cache_sentinel")?(x={countries:"Countries with Remote Campuses",local_r_and_e_connection:"Local R&E Connection"},e[21]=x):x=e[21];const Y=x;let h;e[22]!==i?(h=n.jsx(B,{children:n.jsx($,{data:i,columns:Y,dottedBorder:!0})}),e[22]=i,e[23]=h):h=e[23];let j;return e[24]!==y||e[25]!==r||e[26]!==h?(j=n.jsx(k,{title:R["remote-campuses"],description:"NRENs are asked whether they have remote campuses in other countries, and if so, to list the countries where they have remote campuses and whether they are connected to the local R&E network.",category:E.ConnectedUsers,filter:y,data:r,filename:"nren_remote_campuses",children:h}),e[24]=y,e[25]=r,e[26]=h,e[27]=j):j=e[27],j}function P(e,t){for(const s of t){if(!s.remote_campus_connectivity)continue;const a=s.connections.map(U).join(", ");e.countries=a,e.local_r_and_e_connection=s.connections.map(J).join(", ")}}function J(e){return e.local_r_and_e_connection?"Yes":"No"}function U(e){return e.country}function X(e){return!!e.remote_campus_connectivity}export{Q as default}; diff --git a/compendium_v2/static/ScrollableMatrix-CNydABqZ.js b/compendium_v2/static/ScrollableMatrix-BXISTRn4.js similarity index 94% rename from compendium_v2/static/ScrollableMatrix-CNydABqZ.js rename to compendium_v2/static/ScrollableMatrix-BXISTRn4.js index c451b1f661d9ec5d314f83afc4818fc505ad4064..3b318d522fd664f7ee0d251c9aae1fd036212392 100644 --- a/compendium_v2/static/ScrollableMatrix-CNydABqZ.js +++ b/compendium_v2/static/ScrollableMatrix-BXISTRn4.js @@ -1 +1 @@ -import{c as T,j as t,e as k}from"./index-DBbSOdjk.js";import{T as A}from"./Table-DNomfHX4.js";const L=t.jsx("span",{children:"✔"}),O=8;function V(r){const e=T.c(12),{dataLookup:n,rowInfo:s,categoryLookup:h,isTickIcon:b}=r,l=b===void 0?!1:b;if(!n){let c;return e[0]===Symbol.for("react.memo_cache_sentinel")?(c=t.jsx("div",{className:"matrix-border"}),e[0]=c):c=e[0],c}let d;if(e[1]!==h||e[2]!==n||e[3]!==l||e[4]!==s){let c;e[6]!==n||e[7]!==l||e[8]!==s?(c=v=>{const[p,E]=v,C=Object.entries(s).map(o=>{const[u,a]=o,i=[];return Array.from(n.entries()).sort(F).forEach(y=>{const[,_]=y;_.forEach(g=>{const f=g.get(p);if(!f)return;const N=f[a]!=null?Object.keys(f[a])[0]:null,I=N!=null&&l?L:N;i.push(I)})}),i.length?t.jsxs("tr",{children:[t.jsx("th",{className:"fixed-column",children:u}),i.map(D)]},u):null}),j=Array.from(n.entries()).sort(B).reduce((o,u)=>{const[a,i]=u;return Array.from(i.entries()).forEach(y=>{const[_,g]=y;g.get(p)&&(o[a]||(o[a]=[]),o[a].push(_))}),o},{});for(const o in j)j[o].sort($);return t.jsx(k,{title:E,startCollapsed:!0,theme:"-matrix",children:C?t.jsx("div",{className:"table-responsive",children:t.jsxs(A,{className:"matrix-table",bordered:!0,children:[t.jsx("thead",{children:(()=>{const o=Object.entries(j);return t.jsxs(t.Fragment,{children:[t.jsxs("tr",{children:[t.jsx("th",{className:"fixed-column"}),o.map(w)]}),t.jsxs("tr",{children:[t.jsx("th",{className:"fixed-column"}),o.flatMap(S)]})]})})()}),t.jsx("tbody",{children:C})]})}):t.jsx("div",{style:{paddingLeft:"5%"},children:t.jsx("p",{children:"No data available for this section."})})},p)},e[6]=n,e[7]=l,e[8]=s,e[9]=c):c=e[9],d=Object.entries(h).map(c),e[1]=h,e[2]=n,e[3]=l,e[4]=s,e[5]=d}else d=e[5];const x=d;let m;return e[10]!==x?(m=t.jsx("div",{className:"matrix-border",children:x}),e[10]=x,e[11]=m):m=e[11],m}function S(r){const[e,n]=r;return n.map(s=>t.jsx("th",{children:s},`${e}-${s}`))}function w(r){const[e,n]=r;return t.jsx("th",{colSpan:n.length,style:{width:`${n.length*O}rem`},children:e},e)}function $(r,e){return r-e}function B(r,e){const[n]=r,[s]=e;return n.localeCompare(s)}function D(r,e){return t.jsx("td",{children:r},e)}function F(r,e){const[n]=r,[s]=e;return n.localeCompare(s)}export{V as S}; +import{c as T,j as t,e as k}from"./index-bwDVKb7d.js";import{T as A}from"./Table-D4mMg192.js";const L=t.jsx("span",{children:"✔"}),O=8;function V(r){const e=T.c(12),{dataLookup:n,rowInfo:s,categoryLookup:h,isTickIcon:b}=r,l=b===void 0?!1:b;if(!n){let c;return e[0]===Symbol.for("react.memo_cache_sentinel")?(c=t.jsx("div",{className:"matrix-border"}),e[0]=c):c=e[0],c}let d;if(e[1]!==h||e[2]!==n||e[3]!==l||e[4]!==s){let c;e[6]!==n||e[7]!==l||e[8]!==s?(c=v=>{const[p,E]=v,C=Object.entries(s).map(o=>{const[u,a]=o,i=[];return Array.from(n.entries()).sort(F).forEach(y=>{const[,_]=y;_.forEach(g=>{const f=g.get(p);if(!f)return;const N=f[a]!=null?Object.keys(f[a])[0]:null,I=N!=null&&l?L:N;i.push(I)})}),i.length?t.jsxs("tr",{children:[t.jsx("th",{className:"fixed-column",children:u}),i.map(D)]},u):null}),j=Array.from(n.entries()).sort(B).reduce((o,u)=>{const[a,i]=u;return Array.from(i.entries()).forEach(y=>{const[_,g]=y;g.get(p)&&(o[a]||(o[a]=[]),o[a].push(_))}),o},{});for(const o in j)j[o].sort($);return t.jsx(k,{title:E,startCollapsed:!0,theme:"-matrix",children:C?t.jsx("div",{className:"table-responsive",children:t.jsxs(A,{className:"matrix-table",bordered:!0,children:[t.jsx("thead",{children:(()=>{const o=Object.entries(j);return t.jsxs(t.Fragment,{children:[t.jsxs("tr",{children:[t.jsx("th",{className:"fixed-column"}),o.map(w)]}),t.jsxs("tr",{children:[t.jsx("th",{className:"fixed-column"}),o.flatMap(S)]})]})})()}),t.jsx("tbody",{children:C})]})}):t.jsx("div",{style:{paddingLeft:"5%"},children:t.jsx("p",{children:"No data available for this section."})})},p)},e[6]=n,e[7]=l,e[8]=s,e[9]=c):c=e[9],d=Object.entries(h).map(c),e[1]=h,e[2]=n,e[3]=l,e[4]=s,e[5]=d}else d=e[5];const x=d;let m;return e[10]!==x?(m=t.jsx("div",{className:"matrix-border",children:x}),e[10]=x,e[11]=m):m=e[11],m}function S(r){const[e,n]=r;return n.map(s=>t.jsx("th",{children:s},`${e}-${s}`))}function w(r){const[e,n]=r;return t.jsx("th",{colSpan:n.length,style:{width:`${n.length*O}rem`},children:e},e)}function $(r,e){return r-e}function B(r,e){const[n]=r,[s]=e;return n.localeCompare(s)}function D(r,e){return t.jsx("td",{children:r},e)}function F(r,e){const[n]=r,[s]=e;return n.localeCompare(s)}export{V as S}; diff --git a/compendium_v2/static/SecurityControls-C_redfTy.js b/compendium_v2/static/SecurityControls-PgdQDxmF.js similarity index 86% rename from compendium_v2/static/SecurityControls-C_redfTy.js rename to compendium_v2/static/SecurityControls-PgdQDxmF.js index 625450c583d25578331f7c2d45fd6ba913c5b675..6c058df3ebc5e1ee6281d5daadf2008f8b9680b0 100644 --- a/compendium_v2/static/SecurityControls-C_redfTy.js +++ b/compendium_v2/static/SecurityControls-PgdQDxmF.js @@ -1,2 +1,2 @@ -import{c as T,r as E,F as L,S as A,j,t as I}from"./index-DBbSOdjk.js";import{u as M,g as O,F as R,D as V,f as W}from"./useData-CcKTpALT.js";import{P as $}from"./PillTable-CIcKqQJh.js";import"./SideBar-DfD7Pj8p.js";import"./xlsx-BHRztzV8.js";import"./index-DkYuYqrz.js";import"./hook-D9Tuu5oJ.js";import"./ColorPill-CuYEYQ56.js";import"./Table-DNomfHX4.js";function Z(){const e=T.c(51),{filterSelection:t,setFilterSelection:i}=E.useContext(L),{data:w,years:D,nrens:Y}=M("/api/security-controls",i);let s,S;if(e[0]!==w||e[1]!==t.selectedNrens||e[2]!==t.selectedYears){let r;e[5]!==t.selectedNrens||e[6]!==t.selectedYears?(r=P=>t.selectedYears.includes(P.year)&&t.selectedNrens.includes(P.nren),e[5]=t.selectedNrens,e[6]=t.selectedYears,e[7]=r):r=e[7],s=w.filter(r),S=O(s,"security_control_descriptions"),e[0]=w,e[1]=t.selectedNrens,e[2]=t.selectedYears,e[3]=s,e[4]=S}else s=e[3],S=e[4];const C=S;let l;e[8]!==D?(l=[...D],e[8]=D,e[9]=l):l=e[9];let o;e[10]!==Y?(o=Y.values(),e[10]=Y,e[11]=o):o=e[11];let n;e[12]!==o?(n=[...o],e[12]=o,e[13]=n):n=e[13];let a;e[14]!==l||e[15]!==n?(a={availableYears:l,availableNrens:n},e[14]=l,e[15]=n,e[16]=a):a=e[16];let b;e[17]!==t||e[18]!==i||e[19]!==a?(b=j.jsx(R,{filterOptions:a,filterSelection:t,setFilterSelection:i,coloredYears:!0}),e[17]=t,e[18]=i,e[19]=a,e[20]=b):b=e[20];const F=b;let c,u,m,p,f,d,y,g,h,N,x;if(e[21]!==F||e[22]!==s){const r={anti_virus:"Anti Virus",anti_spam:"Anti-Spam",firewall:"Firewall",ddos_mitigation:"DDoS mitigation",monitoring:"Network monitoring",ips_ids:"IPS/IDS",acl:"ACL",segmentation:"Network segmentation",integrity_checking:"Integrity checking"};p=new Map(Object.entries(r).map(q)),m=V,h=I["security-control"],N=`The table below shows the different security controls, such as anti-virus, integrity checkers, and systemic firewalls used by +import{c as T,r as E,F as L,S as A,j,t as I}from"./index-bwDVKb7d.js";import{u as M,g as O,F as R,D as V,f as W}from"./useData-Ba-3avp3.js";import{P as $}from"./PillTable-C7hMt52B.js";import"./SideBar-D_Yxr_mj.js";import"./xlsx-BHRztzV8.js";import"./index-Y7aK5es_.js";import"./hook-BGVjY_62.js";import"./ColorPill-D7RILPI9.js";import"./Table-D4mMg192.js";function Z(){const e=T.c(51),{filterSelection:t,setFilterSelection:i}=E.useContext(L),{data:w,years:D,nrens:Y}=M("/api/security-controls",i);let s,S;if(e[0]!==w||e[1]!==t.selectedNrens||e[2]!==t.selectedYears){let r;e[5]!==t.selectedNrens||e[6]!==t.selectedYears?(r=P=>t.selectedYears.includes(P.year)&&t.selectedNrens.includes(P.nren),e[5]=t.selectedNrens,e[6]=t.selectedYears,e[7]=r):r=e[7],s=w.filter(r),S=O(s,"security_control_descriptions"),e[0]=w,e[1]=t.selectedNrens,e[2]=t.selectedYears,e[3]=s,e[4]=S}else s=e[3],S=e[4];const C=S;let l;e[8]!==D?(l=[...D],e[8]=D,e[9]=l):l=e[9];let o;e[10]!==Y?(o=Y.values(),e[10]=Y,e[11]=o):o=e[11];let n;e[12]!==o?(n=[...o],e[12]=o,e[13]=n):n=e[13];let a;e[14]!==l||e[15]!==n?(a={availableYears:l,availableNrens:n},e[14]=l,e[15]=n,e[16]=a):a=e[16];let b;e[17]!==t||e[18]!==i||e[19]!==a?(b=j.jsx(R,{filterOptions:a,filterSelection:t,setFilterSelection:i,coloredYears:!0}),e[17]=t,e[18]=i,e[19]=a,e[20]=b):b=e[20];const F=b;let c,u,m,p,f,d,y,g,h,N,x;if(e[21]!==F||e[22]!==s){const r={anti_virus:"Anti Virus",anti_spam:"Anti-Spam",firewall:"Firewall",ddos_mitigation:"DDoS mitigation",monitoring:"Network monitoring",ips_ids:"IPS/IDS",acl:"ACL",segmentation:"Network segmentation",integrity_checking:"Integrity checking"};p=new Map(Object.entries(r).map(q)),m=V,h=I["security-control"],N=`The table below shows the different security controls, such as anti-virus, integrity checkers, and systemic firewalls used by NRENs to protect their assets. Where 'other' controls are mentioned, hover over the marker for more information.`,x=A.Policy,f=F,d=s,y="security_control_nrens_per_year",u=W,c=$,g=Object.values(r),e[21]=F,e[22]=s,e[23]=c,e[24]=u,e[25]=m,e[26]=p,e[27]=f,e[28]=d,e[29]=y,e[30]=g,e[31]=h,e[32]=N,e[33]=x}else c=e[23],u=e[24],m=e[25],p=e[26],f=e[27],d=e[28],y=e[29],g=e[30],h=e[31],N=e[32],x=e[33];let _;e[34]!==c||e[35]!==p||e[36]!==C||e[37]!==g?(_=j.jsx(c,{columns:g,dataLookup:C,circle:!0,columnLookup:p}),e[34]=c,e[35]=p,e[36]=C,e[37]=g,e[38]=_):_=e[38];let k;e[39]!==u||e[40]!==_?(k=j.jsx(u,{children:_}),e[39]=u,e[40]=_,e[41]=k):k=e[41];let v;return e[42]!==m||e[43]!==f||e[44]!==d||e[45]!==y||e[46]!==k||e[47]!==h||e[48]!==N||e[49]!==x?(v=j.jsx(m,{title:h,description:N,category:x,filter:f,data:d,filename:y,children:k}),e[42]=m,e[43]=f,e[44]=d,e[45]=y,e[46]=k,e[47]=h,e[48]=N,e[49]=x,e[50]=v):v=e[50],v}function q(e){const[t,i]=e;return[i,t]}export{Z as default}; diff --git a/compendium_v2/static/ServiceLevelTargets-CXuM4ENo.js b/compendium_v2/static/ServiceLevelTargets-D4y0vrZC.js similarity index 81% rename from compendium_v2/static/ServiceLevelTargets-CXuM4ENo.js rename to compendium_v2/static/ServiceLevelTargets-D4y0vrZC.js index 1175b43698e7614a5639c0873215b462591f5424..076365b8abfc9b5b75ad9111473a851cbd393f5c 100644 --- a/compendium_v2/static/ServiceLevelTargets-CXuM4ENo.js +++ b/compendium_v2/static/ServiceLevelTargets-D4y0vrZC.js @@ -1,2 +1,2 @@ -import{c as y,r as j,F,j as v,t as T,S as _}from"./index-DBbSOdjk.js";import{u as E,g as L,D as P,F as w,f as C}from"./useData-CcKTpALT.js";import{P as D}from"./PillTable-CIcKqQJh.js";import"./SideBar-DfD7Pj8p.js";import"./xlsx-BHRztzV8.js";import"./index-DkYuYqrz.js";import"./hook-D9Tuu5oJ.js";import"./ColorPill-CuYEYQ56.js";import"./Table-DNomfHX4.js";function A(){const e=y.c(29),{filterSelection:t,setFilterSelection:n}=j.useContext(F),{data:h,years:N,nrens:x}=E("/api/service-management",n);let s,f;if(e[0]!==h||e[1]!==t.selectedNrens||e[2]!==t.selectedYears){let p;e[5]!==t.selectedNrens||e[6]!==t.selectedYears?(p=Y=>t.selectedYears.includes(Y.year)&&t.selectedNrens.includes(Y.nren)&&Y.service_level_targets!==null,e[5]=t.selectedNrens,e[6]=t.selectedYears,e[7]=p):p=e[7],s=h.filter(p),f=L(s,"service_level_targets"),e[0]=h,e[1]=t.selectedNrens,e[2]=t.selectedYears,e[3]=s,e[4]=f}else s=e[3],f=e[4];const g=f;let l,d;e[8]===Symbol.for("react.memo_cache_sentinel")?(l=["Yes","No"],d=new Map([[l[0],"True"],[l[1],"False"]]),e[8]=l,e[9]=d):(l=e[8],d=e[9]);const b=d;let r;e[10]!==N?(r=[...N],e[10]=N,e[11]=r):r=e[11];let a;e[12]!==x?(a=x.values(),e[12]=x,e[13]=a):a=e[13];let i;e[14]!==a?(i=[...a],e[14]=a,e[15]=i):i=e[15];let o;e[16]!==r||e[17]!==i?(o={availableYears:r,availableNrens:i},e[16]=r,e[17]=i,e[18]=o):o=e[18];let m;e[19]!==t||e[20]!==n||e[21]!==o?(m=v.jsx(w,{filterOptions:o,filterSelection:t,setFilterSelection:n,coloredYears:!0}),e[19]=t,e[20]=n,e[21]=o,e[22]=m):m=e[22];const S=m;let c;e[23]!==g?(c=v.jsx(C,{children:v.jsx(D,{columns:l,columnLookup:b,dataLookup:g})}),e[23]=g,e[24]=c):c=e[24];let u;return e[25]!==S||e[26]!==s||e[27]!==c?(u=v.jsx(P,{title:T["service-level-targets"],description:`The table below shows which NRENs offer Service Levels Targets for their services. +import{c as y,r as j,F,j as v,t as T,S as _}from"./index-bwDVKb7d.js";import{u as E,g as L,D as P,F as w,f as C}from"./useData-Ba-3avp3.js";import{P as D}from"./PillTable-C7hMt52B.js";import"./SideBar-D_Yxr_mj.js";import"./xlsx-BHRztzV8.js";import"./index-Y7aK5es_.js";import"./hook-BGVjY_62.js";import"./ColorPill-D7RILPI9.js";import"./Table-D4mMg192.js";function A(){const e=y.c(29),{filterSelection:t,setFilterSelection:n}=j.useContext(F),{data:h,years:N,nrens:x}=E("/api/service-management",n);let s,f;if(e[0]!==h||e[1]!==t.selectedNrens||e[2]!==t.selectedYears){let p;e[5]!==t.selectedNrens||e[6]!==t.selectedYears?(p=Y=>t.selectedYears.includes(Y.year)&&t.selectedNrens.includes(Y.nren)&&Y.service_level_targets!==null,e[5]=t.selectedNrens,e[6]=t.selectedYears,e[7]=p):p=e[7],s=h.filter(p),f=L(s,"service_level_targets"),e[0]=h,e[1]=t.selectedNrens,e[2]=t.selectedYears,e[3]=s,e[4]=f}else s=e[3],f=e[4];const g=f;let l,d;e[8]===Symbol.for("react.memo_cache_sentinel")?(l=["Yes","No"],d=new Map([[l[0],"True"],[l[1],"False"]]),e[8]=l,e[9]=d):(l=e[8],d=e[9]);const b=d;let r;e[10]!==N?(r=[...N],e[10]=N,e[11]=r):r=e[11];let a;e[12]!==x?(a=x.values(),e[12]=x,e[13]=a):a=e[13];let i;e[14]!==a?(i=[...a],e[14]=a,e[15]=i):i=e[15];let o;e[16]!==r||e[17]!==i?(o={availableYears:r,availableNrens:i},e[16]=r,e[17]=i,e[18]=o):o=e[18];let m;e[19]!==t||e[20]!==n||e[21]!==o?(m=v.jsx(w,{filterOptions:o,filterSelection:t,setFilterSelection:n,coloredYears:!0}),e[19]=t,e[20]=n,e[21]=o,e[22]=m):m=e[22];const S=m;let c;e[23]!==g?(c=v.jsx(C,{children:v.jsx(D,{columns:l,columnLookup:b,dataLookup:g})}),e[23]=g,e[24]=c):c=e[24];let u;return e[25]!==S||e[26]!==s||e[27]!==c?(u=v.jsx(P,{title:T["service-level-targets"],description:`The table below shows which NRENs offer Service Levels Targets for their services. If NRENs have never responded to this question in the survey, they are excluded. `,category:_.Policy,filter:S,data:s,filename:"service_level_targets",children:c}),e[25]=S,e[26]=s,e[27]=c,e[28]=u):u=e[28],u}export{A as default}; diff --git a/compendium_v2/static/ServiceManagementFramework-B5G4LhDr.js b/compendium_v2/static/ServiceManagementFramework-DVUOmqGy.js similarity index 81% rename from compendium_v2/static/ServiceManagementFramework-B5G4LhDr.js rename to compendium_v2/static/ServiceManagementFramework-DVUOmqGy.js index 37a9d5d8a96a32ee332ae2a96a6d4a524a856641..829c6f9181a760d778cbad0005293e645915cece 100644 --- a/compendium_v2/static/ServiceManagementFramework-B5G4LhDr.js +++ b/compendium_v2/static/ServiceManagementFramework-DVUOmqGy.js @@ -1,2 +1,2 @@ -import{c as b,r as F,F as S,j as h,t as j,S as _}from"./index-DBbSOdjk.js";import{u as y,g as E,D as P,F as C,f as D}from"./useData-CcKTpALT.js";import{P as R}from"./PillTable-CIcKqQJh.js";import"./SideBar-DfD7Pj8p.js";import"./xlsx-BHRztzV8.js";import"./index-DkYuYqrz.js";import"./hook-D9Tuu5oJ.js";import"./ColorPill-CuYEYQ56.js";import"./Table-DNomfHX4.js";function B(){const e=b.c(29),{filterSelection:t,setFilterSelection:c}=F.useContext(S),{data:v,years:N,nrens:w}=y("/api/service-management",c);let s,m;if(e[0]!==v||e[1]!==t.selectedNrens||e[2]!==t.selectedYears){let u;e[5]!==t.selectedNrens||e[6]!==t.selectedYears?(u=k=>t.selectedYears.includes(k.year)&&t.selectedNrens.includes(k.nren)&&k.service_management_framework!==null,e[5]=t.selectedNrens,e[6]=t.selectedYears,e[7]=u):u=e[7],s=v.filter(u),m=E(s,"service_management_framework"),e[0]=v,e[1]=t.selectedNrens,e[2]=t.selectedYears,e[3]=s,e[4]=m}else s=e[3],m=e[4];const g=m;let r,f;e[8]===Symbol.for("react.memo_cache_sentinel")?(r=["Yes","No"],f=new Map([[r[0],"True"],[r[1],"False"]]),e[8]=r,e[9]=f):(r=e[8],f=e[9]);const Y=f;let a;e[10]!==N?(a=[...N],e[10]=N,e[11]=a):a=e[11];let l;e[12]!==w?(l=w.values(),e[12]=w,e[13]=l):l=e[13];let i;e[14]!==l?(i=[...l],e[14]=l,e[15]=i):i=e[15];let o;e[16]!==a||e[17]!==i?(o={availableYears:a,availableNrens:i},e[16]=a,e[17]=i,e[18]=o):o=e[18];let p;e[19]!==t||e[20]!==c||e[21]!==o?(p=h.jsx(C,{filterOptions:o,filterSelection:t,setFilterSelection:c,coloredYears:!0}),e[19]=t,e[20]=c,e[21]=o,e[22]=p):p=e[22];const x=p;let n;e[23]!==g?(n=h.jsx(D,{children:h.jsx(R,{columns:r,columnLookup:Y,dataLookup:g})}),e[23]=g,e[24]=n):n=e[24];let d;return e[25]!==x||e[26]!==s||e[27]!==n?(d=h.jsx(P,{title:j["service-management-framework"],description:`The chart below shows which NRENs operate a formal service management framework +import{c as b,r as F,F as S,j as h,t as j,S as _}from"./index-bwDVKb7d.js";import{u as y,g as E,D as P,F as C,f as D}from"./useData-Ba-3avp3.js";import{P as R}from"./PillTable-C7hMt52B.js";import"./SideBar-D_Yxr_mj.js";import"./xlsx-BHRztzV8.js";import"./index-Y7aK5es_.js";import"./hook-BGVjY_62.js";import"./ColorPill-D7RILPI9.js";import"./Table-D4mMg192.js";function B(){const e=b.c(29),{filterSelection:t,setFilterSelection:c}=F.useContext(S),{data:v,years:N,nrens:w}=y("/api/service-management",c);let s,m;if(e[0]!==v||e[1]!==t.selectedNrens||e[2]!==t.selectedYears){let u;e[5]!==t.selectedNrens||e[6]!==t.selectedYears?(u=k=>t.selectedYears.includes(k.year)&&t.selectedNrens.includes(k.nren)&&k.service_management_framework!==null,e[5]=t.selectedNrens,e[6]=t.selectedYears,e[7]=u):u=e[7],s=v.filter(u),m=E(s,"service_management_framework"),e[0]=v,e[1]=t.selectedNrens,e[2]=t.selectedYears,e[3]=s,e[4]=m}else s=e[3],m=e[4];const g=m;let r,f;e[8]===Symbol.for("react.memo_cache_sentinel")?(r=["Yes","No"],f=new Map([[r[0],"True"],[r[1],"False"]]),e[8]=r,e[9]=f):(r=e[8],f=e[9]);const Y=f;let a;e[10]!==N?(a=[...N],e[10]=N,e[11]=a):a=e[11];let l;e[12]!==w?(l=w.values(),e[12]=w,e[13]=l):l=e[13];let i;e[14]!==l?(i=[...l],e[14]=l,e[15]=i):i=e[15];let o;e[16]!==a||e[17]!==i?(o={availableYears:a,availableNrens:i},e[16]=a,e[17]=i,e[18]=o):o=e[18];let p;e[19]!==t||e[20]!==c||e[21]!==o?(p=h.jsx(C,{filterOptions:o,filterSelection:t,setFilterSelection:c,coloredYears:!0}),e[19]=t,e[20]=c,e[21]=o,e[22]=p):p=e[22];const x=p;let n;e[23]!==g?(n=h.jsx(D,{children:h.jsx(R,{columns:r,columnLookup:Y,dataLookup:g})}),e[23]=g,e[24]=n):n=e[24];let d;return e[25]!==x||e[26]!==s||e[27]!==n?(d=h.jsx(P,{title:j["service-management-framework"],description:`The chart below shows which NRENs operate a formal service management framework for all of their services. NRENs which have never answered this question cannot be selected.`,category:_.Policy,filter:x,data:s,filename:"service_management_framework",children:n}),e[25]=x,e[26]=s,e[27]=n,e[28]=d):d=e[28],d}export{B as default}; diff --git a/compendium_v2/static/Services-2YDP1wpB.js b/compendium_v2/static/Services-N5zhXu4f.js similarity index 95% rename from compendium_v2/static/Services-2YDP1wpB.js rename to compendium_v2/static/Services-N5zhXu4f.js index 3999636b547f707c9f8f4002a3b4c6b57c977216..67b48f0137fae785fd25932cab3b80bd6a6fdf72 100644 --- a/compendium_v2/static/Services-2YDP1wpB.js +++ b/compendium_v2/static/Services-N5zhXu4f.js @@ -1,4 +1,4 @@ -import{_ as se,c as U,j as s,r as ie,F as re,a0 as g,S as ae,t as N}from"./index-DBbSOdjk.js";import{u as oe,g as le,F as ce,D as ne,f as de}from"./useData-CcKTpALT.js";import{T as me}from"./Table-DNomfHX4.js";import"./SideBar-DfD7Pj8p.js";import"./xlsx-BHRztzV8.js";import"./index-DkYuYqrz.js";import"./hook-D9Tuu5oJ.js";function Q(v){return se({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"m10 15.586-3.293-3.293-1.414 1.414L10 18.414l9.707-9.707-1.414-1.414z"},child:[]}]})(v)}function pe(v){const e=U.c(9),{year:i,active:t,serviceInfo:l,tickServiceIndex:u,current:a}=v;let r="No additional information available";if(l!==void 0){const x=l.service_name;let n=l.product_name,d=l.official_description,m=l.additional_information;(n!=""||d!=""||m!="")&&(n=n||"N/A",d=d||"N/A",m=m||"N/A",r=x+` +import{_ as se,c as U,j as s,r as ie,F as re,a0 as g,S as ae,t as N}from"./index-bwDVKb7d.js";import{u as oe,g as le,F as ce,D as ne,f as de}from"./useData-Ba-3avp3.js";import{T as me}from"./Table-D4mMg192.js";import"./SideBar-D_Yxr_mj.js";import"./xlsx-BHRztzV8.js";import"./index-Y7aK5es_.js";import"./hook-BGVjY_62.js";function Q(v){return se({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"m10 15.586-3.293-3.293-1.414 1.414L10 18.414l9.707-9.707-1.414-1.414z"},child:[]}]})(v)}function pe(v){const e=U.c(9),{year:i,active:t,serviceInfo:l,tickServiceIndex:u,current:a}=v;let r="No additional information available";if(l!==void 0){const x=l.service_name;let n=l.product_name,d=l.official_description,m=l.additional_information;(n!=""||d!=""||m!="")&&(n=n||"N/A",d=d||"N/A",m=m||"N/A",r=x+` `+n+` Description: `+d+` diff --git a/compendium_v2/static/ServicesOffered-B_OBZM5I.js b/compendium_v2/static/ServicesOffered-D1PvVwDW.js similarity index 86% rename from compendium_v2/static/ServicesOffered-B_OBZM5I.js rename to compendium_v2/static/ServicesOffered-D1PvVwDW.js index 1145e0915e64926c486f14baa446bb11e54438a3..17346868eafe19e2bd2a8516419278f12c70de83 100644 --- a/compendium_v2/static/ServicesOffered-B_OBZM5I.js +++ b/compendium_v2/static/ServicesOffered-D1PvVwDW.js @@ -1 +1 @@ -import{c as b,r as w,F as j,j as c,t as k,S as C,U as E}from"./index-DBbSOdjk.js";import{u as Y,r as F,D as I,F as P,f as R}from"./useData-CcKTpALT.js";import{S as D}from"./ScrollableMatrix-CNydABqZ.js";import"./SideBar-DfD7Pj8p.js";import"./xlsx-BHRztzV8.js";import"./index-DkYuYqrz.js";import"./hook-D9Tuu5oJ.js";import"./Table-DNomfHX4.js";function z(){const e=b.c(29),{filterSelection:t,setFilterSelection:n}=w.useContext(j),{data:h,years:g,nrens:v}=Y("/api/services-offered",n);let s,f;if(e[0]!==t.selectedNrens||e[1]!==t.selectedYears||e[2]!==h){let y;e[5]!==t.selectedNrens||e[6]!==t.selectedYears?(y=S=>t.selectedYears.includes(S.year)&&t.selectedNrens.includes(S.nren),e[5]=t.selectedNrens,e[6]=t.selectedYears,e[7]=y):y=e[7],s=h.filter(y),f=F(s,["service_category"],"user_category"),e[0]=t.selectedNrens,e[1]=t.selectedYears,e[2]=h,e[3]=s,e[4]=f}else s=e[3],f=e[4];const x=f;let r;e[8]!==g?(r=[...g],e[8]=g,e[9]=r):r=e[9];let i;e[10]!==v?(i=v.values(),e[10]=v,e[11]=i):i=e[11];let o;e[12]!==i?(o=[...i],e[12]=i,e[13]=o):o=e[13];let a;e[14]!==r||e[15]!==o?(a={availableYears:r,availableNrens:o},e[14]=r,e[15]=o,e[16]=a):a=e[16];let d;e[17]!==t||e[18]!==n||e[19]!==a?(d=c.jsx(P,{filterOptions:a,filterSelection:t,setFilterSelection:n}),e[17]=t,e[18]=n,e[19]=a,e[20]=d):d=e[20];const N=d;let p;e[21]===Symbol.for("react.memo_cache_sentinel")?(p={"Identity/T&I":"identity",Multimedia:"multimedia","Professional services":"professional_services","Network services":"network_services",Collaboration:"collaboration",Security:"security","Storage and Hosting":"storage_and_hosting","ISP support":"isp_support"},e[21]=p):p=e[21];const _=p;let u;e[22]===Symbol.for("react.memo_cache_sentinel")?(u=c.jsx("span",{children:"The table below shows the different types of users served by NRENs. Selecting the institution type will expand the detail to show the categories of services offered by NRENs, with a tick indicating that the NREN offers a specific category of service to the type of user."}),e[22]=u):u=e[22];let l;e[23]!==x?(l=c.jsx(R,{children:c.jsx(D,{dataLookup:x,rowInfo:_,categoryLookup:E,isTickIcon:!0})}),e[23]=x,e[24]=l):l=e[24];let m;return e[25]!==N||e[26]!==s||e[27]!==l?(m=c.jsx(I,{title:k["services-offered"],description:u,category:C.Policy,filter:N,data:s,filename:"nren_services_offered",children:l}),e[25]=N,e[26]=s,e[27]=l,e[28]=m):m=e[28],m}export{z as default}; +import{c as b,r as w,F as j,j as c,t as k,S as C,U as E}from"./index-bwDVKb7d.js";import{u as Y,r as F,D as I,F as P,f as R}from"./useData-Ba-3avp3.js";import{S as D}from"./ScrollableMatrix-BXISTRn4.js";import"./SideBar-D_Yxr_mj.js";import"./xlsx-BHRztzV8.js";import"./index-Y7aK5es_.js";import"./hook-BGVjY_62.js";import"./Table-D4mMg192.js";function z(){const e=b.c(29),{filterSelection:t,setFilterSelection:n}=w.useContext(j),{data:h,years:g,nrens:v}=Y("/api/services-offered",n);let s,f;if(e[0]!==t.selectedNrens||e[1]!==t.selectedYears||e[2]!==h){let y;e[5]!==t.selectedNrens||e[6]!==t.selectedYears?(y=S=>t.selectedYears.includes(S.year)&&t.selectedNrens.includes(S.nren),e[5]=t.selectedNrens,e[6]=t.selectedYears,e[7]=y):y=e[7],s=h.filter(y),f=F(s,["service_category"],"user_category"),e[0]=t.selectedNrens,e[1]=t.selectedYears,e[2]=h,e[3]=s,e[4]=f}else s=e[3],f=e[4];const x=f;let r;e[8]!==g?(r=[...g],e[8]=g,e[9]=r):r=e[9];let i;e[10]!==v?(i=v.values(),e[10]=v,e[11]=i):i=e[11];let o;e[12]!==i?(o=[...i],e[12]=i,e[13]=o):o=e[13];let a;e[14]!==r||e[15]!==o?(a={availableYears:r,availableNrens:o},e[14]=r,e[15]=o,e[16]=a):a=e[16];let d;e[17]!==t||e[18]!==n||e[19]!==a?(d=c.jsx(P,{filterOptions:a,filterSelection:t,setFilterSelection:n}),e[17]=t,e[18]=n,e[19]=a,e[20]=d):d=e[20];const N=d;let p;e[21]===Symbol.for("react.memo_cache_sentinel")?(p={"Identity/T&I":"identity",Multimedia:"multimedia","Professional services":"professional_services","Network services":"network_services",Collaboration:"collaboration",Security:"security","Storage and Hosting":"storage_and_hosting","ISP support":"isp_support"},e[21]=p):p=e[21];const _=p;let u;e[22]===Symbol.for("react.memo_cache_sentinel")?(u=c.jsx("span",{children:"The table below shows the different types of users served by NRENs. Selecting the institution type will expand the detail to show the categories of services offered by NRENs, with a tick indicating that the NREN offers a specific category of service to the type of user."}),e[22]=u):u=e[22];let l;e[23]!==x?(l=c.jsx(R,{children:c.jsx(D,{dataLookup:x,rowInfo:_,categoryLookup:E,isTickIcon:!0})}),e[23]=x,e[24]=l):l=e[24];let m;return e[25]!==N||e[26]!==s||e[27]!==l?(m=c.jsx(I,{title:k["services-offered"],description:u,category:C.Policy,filter:N,data:s,filename:"nren_services_offered",children:l}),e[25]=N,e[26]=s,e[27]=l,e[28]=m):m=e[28],m}export{z as default}; diff --git a/compendium_v2/static/SideBar-DfD7Pj8p.js b/compendium_v2/static/SideBar-D_Yxr_mj.js similarity index 95% rename from compendium_v2/static/SideBar-DfD7Pj8p.js rename to compendium_v2/static/SideBar-D_Yxr_mj.js index 251e7fd45ca0a7d30507b01fd3a0d9ce77441412..788df8de27e68ccf6abd3c18058ee955d6e46d30 100644 --- a/compendium_v2/static/SideBar-DfD7Pj8p.js +++ b/compendium_v2/static/SideBar-D_Yxr_mj.js @@ -1 +1 @@ -import{c as N,r as y,j as t,Y as S,Z as k}from"./index-DBbSOdjk.js";const _=E=>{const e=N.c(23),{children:x,survey:m}=E,[s,b]=y.useState(!1);let d;e[0]!==s?(d=a=>{a.stopPropagation(),a.preventDefault(),b(!s)},e[0]=s,e[1]=d):d=e[1];const l=d;let f;e[2]===Symbol.for("react.memo_cache_sentinel")?(f=a=>{a.target.closest("#sidebar")||a.target.closest(".toggle-btn")||b(!1)},e[2]=f):f=e[2];const j=f;let p;e[3]===Symbol.for("react.memo_cache_sentinel")?(p=()=>(document.addEventListener("click",j),()=>{document.removeEventListener("click",j)}),e[3]=p):p=e[3],y.useEffect(p);let i;e[4]!==s||e[5]!==m?(i=[],s||i.push("no-sidebar"),m&&i.push("survey"),e[4]=s,e[5]=m,e[6]=i):i=e[6];const g=i.join(" ");let o;e[7]!==x?(o=t.jsx("div",{className:"menu-items",children:x}),e[7]=x,e[8]=o):o=e[8];let c;e[9]!==g||e[10]!==o?(c=t.jsx("nav",{className:g,id:"sidebar",children:o}),e[9]=g,e[10]=o,e[11]=c):c=e[11];const v=`toggle-btn${m?"-survey":""}`;let u;e[12]===Symbol.for("react.memo_cache_sentinel")?(u=t.jsx("span",{children:"MENU"}),e[12]=u):u=e[12];let n;e[13]!==s||e[14]!==l?(n=t.jsxs("div",{className:"toggle-btn-wrapper",children:[u," ",s?t.jsx(S,{style:{color:"white",paddingBottom:"3px",scale:"1.3"},onClick:l}):t.jsx(k,{style:{color:"white",paddingBottom:"3px",scale:"1.3"},onClick:l})]}),e[13]=s,e[14]=l,e[15]=n):n=e[15];let r;e[16]!==v||e[17]!==n||e[18]!==l?(r=t.jsx("div",{className:v,onClick:l,children:n}),e[16]=v,e[17]=n,e[18]=l,e[19]=r):r=e[19];let h;return e[20]!==r||e[21]!==c?(h=t.jsxs("div",{className:"sidebar-wrapper",children:[c,r]}),e[20]=r,e[21]=c,e[22]=h):h=e[22],h};export{_ as S}; +import{c as N,r as y,j as t,Y as S,Z as k}from"./index-bwDVKb7d.js";const _=E=>{const e=N.c(23),{children:x,survey:m}=E,[s,b]=y.useState(!1);let d;e[0]!==s?(d=a=>{a.stopPropagation(),a.preventDefault(),b(!s)},e[0]=s,e[1]=d):d=e[1];const l=d;let f;e[2]===Symbol.for("react.memo_cache_sentinel")?(f=a=>{a.target.closest("#sidebar")||a.target.closest(".toggle-btn")||b(!1)},e[2]=f):f=e[2];const j=f;let p;e[3]===Symbol.for("react.memo_cache_sentinel")?(p=()=>(document.addEventListener("click",j),()=>{document.removeEventListener("click",j)}),e[3]=p):p=e[3],y.useEffect(p);let i;e[4]!==s||e[5]!==m?(i=[],s||i.push("no-sidebar"),m&&i.push("survey"),e[4]=s,e[5]=m,e[6]=i):i=e[6];const g=i.join(" ");let o;e[7]!==x?(o=t.jsx("div",{className:"menu-items",children:x}),e[7]=x,e[8]=o):o=e[8];let c;e[9]!==g||e[10]!==o?(c=t.jsx("nav",{className:g,id:"sidebar",children:o}),e[9]=g,e[10]=o,e[11]=c):c=e[11];const v=`toggle-btn${m?"-survey":""}`;let u;e[12]===Symbol.for("react.memo_cache_sentinel")?(u=t.jsx("span",{children:"MENU"}),e[12]=u):u=e[12];let n;e[13]!==s||e[14]!==l?(n=t.jsxs("div",{className:"toggle-btn-wrapper",children:[u," ",s?t.jsx(S,{style:{color:"white",paddingBottom:"3px",scale:"1.3"},onClick:l}):t.jsx(k,{style:{color:"white",paddingBottom:"3px",scale:"1.3"},onClick:l})]}),e[13]=s,e[14]=l,e[15]=n):n=e[15];let r;e[16]!==v||e[17]!==n||e[18]!==l?(r=t.jsx("div",{className:v,onClick:l,children:n}),e[16]=v,e[17]=n,e[18]=l,e[19]=r):r=e[19];let h;return e[20]!==r||e[21]!==c?(h=t.jsxs("div",{className:"sidebar-wrapper",children:[c,r]}),e[20]=r,e[21]=c,e[22]=h):h=e[22],h};export{_ as S}; diff --git a/compendium_v2/static/SiemVendors-BCpq8Hqq.js b/compendium_v2/static/SiemVendors-DwQpCR11.js similarity index 79% rename from compendium_v2/static/SiemVendors-BCpq8Hqq.js rename to compendium_v2/static/SiemVendors-DwQpCR11.js index 982b059d5b2e88ac74619812eec7e672dae6f459..04a6e4026fd8bbeadc6be7e909f1316b2b615c01 100644 --- a/compendium_v2/static/SiemVendors-BCpq8Hqq.js +++ b/compendium_v2/static/SiemVendors-DwQpCR11.js @@ -1 +1 @@ -import{c as Y,r as j,F as E,j as u,t as _,S as g}from"./index-DBbSOdjk.js";import{u as k,g as C,D as F,F as D,f as P}from"./useData-CcKTpALT.js";import{P as R}from"./PillTable-CIcKqQJh.js";import"./SideBar-DfD7Pj8p.js";import"./xlsx-BHRztzV8.js";import"./index-DkYuYqrz.js";import"./hook-D9Tuu5oJ.js";import"./ColorPill-CuYEYQ56.js";import"./Table-DNomfHX4.js";function $(){const e=Y.c(28),{filterSelection:t,setFilterSelection:n}=j.useContext(E),{data:x,years:N,nrens:S}=k("/api/siem-vendors",n);let s,c;if(e[0]!==x||e[1]!==t.selectedNrens||e[2]!==t.selectedYears){let p;e[5]!==t.selectedNrens||e[6]!==t.selectedYears?(p=v=>t.selectedYears.includes(v.year)&&t.selectedNrens.includes(v.nren),e[5]=t.selectedNrens,e[6]=t.selectedYears,e[7]=p):p=e[7],s=x.filter(p),c=C(s,"vendor_names"),e[0]=x,e[1]=t.selectedNrens,e[2]=t.selectedYears,e[3]=s,e[4]=c}else s=e[3],c=e[4];const b=c;let r;e[8]!==N?(r=[...N],e[8]=N,e[9]=r):r=e[9];let l;e[10]!==S?(l=S.values(),e[10]=S,e[11]=l):l=e[11];let a;e[12]!==l?(a=[...l],e[12]=l,e[13]=a):a=e[13];let i;e[14]!==r||e[15]!==a?(i={availableYears:r,availableNrens:a},e[14]=r,e[15]=a,e[16]=i):i=e[16];let d;e[17]!==t||e[18]!==n||e[19]!==i?(d=u.jsx(D,{filterOptions:i,filterSelection:t,setFilterSelection:n,coloredYears:!0}),e[17]=t,e[18]=n,e[19]=i,e[20]=d):d=e[20];const h=d;let m;e[21]===Symbol.for("react.memo_cache_sentinel")?(m=["Splunk","IBM Qradar","Exabeam","LogRythm","Securonix"],e[21]=m):m=e[21];const y=m;let o;e[22]!==b?(o=u.jsx(P,{children:u.jsx(R,{columns:y,dataLookup:b,circle:!0})}),e[22]=b,e[23]=o):o=e[23];let f;return e[24]!==h||e[25]!==s||e[26]!==o?(f=u.jsx(F,{title:_["siem-vendors"],description:"The table below shows the kinds of vendors of SIEM/SOC systems used by NRENs.",category:g.Network,filter:h,data:s,filename:"siem_vendor_nrens_per_year",children:o}),e[24]=h,e[25]=s,e[26]=o,e[27]=f):f=e[27],f}export{$ as default}; +import{c as Y,r as j,F as E,j as u,t as _,S as g}from"./index-bwDVKb7d.js";import{u as k,g as C,D as F,F as D,f as P}from"./useData-Ba-3avp3.js";import{P as R}from"./PillTable-C7hMt52B.js";import"./SideBar-D_Yxr_mj.js";import"./xlsx-BHRztzV8.js";import"./index-Y7aK5es_.js";import"./hook-BGVjY_62.js";import"./ColorPill-D7RILPI9.js";import"./Table-D4mMg192.js";function $(){const e=Y.c(28),{filterSelection:t,setFilterSelection:n}=j.useContext(E),{data:x,years:N,nrens:S}=k("/api/siem-vendors",n);let s,c;if(e[0]!==x||e[1]!==t.selectedNrens||e[2]!==t.selectedYears){let p;e[5]!==t.selectedNrens||e[6]!==t.selectedYears?(p=v=>t.selectedYears.includes(v.year)&&t.selectedNrens.includes(v.nren),e[5]=t.selectedNrens,e[6]=t.selectedYears,e[7]=p):p=e[7],s=x.filter(p),c=C(s,"vendor_names"),e[0]=x,e[1]=t.selectedNrens,e[2]=t.selectedYears,e[3]=s,e[4]=c}else s=e[3],c=e[4];const b=c;let r;e[8]!==N?(r=[...N],e[8]=N,e[9]=r):r=e[9];let l;e[10]!==S?(l=S.values(),e[10]=S,e[11]=l):l=e[11];let a;e[12]!==l?(a=[...l],e[12]=l,e[13]=a):a=e[13];let i;e[14]!==r||e[15]!==a?(i={availableYears:r,availableNrens:a},e[14]=r,e[15]=a,e[16]=i):i=e[16];let d;e[17]!==t||e[18]!==n||e[19]!==i?(d=u.jsx(D,{filterOptions:i,filterSelection:t,setFilterSelection:n,coloredYears:!0}),e[17]=t,e[18]=n,e[19]=i,e[20]=d):d=e[20];const h=d;let m;e[21]===Symbol.for("react.memo_cache_sentinel")?(m=["Splunk","IBM Qradar","Exabeam","LogRythm","Securonix"],e[21]=m):m=e[21];const y=m;let o;e[22]!==b?(o=u.jsx(P,{children:u.jsx(R,{columns:y,dataLookup:b,circle:!0})}),e[22]=b,e[23]=o):o=e[23];let f;return e[24]!==h||e[25]!==s||e[26]!==o?(f=u.jsx(F,{title:_["siem-vendors"],description:"The table below shows the kinds of vendors of SIEM/SOC systems used by NRENs.",category:g.Network,filter:h,data:s,filename:"siem_vendor_nrens_per_year",children:o}),e[24]=h,e[25]=s,e[26]=o,e[27]=f):f=e[27],f}export{$ as default}; diff --git a/compendium_v2/static/StaffGraph-BhGKlAbH.js b/compendium_v2/static/StaffGraph-DAZsRMiP.js similarity index 89% rename from compendium_v2/static/StaffGraph-BhGKlAbH.js rename to compendium_v2/static/StaffGraph-DAZsRMiP.js index 7ba06cbca00f690e994fcb28b074c19f7387fa3f..48d00610e5f8aa9692c833708e9ec9e140dfc687 100644 --- a/compendium_v2/static/StaffGraph-BhGKlAbH.js +++ b/compendium_v2/static/StaffGraph-DAZsRMiP.js @@ -1,4 +1,4 @@ -import{c as $,r as B,F as A,j as x,S as M,t as R}from"./index-DBbSOdjk.js";import{B as P}from"./index-DyJczNpq.js";import{C as g,a as q,L as W,B as G,p as V,c as z,d as H,u as J,l as K,D as Q,F as U}from"./useData-CcKTpALT.js";import{h as X,W as Z}from"./HTMLLegendPlugin-Ci0zt1Jy.js";import"./SideBar-DfD7Pj8p.js";import"./xlsx-BHRztzV8.js";import"./index-DkYuYqrz.js";import"./hook-D9Tuu5oJ.js";g.register(q,W,G,V,z,H);const I={maintainAspectRatio:!1,animation:{duration:0},plugins:{htmlLegend:{containerIDs:["legendtop","legendbottom"]},legend:{display:!1},tooltip:{callbacks:{label:function(t){let e=t.dataset.label||"";return t.parsed.x!==null&&(e+=`: ${t.parsed.x}%`),e}}}},scales:{x:{position:"top",stacked:!0,ticks:{callback:(t,e)=>`${e*10}%`}},x2:{ticks:{callback:t=>typeof t=="number"?`${t}%`:t},grid:{drawOnChartArea:!1},afterDataLimits:function(t){const e=Object.keys(g.instances);let r=-999999,s=999999;for(const n of e)g.instances[n]&&t.chart.scales.x2&&(s=Math.min(g.instances[n].scales.x.min,s),r=Math.max(g.instances[n].scales.x.max,r));t.chart.scales.x2.options.min=s,t.chart.scales.x2.options.max=r,t.chart.scales.x2.min=s,t.chart.scales.x2.max=r}},y:{stacked:!0,ticks:{autoSkip:!1}}},indexAxis:"y"};function ce(t){const e=$.c(39),{roles:r}=t,s=r===void 0?!1:r;let n;e[0]!==s?(n=function(i){return s&&i.technical_fte>0&&i.non_technical_fte>0||!s&&i.permanent_fte>0&&i.subcontracted_fte>0},e[0]=s,e[1]=n):n=e[1];const Y=n,{filterSelection:a,setFilterSelection:y}=B.useContext(A),{data:k,years:S,nrens:w}=J("/api/staff",y,Y);let l,b;if(e[2]!==k||e[3]!==a.selectedNrens||e[4]!==a.selectedYears||e[5]!==s){let u;e[8]!==a.selectedNrens||e[9]!==a.selectedYears?(u=i=>a.selectedYears.includes(i.year)&&a.selectedNrens.includes(i.nren),e[8]=a.selectedNrens,e[9]=a.selectedYears,e[10]=u):u=e[10],l=k.filter(u),b=K(l,s,a.selectedYears[0]),e[2]=k,e[3]=a.selectedNrens,e[4]=a.selectedYears,e[5]=s,e[6]=l,e[7]=b}else l=e[6],b=e[7];const F=b;let c;e[11]!==S?(c=[...S],e[11]=S,e[12]=c):c=e[12];let o;e[13]!==w?(o=w.values(),e[13]=w,e[14]=o):o=e[14];let f;e[15]!==o?(f=[...o],e[15]=o,e[16]=f):f=e[16];let d;e[17]!==c||e[18]!==f?(d={availableYears:c,availableNrens:f},e[17]=c,e[18]=f,e[19]=d):d=e[19];let N;e[20]!==a||e[21]!==y||e[22]!==d?(N=x.jsx(U,{max1year:!0,filterOptions:d,filterSelection:a,setFilterSelection:y}),e[20]=a,e[21]=y,e[22]=d,e[23]=N):N=e[23];const T=N,L=l.length,O=Math.max(L*1.5,20),v=s?R.roles:R.employment,C=s?`The graph shows division of staff FTEs (Full Time Equivalents) between technical and non-techical role per NREN. +import{c as $,r as B,F as A,j as x,S as M,t as R}from"./index-bwDVKb7d.js";import{B as P}from"./index-0m6TK_PI.js";import{C as g,a as q,L as W,B as G,p as V,c as z,d as H,u as J,l as K,D as Q,F as U}from"./useData-Ba-3avp3.js";import{h as X,W as Z}from"./HTMLLegendPlugin-sf8csfcD.js";import"./SideBar-D_Yxr_mj.js";import"./xlsx-BHRztzV8.js";import"./index-Y7aK5es_.js";import"./hook-BGVjY_62.js";g.register(q,W,G,V,z,H);const I={maintainAspectRatio:!1,animation:{duration:0},plugins:{htmlLegend:{containerIDs:["legendtop","legendbottom"]},legend:{display:!1},tooltip:{callbacks:{label:function(t){let e=t.dataset.label||"";return t.parsed.x!==null&&(e+=`: ${t.parsed.x}%`),e}}}},scales:{x:{position:"top",stacked:!0,ticks:{callback:(t,e)=>`${e*10}%`}},x2:{ticks:{callback:t=>typeof t=="number"?`${t}%`:t},grid:{drawOnChartArea:!1},afterDataLimits:function(t){const e=Object.keys(g.instances);let r=-999999,s=999999;for(const n of e)g.instances[n]&&t.chart.scales.x2&&(s=Math.min(g.instances[n].scales.x.min,s),r=Math.max(g.instances[n].scales.x.max,r));t.chart.scales.x2.options.min=s,t.chart.scales.x2.options.max=r,t.chart.scales.x2.min=s,t.chart.scales.x2.max=r}},y:{stacked:!0,ticks:{autoSkip:!1}}},indexAxis:"y"};function ce(t){const e=$.c(39),{roles:r}=t,s=r===void 0?!1:r;let n;e[0]!==s?(n=function(i){return s&&i.technical_fte>0&&i.non_technical_fte>0||!s&&i.permanent_fte>0&&i.subcontracted_fte>0},e[0]=s,e[1]=n):n=e[1];const Y=n,{filterSelection:a,setFilterSelection:y}=B.useContext(A),{data:k,years:S,nrens:w}=J("/api/staff",y,Y);let l,b;if(e[2]!==k||e[3]!==a.selectedNrens||e[4]!==a.selectedYears||e[5]!==s){let u;e[8]!==a.selectedNrens||e[9]!==a.selectedYears?(u=i=>a.selectedYears.includes(i.year)&&a.selectedNrens.includes(i.nren),e[8]=a.selectedNrens,e[9]=a.selectedYears,e[10]=u):u=e[10],l=k.filter(u),b=K(l,s,a.selectedYears[0]),e[2]=k,e[3]=a.selectedNrens,e[4]=a.selectedYears,e[5]=s,e[6]=l,e[7]=b}else l=e[6],b=e[7];const F=b;let c;e[11]!==S?(c=[...S],e[11]=S,e[12]=c):c=e[12];let o;e[13]!==w?(o=w.values(),e[13]=w,e[14]=o):o=e[14];let f;e[15]!==o?(f=[...o],e[15]=o,e[16]=f):f=e[16];let d;e[17]!==c||e[18]!==f?(d={availableYears:c,availableNrens:f},e[17]=c,e[18]=f,e[19]=d):d=e[19];let N;e[20]!==a||e[21]!==y||e[22]!==d?(N=x.jsx(U,{max1year:!0,filterOptions:d,filterSelection:a,setFilterSelection:y}),e[20]=a,e[21]=y,e[22]=d,e[23]=N):N=e[23];const T=N,L=l.length,O=Math.max(L*1.5,20),v=s?R.roles:R.employment,C=s?`The graph shows division of staff FTEs (Full Time Equivalents) between technical and non-techical role per NREN. The exact figures of how many FTEs are dedicated to these two different functional areas can be accessed by downloading the data in either CSV or Excel format`:`The graph shows the percentage of NREN staff who are permanent, and those who are subcontracted. The structures and models of NRENs differ across the community, which is reflected in the types of employment offered. The NRENs are asked to provide the Full Time Equivalents (FTEs) rather absolute numbers of staff.`,j=s?"roles_of_nren_employees":"types_of_employment_for_nrens",D=`${O}rem`;let m;e[24]!==D?(m={height:D},e[24]=D,e[25]=m):m=e[25];let _;e[26]===Symbol.for("react.memo_cache_sentinel")?(_=[X],e[26]=_):_=e[26];let h;e[27]!==F?(h=x.jsx(P,{data:F,options:I,plugins:_}),e[27]=F,e[28]=h):h=e[28];let p;e[29]!==m||e[30]!==h?(p=x.jsx(Z,{children:x.jsx("div",{className:"chart-container",style:m,children:h})}),e[29]=m,e[30]=h,e[31]=p):p=e[31];let E;return e[32]!==C||e[33]!==j||e[34]!==T||e[35]!==l||e[36]!==p||e[37]!==v?(E=x.jsx(Q,{title:v,description:C,category:M.Organisation,filter:T,data:l,filename:j,children:p}),e[32]=C,e[33]=j,e[34]=T,e[35]=l,e[36]=p,e[37]=v,e[38]=E):E=e[38],E}export{ce as default}; diff --git a/compendium_v2/static/StaffGraphAbsolute-DYsL_bJE.js b/compendium_v2/static/StaffGraphAbsolute-C52xAnNh.js similarity index 86% rename from compendium_v2/static/StaffGraphAbsolute-DYsL_bJE.js rename to compendium_v2/static/StaffGraphAbsolute-C52xAnNh.js index e10d8c9125551481d1579bbb0347dd45c27d8642..eaf4077e24d3da7e9b091889cd3cc367b9ee8d60 100644 --- a/compendium_v2/static/StaffGraphAbsolute-DYsL_bJE.js +++ b/compendium_v2/static/StaffGraphAbsolute-C52xAnNh.js @@ -1 +1 @@ -import{c as D,r as Y,F as B,j as d,S as T,t as P}from"./index-DBbSOdjk.js";import{B as A}from"./index-DyJczNpq.js";import{C as O,a as q,L,B as $,p as k,c as G,d as M,u as W,m as z,D as H,F as I,f as J}from"./useData-CcKTpALT.js";import{p as K}from"./chartjs-plugin-datalabels.esm-C6J4S2ma.js";import{a as Q}from"./charthelpers-CHBq5wBZ.js";import"./SideBar-DfD7Pj8p.js";import"./xlsx-BHRztzV8.js";import"./index-DkYuYqrz.js";import"./hook-D9Tuu5oJ.js";O.register(q,L,$,k,G,M);function re(){const e=D.c(38),{filterSelection:t,setFilterSelection:a}=Y.useContext(B),{data:b,years:p,nrens:u}=W("/api/staff",a);let i,n,s,g;if(e[0]!==b||e[1]!==t||e[2]!==u||e[3]!==a||e[4]!==p){let E;e[9]!==t.selectedNrens||e[10]!==t.selectedYears?(E=v=>t.selectedYears.includes(v.year)&&t.selectedNrens.includes(v.nren),e[9]=t.selectedNrens,e[10]=t.selectedYears,e[11]=E):E=e[11],s=b.filter(E),n=z(s,t.selectedYears);let c;e[12]!==p?(c=[...p],e[12]=p,e[13]=c):c=e[13];let f;e[14]!==u?(f=u.values(),e[14]=u,e[15]=f):f=e[15];let m;e[16]!==f?(m=[...f],e[16]=f,e[17]=m):m=e[17];let h;e[18]!==c||e[19]!==m?(h={availableYears:c,availableNrens:m},e[18]=c,e[19]=m,e[20]=h):h=e[20];let S;e[21]!==t||e[22]!==a||e[23]!==h?(S=d.jsx(I,{filterOptions:h,filterSelection:t,setFilterSelection:a}),e[21]=t,e[22]=a,e[23]=h,e[24]=S):S=e[24],i=S,g=Array.from(new Set(s.map(U))),e[0]=b,e[1]=t,e[2]=u,e[3]=a,e[4]=p,e[5]=i,e[6]=n,e[7]=s,e[8]=g}else i=e[5],n=e[6],s=e[7],g=e[8];const R=g.length,w=Math.max(R*t.selectedYears.length*1.5+5,50),C=P["employee-count"],F='The graph shows the total number of employees (in FTEs) at each NREN. When filling in the survey, NRENs are asked about the number of staff engaged (whether permanent or subcontracted) in NREN activities. Please note that diversity within the NREN community means that there is not one single definition of what constitutes "NREN activities". Therefore due to differences in how their organisations are arranged, and the relationship, in some cases, with parent organisations, there can be inconsistencies in how NRENs approach this question.';let N;e[25]===Symbol.for("react.memo_cache_sentinel")?(N=Q({tooltipPrefix:"FTEs",title:"Full-Time Equivalents"}),e[25]=N):N=e[25];const j=N,_=`${w}rem`;let r;e[26]!==_?(r={height:_},e[26]=_,e[27]=r):r=e[27];let x;e[28]===Symbol.for("react.memo_cache_sentinel")?(x=[K],e[28]=x):x=e[28];let l;e[29]!==n?(l=d.jsx(A,{data:n,options:j,plugins:x}),e[29]=n,e[30]=l):l=e[30];let o;e[31]!==r||e[32]!==l?(o=d.jsx(J,{children:d.jsx("div",{className:"chart-container",style:r,children:l})}),e[31]=r,e[32]=l,e[33]=o):o=e[33];let y;return e[34]!==i||e[35]!==s||e[36]!==o?(y=d.jsx(H,{title:C,description:F,category:T.Organisation,filter:i,data:s,filename:"number_of_nren_employees",children:o}),e[34]=i,e[35]=s,e[36]=o,e[37]=y):y=e[37],y}function U(e){return e.nren}export{re as default}; +import{c as D,r as Y,F as B,j as d,S as T,t as P}from"./index-bwDVKb7d.js";import{B as A}from"./index-0m6TK_PI.js";import{C as O,a as q,L,B as $,p as k,c as G,d as M,u as W,m as z,D as H,F as I,f as J}from"./useData-Ba-3avp3.js";import{p as K}from"./chartjs-plugin-datalabels.esm-BoLCz2jr.js";import{a as Q}from"./charthelpers-Cs3DRBw0.js";import"./SideBar-D_Yxr_mj.js";import"./xlsx-BHRztzV8.js";import"./index-Y7aK5es_.js";import"./hook-BGVjY_62.js";O.register(q,L,$,k,G,M);function re(){const e=D.c(38),{filterSelection:t,setFilterSelection:a}=Y.useContext(B),{data:b,years:p,nrens:u}=W("/api/staff",a);let i,n,s,g;if(e[0]!==b||e[1]!==t||e[2]!==u||e[3]!==a||e[4]!==p){let E;e[9]!==t.selectedNrens||e[10]!==t.selectedYears?(E=v=>t.selectedYears.includes(v.year)&&t.selectedNrens.includes(v.nren),e[9]=t.selectedNrens,e[10]=t.selectedYears,e[11]=E):E=e[11],s=b.filter(E),n=z(s,t.selectedYears);let c;e[12]!==p?(c=[...p],e[12]=p,e[13]=c):c=e[13];let f;e[14]!==u?(f=u.values(),e[14]=u,e[15]=f):f=e[15];let m;e[16]!==f?(m=[...f],e[16]=f,e[17]=m):m=e[17];let h;e[18]!==c||e[19]!==m?(h={availableYears:c,availableNrens:m},e[18]=c,e[19]=m,e[20]=h):h=e[20];let S;e[21]!==t||e[22]!==a||e[23]!==h?(S=d.jsx(I,{filterOptions:h,filterSelection:t,setFilterSelection:a}),e[21]=t,e[22]=a,e[23]=h,e[24]=S):S=e[24],i=S,g=Array.from(new Set(s.map(U))),e[0]=b,e[1]=t,e[2]=u,e[3]=a,e[4]=p,e[5]=i,e[6]=n,e[7]=s,e[8]=g}else i=e[5],n=e[6],s=e[7],g=e[8];const R=g.length,w=Math.max(R*t.selectedYears.length*1.5+5,50),C=P["employee-count"],F='The graph shows the total number of employees (in FTEs) at each NREN. When filling in the survey, NRENs are asked about the number of staff engaged (whether permanent or subcontracted) in NREN activities. Please note that diversity within the NREN community means that there is not one single definition of what constitutes "NREN activities". Therefore due to differences in how their organisations are arranged, and the relationship, in some cases, with parent organisations, there can be inconsistencies in how NRENs approach this question.';let N;e[25]===Symbol.for("react.memo_cache_sentinel")?(N=Q({tooltipPrefix:"FTEs",title:"Full-Time Equivalents"}),e[25]=N):N=e[25];const j=N,_=`${w}rem`;let r;e[26]!==_?(r={height:_},e[26]=_,e[27]=r):r=e[27];let x;e[28]===Symbol.for("react.memo_cache_sentinel")?(x=[K],e[28]=x):x=e[28];let l;e[29]!==n?(l=d.jsx(A,{data:n,options:j,plugins:x}),e[29]=n,e[30]=l):l=e[30];let o;e[31]!==r||e[32]!==l?(o=d.jsx(J,{children:d.jsx("div",{className:"chart-container",style:r,children:l})}),e[31]=r,e[32]=l,e[33]=o):o=e[33];let y;return e[34]!==i||e[35]!==s||e[36]!==o?(y=d.jsx(H,{title:C,description:F,category:T.Organisation,filter:i,data:s,filename:"number_of_nren_employees",children:o}),e[34]=i,e[35]=s,e[36]=o,e[37]=y):y=e[37],y}function U(e){return e.nren}export{re as default}; diff --git a/compendium_v2/static/SubOrganisation-Csf8sqHo.js b/compendium_v2/static/SubOrganisation-v6toYwK3.js similarity index 80% rename from compendium_v2/static/SubOrganisation-Csf8sqHo.js rename to compendium_v2/static/SubOrganisation-v6toYwK3.js index 9273fba9cce8961f7e8735b84a6e50fb8ae127d1..abe5b82fa7a4823657c58adf4739686c7e041aa6 100644 --- a/compendium_v2/static/SubOrganisation-Csf8sqHo.js +++ b/compendium_v2/static/SubOrganisation-v6toYwK3.js @@ -1 +1 @@ -import{c as Y,r as y,F as C,j as p,t as S,S as j}from"./index-DBbSOdjk.js";import{u as v,h as F,i as E,D as R,F as T,f as O}from"./useData-CcKTpALT.js";import{N as P}from"./NrenYearTable-C1JRhqy_.js";import"./SideBar-DfD7Pj8p.js";import"./xlsx-BHRztzV8.js";import"./index-DkYuYqrz.js";import"./hook-D9Tuu5oJ.js";import"./Table-DNomfHX4.js";function A(){const e=Y.c(27),{filterSelection:t,setFilterSelection:s}=y.useContext(C),{data:r,years:g,nrens:h}=v("/api/sub-organizations",s);let a,d;if(e[0]!==r||e[1]!==t.selectedNrens||e[2]!==t.selectedYears){let u;e[5]!==t.selectedNrens||e[6]!==t.selectedYears?(u=b=>t.selectedYears.includes(b.year)&&t.selectedNrens.includes(b.nren),e[5]=t.selectedNrens,e[6]=t.selectedYears,e[7]=u):u=e[7],a=r.filter(u);const D=F(a);d=E(D,$),e[0]=r,e[1]=t.selectedNrens,e[2]=t.selectedYears,e[3]=a,e[4]=d}else a=e[3],d=e[4];const x=d;let n;e[8]!==g?(n=[...g],e[8]=g,e[9]=n):n=e[9];let o;e[10]!==h?(o=h.values(),e[10]=h,e[11]=o):o=e[11];let i;e[12]!==o?(i=[...o],e[12]=o,e[13]=i):i=e[13];let l;e[14]!==n||e[15]!==i?(l={availableYears:n,availableNrens:i},e[14]=n,e[15]=i,e[16]=l):l=e[16];let f;e[17]!==t||e[18]!==s||e[19]!==l?(f=p.jsx(T,{filterOptions:l,filterSelection:t,setFilterSelection:s}),e[17]=t,e[18]=s,e[19]=l,e[20]=f):f=e[20];const N=f;let c;e[21]!==x?(c=p.jsx(O,{children:p.jsx(P,{data:x,columnTitle:"Suborganisation and Role",dottedBorder:!0})}),e[21]=x,e[22]=c):c=e[22];let m;return e[23]!==N||e[24]!==a||e[25]!==c?(m=p.jsx(R,{title:S.suborganisations,description:"NRENs are asked whether they have any sub-organisations, and to give the name and role of these organisations. These organisations can include HPC centres or IDC federations, amongst many others.",category:j.Organisation,filter:N,data:a,filename:"nren_suborganisations",children:c}),e[23]=N,e[24]=a,e[25]=c,e[26]=m):m=e[26],m}function $(e,t){for(const s of t.sort(k)){const r=`${s.name} (${s.role})`;e[r]=r}}function k(e,t){return e.name.localeCompare(t.name)}export{A as default}; +import{c as Y,r as y,F as C,j as p,t as S,S as j}from"./index-bwDVKb7d.js";import{u as v,h as F,i as E,D as R,F as T,f as O}from"./useData-Ba-3avp3.js";import{N as P}from"./NrenYearTable-9mB4hcmt.js";import"./SideBar-D_Yxr_mj.js";import"./xlsx-BHRztzV8.js";import"./index-Y7aK5es_.js";import"./hook-BGVjY_62.js";import"./Table-D4mMg192.js";function A(){const e=Y.c(27),{filterSelection:t,setFilterSelection:s}=y.useContext(C),{data:r,years:g,nrens:h}=v("/api/sub-organizations",s);let a,d;if(e[0]!==r||e[1]!==t.selectedNrens||e[2]!==t.selectedYears){let u;e[5]!==t.selectedNrens||e[6]!==t.selectedYears?(u=b=>t.selectedYears.includes(b.year)&&t.selectedNrens.includes(b.nren),e[5]=t.selectedNrens,e[6]=t.selectedYears,e[7]=u):u=e[7],a=r.filter(u);const D=F(a);d=E(D,$),e[0]=r,e[1]=t.selectedNrens,e[2]=t.selectedYears,e[3]=a,e[4]=d}else a=e[3],d=e[4];const x=d;let n;e[8]!==g?(n=[...g],e[8]=g,e[9]=n):n=e[9];let o;e[10]!==h?(o=h.values(),e[10]=h,e[11]=o):o=e[11];let i;e[12]!==o?(i=[...o],e[12]=o,e[13]=i):i=e[13];let l;e[14]!==n||e[15]!==i?(l={availableYears:n,availableNrens:i},e[14]=n,e[15]=i,e[16]=l):l=e[16];let f;e[17]!==t||e[18]!==s||e[19]!==l?(f=p.jsx(T,{filterOptions:l,filterSelection:t,setFilterSelection:s}),e[17]=t,e[18]=s,e[19]=l,e[20]=f):f=e[20];const N=f;let c;e[21]!==x?(c=p.jsx(O,{children:p.jsx(P,{data:x,columnTitle:"Suborganisation and Role",dottedBorder:!0})}),e[21]=x,e[22]=c):c=e[22];let m;return e[23]!==N||e[24]!==a||e[25]!==c?(m=p.jsx(R,{title:S.suborganisations,description:"NRENs are asked whether they have any sub-organisations, and to give the name and role of these organisations. These organisations can include HPC centres or IDC federations, amongst many others.",category:j.Organisation,filter:N,data:a,filename:"nren_suborganisations",children:c}),e[23]=N,e[24]=a,e[25]=c,e[26]=m):m=e[26],m}function $(e,t){for(const s of t.sort(k)){const r=`${s.name} (${s.role})`;e[r]=r}}function k(e,t){return e.name.localeCompare(t.name)}export{A as default}; diff --git a/compendium_v2/static/SurveyContainerComponent-CbFnC4ad.js b/compendium_v2/static/SurveyContainerComponent-z6e23PTc.js similarity index 99% rename from compendium_v2/static/SurveyContainerComponent-CbFnC4ad.js rename to compendium_v2/static/SurveyContainerComponent-z6e23PTc.js index 244ea550d06d0b02f88c0494e26dbeaf5ac00450..5ad2b212b61271927b73fe39feb2625f31eade1f 100644 --- a/compendium_v2/static/SurveyContainerComponent-CbFnC4ad.js +++ b/compendium_v2/static/SurveyContainerComponent-z6e23PTc.js @@ -1,4 +1,4 @@ -import{a3 as lo,a4 as co,c as Pe,r as F,j as L,C as po,E as st,R as fe,a1 as Hn,a5 as ho,a6 as fo,Q as mo}from"./index-DBbSOdjk.js";import{O as vo,V as A}from"./index-BYMaAaj9.js";import{r as yo,a as ue}from"./survey.core-Dz7VpPEK.js";import{V as we,v as go,o as Co}from"./validation-COFmylEH.js";import{S as xo}from"./SurveySidebar-C_LqylD3.js";import"./SideBar-DfD7Pj8p.js";var Re={exports:{}};/*! +import{a3 as lo,a4 as co,c as Pe,r as F,j as L,C as po,E as st,R as fe,a1 as Hn,a5 as ho,a6 as fo,Q as mo}from"./index-bwDVKb7d.js";import{O as vo,V as A}from"./index-CbTrjKrU.js";import{r as yo,a as ue}from"./survey.core-Dz7VpPEK.js";import{V as we,v as go,o as Co}from"./validation-COFmylEH.js";import{S as xo}from"./SurveySidebar-Ef_si00x.js";import"./SideBar-D_Yxr_mj.js";var Re={exports:{}};/*! * surveyjs - Survey JavaScript library v1.12.24 * Copyright (c) 2015-2025 Devsoft Baltic OÜ - http://surveyjs.io/ * License: MIT (http://www.opensource.org/licenses/mit-license.php) diff --git a/compendium_v2/static/SurveyManagementComponent-Lo-9bnmr.js b/compendium_v2/static/SurveyManagementComponent-B6hmLBQS.js similarity index 97% rename from compendium_v2/static/SurveyManagementComponent-Lo-9bnmr.js rename to compendium_v2/static/SurveyManagementComponent-B6hmLBQS.js index 79bbc87dfcf884e8667e9393db59c7dd63134ee8..09d8f7e14216152f7f028fabc459d17b0f05c459 100644 --- a/compendium_v2/static/SurveyManagementComponent-Lo-9bnmr.js +++ b/compendium_v2/static/SurveyManagementComponent-B6hmLBQS.js @@ -1,3 +1,3 @@ -import{r as $,h as K,j as t,i as X,_ as Q,c as G,y,a7 as Y,L as W,E as q,R as Z}from"./index-DBbSOdjk.js";import{A as F,l as ee}from"./lodash-YlUwNVit.js";import{T as te}from"./Table-DNomfHX4.js";import{V as h,O as se}from"./index-BYMaAaj9.js";import{v as ne,o as re,S as o}from"./validation-COFmylEH.js";import{a as V}from"./survey-3meXCY6T.js";import{S as ae}from"./SurveySidebar-C_LqylD3.js";import"./hook-D9Tuu5oJ.js";import"./SideBar-DfD7Pj8p.js";const H=$.forwardRef(({bsPrefix:e,variant:n,animation:l="border",size:r,as:i="div",className:c,...d},p)=>{e=K(e,"spinner");const f=`${e}-${l}`;return t.jsx(i,{ref:p,...d,className:X(c,f,r&&`${f}-${r}`,n&&`text-${n}`)})});H.displayName="Spinner";function ie(e){return Q({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm106.5 150.5L228.8 332.8h-.1c-1.7 1.7-6.3 5.5-11.6 5.5-3.8 0-8.1-2.1-11.7-5.7l-56-56c-1.6-1.6-1.6-4.1 0-5.7l17.8-17.8c.8-.8 1.8-1.2 2.8-1.2 1 0 2 .4 2.8 1.2l44.4 44.4 122-122.9c.8-.8 1.8-1.2 2.8-1.2 1.1 0 2.1.4 2.8 1.2l17.5 18.1c1.8 1.7 1.8 4.2.2 5.8z"},child:[]}]})(e)}function oe(e){return Q({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm52.7 283.3L256 278.6l-52.7 52.7c-6.2 6.2-16.4 6.2-22.6 0-3.1-3.1-4.7-7.2-4.7-11.3 0-4.1 1.6-8.2 4.7-11.3l52.7-52.7-52.7-52.7c-3.1-3.1-4.7-7.2-4.7-11.3 0-4.1 1.6-8.2 4.7-11.3 6.2-6.2 16.4-6.2 22.6 0l52.7 52.7 52.7-52.7c6.2-6.2 16.4-6.2 22.6 0 6.2 6.2 6.2 16.4 0 22.6L278.6 256l52.7 52.7c6.2 6.2 6.2 16.4 0 22.6-6.2 6.3-16.4 6.3-22.6 0z"},child:[]}]})(e)}function D(e){const n=G.c(4),{status:l}=e;let r;n[0]===Symbol.for("react.memo_cache_sentinel")?(r=t.jsx(y,{variant:"success",size:"sm",children:t.jsx("strong",{children:"Completed"})}),n[0]=r):r=n[0];let i;n[1]===Symbol.for("react.memo_cache_sentinel")?(i=t.jsx(y,{variant:"warning",size:"sm",children:t.jsx("strong",{children:"Started"})}),n[1]=i):i=n[1];let c;n[2]===Symbol.for("react.memo_cache_sentinel")?(c=t.jsx(y,{variant:"danger",size:"sm",children:t.jsx("strong",{children:"Did not respond"})}),n[2]=c):c=n[2];let d;return n[3]===Symbol.for("react.memo_cache_sentinel")?(d={completed:r,started:i,"did not respond":c,"not started":t.jsx(y,{variant:"info",size:"sm",children:t.jsx("strong",{children:"Not started"})}),true:t.jsx(ie,{size:24,color:"green"}),false:t.jsx(oe,{size:24,color:"red"})},n[3]=d):d=n[3],d[l]||l}async function U(e,n){const{Model:l,FunctionFactory:r,Serializer:i}=await Y(async()=>{const{Model:j,FunctionFactory:w,Serializer:z}=await import("./survey.core-Dz7VpPEK.js").then(A=>A.s);return{Model:j,FunctionFactory:w,Serializer:z}},[]);function c(){const j=i.getAllPropertiesByName("customDescription"),w=i.getAllPropertiesByName("hideCheckboxLabels");j.length||i.addProperty("itemvalue","customDescription:text"),w.length||i.addProperty("question","hideCheckboxLabels:boolean")}if(r.Instance.hasFunction("validateQuestion")||r.Instance.register("validateQuestion",ne),r.Instance.hasFunction("validateWebsiteUrl")||r.Instance.register("validateWebsiteUrl",re),!e||!n)return!0;const d=`/api/response/load/${e}/${n}`,p=await fetch(d),f=await p.json();if(!p.ok)throw"message"in f?new Error(f.message):new Error(`Request failed with status ${p.status}`);c();const u=new l(f.model);u.setVariable("surveyyear",e),u.setVariable("previousyear",parseInt(e)-1),u.showNavigationButtons=!1,u.requiredText="",u.data=f.data,u.clearIncorrectValues(!0);const E=u.validate.bind(u,!0,!0)();return(await fetch(`/api/response/validate/${e}/${n}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({valid:E})})).ok?E:!0}function le(e,n,l){fetch("/api/survey/"+e+"/"+n+"/notes",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({notes:l||""})}).then(async r=>{const i=await r.json();r.ok?h.success("Notes saved"):h.error("Failed saving notes: "+i.message||r.statusText)}).catch(r=>{h.error("Failed saving notes: "+r)})}function C({text:e,helpText:n,onClick:l,enabled:r}){const[i,c]=$.useState(!1),d=async()=>{if(!i){c(!0);try{await l()}finally{c(!1)}}};return t.jsxs(y,{onClick:d,disabled:!r,style:{pointerEvents:"auto",marginLeft:".5rem"},title:n,children:[i&&t.jsx(H,{as:"span",animation:"border",size:"sm",role:"status","aria-hidden":"true"}),e]})}function we(){const e=G.c(21);let n;e[0]===Symbol.for("react.memo_cache_sentinel")?(n=[],e[0]=n):n=e[0];const[l,r]=$.useState(n),i=$.useRef(!1);let c,d;e[1]===Symbol.for("react.memo_cache_sentinel")?(c=()=>{V().then(x=>{r(x)})},d=[],e[1]=c,e[2]=d):(c=e[1],d=e[2]),$.useEffect(c,d);let p;e[3]===Symbol.for("react.memo_cache_sentinel")?(p=async function(s,m,a,v){const b=v===void 0?!1:v;try{b&&(s=s+"?dry_run=1");const g=await fetch(s,{method:"POST"}),O=await g.json();g.ok?(O.message&&console.log(O.message),b||h(a),V().then(J=>{r(J)})):h(m+O.message)}catch(g){h(m+g.message)}},e[3]=p):p=e[3];const f=p;let u;e[4]===Symbol.for("react.memo_cache_sentinel")?(u=async function(){await f("/api/survey/new","Failed creating new survey: ","Created new survey")},e[4]=u):u=e[4];const E=u;let N;e[5]===Symbol.for("react.memo_cache_sentinel")?(N=async function(s,m,a){const v=a===void 0?!1:a;if(i.current){h("Wait for status update to be finished...");return}i.current=!0,await f("/api/survey/"+m+"/"+s,"Error while updating "+s+" survey status to "+m+": ",s+" survey status updated to "+m,v),i.current=!1},e[5]=N):N=e[5];const j=N;let w;e[6]===Symbol.for("react.memo_cache_sentinel")?(w=async function(s,m){await f("/api/response/unlock/"+s+"/"+m,"Error while unlocking "+m+" "+s+" survey response: ",m+" "+s+" survey response unlocked")},e[6]=w):w=e[6];const z=w,A=l.length>0&&l.every(he),M=window.location.origin+"/data?preview";let P;e[7]===Symbol.for("react.memo_cache_sentinel")?(P=t.jsx(ae,{}),e[7]=P):P=e[7];let R;e[8]===Symbol.for("react.memo_cache_sentinel")?(R={maxWidth:"100rem"},e[8]=R):R=e[8];let T;e[9]===Symbol.for("react.memo_cache_sentinel")?(T=t.jsx(se,{}),e[9]=T):T=e[9];const B=!A;let I;e[10]===Symbol.for("react.memo_cache_sentinel")?(I={pointerEvents:"auto",width:"10rem",margin:"1rem"},e[10]=I):I=e[10];let S;e[11]!==B?(S=t.jsx(y,{onClick:E,disabled:B,style:I,title:"Create a new survey for the next year. Only possible if all current surveys are published.",children:"start new survey"}),e[11]=B,e[12]=S):S=e[12];let k;if(e[13]!==l){let x;e[15]===Symbol.for("react.memo_cache_sentinel")?(x=(s,m)=>t.jsxs(F.Item,{eventKey:m.toString(),children:[t.jsxs(F.Header,{children:[s.year," - ",s.status]}),t.jsxs(F.Body,{children:[t.jsxs("div",{style:{marginLeft:".5rem",marginBottom:"1rem"},children:[t.jsx(W,{to:`/survey/admin/edit/${s.year}`,target:"_blank",children:t.jsx(y,{style:{marginLeft:".5rem"},title:"Open the survey for inspection with all questions visible and any visibleIf logic added to the title.",children:"Inspect Survey"})}),t.jsx(W,{to:`/survey/admin/try/${s.year}`,target:"_blank",children:t.jsx(y,{style:{marginLeft:".5rem"},title:"Open the survey exactly as the nrens will see it, but without any nren data.",children:"Try Survey"})}),s.status==o.closed&&t.jsx(C,{text:"Mark as open",helpText:"Allow the NRENs to respond to this survey. Only 1 survey may be open at a time, and (pre)-published surveys cannot be opened anymore.",enabled:s.status==o.closed,onClick:()=>j(s.year,"open")}),s.status==o.open&&t.jsx(C,{text:"Mark as closed",helpText:"Do not allow the NRENs to respond to this survey anymore. Only surveys with status open can be closed.",enabled:s.status==o.open,onClick:()=>j(s.year,"close")}),(s.status==o.preview||s.status==o.published)&&t.jsx(C,{text:"Validate surveys",helpText:"Validate all survey responses. This will check if all required questions are answered and if the answers are in the correct format.",enabled:s.status==o.preview||s.status==o.published,onClick:async()=>{let a=!0;const v=[...s.responses].sort(de);for(const b of v){const g=await U(s.year,b.nren.name);g?h.success(`${b.nren.name} ${s.year} survey is valid.`):h.error(`${b.nren.name} ${s.year} survey is not valid.`),a=a&&g}a?h.success("All surveys are valid"):h.error(`Some surveys are not valid. +import{r as $,h as K,j as t,i as X,_ as Q,c as G,y,a7 as Y,L as W,E as q,R as Z}from"./index-bwDVKb7d.js";import{A as F,l as ee}from"./lodash-BV6TOxcP.js";import{T as te}from"./Table-D4mMg192.js";import{V as h,O as se}from"./index-CbTrjKrU.js";import{v as ne,o as re,S as o}from"./validation-COFmylEH.js";import{a as V}from"./survey-3meXCY6T.js";import{S as ae}from"./SurveySidebar-Ef_si00x.js";import"./hook-BGVjY_62.js";import"./SideBar-D_Yxr_mj.js";const H=$.forwardRef(({bsPrefix:e,variant:n,animation:l="border",size:r,as:i="div",className:c,...d},p)=>{e=K(e,"spinner");const f=`${e}-${l}`;return t.jsx(i,{ref:p,...d,className:X(c,f,r&&`${f}-${r}`,n&&`text-${n}`)})});H.displayName="Spinner";function ie(e){return Q({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm106.5 150.5L228.8 332.8h-.1c-1.7 1.7-6.3 5.5-11.6 5.5-3.8 0-8.1-2.1-11.7-5.7l-56-56c-1.6-1.6-1.6-4.1 0-5.7l17.8-17.8c.8-.8 1.8-1.2 2.8-1.2 1 0 2 .4 2.8 1.2l44.4 44.4 122-122.9c.8-.8 1.8-1.2 2.8-1.2 1.1 0 2.1.4 2.8 1.2l17.5 18.1c1.8 1.7 1.8 4.2.2 5.8z"},child:[]}]})(e)}function oe(e){return Q({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm52.7 283.3L256 278.6l-52.7 52.7c-6.2 6.2-16.4 6.2-22.6 0-3.1-3.1-4.7-7.2-4.7-11.3 0-4.1 1.6-8.2 4.7-11.3l52.7-52.7-52.7-52.7c-3.1-3.1-4.7-7.2-4.7-11.3 0-4.1 1.6-8.2 4.7-11.3 6.2-6.2 16.4-6.2 22.6 0l52.7 52.7 52.7-52.7c6.2-6.2 16.4-6.2 22.6 0 6.2 6.2 6.2 16.4 0 22.6L278.6 256l52.7 52.7c6.2 6.2 6.2 16.4 0 22.6-6.2 6.3-16.4 6.3-22.6 0z"},child:[]}]})(e)}function D(e){const n=G.c(4),{status:l}=e;let r;n[0]===Symbol.for("react.memo_cache_sentinel")?(r=t.jsx(y,{variant:"success",size:"sm",children:t.jsx("strong",{children:"Completed"})}),n[0]=r):r=n[0];let i;n[1]===Symbol.for("react.memo_cache_sentinel")?(i=t.jsx(y,{variant:"warning",size:"sm",children:t.jsx("strong",{children:"Started"})}),n[1]=i):i=n[1];let c;n[2]===Symbol.for("react.memo_cache_sentinel")?(c=t.jsx(y,{variant:"danger",size:"sm",children:t.jsx("strong",{children:"Did not respond"})}),n[2]=c):c=n[2];let d;return n[3]===Symbol.for("react.memo_cache_sentinel")?(d={completed:r,started:i,"did not respond":c,"not started":t.jsx(y,{variant:"info",size:"sm",children:t.jsx("strong",{children:"Not started"})}),true:t.jsx(ie,{size:24,color:"green"}),false:t.jsx(oe,{size:24,color:"red"})},n[3]=d):d=n[3],d[l]||l}async function U(e,n){const{Model:l,FunctionFactory:r,Serializer:i}=await Y(async()=>{const{Model:j,FunctionFactory:w,Serializer:z}=await import("./survey.core-Dz7VpPEK.js").then(A=>A.s);return{Model:j,FunctionFactory:w,Serializer:z}},[]);function c(){const j=i.getAllPropertiesByName("customDescription"),w=i.getAllPropertiesByName("hideCheckboxLabels");j.length||i.addProperty("itemvalue","customDescription:text"),w.length||i.addProperty("question","hideCheckboxLabels:boolean")}if(r.Instance.hasFunction("validateQuestion")||r.Instance.register("validateQuestion",ne),r.Instance.hasFunction("validateWebsiteUrl")||r.Instance.register("validateWebsiteUrl",re),!e||!n)return!0;const d=`/api/response/load/${e}/${n}`,p=await fetch(d),f=await p.json();if(!p.ok)throw"message"in f?new Error(f.message):new Error(`Request failed with status ${p.status}`);c();const u=new l(f.model);u.setVariable("surveyyear",e),u.setVariable("previousyear",parseInt(e)-1),u.showNavigationButtons=!1,u.requiredText="",u.data=f.data,u.clearIncorrectValues(!0);const E=u.validate.bind(u,!0,!0)();return(await fetch(`/api/response/validate/${e}/${n}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({valid:E})})).ok?E:!0}function le(e,n,l){fetch("/api/survey/"+e+"/"+n+"/notes",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({notes:l||""})}).then(async r=>{const i=await r.json();r.ok?h.success("Notes saved"):h.error("Failed saving notes: "+i.message||r.statusText)}).catch(r=>{h.error("Failed saving notes: "+r)})}function C({text:e,helpText:n,onClick:l,enabled:r}){const[i,c]=$.useState(!1),d=async()=>{if(!i){c(!0);try{await l()}finally{c(!1)}}};return t.jsxs(y,{onClick:d,disabled:!r,style:{pointerEvents:"auto",marginLeft:".5rem"},title:n,children:[i&&t.jsx(H,{as:"span",animation:"border",size:"sm",role:"status","aria-hidden":"true"}),e]})}function we(){const e=G.c(21);let n;e[0]===Symbol.for("react.memo_cache_sentinel")?(n=[],e[0]=n):n=e[0];const[l,r]=$.useState(n),i=$.useRef(!1);let c,d;e[1]===Symbol.for("react.memo_cache_sentinel")?(c=()=>{V().then(x=>{r(x)})},d=[],e[1]=c,e[2]=d):(c=e[1],d=e[2]),$.useEffect(c,d);let p;e[3]===Symbol.for("react.memo_cache_sentinel")?(p=async function(s,m,a,v){const b=v===void 0?!1:v;try{b&&(s=s+"?dry_run=1");const g=await fetch(s,{method:"POST"}),O=await g.json();g.ok?(O.message&&console.log(O.message),b||h(a),V().then(J=>{r(J)})):h(m+O.message)}catch(g){h(m+g.message)}},e[3]=p):p=e[3];const f=p;let u;e[4]===Symbol.for("react.memo_cache_sentinel")?(u=async function(){await f("/api/survey/new","Failed creating new survey: ","Created new survey")},e[4]=u):u=e[4];const E=u;let N;e[5]===Symbol.for("react.memo_cache_sentinel")?(N=async function(s,m,a){const v=a===void 0?!1:a;if(i.current){h("Wait for status update to be finished...");return}i.current=!0,await f("/api/survey/"+m+"/"+s,"Error while updating "+s+" survey status to "+m+": ",s+" survey status updated to "+m,v),i.current=!1},e[5]=N):N=e[5];const j=N;let w;e[6]===Symbol.for("react.memo_cache_sentinel")?(w=async function(s,m){await f("/api/response/unlock/"+s+"/"+m,"Error while unlocking "+m+" "+s+" survey response: ",m+" "+s+" survey response unlocked")},e[6]=w):w=e[6];const z=w,A=l.length>0&&l.every(he),M=window.location.origin+"/data?preview";let P;e[7]===Symbol.for("react.memo_cache_sentinel")?(P=t.jsx(ae,{}),e[7]=P):P=e[7];let R;e[8]===Symbol.for("react.memo_cache_sentinel")?(R={maxWidth:"100rem"},e[8]=R):R=e[8];let T;e[9]===Symbol.for("react.memo_cache_sentinel")?(T=t.jsx(se,{}),e[9]=T):T=e[9];const B=!A;let I;e[10]===Symbol.for("react.memo_cache_sentinel")?(I={pointerEvents:"auto",width:"10rem",margin:"1rem"},e[10]=I):I=e[10];let S;e[11]!==B?(S=t.jsx(y,{onClick:E,disabled:B,style:I,title:"Create a new survey for the next year. Only possible if all current surveys are published.",children:"start new survey"}),e[11]=B,e[12]=S):S=e[12];let k;if(e[13]!==l){let x;e[15]===Symbol.for("react.memo_cache_sentinel")?(x=(s,m)=>t.jsxs(F.Item,{eventKey:m.toString(),children:[t.jsxs(F.Header,{children:[s.year," - ",s.status]}),t.jsxs(F.Body,{children:[t.jsxs("div",{style:{marginLeft:".5rem",marginBottom:"1rem"},children:[t.jsx(W,{to:`/survey/admin/edit/${s.year}`,target:"_blank",children:t.jsx(y,{style:{marginLeft:".5rem"},title:"Open the survey for inspection with all questions visible and any visibleIf logic added to the title.",children:"Inspect Survey"})}),t.jsx(W,{to:`/survey/admin/try/${s.year}`,target:"_blank",children:t.jsx(y,{style:{marginLeft:".5rem"},title:"Open the survey exactly as the nrens will see it, but without any nren data.",children:"Try Survey"})}),s.status==o.closed&&t.jsx(C,{text:"Mark as open",helpText:"Allow the NRENs to respond to this survey. Only 1 survey may be open at a time, and (pre)-published surveys cannot be opened anymore.",enabled:s.status==o.closed,onClick:()=>j(s.year,"open")}),s.status==o.open&&t.jsx(C,{text:"Mark as closed",helpText:"Do not allow the NRENs to respond to this survey anymore. Only surveys with status open can be closed.",enabled:s.status==o.open,onClick:()=>j(s.year,"close")}),(s.status==o.preview||s.status==o.published)&&t.jsx(C,{text:"Validate surveys",helpText:"Validate all survey responses. This will check if all required questions are answered and if the answers are in the correct format.",enabled:s.status==o.preview||s.status==o.published,onClick:async()=>{let a=!0;const v=[...s.responses].sort(de);for(const b of v){const g=await U(s.year,b.nren.name);g?h.success(`${b.nren.name} ${s.year} survey is valid.`):h.error(`${b.nren.name} ${s.year} survey is not valid.`),a=a&&g}a?h.success("All surveys are valid"):h.error(`Some surveys are not valid. Please check the responses`),V().then(b=>{r(b)})}}),(s.status==o.closed||s.status==o.preview)&&t.jsx(C,{text:"Preview results",helpText:"Publish all completed survey responses to the compendium website for preview by admins. This is only possible if the survey is closed or previewed already.",enabled:s.status==o.closed||s.status==o.preview,onClick:()=>j(s.year,"preview")}),(s.status==o.preview||s.status==o.published)&&t.jsxs(t.Fragment,{children:[t.jsx(C,{text:"Publish results (dry run)",helpText:"Performs a dry-run of the publish operation, without actually publishing the results. Changes are logged in the browser console (F12).",enabled:s.status==o.preview||s.status==o.published,onClick:()=>j(s.year,"publish",!0)}),t.jsx(C,{text:"Publish results",helpText:"Publish or re-publish all completed survey responses to the compendium website. This is only possible if the survey is in preview or published already.",enabled:s.status==o.preview||s.status==o.published,onClick:()=>j(s.year,"publish")}),s.status==o.preview&&t.jsxs("span",{children:[" Preview link: ",t.jsx("a",{href:M,children:M})]})]})]}),t.jsxs(te,{children:[t.jsxs("colgroup",{children:[t.jsx("col",{style:{width:"10%"}}),t.jsx("col",{style:{width:"10%"}}),t.jsx("col",{style:{width:"10%"}}),t.jsx("col",{style:{width:"20%"}}),t.jsx("col",{style:{width:"30%"}}),t.jsx("col",{style:{width:"20%"}})]}),t.jsx("thead",{children:t.jsxs("tr",{children:[t.jsx("th",{children:"NREN"}),t.jsx("th",{children:"Response Status"}),t.jsx("th",{children:"Response Valid"}),t.jsx("th",{children:"Lock"}),t.jsx("th",{children:"Management Notes"}),t.jsx("th",{children:"Actions"})]})}),t.jsx("tbody",{children:s.responses.map(a=>t.jsxs("tr",{children:[t.jsx("td",{children:a.nren.name}),t.jsx("td",{children:t.jsx(D,{status:a.status})}),t.jsx("td",{children:t.jsx(D,{status:a.valid?"true":"false"})}),t.jsx("td",{style:{textWrap:"wrap",wordWrap:"break-word",maxWidth:"10rem"},children:a.lock_description}),t.jsx("td",{children:"notes"in a&&t.jsx("textarea",{onInput:ee.debounce(v=>le(s.year,a.nren.id,v.target.value),1e3),style:{minWidth:"100%",minHeight:"5rem"},placeholder:"Notes for this survey",defaultValue:a.notes||""})}),t.jsxs("td",{children:[t.jsx(W,{to:`/survey/response/${s.year}/${a.nren.name}`,target:"_blank",children:t.jsx(y,{style:{pointerEvents:"auto",margin:".5rem"},title:"Open the responses of the NREN.",children:"open"})}),t.jsx(y,{onClick:()=>z(s.year,a.nren.name),disabled:a.lock_description=="",style:{pointerEvents:"auto"},title:"Remove the lock from the survey so that another person can open the survey for editing. WARNING: The person that currently has the lock will not be able to save their changes anymore once someone else starts editing!",children:"remove lock"}),a.status=="completed"&&t.jsx(y,{onClick:()=>{U(s.year,a.nren.name).then(v=>{v?h.success("Survey is valid"):h.error(`${a.nren.name} ${s.year} survey is not valid. Please check the response`),V().then(b=>{r(b)})}).catch(ce)},style:{pointerEvents:"auto"},children:"Validate Survey"})]})]},a.nren.id))})]})]})]},s.year),e[15]=x):x=e[15],k=l.map(x),e[13]=l,e[14]=k}else k=e[14];let _;e[16]!==k?(_=t.jsx(F,{defaultActiveKey:"0",children:k}),e[16]=k,e[17]=_):_=e[17];let L;return e[18]!==S||e[19]!==_?(L=t.jsxs(t.Fragment,{children:[P,t.jsx(q,{className:"py-5 grey-container",children:t.jsx(q,{style:R,children:t.jsxs(Z,{children:[T,S,_]})})})]}),e[18]=S,e[19]=_,e[20]=L):L=e[20],L}function ce(e){h.error("Failed validating survey: "+e)}function de(e,n){return e.nren.name.localeCompare(n.nren.name)}function he(e){return e.status==o.published}export{we as default}; diff --git a/compendium_v2/static/SurveySidebar-C_LqylD3.js b/compendium_v2/static/SurveySidebar-Ef_si00x.js similarity index 84% rename from compendium_v2/static/SurveySidebar-C_LqylD3.js rename to compendium_v2/static/SurveySidebar-Ef_si00x.js index fc3758edff6e7f18ac7c70fee2d09dd6717f97d1..134b710a5e9817cc1fc0b2bcf09569ad69736dc8 100644 --- a/compendium_v2/static/SurveySidebar-C_LqylD3.js +++ b/compendium_v2/static/SurveySidebar-Ef_si00x.js @@ -1 +1 @@ -import{c as a,j as s,a2 as m}from"./index-DBbSOdjk.js";import{S as o}from"./SideBar-DfD7Pj8p.js";const h=()=>{const e=a.c(4);let r;e[0]===Symbol.for("react.memo_cache_sentinel")?(r=s.jsx("h5",{className:"section-title",children:"Management Links"}),e[0]=r):r=e[0];let t;e[1]===Symbol.for("react.memo_cache_sentinel")?(t=s.jsx(m,{to:"/survey",children:s.jsx("span",{children:"Survey Home"})}),e[1]=t):t=e[1];let n;e[2]===Symbol.for("react.memo_cache_sentinel")?(n=s.jsx(m,{to:"/survey/admin/users",children:s.jsx("span",{children:"Compendium User Management"})}),e[2]=n):n=e[2];let i;return e[3]===Symbol.for("react.memo_cache_sentinel")?(i=s.jsxs(o,{survey:!0,children:[r,t,n,s.jsx(m,{to:"/survey/admin/surveys",children:s.jsx("span",{children:"Compendium Survey Management"})})]}),e[3]=i):i=e[3],i};export{h as S}; +import{c as a,j as s,a2 as m}from"./index-bwDVKb7d.js";import{S as o}from"./SideBar-D_Yxr_mj.js";const h=()=>{const e=a.c(4);let r;e[0]===Symbol.for("react.memo_cache_sentinel")?(r=s.jsx("h5",{className:"section-title",children:"Management Links"}),e[0]=r):r=e[0];let t;e[1]===Symbol.for("react.memo_cache_sentinel")?(t=s.jsx(m,{to:"/survey",children:s.jsx("span",{children:"Survey Home"})}),e[1]=t):t=e[1];let n;e[2]===Symbol.for("react.memo_cache_sentinel")?(n=s.jsx(m,{to:"/survey/admin/users",children:s.jsx("span",{children:"Compendium User Management"})}),e[2]=n):n=e[2];let i;return e[3]===Symbol.for("react.memo_cache_sentinel")?(i=s.jsxs(o,{survey:!0,children:[r,t,n,s.jsx(m,{to:"/survey/admin/surveys",children:s.jsx("span",{children:"Compendium Survey Management"})})]}),e[3]=i):i=e[3],i};export{h as S}; diff --git a/compendium_v2/static/Table-DNomfHX4.js b/compendium_v2/static/Table-D4mMg192.js similarity index 88% rename from compendium_v2/static/Table-DNomfHX4.js rename to compendium_v2/static/Table-D4mMg192.js index 62e91950cf1f2ca5059ba3d1444b78d97fa008fa..37bd0768b879a61859cfc1ea545a3250a5cebccb 100644 --- a/compendium_v2/static/Table-DNomfHX4.js +++ b/compendium_v2/static/Table-D4mMg192.js @@ -1 +1 @@ -import{r as m,h as j,i as u,j as l}from"./index-DBbSOdjk.js";const N=m.forwardRef(({bsPrefix:c,className:f,striped:e,bordered:i,borderless:n,hover:d,size:a,variant:o,responsive:r,...x},p)=>{const s=j(c,"table"),b=u(f,s,o&&`${s}-${o}`,a&&`${s}-${a}`,e&&`${s}-${typeof e=="string"?`striped-${e}`:"striped"}`,i&&`${s}-bordered`,n&&`${s}-borderless`,d&&`${s}-hover`),$=l.jsx("table",{...x,className:b,ref:p});if(r){let t=`${s}-responsive`;return typeof r=="string"&&(t=`${t}-${r}`),l.jsx("div",{className:t,children:$})}return $});export{N as T}; +import{r as m,h as j,i as u,j as l}from"./index-bwDVKb7d.js";const N=m.forwardRef(({bsPrefix:c,className:f,striped:e,bordered:i,borderless:n,hover:d,size:a,variant:o,responsive:r,...x},p)=>{const s=j(c,"table"),b=u(f,s,o&&`${s}-${o}`,a&&`${s}-${a}`,e&&`${s}-${typeof e=="string"?`striped-${e}`:"striped"}`,i&&`${s}-bordered`,n&&`${s}-borderless`,d&&`${s}-hover`),$=l.jsx("table",{...x,className:b,ref:p});if(r){let t=`${s}-responsive`;return typeof r=="string"&&(t=`${t}-${r}`),l.jsx("div",{className:t,children:$})}return $});export{N as T}; diff --git a/compendium_v2/static/TrafficRatio-hTxXFYQn.js b/compendium_v2/static/TrafficRatio-DxSttJzu.js similarity index 87% rename from compendium_v2/static/TrafficRatio-hTxXFYQn.js rename to compendium_v2/static/TrafficRatio-DxSttJzu.js index c164047022b9756e74f952b07715e05ecbd55aa9..34942881782d9ff1548ea5e778f3a2a31e2cd07f 100644 --- a/compendium_v2/static/TrafficRatio-hTxXFYQn.js +++ b/compendium_v2/static/TrafficRatio-DxSttJzu.js @@ -1 +1 @@ -import{c as C,r as L,F as E,j as x,S as F,t as Y}from"./index-DBbSOdjk.js";import{B as $}from"./index-DyJczNpq.js";import{C as g,a as v,L as A,B,p as O,c as M,d as P,u as T,N as W,D as q,F as z}from"./useData-CcKTpALT.js";import{h as G,W as H}from"./HTMLLegendPlugin-Ci0zt1Jy.js";import"./SideBar-DfD7Pj8p.js";import"./xlsx-BHRztzV8.js";import"./index-DkYuYqrz.js";import"./hook-D9Tuu5oJ.js";g.register(v,A,B,O,M,P);const J={maintainAspectRatio:!1,animation:{duration:0},plugins:{htmlLegend:{containerIDs:["legendtop","legendbottom"]},legend:{display:!1},tooltip:{callbacks:{label:function(e){let t=e.dataset.label||"";return e.parsed.x!==null&&(t+=`: ${e.parsed.x}%`),t}}}},scales:{x:{position:"top",stacked:!0,ticks:{callback:(e,t)=>`${t*10}%`}},x2:{ticks:{callback:e=>typeof e=="number"?`${e}%`:e},grid:{drawOnChartArea:!1},afterDataLimits:function(e){const t=Object.keys(g.instances);let a=-999999,i=999999;for(const s of t)g.instances[s]&&e.chart.scales.x2&&(i=Math.min(g.instances[s].scales.x.min,i),a=Math.max(g.instances[s].scales.x.max,a));e.chart.scales.x2.options.min=i,e.chart.scales.x2.options.max=a,e.chart.scales.x2.min=i,e.chart.scales.x2.max=a}},y:{stacked:!0,ticks:{autoSkip:!1}}},indexAxis:"y"};function ie(){const e=C.c(37),{filterSelection:t,setFilterSelection:a}=L.useContext(E),{data:i,years:s,nrens:n}=T("/api/traffic-ratio",a);let l,r,y,c;if(e[0]!==t||e[1]!==n||e[2]!==a||e[3]!==i||e[4]!==s){let b;e[9]!==t.selectedNrens||e[10]!==t.selectedYears?(b=S=>t.selectedYears.includes(S.year)&&t.selectedNrens.includes(S.nren),e[9]=t.selectedNrens,e[10]=t.selectedYears,e[11]=b):b=e[11],r=i.filter(b),c=W(r,t.selectedYears[0]);let d;e[12]!==s?(d=[...s],e[12]=s,e[13]=d):d=e[13];let p;e[14]!==n?(p=n.values(),e[14]=n,e[15]=p):p=e[15];let u;e[16]!==p?(u=[...p],e[16]=p,e[17]=u):u=e[17];let h;e[18]!==d||e[19]!==u?(h={availableYears:d,availableNrens:u},e[18]=d,e[19]=u,e[20]=h):h=e[20];let _;e[21]!==t||e[22]!==a||e[23]!==h?(_=x.jsx(z,{max1year:!0,filterOptions:h,filterSelection:t,setFilterSelection:a}),e[21]=t,e[22]=a,e[23]=h,e[24]=_):_=e[24],l=_,y=Array.from(new Set(r.map(Q))).map(S=>n.get(S)).filter(K),e[0]=t,e[1]=n,e[2]=a,e[3]=i,e[4]=s,e[5]=l,e[6]=r,e[7]=y,e[8]=c}else l=e[5],r=e[6],y=e[7],c=e[8];const j=y.length,R=Math.max(j*1.5,20),w=Y["traffic-ratio"],D=`${R}rem`;let o;e[25]!==D?(o={height:D},e[25]=D,e[26]=o):o=e[26];let k;e[27]===Symbol.for("react.memo_cache_sentinel")?(k=[G],e[27]=k):k=e[27];let f;e[28]!==c?(f=x.jsx($,{data:c,options:J,plugins:k}),e[28]=c,e[29]=f):f=e[29];let m;e[30]!==o||e[31]!==f?(m=x.jsx(H,{children:x.jsx("div",{className:"chart-container",style:o,children:f})}),e[30]=o,e[31]=f,e[32]=m):m=e[32];let N;return e[33]!==l||e[34]!==r||e[35]!==m?(N=x.jsx(q,{title:w,description:"The graph shows the ratio of commodity versus research and education traffic in NREN networks",category:F.Network,filter:l,data:r,filename:"types_of_traffic_in_nren_networks",children:m}),e[33]=l,e[34]=r,e[35]=m,e[36]=N):N=e[36],N}function K(e){return!!e}function Q(e){return e.nren}export{ie as default}; +import{c as C,r as L,F as E,j as x,S as F,t as Y}from"./index-bwDVKb7d.js";import{B as $}from"./index-0m6TK_PI.js";import{C as g,a as v,L as A,B,p as O,c as M,d as P,u as T,N as W,D as q,F as z}from"./useData-Ba-3avp3.js";import{h as G,W as H}from"./HTMLLegendPlugin-sf8csfcD.js";import"./SideBar-D_Yxr_mj.js";import"./xlsx-BHRztzV8.js";import"./index-Y7aK5es_.js";import"./hook-BGVjY_62.js";g.register(v,A,B,O,M,P);const J={maintainAspectRatio:!1,animation:{duration:0},plugins:{htmlLegend:{containerIDs:["legendtop","legendbottom"]},legend:{display:!1},tooltip:{callbacks:{label:function(e){let t=e.dataset.label||"";return e.parsed.x!==null&&(t+=`: ${e.parsed.x}%`),t}}}},scales:{x:{position:"top",stacked:!0,ticks:{callback:(e,t)=>`${t*10}%`}},x2:{ticks:{callback:e=>typeof e=="number"?`${e}%`:e},grid:{drawOnChartArea:!1},afterDataLimits:function(e){const t=Object.keys(g.instances);let a=-999999,i=999999;for(const s of t)g.instances[s]&&e.chart.scales.x2&&(i=Math.min(g.instances[s].scales.x.min,i),a=Math.max(g.instances[s].scales.x.max,a));e.chart.scales.x2.options.min=i,e.chart.scales.x2.options.max=a,e.chart.scales.x2.min=i,e.chart.scales.x2.max=a}},y:{stacked:!0,ticks:{autoSkip:!1}}},indexAxis:"y"};function ie(){const e=C.c(37),{filterSelection:t,setFilterSelection:a}=L.useContext(E),{data:i,years:s,nrens:n}=T("/api/traffic-ratio",a);let l,r,y,c;if(e[0]!==t||e[1]!==n||e[2]!==a||e[3]!==i||e[4]!==s){let b;e[9]!==t.selectedNrens||e[10]!==t.selectedYears?(b=S=>t.selectedYears.includes(S.year)&&t.selectedNrens.includes(S.nren),e[9]=t.selectedNrens,e[10]=t.selectedYears,e[11]=b):b=e[11],r=i.filter(b),c=W(r,t.selectedYears[0]);let d;e[12]!==s?(d=[...s],e[12]=s,e[13]=d):d=e[13];let p;e[14]!==n?(p=n.values(),e[14]=n,e[15]=p):p=e[15];let u;e[16]!==p?(u=[...p],e[16]=p,e[17]=u):u=e[17];let h;e[18]!==d||e[19]!==u?(h={availableYears:d,availableNrens:u},e[18]=d,e[19]=u,e[20]=h):h=e[20];let _;e[21]!==t||e[22]!==a||e[23]!==h?(_=x.jsx(z,{max1year:!0,filterOptions:h,filterSelection:t,setFilterSelection:a}),e[21]=t,e[22]=a,e[23]=h,e[24]=_):_=e[24],l=_,y=Array.from(new Set(r.map(Q))).map(S=>n.get(S)).filter(K),e[0]=t,e[1]=n,e[2]=a,e[3]=i,e[4]=s,e[5]=l,e[6]=r,e[7]=y,e[8]=c}else l=e[5],r=e[6],y=e[7],c=e[8];const j=y.length,R=Math.max(j*1.5,20),w=Y["traffic-ratio"],D=`${R}rem`;let o;e[25]!==D?(o={height:D},e[25]=D,e[26]=o):o=e[26];let k;e[27]===Symbol.for("react.memo_cache_sentinel")?(k=[G],e[27]=k):k=e[27];let f;e[28]!==c?(f=x.jsx($,{data:c,options:J,plugins:k}),e[28]=c,e[29]=f):f=e[29];let m;e[30]!==o||e[31]!==f?(m=x.jsx(H,{children:x.jsx("div",{className:"chart-container",style:o,children:f})}),e[30]=o,e[31]=f,e[32]=m):m=e[32];let N;return e[33]!==l||e[34]!==r||e[35]!==m?(N=x.jsx(q,{title:w,description:"The graph shows the ratio of commodity versus research and education traffic in NREN networks",category:F.Network,filter:l,data:r,filename:"types_of_traffic_in_nren_networks",children:m}),e[33]=l,e[34]=r,e[35]=m,e[36]=N):N=e[36],N}function K(e){return!!e}function Q(e){return e.nren}export{ie as default}; diff --git a/compendium_v2/static/TrafficUrl-DMw44Rpa.js b/compendium_v2/static/TrafficUrl-DW9ps6i5.js similarity index 77% rename from compendium_v2/static/TrafficUrl-DMw44Rpa.js rename to compendium_v2/static/TrafficUrl-DW9ps6i5.js index c2ac8fc1d92b122365595ab057ea8792fea748fa..104656bf06bcab433e5ee70304b976a73bc2f619 100644 --- a/compendium_v2/static/TrafficUrl-DMw44Rpa.js +++ b/compendium_v2/static/TrafficUrl-DW9ps6i5.js @@ -1 +1 @@ -import{c as j,r as k,F as S,j as p,t as _,S as g}from"./index-DBbSOdjk.js";import{u as v,q as y,k as L,i as R,D as T,F,f as U,s as w}from"./useData-CcKTpALT.js";import{N as C}from"./NrenYearTable-C1JRhqy_.js";import"./SideBar-DfD7Pj8p.js";import"./xlsx-BHRztzV8.js";import"./index-DkYuYqrz.js";import"./hook-D9Tuu5oJ.js";import"./Table-DNomfHX4.js";function G(){const e=j.c(21),{filterSelection:t,setFilterSelection:s}=k.useContext(S),{data:r,nrens:n}=v("/api/traffic-stats",s);let a,c;if(e[0]!==r||e[1]!==t.selectedNrens){const D=r?y(r):[];let m;e[4]!==t.selectedNrens?(m=h=>t.selectedNrens.includes(h.nren),e[4]=t.selectedNrens,e[5]=m):m=e[5],a=D.filter(m);const b=L(a);c=R(b,E),e[0]=r,e[1]=t.selectedNrens,e[2]=a,e[3]=c}else a=e[2],c=e[3];const x=c;let f;e[6]===Symbol.for("react.memo_cache_sentinel")?(f=[],e[6]=f):f=e[6];let i;e[7]!==n?(i=n.values(),e[7]=n,e[8]=i):i=e[8];let l;e[9]!==i?(l={availableYears:f,availableNrens:[...i]},e[9]=i,e[10]=l):l=e[10];let u;e[11]!==t||e[12]!==s||e[13]!==l?(u=p.jsx(F,{filterOptions:l,filterSelection:t,setFilterSelection:s,coloredYears:!0}),e[11]=t,e[12]=s,e[13]=l,e[14]=u):u=e[14];const N=u;let o;e[15]!==x?(o=p.jsx(U,{children:p.jsx(C,{data:x,columnTitle:"Traffic Statistics URL",dottedBorder:!0,noDots:!0,keysAreURLs:!0,removeDecoration:!0})}),e[15]=x,e[16]=o):o=e[16];let d;return e[17]!==N||e[18]!==a||e[19]!==o?(d=p.jsx(T,{title:_["traffic-stats"],description:"This table shows the URL links to NREN websites showing traffic statistics, if available.",category:g.Network,filter:N,data:a,filename:"traffic_stats_nrens_per_year",children:o}),e[17]=N,e[18]=a,e[19]=o,e[20]=d):d=e[20],d}function E(e,t){const s=w(t);if(s!=null)for(const[r,n]of Object.entries(s))e[r]=n}export{G as default}; +import{c as j,r as k,F as S,j as p,t as _,S as g}from"./index-bwDVKb7d.js";import{u as v,q as y,k as L,i as R,D as T,F,f as U,s as w}from"./useData-Ba-3avp3.js";import{N as C}from"./NrenYearTable-9mB4hcmt.js";import"./SideBar-D_Yxr_mj.js";import"./xlsx-BHRztzV8.js";import"./index-Y7aK5es_.js";import"./hook-BGVjY_62.js";import"./Table-D4mMg192.js";function G(){const e=j.c(21),{filterSelection:t,setFilterSelection:s}=k.useContext(S),{data:r,nrens:n}=v("/api/traffic-stats",s);let a,c;if(e[0]!==r||e[1]!==t.selectedNrens){const D=r?y(r):[];let m;e[4]!==t.selectedNrens?(m=h=>t.selectedNrens.includes(h.nren),e[4]=t.selectedNrens,e[5]=m):m=e[5],a=D.filter(m);const b=L(a);c=R(b,E),e[0]=r,e[1]=t.selectedNrens,e[2]=a,e[3]=c}else a=e[2],c=e[3];const x=c;let f;e[6]===Symbol.for("react.memo_cache_sentinel")?(f=[],e[6]=f):f=e[6];let i;e[7]!==n?(i=n.values(),e[7]=n,e[8]=i):i=e[8];let l;e[9]!==i?(l={availableYears:f,availableNrens:[...i]},e[9]=i,e[10]=l):l=e[10];let u;e[11]!==t||e[12]!==s||e[13]!==l?(u=p.jsx(F,{filterOptions:l,filterSelection:t,setFilterSelection:s,coloredYears:!0}),e[11]=t,e[12]=s,e[13]=l,e[14]=u):u=e[14];const N=u;let o;e[15]!==x?(o=p.jsx(U,{children:p.jsx(C,{data:x,columnTitle:"Traffic Statistics URL",dottedBorder:!0,noDots:!0,keysAreURLs:!0,removeDecoration:!0})}),e[15]=x,e[16]=o):o=e[16];let d;return e[17]!==N||e[18]!==a||e[19]!==o?(d=p.jsx(T,{title:_["traffic-stats"],description:"This table shows the URL links to NREN websites showing traffic statistics, if available.",category:g.Network,filter:N,data:a,filename:"traffic_stats_nrens_per_year",children:o}),e[17]=N,e[18]=a,e[19]=o,e[20]=d):d=e[20],d}function E(e,t){const s=w(t);if(s!=null)for(const[r,n]of Object.entries(s))e[r]=n}export{G as default}; diff --git a/compendium_v2/static/TrafficVolume-CBGOlk8Z.js b/compendium_v2/static/TrafficVolume-Be6qnrAx.js similarity index 91% rename from compendium_v2/static/TrafficVolume-CBGOlk8Z.js rename to compendium_v2/static/TrafficVolume-Be6qnrAx.js index 7a988b0ab8fcb4f720b4042c32575425410ed11f..955b9d32b28258635fe652bdc0b9db58d70a12c7 100644 --- a/compendium_v2/static/TrafficVolume-CBGOlk8Z.js +++ b/compendium_v2/static/TrafficVolume-Be6qnrAx.js @@ -1 +1 @@ -import{c as A,r as G,F as U,j as t,t as Y,S as $,C as P,R as W}from"./index-DBbSOdjk.js";import{L as k}from"./index-DyJczNpq.js";import{C as q,a as H,L as I,P as J,b as K,p as M,c as Q,d as X,u as Z,e as v,D as ee,F as te,f as se}from"./useData-CcKTpALT.js";import{g as le}from"./charthelpers-CHBq5wBZ.js";import"./SideBar-DfD7Pj8p.js";import"./xlsx-BHRztzV8.js";import"./index-DkYuYqrz.js";import"./hook-D9Tuu5oJ.js";q.register(H,I,J,K,M,Q,X);function de(){const e=A.c(47),{filterSelection:l,setFilterSelection:_}=G.useContext(U),{data:V,nrens:B}=Z("/api/traffic-volume",_);let o,a,s,g,i;if(e[0]!==V||e[1]!==l.selectedNrens){let r;e[7]!==l.selectedNrens?(r=O=>l.selectedNrens.includes(O.nren),e[7]=l.selectedNrens,e[8]=r):r=e[8],s=V.filter(r),o=v(s,"from_customers"),i=v(s,"to_customers"),a=v(s,"from_external"),g=v(s,"to_external"),e[0]=V,e[1]=l.selectedNrens,e[2]=o,e[3]=a,e[4]=s,e[5]=g,e[6]=i}else o=e[2],a=e[3],s=e[4],g=e[5],i=e[6];const F=g;let N;e[9]===Symbol.for("react.memo_cache_sentinel")?(N=le({title:"Traffic Volume in PB",tooltipUnit:"PB",valueTransform(r){return r?r/1e3:0}}),e[9]=N):N=e[9];const b=N;let j;e[10]===Symbol.for("react.memo_cache_sentinel")?(j=[],e[10]=j):j=e[10];let n;e[11]!==B?(n=B.values(),e[11]=B,e[12]=n):n=e[12];let c;e[13]!==n?(c={availableYears:j,availableNrens:[...n]},e[13]=n,e[14]=c):c=e[14];let S;e[15]!==l||e[16]!==_||e[17]!==c?(S=t.jsx(te,{filterOptions:c,filterSelection:l,setFilterSelection:_}),e[15]=l,e[16]=_,e[17]=c,e[18]=S):S=e[18];const z=S;let y;e[19]===Symbol.for("react.memo_cache_sentinel")?(y=t.jsx("span",{children:"The four graphs below show the estimates of total annual traffic in PB (1000 TB) to & from NREN customers, and to & from external networks. NREN customers are taken to mean sources that are part of the NREN's connectivity remit, while external networks are understood as outside sources including GÉANT, the general/commercial internet, internet exchanges, peerings, other NRENs, etc."}),e[19]=y):y=e[19];let T;e[20]===Symbol.for("react.memo_cache_sentinel")?(T={marginBottom:"30px"},e[20]=T):T=e[20];let E;e[21]===Symbol.for("react.memo_cache_sentinel")?(E=t.jsx("span",{style:{fontSize:"20px",color:"rgb(85, 96, 156)",fontWeight:"bold"},children:"Traffic from NREN customer"}),e[21]=E):E=e[21];let f;e[22]!==o?(f=t.jsxs(P,{children:[E,t.jsx(k,{data:o,options:b})]}),e[22]=o,e[23]=f):f=e[23];let C;e[24]===Symbol.for("react.memo_cache_sentinel")?(C=t.jsx("span",{style:{fontSize:"20px",color:"rgb(221, 100, 57)",fontWeight:"bold"},children:"Traffic to NREN customer"}),e[24]=C):C=e[24];let m;e[25]!==i?(m=t.jsxs(P,{children:[C,t.jsx(k,{data:i,options:b})]}),e[25]=i,e[26]=m):m=e[26];let d;e[27]!==m||e[28]!==f?(d=t.jsxs(W,{style:T,children:[f,m]}),e[27]=m,e[28]=f,e[29]=d):d=e[29];let R;e[30]===Symbol.for("react.memo_cache_sentinel")?(R={marginTop:"30px"},e[30]=R):R=e[30];let w;e[31]===Symbol.for("react.memo_cache_sentinel")?(w=t.jsx("span",{style:{fontSize:"20px",color:"rgb(63, 143, 77)",fontWeight:"bold"},children:"Traffic from external network"}),e[31]=w):w=e[31];let h;e[32]!==a?(h=t.jsxs(P,{children:[w,t.jsx(k,{data:a,options:b})]}),e[32]=a,e[33]=h):h=e[33];let D;e[34]===Symbol.for("react.memo_cache_sentinel")?(D=t.jsx("span",{style:{fontSize:"20px",color:"rgb(173, 48, 51)",fontWeight:"bold"},children:"Traffic to external network"}),e[34]=D):D=e[34];let x;e[35]!==F?(x=t.jsxs(P,{children:[D,t.jsx(k,{data:F,options:b})]}),e[35]=F,e[36]=x):x=e[36];let p;e[37]!==h||e[38]!==x?(p=t.jsxs(W,{style:R,children:[h,x]}),e[37]=h,e[38]=x,e[39]=p):p=e[39];let u;e[40]!==d||e[41]!==p?(u=t.jsxs(se,{children:[d,p]}),e[40]=d,e[41]=p,e[42]=u):u=e[42];let L;return e[43]!==z||e[44]!==s||e[45]!==u?(L=t.jsx(ee,{title:Y["traffic-volume"],description:y,category:$.Network,filter:z,data:s,filename:"NREN_traffic_estimates_data",children:u}),e[43]=z,e[44]=s,e[45]=u,e[46]=L):L=e[46],L}export{de as default}; +import{c as A,r as G,F as U,j as t,t as Y,S as $,C as P,R as W}from"./index-bwDVKb7d.js";import{L as k}from"./index-0m6TK_PI.js";import{C as q,a as H,L as I,P as J,b as K,p as M,c as Q,d as X,u as Z,e as v,D as ee,F as te,f as se}from"./useData-Ba-3avp3.js";import{g as le}from"./charthelpers-Cs3DRBw0.js";import"./SideBar-D_Yxr_mj.js";import"./xlsx-BHRztzV8.js";import"./index-Y7aK5es_.js";import"./hook-BGVjY_62.js";q.register(H,I,J,K,M,Q,X);function de(){const e=A.c(47),{filterSelection:l,setFilterSelection:_}=G.useContext(U),{data:V,nrens:B}=Z("/api/traffic-volume",_);let o,a,s,g,i;if(e[0]!==V||e[1]!==l.selectedNrens){let r;e[7]!==l.selectedNrens?(r=O=>l.selectedNrens.includes(O.nren),e[7]=l.selectedNrens,e[8]=r):r=e[8],s=V.filter(r),o=v(s,"from_customers"),i=v(s,"to_customers"),a=v(s,"from_external"),g=v(s,"to_external"),e[0]=V,e[1]=l.selectedNrens,e[2]=o,e[3]=a,e[4]=s,e[5]=g,e[6]=i}else o=e[2],a=e[3],s=e[4],g=e[5],i=e[6];const F=g;let N;e[9]===Symbol.for("react.memo_cache_sentinel")?(N=le({title:"Traffic Volume in PB",tooltipUnit:"PB",valueTransform(r){return r?r/1e3:0}}),e[9]=N):N=e[9];const b=N;let j;e[10]===Symbol.for("react.memo_cache_sentinel")?(j=[],e[10]=j):j=e[10];let n;e[11]!==B?(n=B.values(),e[11]=B,e[12]=n):n=e[12];let c;e[13]!==n?(c={availableYears:j,availableNrens:[...n]},e[13]=n,e[14]=c):c=e[14];let S;e[15]!==l||e[16]!==_||e[17]!==c?(S=t.jsx(te,{filterOptions:c,filterSelection:l,setFilterSelection:_}),e[15]=l,e[16]=_,e[17]=c,e[18]=S):S=e[18];const z=S;let y;e[19]===Symbol.for("react.memo_cache_sentinel")?(y=t.jsx("span",{children:"The four graphs below show the estimates of total annual traffic in PB (1000 TB) to & from NREN customers, and to & from external networks. NREN customers are taken to mean sources that are part of the NREN's connectivity remit, while external networks are understood as outside sources including GÉANT, the general/commercial internet, internet exchanges, peerings, other NRENs, etc."}),e[19]=y):y=e[19];let T;e[20]===Symbol.for("react.memo_cache_sentinel")?(T={marginBottom:"30px"},e[20]=T):T=e[20];let E;e[21]===Symbol.for("react.memo_cache_sentinel")?(E=t.jsx("span",{style:{fontSize:"20px",color:"rgb(85, 96, 156)",fontWeight:"bold"},children:"Traffic from NREN customer"}),e[21]=E):E=e[21];let f;e[22]!==o?(f=t.jsxs(P,{children:[E,t.jsx(k,{data:o,options:b})]}),e[22]=o,e[23]=f):f=e[23];let C;e[24]===Symbol.for("react.memo_cache_sentinel")?(C=t.jsx("span",{style:{fontSize:"20px",color:"rgb(221, 100, 57)",fontWeight:"bold"},children:"Traffic to NREN customer"}),e[24]=C):C=e[24];let m;e[25]!==i?(m=t.jsxs(P,{children:[C,t.jsx(k,{data:i,options:b})]}),e[25]=i,e[26]=m):m=e[26];let d;e[27]!==m||e[28]!==f?(d=t.jsxs(W,{style:T,children:[f,m]}),e[27]=m,e[28]=f,e[29]=d):d=e[29];let R;e[30]===Symbol.for("react.memo_cache_sentinel")?(R={marginTop:"30px"},e[30]=R):R=e[30];let w;e[31]===Symbol.for("react.memo_cache_sentinel")?(w=t.jsx("span",{style:{fontSize:"20px",color:"rgb(63, 143, 77)",fontWeight:"bold"},children:"Traffic from external network"}),e[31]=w):w=e[31];let h;e[32]!==a?(h=t.jsxs(P,{children:[w,t.jsx(k,{data:a,options:b})]}),e[32]=a,e[33]=h):h=e[33];let D;e[34]===Symbol.for("react.memo_cache_sentinel")?(D=t.jsx("span",{style:{fontSize:"20px",color:"rgb(173, 48, 51)",fontWeight:"bold"},children:"Traffic to external network"}),e[34]=D):D=e[34];let x;e[35]!==F?(x=t.jsxs(P,{children:[D,t.jsx(k,{data:F,options:b})]}),e[35]=F,e[36]=x):x=e[36];let p;e[37]!==h||e[38]!==x?(p=t.jsxs(W,{style:R,children:[h,x]}),e[37]=h,e[38]=x,e[39]=p):p=e[39];let u;e[40]!==d||e[41]!==p?(u=t.jsxs(se,{children:[d,p]}),e[40]=d,e[41]=p,e[42]=u):u=e[42];let L;return e[43]!==z||e[44]!==s||e[45]!==u?(L=t.jsx(ee,{title:Y["traffic-volume"],description:y,category:$.Network,filter:z,data:s,filename:"NREN_traffic_estimates_data",children:u}),e[43]=z,e[44]=s,e[45]=u,e[46]=L):L=e[46],L}export{de as default}; diff --git a/compendium_v2/static/UserManagementComponent-C2zXLwZT.js b/compendium_v2/static/UserManagementComponent-BGNFMFlT.js similarity index 96% rename from compendium_v2/static/UserManagementComponent-C2zXLwZT.js rename to compendium_v2/static/UserManagementComponent-BGNFMFlT.js index 8b88316900e4f1956e4076eb83da62206c169811..c11b095d8a64d80e0b811ddbe7f8a45eaff4467b 100644 --- a/compendium_v2/static/UserManagementComponent-C2zXLwZT.js +++ b/compendium_v2/static/UserManagementComponent-BGNFMFlT.js @@ -1 +1 @@ -import{r as x,h as Te,j as t,i as ke,ai as Re,c as Ae,aj as Ve,a1 as De,W as Se,y as Ue,E as Ge,R as Be}from"./index-DBbSOdjk.js";import{V as de,O as Me}from"./index-BYMaAaj9.js";import{S as We}from"./SurveySidebar-C_LqylD3.js";import{c as qe,a as Le}from"./index-DkYuYqrz.js";import{A as ae,l as He}from"./lodash-YlUwNVit.js";import{T as Je}from"./Table-DNomfHX4.js";import"./SideBar-DfD7Pj8p.js";import"./hook-D9Tuu5oJ.js";const me=x.forwardRef(({className:e,bsPrefix:s,as:r="span",...c},l)=>(s=Te(s,"input-group-text"),t.jsx(r,{ref:l,className:ke(e,s),...c})));me.displayName="InputGroupText";const Ke=e=>t.jsx(me,{children:t.jsx(Re,{type:"checkbox",...e})}),Ye=e=>t.jsx(me,{children:t.jsx(Re,{type:"radio",...e})}),$e=x.forwardRef(({bsPrefix:e,size:s,hasValidation:r,className:c,as:l="div",...a},h)=>{e=Te(e,"input-group");const d=x.useMemo(()=>({}),[]);return t.jsx(qe.Provider,{value:d,children:t.jsx(l,{ref:h,...a,className:ke(c,e,s&&`${e}-${s}`,r&&"has-validation")})})});$e.displayName="InputGroup";const Ee=Object.assign($e,{Text:me,Radio:Ye,Checkbox:Ke});function Qe(e){const s=Ae.c(10),{getConfig:r,setConfig:c}=x.useContext(Ve);let l;s[0]!==r||s[1]!==e?(l=r(e),s[0]=r,s[1]=e,s[2]=l):l=s[2];const a=l;let h;s[3]!==e||s[4]!==c?(h=(M,N)=>c(e,M,N),s[3]=e,s[4]=c,s[5]=h):h=s[5];let d;return s[6]!==a||s[7]!==e||s[8]!==h?(d={[e]:a,setConfig:h},s[6]=a,s[7]=e,s[8]=h,s[9]=d):d=s[9],d}async function Xe(){try{return await(await fetch("/api/user/list")).json()}catch{return[]}}async function Ze(){try{return await(await fetch("/api/nren/list")).json()}catch{return[]}}async function ze(e,s){const r={id:e,...s},c={method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(r)},l=await fetch(`/api/user/${e}`,c),a=await l.json();if(!l.ok)throw new Error(a.message);return de.success(a.message),a.user}async function Pe(e){if(!window.confirm(`Are you sure you want to delete ${e.name} (${e.email})?`))return!1;const r={method:"DELETE",headers:{"Content-Type":"application/json"}},c=await fetch(`/api/user/${e.id}`,r),l=await c.json();if(!c.ok)throw new Error(l.message);return de.success(l.message),!0}const L=(e,s)=>e.role!=="admin"&&s.role==="admin"?1:e.role==="admin"&&s.role!=="admin"?-1:e.role==="user"&&s.role!=="user"?1:s.role==="user"&&e.role!=="user"?-1:!e.permissions.active&&s.permissions.active?1:e.permissions.active&&!s.permissions.active?-1:e.name.localeCompare(s.name);function ut(){const e=Ae.c(88);let s;e[0]===Symbol.for("react.memo_cache_sentinel")?(s=[],e[0]=s):s=e[0];const[r,c]=x.useState(s);let l;e[1]===Symbol.for("react.memo_cache_sentinel")?(l=[],e[1]=l):l=e[1];const[a,h]=x.useState(l),{user:d,setUser:M}=x.useContext(De);let N;e[2]===Symbol.for("react.memo_cache_sentinel")?(N={column:"ID",asc:!0},e[2]=N):N=e[2];const[f,Ne]=x.useState(N),[I,Ie]=x.useState(""),{setConfig:H,user_management:U}=Qe("user_management");let J;e[3]!==H||e[4]!==U?(J=(o,u)=>{const m=U??{},p=m==null?void 0:m.shownColumns;if(!p){H({...m,shownColumns:{[o]:u}});return}H({...m,shownColumns:{...p,[o]:u}})},e[3]=H,e[4]=U,e[5]=J):J=e[5];const ue=J;let K;e[6]!==U?(K=o=>{const u=U;if(!u)return!0;const m=u.shownColumns;return m?m[o]??!0:!0},e[6]=U,e[7]=K):K=e[7];const i=K;let Y,Q;e[8]===Symbol.for("react.memo_cache_sentinel")?(Y=()=>{Xe().then(o=>{c(o)}),Ze().then(o=>{h(o.sort(nt))})},Q=[],e[8]=Y,e[9]=Q):(Y=e[8],Q=e[9]),x.useEffect(Y,Q);let X;e[10]!==d.id||e[11]!==M||e[12]!==r?(X=(o,u)=>{const m=r.findIndex(v=>v.id===u.id),p=[...r],{name:q}=o.target,_={};q==="active"?_[q]=o.target.checked:_[q]=o.target.value,ze(u.id,_).then(v=>{v.id===d.id?M(v):(p[m]=v,c(p))}).catch(st)},e[10]=d.id,e[11]=M,e[12]=r,e[13]=X):X=e[13];const W=X;let Z;e[14]!==a?(Z=o=>{var u;return(u=a.find(m=>m.id==o||m.name==o))==null?void 0:u.id},e[14]=a,e[15]=Z):Z=e[15];const fe=Z,Fe=tt,z=et;let E,T,k,j,y,g,R,A,C,w,b,$,F;if(e[16]!==I||e[17]!==fe||e[18]!==i||e[19]!==W||e[20]!==d||e[21]!==a||e[22]!==ue||e[23]!==f.asc||e[24]!==f.column||e[25]!==r){const o=["ID","Active","Role","Email","Full Name","OIDC Sub","NREN","Actions"],u={[o[1]]:Fe,[o[2]]:z("role"),[o[3]]:z("email"),[o[4]]:z("name"),[o[6]]:z("nrens")},m=n=>{n===f.column?Ne({column:n,asc:!f.asc}):Ne({column:n,asc:!0})},p={};Array.from(Object.keys(u)).includes(f.column)?p[f.column]={"aria-sort":f.asc?"ascending":"descending"}:p[o[0]]={"aria-sort":f.asc?"ascending":"descending"};const q=u[f.column]??L,v=(I?r.filter(n=>n.email.includes(I)||n.name.includes(I)):r).filter(n=>n.id!==d.id).sort(q);f.asc||v.reverse(),e[39]===Symbol.for("react.memo_cache_sentinel")?(w=t.jsx(We,{}),b=t.jsx(Me,{}),e[39]=w,e[40]=b):(w=e[39],b=e[40]),T=Ge,A="py-5 grey-container";let ee;e[41]===Symbol.for("react.memo_cache_sentinel")?(ee=t.jsx("div",{className:"text-center w-100 mb-3",children:t.jsx("h3",{children:"User Management Page"})}),e[41]=ee):ee=e[41];let te;e[42]===Symbol.for("react.memo_cache_sentinel")?(te={width:"30rem"},e[42]=te):te=e[42];let se;e[43]===Symbol.for("react.memo_cache_sentinel")?(se=t.jsxs(ae.Header,{children:[t.jsx("span",{className:"me-2",children:"Column Visibility"}),t.jsx("small",{className:"text-muted",children:"Choose which columns to display"})]}),e[43]=se):se=e[43];let ne;e[44]===Symbol.for("react.memo_cache_sentinel")?(ne=t.jsx("small",{className:"text-muted mb-2 d-block",children:"Select which columns you want to display in the table below. Unchecked columns will be hidden."}),e[44]=ne):ne=e[44];let oe;e[45]===Symbol.for("react.memo_cache_sentinel")?(oe={gridTemplateColumns:"repeat(auto-fill, minmax(150px, 1fr))",gap:"10px"},e[45]=oe):oe=e[45];const he=t.jsx("div",{className:"d-grid",style:oe,children:o.map(n=>t.jsx(Se.Check,{type:"checkbox",id:`column-${n}`,label:n,checked:i(n),onChange:S=>ue(n,S.target.checked)},n))});let B;e[46]!==he?(B=t.jsx(ae,{className:"mb-3",style:te,children:t.jsxs(ae.Item,{eventKey:"0",children:[se,t.jsx(ae.Body,{children:t.jsxs(Se.Control,{as:"div",className:"p-3",children:[ne,he]})})]})}),e[46]=he,e[47]=B):B=e[47];let re,le;e[48]===Symbol.for("react.memo_cache_sentinel")?(re={width:"30rem"},le=t.jsx(Ee.Text,{id:"search-text",children:"Search"}),e[48]=re,e[49]=le):(re=e[48],le=e[49]);let ie;e[50]===Symbol.for("react.memo_cache_sentinel")?(ie=t.jsx(Se.Control,{placeholder:"Search by email/name","aria-label":"Search",onInput:He.debounce(n=>Ie(n.target.value),200)}),e[50]=ie):ie=e[50];let ce;e[51]===Symbol.for("react.memo_cache_sentinel")?(ce=t.jsxs(Ee,{className:"mb-3",style:re,children:[le,ie,t.jsx(Ue,{variant:"outline-secondary",onClick:()=>{Ie("")},children:"Clear"})]}),e[51]=ce):ce=e[51],e[52]!==B?(C=t.jsxs(Be,{className:"d-flex justify-content-center align-items-center flex-column",children:[ee,B,ce]}),e[52]=B,e[53]=C):C=e[53],R="d-flex justify-content-center",e[54]===Symbol.for("react.memo_cache_sentinel")?(g={maxWidth:"100rem"},e[54]=g):g=e[54],E=Je,F="user-management-table",k=!0;const pe=i(o[0])&&t.jsx("col",{span:1,style:{width:"8rem"}}),xe=i(o[1])&&t.jsx("col",{span:1,style:{width:"3rem"}}),je=i(o[2])&&t.jsx("col",{span:1,style:{width:"4.5rem"}}),ye=i(o[3])&&t.jsx("col",{span:1,style:{width:"7rem"}}),ge=i(o[4])&&t.jsx("col",{span:1,style:{width:"5rem"}}),Ce=i(o[5])&&t.jsx("col",{span:1,style:{width:"5rem"}}),we=i(o[6])&&t.jsx("col",{span:1,style:{width:"6rem"}}),be=i(o[7])&&t.jsx("col",{span:1,style:{width:"3rem"}});e[55]!==pe||e[56]!==xe||e[57]!==je||e[58]!==ye||e[59]!==ge||e[60]!==Ce||e[61]!==we||e[62]!==be?(j=t.jsxs("colgroup",{children:[pe,xe,je,ye,ge,Ce,we,be]}),e[55]=pe,e[56]=xe,e[57]=je,e[58]=ye,e[59]=ge,e[60]=Ce,e[61]=we,e[62]=be,e[63]=j):j=e[63];const ve=t.jsx("tr",{children:o.map(n=>i(n)&&t.jsx("th",{...p[n],onClick:()=>m(n),className:"sortable fixed-column",style:{border:"1px solid #ddd"},children:n},n))});e[64]!==ve?(y=t.jsx("thead",{children:ve}),e[64]=ve,e[65]=y):y=e[65],$=t.jsx("tbody",{children:(I?[]:[d]).concat(v).map(n=>t.jsxs("tr",{style:{fontWeight:n.id==d.id?"bold":"normal"},children:[i(o[0])&&t.jsx("td",{style:{border:"1px dotted #ddd"},children:n.id}),i(o[1])&&t.jsx("td",{style:{border:"1px dotted #ddd"},children:n.id==d.id?t.jsx(Le,{}):t.jsx("input",{type:"checkbox",name:"active",checked:n.permissions.active,onChange:S=>W(S,n)})}),i(o[2])&&t.jsx("td",{style:{border:"1px dotted #ddd"},children:n.id==d.id?n.role.charAt(0).toUpperCase()+n.role.slice(1):t.jsxs("select",{name:"role",defaultValue:n.role,onChange:S=>W(S,n),style:{width:"100%"},children:[t.jsx("option",{value:"admin",children:"Admin"}),t.jsx("option",{value:"user",children:"User"}),t.jsx("option",{value:"observer",children:"Observer"})]})}),i(o[3])&&t.jsx("td",{style:{border:"1px dotted #ddd"},children:n.email}),i(o[4])&&t.jsx("td",{style:{border:"1px dotted #ddd"},children:n.name}),i(o[5])&&t.jsx("td",{style:{border:"1px dotted #ddd"},children:n.oidc_sub}),i(o[6])&&t.jsx("td",{style:{border:"1px dotted #ddd"},children:t.jsxs("select",{name:"nren",multiple:!1,value:n.nrens.length>0?fe(n.nrens[0]):"",onChange:S=>W(S,n),children:[t.jsx("option",{value:"",children:"Select NREN"}),a.map(_e)]})}),i(o[7])&&t.jsx("td",{style:{border:"1px dotted #ddd"},children:n.id!==d.id&&t.jsx(Ue,{variant:"danger",onClick:async()=>{if(n.id===d.id){de.error("You cannot delete yourself");return}await Pe(n)&&c(r.filter(Oe=>Oe.id!==n.id))},children:"Delete"})})]},n.id))}),e[16]=I,e[17]=fe,e[18]=i,e[19]=W,e[20]=d,e[21]=a,e[22]=ue,e[23]=f.asc,e[24]=f.column,e[25]=r,e[26]=E,e[27]=T,e[28]=k,e[29]=j,e[30]=y,e[31]=g,e[32]=R,e[33]=A,e[34]=C,e[35]=w,e[36]=b,e[37]=$,e[38]=F}else E=e[26],T=e[27],k=e[28],j=e[29],y=e[30],g=e[31],R=e[32],A=e[33],C=e[34],w=e[35],b=e[36],$=e[37],F=e[38];let O;e[66]!==E||e[67]!==k||e[68]!==j||e[69]!==y||e[70]!==$||e[71]!==F?(O=t.jsxs(E,{className:F,bordered:k,children:[j,y,$]}),e[66]=E,e[67]=k,e[68]=j,e[69]=y,e[70]=$,e[71]=F,e[72]=O):O=e[72];let V;e[73]!==g||e[74]!==O?(V=t.jsx("div",{style:g,children:O}),e[73]=g,e[74]=O,e[75]=V):V=e[75];let D;e[76]!==R||e[77]!==V?(D=t.jsx("div",{className:R,children:V}),e[76]=R,e[77]=V,e[78]=D):D=e[78];let G;e[79]!==T||e[80]!==A||e[81]!==C||e[82]!==D?(G=t.jsxs(T,{className:A,children:[C,D]}),e[79]=T,e[80]=A,e[81]=C,e[82]=D,e[83]=G):G=e[83];let P;return e[84]!==w||e[85]!==b||e[86]!==G?(P=t.jsxs(t.Fragment,{children:[w,b,G]}),e[84]=w,e[85]=b,e[86]=G,e[87]=P):P=e[87],P}function _e(e){return t.jsx("option",{value:e.id,children:e.name},e.id)}function et(e){return(s,r)=>{const c=s[e],l=r[e];if(e==="nrens")return s.nrens.length===0&&r.nrens.length===0?L(s,r):s.nrens.length===0?-1:r.nrens.length===0?1:s.nrens[0].localeCompare(r.nrens[0]);if(typeof c!="string"||typeof l!="string")return L(s,r);const a=c.localeCompare(l);return a===0?L(s,r):a}}function tt(e,s){return e.permissions.active&&!s.permissions.active?1:!e.permissions.active&&s.permissions.active?-1:L(e,s)}function st(e){de.error(e.message)}function nt(e,s){return e.name.localeCompare(s.name)}export{ut as default}; +import{r as x,h as Te,j as t,i as ke,ai as Re,c as Ae,aj as Ve,a1 as De,W as Se,y as Ue,E as Ge,R as Be}from"./index-bwDVKb7d.js";import{V as de,O as Me}from"./index-CbTrjKrU.js";import{S as We}from"./SurveySidebar-Ef_si00x.js";import{c as qe,a as Le}from"./index-Y7aK5es_.js";import{A as ae,l as He}from"./lodash-BV6TOxcP.js";import{T as Je}from"./Table-D4mMg192.js";import"./SideBar-D_Yxr_mj.js";import"./hook-BGVjY_62.js";const me=x.forwardRef(({className:e,bsPrefix:s,as:r="span",...c},l)=>(s=Te(s,"input-group-text"),t.jsx(r,{ref:l,className:ke(e,s),...c})));me.displayName="InputGroupText";const Ke=e=>t.jsx(me,{children:t.jsx(Re,{type:"checkbox",...e})}),Ye=e=>t.jsx(me,{children:t.jsx(Re,{type:"radio",...e})}),$e=x.forwardRef(({bsPrefix:e,size:s,hasValidation:r,className:c,as:l="div",...a},h)=>{e=Te(e,"input-group");const d=x.useMemo(()=>({}),[]);return t.jsx(qe.Provider,{value:d,children:t.jsx(l,{ref:h,...a,className:ke(c,e,s&&`${e}-${s}`,r&&"has-validation")})})});$e.displayName="InputGroup";const Ee=Object.assign($e,{Text:me,Radio:Ye,Checkbox:Ke});function Qe(e){const s=Ae.c(10),{getConfig:r,setConfig:c}=x.useContext(Ve);let l;s[0]!==r||s[1]!==e?(l=r(e),s[0]=r,s[1]=e,s[2]=l):l=s[2];const a=l;let h;s[3]!==e||s[4]!==c?(h=(M,N)=>c(e,M,N),s[3]=e,s[4]=c,s[5]=h):h=s[5];let d;return s[6]!==a||s[7]!==e||s[8]!==h?(d={[e]:a,setConfig:h},s[6]=a,s[7]=e,s[8]=h,s[9]=d):d=s[9],d}async function Xe(){try{return await(await fetch("/api/user/list")).json()}catch{return[]}}async function Ze(){try{return await(await fetch("/api/nren/list")).json()}catch{return[]}}async function ze(e,s){const r={id:e,...s},c={method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(r)},l=await fetch(`/api/user/${e}`,c),a=await l.json();if(!l.ok)throw new Error(a.message);return de.success(a.message),a.user}async function Pe(e){if(!window.confirm(`Are you sure you want to delete ${e.name} (${e.email})?`))return!1;const r={method:"DELETE",headers:{"Content-Type":"application/json"}},c=await fetch(`/api/user/${e.id}`,r),l=await c.json();if(!c.ok)throw new Error(l.message);return de.success(l.message),!0}const L=(e,s)=>e.role!=="admin"&&s.role==="admin"?1:e.role==="admin"&&s.role!=="admin"?-1:e.role==="user"&&s.role!=="user"?1:s.role==="user"&&e.role!=="user"?-1:!e.permissions.active&&s.permissions.active?1:e.permissions.active&&!s.permissions.active?-1:e.name.localeCompare(s.name);function ut(){const e=Ae.c(88);let s;e[0]===Symbol.for("react.memo_cache_sentinel")?(s=[],e[0]=s):s=e[0];const[r,c]=x.useState(s);let l;e[1]===Symbol.for("react.memo_cache_sentinel")?(l=[],e[1]=l):l=e[1];const[a,h]=x.useState(l),{user:d,setUser:M}=x.useContext(De);let N;e[2]===Symbol.for("react.memo_cache_sentinel")?(N={column:"ID",asc:!0},e[2]=N):N=e[2];const[f,Ne]=x.useState(N),[I,Ie]=x.useState(""),{setConfig:H,user_management:U}=Qe("user_management");let J;e[3]!==H||e[4]!==U?(J=(o,u)=>{const m=U??{},p=m==null?void 0:m.shownColumns;if(!p){H({...m,shownColumns:{[o]:u}});return}H({...m,shownColumns:{...p,[o]:u}})},e[3]=H,e[4]=U,e[5]=J):J=e[5];const ue=J;let K;e[6]!==U?(K=o=>{const u=U;if(!u)return!0;const m=u.shownColumns;return m?m[o]??!0:!0},e[6]=U,e[7]=K):K=e[7];const i=K;let Y,Q;e[8]===Symbol.for("react.memo_cache_sentinel")?(Y=()=>{Xe().then(o=>{c(o)}),Ze().then(o=>{h(o.sort(nt))})},Q=[],e[8]=Y,e[9]=Q):(Y=e[8],Q=e[9]),x.useEffect(Y,Q);let X;e[10]!==d.id||e[11]!==M||e[12]!==r?(X=(o,u)=>{const m=r.findIndex(v=>v.id===u.id),p=[...r],{name:q}=o.target,_={};q==="active"?_[q]=o.target.checked:_[q]=o.target.value,ze(u.id,_).then(v=>{v.id===d.id?M(v):(p[m]=v,c(p))}).catch(st)},e[10]=d.id,e[11]=M,e[12]=r,e[13]=X):X=e[13];const W=X;let Z;e[14]!==a?(Z=o=>{var u;return(u=a.find(m=>m.id==o||m.name==o))==null?void 0:u.id},e[14]=a,e[15]=Z):Z=e[15];const fe=Z,Fe=tt,z=et;let E,T,k,j,y,g,R,A,C,w,b,$,F;if(e[16]!==I||e[17]!==fe||e[18]!==i||e[19]!==W||e[20]!==d||e[21]!==a||e[22]!==ue||e[23]!==f.asc||e[24]!==f.column||e[25]!==r){const o=["ID","Active","Role","Email","Full Name","OIDC Sub","NREN","Actions"],u={[o[1]]:Fe,[o[2]]:z("role"),[o[3]]:z("email"),[o[4]]:z("name"),[o[6]]:z("nrens")},m=n=>{n===f.column?Ne({column:n,asc:!f.asc}):Ne({column:n,asc:!0})},p={};Array.from(Object.keys(u)).includes(f.column)?p[f.column]={"aria-sort":f.asc?"ascending":"descending"}:p[o[0]]={"aria-sort":f.asc?"ascending":"descending"};const q=u[f.column]??L,v=(I?r.filter(n=>n.email.includes(I)||n.name.includes(I)):r).filter(n=>n.id!==d.id).sort(q);f.asc||v.reverse(),e[39]===Symbol.for("react.memo_cache_sentinel")?(w=t.jsx(We,{}),b=t.jsx(Me,{}),e[39]=w,e[40]=b):(w=e[39],b=e[40]),T=Ge,A="py-5 grey-container";let ee;e[41]===Symbol.for("react.memo_cache_sentinel")?(ee=t.jsx("div",{className:"text-center w-100 mb-3",children:t.jsx("h3",{children:"User Management Page"})}),e[41]=ee):ee=e[41];let te;e[42]===Symbol.for("react.memo_cache_sentinel")?(te={width:"30rem"},e[42]=te):te=e[42];let se;e[43]===Symbol.for("react.memo_cache_sentinel")?(se=t.jsxs(ae.Header,{children:[t.jsx("span",{className:"me-2",children:"Column Visibility"}),t.jsx("small",{className:"text-muted",children:"Choose which columns to display"})]}),e[43]=se):se=e[43];let ne;e[44]===Symbol.for("react.memo_cache_sentinel")?(ne=t.jsx("small",{className:"text-muted mb-2 d-block",children:"Select which columns you want to display in the table below. Unchecked columns will be hidden."}),e[44]=ne):ne=e[44];let oe;e[45]===Symbol.for("react.memo_cache_sentinel")?(oe={gridTemplateColumns:"repeat(auto-fill, minmax(150px, 1fr))",gap:"10px"},e[45]=oe):oe=e[45];const he=t.jsx("div",{className:"d-grid",style:oe,children:o.map(n=>t.jsx(Se.Check,{type:"checkbox",id:`column-${n}`,label:n,checked:i(n),onChange:S=>ue(n,S.target.checked)},n))});let B;e[46]!==he?(B=t.jsx(ae,{className:"mb-3",style:te,children:t.jsxs(ae.Item,{eventKey:"0",children:[se,t.jsx(ae.Body,{children:t.jsxs(Se.Control,{as:"div",className:"p-3",children:[ne,he]})})]})}),e[46]=he,e[47]=B):B=e[47];let re,le;e[48]===Symbol.for("react.memo_cache_sentinel")?(re={width:"30rem"},le=t.jsx(Ee.Text,{id:"search-text",children:"Search"}),e[48]=re,e[49]=le):(re=e[48],le=e[49]);let ie;e[50]===Symbol.for("react.memo_cache_sentinel")?(ie=t.jsx(Se.Control,{placeholder:"Search by email/name","aria-label":"Search",onInput:He.debounce(n=>Ie(n.target.value),200)}),e[50]=ie):ie=e[50];let ce;e[51]===Symbol.for("react.memo_cache_sentinel")?(ce=t.jsxs(Ee,{className:"mb-3",style:re,children:[le,ie,t.jsx(Ue,{variant:"outline-secondary",onClick:()=>{Ie("")},children:"Clear"})]}),e[51]=ce):ce=e[51],e[52]!==B?(C=t.jsxs(Be,{className:"d-flex justify-content-center align-items-center flex-column",children:[ee,B,ce]}),e[52]=B,e[53]=C):C=e[53],R="d-flex justify-content-center",e[54]===Symbol.for("react.memo_cache_sentinel")?(g={maxWidth:"100rem"},e[54]=g):g=e[54],E=Je,F="user-management-table",k=!0;const pe=i(o[0])&&t.jsx("col",{span:1,style:{width:"8rem"}}),xe=i(o[1])&&t.jsx("col",{span:1,style:{width:"3rem"}}),je=i(o[2])&&t.jsx("col",{span:1,style:{width:"4.5rem"}}),ye=i(o[3])&&t.jsx("col",{span:1,style:{width:"7rem"}}),ge=i(o[4])&&t.jsx("col",{span:1,style:{width:"5rem"}}),Ce=i(o[5])&&t.jsx("col",{span:1,style:{width:"5rem"}}),we=i(o[6])&&t.jsx("col",{span:1,style:{width:"6rem"}}),be=i(o[7])&&t.jsx("col",{span:1,style:{width:"3rem"}});e[55]!==pe||e[56]!==xe||e[57]!==je||e[58]!==ye||e[59]!==ge||e[60]!==Ce||e[61]!==we||e[62]!==be?(j=t.jsxs("colgroup",{children:[pe,xe,je,ye,ge,Ce,we,be]}),e[55]=pe,e[56]=xe,e[57]=je,e[58]=ye,e[59]=ge,e[60]=Ce,e[61]=we,e[62]=be,e[63]=j):j=e[63];const ve=t.jsx("tr",{children:o.map(n=>i(n)&&t.jsx("th",{...p[n],onClick:()=>m(n),className:"sortable fixed-column",style:{border:"1px solid #ddd"},children:n},n))});e[64]!==ve?(y=t.jsx("thead",{children:ve}),e[64]=ve,e[65]=y):y=e[65],$=t.jsx("tbody",{children:(I?[]:[d]).concat(v).map(n=>t.jsxs("tr",{style:{fontWeight:n.id==d.id?"bold":"normal"},children:[i(o[0])&&t.jsx("td",{style:{border:"1px dotted #ddd"},children:n.id}),i(o[1])&&t.jsx("td",{style:{border:"1px dotted #ddd"},children:n.id==d.id?t.jsx(Le,{}):t.jsx("input",{type:"checkbox",name:"active",checked:n.permissions.active,onChange:S=>W(S,n)})}),i(o[2])&&t.jsx("td",{style:{border:"1px dotted #ddd"},children:n.id==d.id?n.role.charAt(0).toUpperCase()+n.role.slice(1):t.jsxs("select",{name:"role",defaultValue:n.role,onChange:S=>W(S,n),style:{width:"100%"},children:[t.jsx("option",{value:"admin",children:"Admin"}),t.jsx("option",{value:"user",children:"User"}),t.jsx("option",{value:"observer",children:"Observer"})]})}),i(o[3])&&t.jsx("td",{style:{border:"1px dotted #ddd"},children:n.email}),i(o[4])&&t.jsx("td",{style:{border:"1px dotted #ddd"},children:n.name}),i(o[5])&&t.jsx("td",{style:{border:"1px dotted #ddd"},children:n.oidc_sub}),i(o[6])&&t.jsx("td",{style:{border:"1px dotted #ddd"},children:t.jsxs("select",{name:"nren",multiple:!1,value:n.nrens.length>0?fe(n.nrens[0]):"",onChange:S=>W(S,n),children:[t.jsx("option",{value:"",children:"Select NREN"}),a.map(_e)]})}),i(o[7])&&t.jsx("td",{style:{border:"1px dotted #ddd"},children:n.id!==d.id&&t.jsx(Ue,{variant:"danger",onClick:async()=>{if(n.id===d.id){de.error("You cannot delete yourself");return}await Pe(n)&&c(r.filter(Oe=>Oe.id!==n.id))},children:"Delete"})})]},n.id))}),e[16]=I,e[17]=fe,e[18]=i,e[19]=W,e[20]=d,e[21]=a,e[22]=ue,e[23]=f.asc,e[24]=f.column,e[25]=r,e[26]=E,e[27]=T,e[28]=k,e[29]=j,e[30]=y,e[31]=g,e[32]=R,e[33]=A,e[34]=C,e[35]=w,e[36]=b,e[37]=$,e[38]=F}else E=e[26],T=e[27],k=e[28],j=e[29],y=e[30],g=e[31],R=e[32],A=e[33],C=e[34],w=e[35],b=e[36],$=e[37],F=e[38];let O;e[66]!==E||e[67]!==k||e[68]!==j||e[69]!==y||e[70]!==$||e[71]!==F?(O=t.jsxs(E,{className:F,bordered:k,children:[j,y,$]}),e[66]=E,e[67]=k,e[68]=j,e[69]=y,e[70]=$,e[71]=F,e[72]=O):O=e[72];let V;e[73]!==g||e[74]!==O?(V=t.jsx("div",{style:g,children:O}),e[73]=g,e[74]=O,e[75]=V):V=e[75];let D;e[76]!==R||e[77]!==V?(D=t.jsx("div",{className:R,children:V}),e[76]=R,e[77]=V,e[78]=D):D=e[78];let G;e[79]!==T||e[80]!==A||e[81]!==C||e[82]!==D?(G=t.jsxs(T,{className:A,children:[C,D]}),e[79]=T,e[80]=A,e[81]=C,e[82]=D,e[83]=G):G=e[83];let P;return e[84]!==w||e[85]!==b||e[86]!==G?(P=t.jsxs(t.Fragment,{children:[w,b,G]}),e[84]=w,e[85]=b,e[86]=G,e[87]=P):P=e[87],P}function _e(e){return t.jsx("option",{value:e.id,children:e.name},e.id)}function et(e){return(s,r)=>{const c=s[e],l=r[e];if(e==="nrens")return s.nrens.length===0&&r.nrens.length===0?L(s,r):s.nrens.length===0?-1:r.nrens.length===0?1:s.nrens[0].localeCompare(r.nrens[0]);if(typeof c!="string"||typeof l!="string")return L(s,r);const a=c.localeCompare(l);return a===0?L(s,r):a}}function tt(e,s){return e.permissions.active&&!s.permissions.active?1:!e.permissions.active&&s.permissions.active?-1:L(e,s)}function st(e){de.error(e.message)}function nt(e,s){return e.name.localeCompare(s.name)}export{ut as default}; diff --git a/compendium_v2/static/WeatherMap-C2uAbI_g.js b/compendium_v2/static/WeatherMap-DHJE1C4l.js similarity index 77% rename from compendium_v2/static/WeatherMap-C2uAbI_g.js rename to compendium_v2/static/WeatherMap-DHJE1C4l.js index d926dac36af2370c92db864d243b1e01ae6821de..a476eb8c9a6c3cee41d3cdca9a5d916930b584b8 100644 --- a/compendium_v2/static/WeatherMap-C2uAbI_g.js +++ b/compendium_v2/static/WeatherMap-DHJE1C4l.js @@ -1 +1 @@ -import{c as b,r as k,F as w,j as m,t as g,S as j}from"./index-DBbSOdjk.js";import{u as S,q as v,k as y,i as F,D as L,F as R,f as C}from"./useData-CcKTpALT.js";import{N as E}from"./NrenYearTable-C1JRhqy_.js";import"./SideBar-DfD7Pj8p.js";import"./xlsx-BHRztzV8.js";import"./index-DkYuYqrz.js";import"./hook-D9Tuu5oJ.js";import"./Table-DNomfHX4.js";function O(){const e=b.c(21),{filterSelection:t,setFilterSelection:o}=k.useContext(w),{data:i,nrens:d}=S("/api/weather-map",o);let a,n;if(e[0]!==i||e[1]!==t.selectedNrens){const x=i?v(i):[];let u;e[4]!==t.selectedNrens?(u=_=>t.selectedNrens.includes(_.nren),e[4]=t.selectedNrens,e[5]=u):u=e[5],a=x.filter(u);const D=y(a);n=F(D,T),e[0]=i,e[1]=t.selectedNrens,e[2]=a,e[3]=n}else a=e[2],n=e[3];const h=n;let c;e[6]===Symbol.for("react.memo_cache_sentinel")?(c=[],e[6]=c):c=e[6];let s;e[7]!==d?(s=d.values(),e[7]=d,e[8]=s):s=e[8];let r;e[9]!==s?(r={availableYears:c,availableNrens:[...s]},e[9]=s,e[10]=r):r=e[10];let f;e[11]!==t||e[12]!==o||e[13]!==r?(f=m.jsx(R,{filterOptions:r,filterSelection:t,setFilterSelection:o,coloredYears:!0}),e[11]=t,e[12]=o,e[13]=r,e[14]=f):f=e[14];const N=f;let l;e[15]!==h?(l=m.jsx(C,{children:m.jsx(E,{data:h,columnTitle:"Network Weather Map",dottedBorder:!0,noDots:!0,keysAreURLs:!0,removeDecoration:!0})}),e[15]=h,e[16]=l):l=e[16];let p;return e[17]!==N||e[18]!==a||e[19]!==l?(p=m.jsx(L,{title:g["weather-map"],description:"This table shows the URL links to NREN websites showing weather map, if available.",category:j.Network,filter:N,data:a,filename:"weather_map_nrens_per_year",children:l}),e[17]=N,e[18]=a,e[19]=l,e[20]=p):p=e[20],p}function T(e,t){!!t.url&&(e[t.url]=t.url)}export{O as default}; +import{c as b,r as k,F as w,j as m,t as g,S as j}from"./index-bwDVKb7d.js";import{u as S,q as v,k as y,i as F,D as L,F as R,f as C}from"./useData-Ba-3avp3.js";import{N as E}from"./NrenYearTable-9mB4hcmt.js";import"./SideBar-D_Yxr_mj.js";import"./xlsx-BHRztzV8.js";import"./index-Y7aK5es_.js";import"./hook-BGVjY_62.js";import"./Table-D4mMg192.js";function O(){const e=b.c(21),{filterSelection:t,setFilterSelection:o}=k.useContext(w),{data:i,nrens:d}=S("/api/weather-map",o);let a,n;if(e[0]!==i||e[1]!==t.selectedNrens){const x=i?v(i):[];let u;e[4]!==t.selectedNrens?(u=_=>t.selectedNrens.includes(_.nren),e[4]=t.selectedNrens,e[5]=u):u=e[5],a=x.filter(u);const D=y(a);n=F(D,T),e[0]=i,e[1]=t.selectedNrens,e[2]=a,e[3]=n}else a=e[2],n=e[3];const h=n;let c;e[6]===Symbol.for("react.memo_cache_sentinel")?(c=[],e[6]=c):c=e[6];let s;e[7]!==d?(s=d.values(),e[7]=d,e[8]=s):s=e[8];let r;e[9]!==s?(r={availableYears:c,availableNrens:[...s]},e[9]=s,e[10]=r):r=e[10];let f;e[11]!==t||e[12]!==o||e[13]!==r?(f=m.jsx(R,{filterOptions:r,filterSelection:t,setFilterSelection:o,coloredYears:!0}),e[11]=t,e[12]=o,e[13]=r,e[14]=f):f=e[14];const N=f;let l;e[15]!==h?(l=m.jsx(C,{children:m.jsx(E,{data:h,columnTitle:"Network Weather Map",dottedBorder:!0,noDots:!0,keysAreURLs:!0,removeDecoration:!0})}),e[15]=h,e[16]=l):l=e[16];let p;return e[17]!==N||e[18]!==a||e[19]!==l?(p=m.jsx(L,{title:g["weather-map"],description:"This table shows the URL links to NREN websites showing weather map, if available.",category:j.Network,filter:N,data:a,filename:"weather_map_nrens_per_year",children:l}),e[17]=N,e[18]=a,e[19]=l,e[20]=p):p=e[20],p}function T(e,t){!!t.url&&(e[t.url]=t.url)}export{O as default}; diff --git a/compendium_v2/static/charthelpers-CHBq5wBZ.js b/compendium_v2/static/charthelpers-Cs3DRBw0.js similarity index 96% rename from compendium_v2/static/charthelpers-CHBq5wBZ.js rename to compendium_v2/static/charthelpers-Cs3DRBw0.js index 9e39b0fa8d73a07b1cfd25419b270f02ba21e3bc..9b2def5269d321a47fe9c5d7f1180e1a87e33623 100644 --- a/compendium_v2/static/charthelpers-CHBq5wBZ.js +++ b/compendium_v2/static/charthelpers-Cs3DRBw0.js @@ -1 +1 @@ -import{C as l}from"./useData-CcKTpALT.js";const x=({title:i,unit:c,tooltipPrefix:r,tooltipUnit:o,tickLimit:n,valueTransform:t})=>({responsive:!0,elements:{point:{pointStyle:"circle",pointRadius:4,pointBorderWidth:2,pointBackgroundColor:"white"}},animation:{duration:0},plugins:{legend:{display:!1},tooltip:{callbacks:{label:function(a){let s=r??(a.dataset.label||"");const e=t?t(a.parsed.y):a.parsed.y;return a.parsed.y!==null&&(s+=`: ${e} ${o||""}`),s}}}},scales:{y:{title:{display:!!i,text:i||""},ticks:{autoSkip:!0,maxTicksLimit:n,callback:a=>`${typeof a=="string"?a:t?t(a):a} ${c||""}`}}}}),y=({title:i,unit:c,tooltipPrefix:r,tooltipUnit:o,valueTransform:n})=>({maintainAspectRatio:!1,layout:{padding:{right:60}},animation:{duration:0},plugins:{legend:{display:!1},chartDataLabels:{font:{family:'"Open Sans", sans-serif'}},tooltip:{callbacks:{label:function(t){let a=r??(t.dataset.label||"");const s=n?n(t.parsed.x):t.parsed.x;return t.parsed.y!==null&&(a+=`: ${s} ${o||""}`),a}}}},scales:{x:{title:{display:!!i,text:i||""},position:"top",ticks:{callback:t=>t&&`${n?n(t):t} ${c||""}`}},x2:{title:{display:!!i,text:i||""},ticks:{callback:t=>t&&`${n?n(t):t} ${c||""}`},grid:{drawOnChartArea:!1},afterDataLimits:function(t){const a=Object.keys(l.instances);let s=-999999,e=999999;for(const d of a)l.instances[d]&&t.chart.scales.x2&&(e=Math.min(l.instances[d].scales.x.min,e),s=Math.max(l.instances[d].scales.x.max,s));t.chart.scales.x2.options.min=e,t.chart.scales.x2.options.max=s,t.chart.scales.x2.min=e,t.chart.scales.x2.max=s}},y:{stacked:!0,ticks:{autoSkip:!1}}},indexAxis:"y"});export{y as a,x as g}; +import{C as l}from"./useData-Ba-3avp3.js";const x=({title:i,unit:c,tooltipPrefix:r,tooltipUnit:o,tickLimit:n,valueTransform:t})=>({responsive:!0,elements:{point:{pointStyle:"circle",pointRadius:4,pointBorderWidth:2,pointBackgroundColor:"white"}},animation:{duration:0},plugins:{legend:{display:!1},tooltip:{callbacks:{label:function(a){let s=r??(a.dataset.label||"");const e=t?t(a.parsed.y):a.parsed.y;return a.parsed.y!==null&&(s+=`: ${e} ${o||""}`),s}}}},scales:{y:{title:{display:!!i,text:i||""},ticks:{autoSkip:!0,maxTicksLimit:n,callback:a=>`${typeof a=="string"?a:t?t(a):a} ${c||""}`}}}}),y=({title:i,unit:c,tooltipPrefix:r,tooltipUnit:o,valueTransform:n})=>({maintainAspectRatio:!1,layout:{padding:{right:60}},animation:{duration:0},plugins:{legend:{display:!1},chartDataLabels:{font:{family:'"Open Sans", sans-serif'}},tooltip:{callbacks:{label:function(t){let a=r??(t.dataset.label||"");const s=n?n(t.parsed.x):t.parsed.x;return t.parsed.y!==null&&(a+=`: ${s} ${o||""}`),a}}}},scales:{x:{title:{display:!!i,text:i||""},position:"top",ticks:{callback:t=>t&&`${n?n(t):t} ${c||""}`}},x2:{title:{display:!!i,text:i||""},ticks:{callback:t=>t&&`${n?n(t):t} ${c||""}`},grid:{drawOnChartArea:!1},afterDataLimits:function(t){const a=Object.keys(l.instances);let s=-999999,e=999999;for(const d of a)l.instances[d]&&t.chart.scales.x2&&(e=Math.min(l.instances[d].scales.x.min,e),s=Math.max(l.instances[d].scales.x.max,s));t.chart.scales.x2.options.min=e,t.chart.scales.x2.options.max=s,t.chart.scales.x2.min=e,t.chart.scales.x2.max=s}},y:{stacked:!0,ticks:{autoSkip:!1}}},indexAxis:"y"});export{y as a,x as g}; diff --git a/compendium_v2/static/chartjs-plugin-datalabels.esm-C6J4S2ma.js b/compendium_v2/static/chartjs-plugin-datalabels.esm-BoLCz2jr.js similarity index 99% rename from compendium_v2/static/chartjs-plugin-datalabels.esm-C6J4S2ma.js rename to compendium_v2/static/chartjs-plugin-datalabels.esm-BoLCz2jr.js index 519fa347e4629c99a1ff69ff5626f40e822a6cd0..ad58e79e3bdd31d3c3fa2ae723967520a88b3db8 100644 --- a/compendium_v2/static/chartjs-plugin-datalabels.esm-C6J4S2ma.js +++ b/compendium_v2/static/chartjs-plugin-datalabels.esm-BoLCz2jr.js @@ -1,4 +1,4 @@ -import{x as g,y as J,z as f,A as K,E as q,G as V,H as W,I as p,J as Y,P as Q,B as Z,K as ee,M as re}from"./useData-CcKTpALT.js";/*! +import{x as g,y as J,z as f,A as K,E as q,G as V,H as W,I as p,J as Y,P as Q,B as Z,K as ee,M as re}from"./useData-Ba-3avp3.js";/*! * chartjs-plugin-datalabels v2.2.0 * https://chartjs-plugin-datalabels.netlify.app * (c) 2017-2022 chartjs-plugin-datalabels contributors diff --git a/compendium_v2/static/hook-D9Tuu5oJ.js b/compendium_v2/static/hook-BGVjY_62.js similarity index 94% rename from compendium_v2/static/hook-D9Tuu5oJ.js rename to compendium_v2/static/hook-BGVjY_62.js index 16c4ce096c8a860f264e8030efd7e1fc87b48ce0..471c1e5d7cf3ec6befb4b95040bd596a44473c29 100644 --- a/compendium_v2/static/hook-D9Tuu5oJ.js +++ b/compendium_v2/static/hook-BGVjY_62.js @@ -1 +1 @@ -import{$ as d,r as p}from"./index-DBbSOdjk.js";function m(){return m=Object.assign?Object.assign.bind():function(r){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var e in n)({}).hasOwnProperty.call(n,e)&&(r[e]=n[e])}return r},m.apply(null,arguments)}function b(r){return"default"+r.charAt(0).toUpperCase()+r.substr(1)}function y(r){var t=P(r,"string");return typeof t=="symbol"?t:String(t)}function P(r,t){if(typeof r!="object"||r===null)return r;var n=r[Symbol.toPrimitive];if(n!==void 0){var e=n.call(r,t);if(typeof e!="object")return e;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(r)}function g(r,t,n){var e=p.useRef(r!==void 0),o=p.useState(t),a=o[0],f=o[1],i=r!==void 0,l=e.current;return e.current=i,!i&&l&&a!==t&&f(t),[i?r:a,p.useCallback(function(c){for(var u=arguments.length,v=new Array(u>1?u-1:0),s=1;s<u;s++)v[s-1]=arguments[s];n&&n.apply(void 0,[c].concat(v)),f(c)},[n])]}function j(r,t){return Object.keys(t).reduce(function(n,e){var o,a=n,f=a[b(e)],i=a[e],l=d(a,[b(e),e].map(y)),c=t[e],u=g(i,f,r[c]),v=u[0],s=u[1];return m({},l,(o={},o[e]=v,o[c]=s,o))},r)}export{j as u}; +import{$ as d,r as p}from"./index-bwDVKb7d.js";function m(){return m=Object.assign?Object.assign.bind():function(r){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var e in n)({}).hasOwnProperty.call(n,e)&&(r[e]=n[e])}return r},m.apply(null,arguments)}function b(r){return"default"+r.charAt(0).toUpperCase()+r.substr(1)}function y(r){var t=P(r,"string");return typeof t=="symbol"?t:String(t)}function P(r,t){if(typeof r!="object"||r===null)return r;var n=r[Symbol.toPrimitive];if(n!==void 0){var e=n.call(r,t);if(typeof e!="object")return e;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(r)}function g(r,t,n){var e=p.useRef(r!==void 0),o=p.useState(t),a=o[0],f=o[1],i=r!==void 0,l=e.current;return e.current=i,!i&&l&&a!==t&&f(t),[i?r:a,p.useCallback(function(c){for(var u=arguments.length,v=new Array(u>1?u-1:0),s=1;s<u;s++)v[s-1]=arguments[s];n&&n.apply(void 0,[c].concat(v)),f(c)},[n])]}function j(r,t){return Object.keys(t).reduce(function(n,e){var o,a=n,f=a[b(e)],i=a[e],l=d(a,[b(e),e].map(y)),c=t[e],u=g(i,f,r[c]),v=u[0],s=u[1];return m({},l,(o={},o[e]=v,o[c]=s,o))},r)}export{j as u}; diff --git a/compendium_v2/static/index-DyJczNpq.js b/compendium_v2/static/index-0m6TK_PI.js similarity index 92% rename from compendium_v2/static/index-DyJczNpq.js rename to compendium_v2/static/index-0m6TK_PI.js index 5193bdc3e1cd93a3fff7e93e27a94110fbf2178a..a6092246f74e39583980fccbb61734485b4d7386 100644 --- a/compendium_v2/static/index-DyJczNpq.js +++ b/compendium_v2/static/index-0m6TK_PI.js @@ -1 +1 @@ -import{r as a,f as h}from"./index-DBbSOdjk.js";import{C as b,t as L,v}from"./useData-CcKTpALT.js";const C="label";function m(t,e){typeof t=="function"?t(e):t&&(t.current=e)}function B(t,e){const n=t.options;n&&e&&Object.assign(n,e)}function y(t,e){t.labels=e}function E(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:C;const o=[];t.datasets=e.map(s=>{const u=t.datasets.find(i=>i[n]===s[n]);return!u||!s.data||o.includes(u)?{...s}:(o.push(u),Object.assign(u,s),u)})}function T(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:C;const n={labels:[],datasets:[]};return y(n,t.labels),E(n,t.datasets,e),n}function j(t,e){const{height:n=150,width:o=300,redraw:s=!1,datasetIdKey:u,type:i,data:c,options:f,plugins:w=[],fallbackContent:I,updateMode:g,...K}=t,l=a.useRef(null),r=a.useRef(null),d=()=>{l.current&&(r.current=new b(l.current,{type:i,data:T(c,u),options:f&&{...f},plugins:w}),m(e,r.current))},p=()=>{m(e,null),r.current&&(r.current.destroy(),r.current=null)};return a.useEffect(()=>{!s&&r.current&&f&&B(r.current,f)},[s,f]),a.useEffect(()=>{!s&&r.current&&y(r.current.config.data,c.labels)},[s,c.labels]),a.useEffect(()=>{!s&&r.current&&c.datasets&&E(r.current.config.data,c.datasets,u)},[s,c.datasets]),a.useEffect(()=>{r.current&&(s?(p(),setTimeout(d)):r.current.update(g))},[s,f,c.labels,c.datasets,g]),a.useEffect(()=>{r.current&&(p(),setTimeout(d))},[i]),a.useEffect(()=>(d(),()=>p()),[]),h.createElement("canvas",{ref:l,role:"img",height:n,width:o,...K},I)}const D=a.forwardRef(j);function R(t,e){return b.register(e),a.forwardRef((n,o)=>h.createElement(D,{...n,ref:o,type:t}))}const M=R("line",L),P=R("bar",v);export{P as B,M as L}; +import{r as a,f as h}from"./index-bwDVKb7d.js";import{C as b,t as L,v}from"./useData-Ba-3avp3.js";const C="label";function m(t,e){typeof t=="function"?t(e):t&&(t.current=e)}function B(t,e){const n=t.options;n&&e&&Object.assign(n,e)}function y(t,e){t.labels=e}function E(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:C;const o=[];t.datasets=e.map(s=>{const u=t.datasets.find(i=>i[n]===s[n]);return!u||!s.data||o.includes(u)?{...s}:(o.push(u),Object.assign(u,s),u)})}function T(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:C;const n={labels:[],datasets:[]};return y(n,t.labels),E(n,t.datasets,e),n}function j(t,e){const{height:n=150,width:o=300,redraw:s=!1,datasetIdKey:u,type:i,data:c,options:f,plugins:w=[],fallbackContent:I,updateMode:g,...K}=t,l=a.useRef(null),r=a.useRef(null),d=()=>{l.current&&(r.current=new b(l.current,{type:i,data:T(c,u),options:f&&{...f},plugins:w}),m(e,r.current))},p=()=>{m(e,null),r.current&&(r.current.destroy(),r.current=null)};return a.useEffect(()=>{!s&&r.current&&f&&B(r.current,f)},[s,f]),a.useEffect(()=>{!s&&r.current&&y(r.current.config.data,c.labels)},[s,c.labels]),a.useEffect(()=>{!s&&r.current&&c.datasets&&E(r.current.config.data,c.datasets,u)},[s,c.datasets]),a.useEffect(()=>{r.current&&(s?(p(),setTimeout(d)):r.current.update(g))},[s,f,c.labels,c.datasets,g]),a.useEffect(()=>{r.current&&(p(),setTimeout(d))},[i]),a.useEffect(()=>(d(),()=>p()),[]),h.createElement("canvas",{ref:l,role:"img",height:n,width:o,...K},I)}const D=a.forwardRef(j);function R(t,e){return b.register(e),a.forwardRef((n,o)=>h.createElement(D,{...n,ref:o,type:t}))}const M=R("line",L),P=R("bar",v);export{P as B,M as L}; diff --git a/compendium_v2/static/index-BYMaAaj9.js b/compendium_v2/static/index-CbTrjKrU.js similarity index 99% rename from compendium_v2/static/index-BYMaAaj9.js rename to compendium_v2/static/index-CbTrjKrU.js index 983535bdbf1bb77477527be98620ea3c6afe4e39..dfe3206a86759aab5e368b0d74bd7e085ff2c735 100644 --- a/compendium_v2/static/index-BYMaAaj9.js +++ b/compendium_v2/static/index-CbTrjKrU.js @@ -1,4 +1,4 @@ -import{r as c}from"./index-DBbSOdjk.js";let T={data:""},F=e=>typeof window=="object"?((e?e.querySelector("#_goober"):window._goober)||Object.assign((e||document.head).appendChild(document.createElement("style")),{innerHTML:" ",id:"_goober"})).firstChild:e||T,_=/(?:([\u0080-\uFFFF\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}\s*)/g,H=/\/\*[^]*?\*\/| +/g,z=/\n+/g,b=(e,t)=>{let r="",i="",n="";for(let a in e){let o=e[a];a[0]=="@"?a[1]=="i"?r=a+" "+o+";":i+=a[1]=="f"?b(o,a):a+"{"+b(o,a[1]=="k"?"":t)+"}":typeof o=="object"?i+=b(o,t?t.replace(/([^,])+/g,s=>a.replace(/([^,]*:\S+\([^)]*\))|([^,])+/g,l=>/&/.test(l)?l.replace(/&/g,s):s?s+" "+l:l)):a):o!=null&&(a=/^--/.test(a)?a:a.replace(/[A-Z]/g,"-$&").toLowerCase(),n+=b.p?b.p(a,o):a+":"+o+";")}return r+(t&&n?t+"{"+n+"}":n)+i},y={},P=e=>{if(typeof e=="object"){let t="";for(let r in e)t+=r+P(e[r]);return t}return e},L=(e,t,r,i,n)=>{let a=P(e),o=y[a]||(y[a]=(l=>{let d=0,u=11;for(;d<l.length;)u=101*u+l.charCodeAt(d++)>>>0;return"go"+u})(a));if(!y[o]){let l=a!==e?e:(d=>{let u,m,f=[{}];for(;u=_.exec(d.replace(H,""));)u[4]?f.shift():u[3]?(m=u[3].replace(z," ").trim(),f.unshift(f[0][m]=f[0][m]||{})):f[0][u[1]]=u[2].replace(z," ").trim();return f[0]})(e);y[o]=b(n?{["@keyframes "+o]:l}:l,r?"":"."+o)}let s=r&&y.g?y.g:null;return r&&(y.g=y[o]),((l,d,u,m)=>{m?d.data=d.data.replace(m,l):d.data.indexOf(l)===-1&&(d.data=u?l+d.data:d.data+l)})(y[o],t,i,s),o},R=(e,t,r)=>e.reduce((i,n,a)=>{let o=t[a];if(o&&o.call){let s=o(r),l=s&&s.props&&s.props.className||/^go/.test(s)&&s;o=l?"."+l:s&&typeof s=="object"?s.props?"":b(s,""):s===!1?"":s}return i+n+(o??"")},"");function j(e){let t=this||{},r=e.call?e(t.p):e;return L(r.unshift?r.raw?R(r,[].slice.call(arguments,1),t.p):r.reduce((i,n)=>Object.assign(i,n&&n.call?n(t.p):n),{}):r,F(t.target),t.g,t.o,t.k)}let I,A,N;j.bind({g:1});let h=j.bind({k:1});function U(e,t,r,i){b.p=t,I=e,A=r,N=i}function x(e,t){let r=this||{};return function(){let i=arguments;function n(a,o){let s=Object.assign({},a),l=s.className||n.className;r.p=Object.assign({theme:A&&A()},s),r.o=/ *go\d+/.test(l),s.className=j.apply(r,i)+(l?" "+l:"");let d=e;return e[0]&&(d=s.as||e,delete s.as),N&&d[0]&&N(s),I(d,s)}return n}}var V=e=>typeof e=="function",O=(e,t)=>V(e)?e(t):e,q=(()=>{let e=0;return()=>(++e).toString()})(),S=(()=>{let e;return()=>{if(e===void 0&&typeof window<"u"){let t=matchMedia("(prefers-reduced-motion: reduce)");e=!t||t.matches}return e}})(),Y=20,M=(e,t)=>{switch(t.type){case 0:return{...e,toasts:[t.toast,...e.toasts].slice(0,Y)};case 1:return{...e,toasts:e.toasts.map(a=>a.id===t.toast.id?{...a,...t.toast}:a)};case 2:let{toast:r}=t;return M(e,{type:e.toasts.find(a=>a.id===r.id)?1:0,toast:r});case 3:let{toastId:i}=t;return{...e,toasts:e.toasts.map(a=>a.id===i||i===void 0?{...a,dismissed:!0,visible:!1}:a)};case 4:return t.toastId===void 0?{...e,toasts:[]}:{...e,toasts:e.toasts.filter(a=>a.id!==t.toastId)};case 5:return{...e,pausedAt:t.time};case 6:let n=t.time-(e.pausedAt||0);return{...e,pausedAt:void 0,toasts:e.toasts.map(a=>({...a,pauseDuration:a.pauseDuration+n}))}}},D=[],v={toasts:[],pausedAt:void 0},w=e=>{v=M(v,e),D.forEach(t=>{t(v)})},Z={blank:4e3,error:4e3,success:2e3,loading:1/0,custom:4e3},B=(e={})=>{let[t,r]=c.useState(v),i=c.useRef(v);c.useEffect(()=>(i.current!==v&&r(v),D.push(r),()=>{let a=D.indexOf(r);a>-1&&D.splice(a,1)}),[]);let n=t.toasts.map(a=>{var o,s,l;return{...e,...e[a.type],...a,removeDelay:a.removeDelay||((o=e[a.type])==null?void 0:o.removeDelay)||(e==null?void 0:e.removeDelay),duration:a.duration||((s=e[a.type])==null?void 0:s.duration)||(e==null?void 0:e.duration)||Z[a.type],style:{...e.style,...(l=e[a.type])==null?void 0:l.style,...a.style}}});return{...t,toasts:n}},J=(e,t="blank",r)=>({createdAt:Date.now(),visible:!0,dismissed:!1,type:t,ariaProps:{role:"status","aria-live":"polite"},message:e,pauseDuration:0,...r,id:(r==null?void 0:r.id)||q()}),$=e=>(t,r)=>{let i=J(t,e,r);return w({type:2,toast:i}),i.id},p=(e,t)=>$("blank")(e,t);p.error=$("error");p.success=$("success");p.loading=$("loading");p.custom=$("custom");p.dismiss=e=>{w({type:3,toastId:e})};p.remove=e=>w({type:4,toastId:e});p.promise=(e,t,r)=>{let i=p.loading(t.loading,{...r,...r==null?void 0:r.loading});return typeof e=="function"&&(e=e()),e.then(n=>{let a=t.success?O(t.success,n):void 0;return a?p.success(a,{id:i,...r,...r==null?void 0:r.success}):p.dismiss(i),n}).catch(n=>{let a=t.error?O(t.error,n):void 0;a?p.error(a,{id:i,...r,...r==null?void 0:r.error}):p.dismiss(i)}),e};var K=(e,t)=>{w({type:1,toast:{id:e,height:t}})},W=()=>{w({type:5,time:Date.now()})},E=new Map,X=1e3,G=(e,t=X)=>{if(E.has(e))return;let r=setTimeout(()=>{E.delete(e),w({type:4,toastId:e})},t);E.set(e,r)},Q=e=>{let{toasts:t,pausedAt:r}=B(e);c.useEffect(()=>{if(r)return;let a=Date.now(),o=t.map(s=>{if(s.duration===1/0)return;let l=(s.duration||0)+s.pauseDuration-(a-s.createdAt);if(l<0){s.visible&&p.dismiss(s.id);return}return setTimeout(()=>p.dismiss(s.id),l)});return()=>{o.forEach(s=>s&&clearTimeout(s))}},[t,r]);let i=c.useCallback(()=>{r&&w({type:6,time:Date.now()})},[r]),n=c.useCallback((a,o)=>{let{reverseOrder:s=!1,gutter:l=8,defaultPosition:d}=o||{},u=t.filter(g=>(g.position||d)===(a.position||d)&&g.height),m=u.findIndex(g=>g.id===a.id),f=u.filter((g,C)=>C<m&&g.visible).length;return u.filter(g=>g.visible).slice(...s?[f+1]:[0,f]).reduce((g,C)=>g+(C.height||0)+l,0)},[t]);return c.useEffect(()=>{t.forEach(a=>{if(a.dismissed)G(a.id,a.removeDelay);else{let o=E.get(a.id);o&&(clearTimeout(o),E.delete(a.id))}})},[t]),{toasts:t,handlers:{updateHeight:K,startPause:W,endPause:i,calculateOffset:n}}},ee=h` +import{r as c}from"./index-bwDVKb7d.js";let T={data:""},F=e=>typeof window=="object"?((e?e.querySelector("#_goober"):window._goober)||Object.assign((e||document.head).appendChild(document.createElement("style")),{innerHTML:" ",id:"_goober"})).firstChild:e||T,_=/(?:([\u0080-\uFFFF\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}\s*)/g,H=/\/\*[^]*?\*\/| +/g,z=/\n+/g,b=(e,t)=>{let r="",i="",n="";for(let a in e){let o=e[a];a[0]=="@"?a[1]=="i"?r=a+" "+o+";":i+=a[1]=="f"?b(o,a):a+"{"+b(o,a[1]=="k"?"":t)+"}":typeof o=="object"?i+=b(o,t?t.replace(/([^,])+/g,s=>a.replace(/([^,]*:\S+\([^)]*\))|([^,])+/g,l=>/&/.test(l)?l.replace(/&/g,s):s?s+" "+l:l)):a):o!=null&&(a=/^--/.test(a)?a:a.replace(/[A-Z]/g,"-$&").toLowerCase(),n+=b.p?b.p(a,o):a+":"+o+";")}return r+(t&&n?t+"{"+n+"}":n)+i},y={},P=e=>{if(typeof e=="object"){let t="";for(let r in e)t+=r+P(e[r]);return t}return e},L=(e,t,r,i,n)=>{let a=P(e),o=y[a]||(y[a]=(l=>{let d=0,u=11;for(;d<l.length;)u=101*u+l.charCodeAt(d++)>>>0;return"go"+u})(a));if(!y[o]){let l=a!==e?e:(d=>{let u,m,f=[{}];for(;u=_.exec(d.replace(H,""));)u[4]?f.shift():u[3]?(m=u[3].replace(z," ").trim(),f.unshift(f[0][m]=f[0][m]||{})):f[0][u[1]]=u[2].replace(z," ").trim();return f[0]})(e);y[o]=b(n?{["@keyframes "+o]:l}:l,r?"":"."+o)}let s=r&&y.g?y.g:null;return r&&(y.g=y[o]),((l,d,u,m)=>{m?d.data=d.data.replace(m,l):d.data.indexOf(l)===-1&&(d.data=u?l+d.data:d.data+l)})(y[o],t,i,s),o},R=(e,t,r)=>e.reduce((i,n,a)=>{let o=t[a];if(o&&o.call){let s=o(r),l=s&&s.props&&s.props.className||/^go/.test(s)&&s;o=l?"."+l:s&&typeof s=="object"?s.props?"":b(s,""):s===!1?"":s}return i+n+(o??"")},"");function j(e){let t=this||{},r=e.call?e(t.p):e;return L(r.unshift?r.raw?R(r,[].slice.call(arguments,1),t.p):r.reduce((i,n)=>Object.assign(i,n&&n.call?n(t.p):n),{}):r,F(t.target),t.g,t.o,t.k)}let I,A,N;j.bind({g:1});let h=j.bind({k:1});function U(e,t,r,i){b.p=t,I=e,A=r,N=i}function x(e,t){let r=this||{};return function(){let i=arguments;function n(a,o){let s=Object.assign({},a),l=s.className||n.className;r.p=Object.assign({theme:A&&A()},s),r.o=/ *go\d+/.test(l),s.className=j.apply(r,i)+(l?" "+l:"");let d=e;return e[0]&&(d=s.as||e,delete s.as),N&&d[0]&&N(s),I(d,s)}return n}}var V=e=>typeof e=="function",O=(e,t)=>V(e)?e(t):e,q=(()=>{let e=0;return()=>(++e).toString()})(),S=(()=>{let e;return()=>{if(e===void 0&&typeof window<"u"){let t=matchMedia("(prefers-reduced-motion: reduce)");e=!t||t.matches}return e}})(),Y=20,M=(e,t)=>{switch(t.type){case 0:return{...e,toasts:[t.toast,...e.toasts].slice(0,Y)};case 1:return{...e,toasts:e.toasts.map(a=>a.id===t.toast.id?{...a,...t.toast}:a)};case 2:let{toast:r}=t;return M(e,{type:e.toasts.find(a=>a.id===r.id)?1:0,toast:r});case 3:let{toastId:i}=t;return{...e,toasts:e.toasts.map(a=>a.id===i||i===void 0?{...a,dismissed:!0,visible:!1}:a)};case 4:return t.toastId===void 0?{...e,toasts:[]}:{...e,toasts:e.toasts.filter(a=>a.id!==t.toastId)};case 5:return{...e,pausedAt:t.time};case 6:let n=t.time-(e.pausedAt||0);return{...e,pausedAt:void 0,toasts:e.toasts.map(a=>({...a,pauseDuration:a.pauseDuration+n}))}}},D=[],v={toasts:[],pausedAt:void 0},w=e=>{v=M(v,e),D.forEach(t=>{t(v)})},Z={blank:4e3,error:4e3,success:2e3,loading:1/0,custom:4e3},B=(e={})=>{let[t,r]=c.useState(v),i=c.useRef(v);c.useEffect(()=>(i.current!==v&&r(v),D.push(r),()=>{let a=D.indexOf(r);a>-1&&D.splice(a,1)}),[]);let n=t.toasts.map(a=>{var o,s,l;return{...e,...e[a.type],...a,removeDelay:a.removeDelay||((o=e[a.type])==null?void 0:o.removeDelay)||(e==null?void 0:e.removeDelay),duration:a.duration||((s=e[a.type])==null?void 0:s.duration)||(e==null?void 0:e.duration)||Z[a.type],style:{...e.style,...(l=e[a.type])==null?void 0:l.style,...a.style}}});return{...t,toasts:n}},J=(e,t="blank",r)=>({createdAt:Date.now(),visible:!0,dismissed:!1,type:t,ariaProps:{role:"status","aria-live":"polite"},message:e,pauseDuration:0,...r,id:(r==null?void 0:r.id)||q()}),$=e=>(t,r)=>{let i=J(t,e,r);return w({type:2,toast:i}),i.id},p=(e,t)=>$("blank")(e,t);p.error=$("error");p.success=$("success");p.loading=$("loading");p.custom=$("custom");p.dismiss=e=>{w({type:3,toastId:e})};p.remove=e=>w({type:4,toastId:e});p.promise=(e,t,r)=>{let i=p.loading(t.loading,{...r,...r==null?void 0:r.loading});return typeof e=="function"&&(e=e()),e.then(n=>{let a=t.success?O(t.success,n):void 0;return a?p.success(a,{id:i,...r,...r==null?void 0:r.success}):p.dismiss(i),n}).catch(n=>{let a=t.error?O(t.error,n):void 0;a?p.error(a,{id:i,...r,...r==null?void 0:r.error}):p.dismiss(i)}),e};var K=(e,t)=>{w({type:1,toast:{id:e,height:t}})},W=()=>{w({type:5,time:Date.now()})},E=new Map,X=1e3,G=(e,t=X)=>{if(E.has(e))return;let r=setTimeout(()=>{E.delete(e),w({type:4,toastId:e})},t);E.set(e,r)},Q=e=>{let{toasts:t,pausedAt:r}=B(e);c.useEffect(()=>{if(r)return;let a=Date.now(),o=t.map(s=>{if(s.duration===1/0)return;let l=(s.duration||0)+s.pauseDuration-(a-s.createdAt);if(l<0){s.visible&&p.dismiss(s.id);return}return setTimeout(()=>p.dismiss(s.id),l)});return()=>{o.forEach(s=>s&&clearTimeout(s))}},[t,r]);let i=c.useCallback(()=>{r&&w({type:6,time:Date.now()})},[r]),n=c.useCallback((a,o)=>{let{reverseOrder:s=!1,gutter:l=8,defaultPosition:d}=o||{},u=t.filter(g=>(g.position||d)===(a.position||d)&&g.height),m=u.findIndex(g=>g.id===a.id),f=u.filter((g,C)=>C<m&&g.visible).length;return u.filter(g=>g.visible).slice(...s?[f+1]:[0,f]).reduce((g,C)=>g+(C.height||0)+l,0)},[t]);return c.useEffect(()=>{t.forEach(a=>{if(a.dismissed)G(a.id,a.removeDelay);else{let o=E.get(a.id);o&&(clearTimeout(o),E.delete(a.id))}})},[t]),{toasts:t,handlers:{updateHeight:K,startPause:W,endPause:i,calculateOffset:n}}},ee=h` from { transform: scale(0) rotate(45deg); opacity: 0; diff --git a/compendium_v2/static/index-DkYuYqrz.js b/compendium_v2/static/index-Y7aK5es_.js similarity index 94% rename from compendium_v2/static/index-DkYuYqrz.js rename to compendium_v2/static/index-Y7aK5es_.js index a3e292016fd6f1642f2ec2dd0a5ddbf27e14322e..534c18f1cef0299ae84df943e3e8ac78dc4dde88 100644 --- a/compendium_v2/static/index-DkYuYqrz.js +++ b/compendium_v2/static/index-Y7aK5es_.js @@ -1 +1 @@ -import{r as a,_ as c}from"./index-DBbSOdjk.js";const o=a.createContext(null);o.displayName="InputGroupContext";function n(t){return c({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z"},child:[]}]})(t)}function e(t){return c({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M216 0h80c13.3 0 24 10.7 24 24v168h87.7c17.8 0 26.7 21.5 14.1 34.1L269.7 378.3c-7.5 7.5-19.8 7.5-27.3 0L90.1 226.1c-12.6-12.6-3.7-34.1 14.1-34.1H192V24c0-13.3 10.7-24 24-24zm296 376v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h146.7l49 49c20.1 20.1 52.5 20.1 72.6 0l49-49H488c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z"},child:[]}]})(t)}export{e as F,n as a,o as c}; +import{r as a,_ as c}from"./index-bwDVKb7d.js";const o=a.createContext(null);o.displayName="InputGroupContext";function n(t){return c({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z"},child:[]}]})(t)}function e(t){return c({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M216 0h80c13.3 0 24 10.7 24 24v168h87.7c17.8 0 26.7 21.5 14.1 34.1L269.7 378.3c-7.5 7.5-19.8 7.5-27.3 0L90.1 226.1c-12.6-12.6-3.7-34.1 14.1-34.1H192V24c0-13.3 10.7-24 24-24zm296 376v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h146.7l49 49c20.1 20.1 52.5 20.1 72.6 0l49-49H488c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z"},child:[]}]})(t)}export{e as F,n as a,o as c}; diff --git a/compendium_v2/static/index-DBbSOdjk.js b/compendium_v2/static/index-bwDVKb7d.js similarity index 98% rename from compendium_v2/static/index-DBbSOdjk.js rename to compendium_v2/static/index-bwDVKb7d.js index 7526ed3bc0add160ed7e5605c650224b74e7b49d..74f797c745a06f21d400470897a70692f4ea22d4 100644 --- a/compendium_v2/static/index-DBbSOdjk.js +++ b/compendium_v2/static/index-bwDVKb7d.js @@ -1,4 +1,4 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["Budget-CVs5cg26.js","index-DyJczNpq.js","useData-CcKTpALT.js","SideBar-DfD7Pj8p.js","xlsx-BHRztzV8.js","index-DkYuYqrz.js","hook-D9Tuu5oJ.js","charthelpers-CHBq5wBZ.js","ChargingStructure-CPkeaV7G.js","PillTable-CIcKqQJh.js","ColorPill-CuYEYQ56.js","Table-DNomfHX4.js","ECProjects-CegfdWfI.js","NrenYearTable-C1JRhqy_.js","FundingSource-BB230uTC.js","chartjs-plugin-datalabels.esm-C6J4S2ma.js","ParentOrganisation-C_34aAmv.js","StaffGraph-BhGKlAbH.js","HTMLLegendPlugin-Ci0zt1Jy.js","StaffGraphAbsolute-DYsL_bJE.js","SubOrganisation-Csf8sqHo.js","Audits-DrRfyBs4.js","BusinessContinuity-jrf4-tia.js","CentralProcurement-C2sliv5Z.js","CorporateStrategy-B96fGlR3.js","CrisisExercises-D8VSuWUx.js","CrisisManagement-DPAIuZEV.js","EOSCListings-cU4UG7og.js","Policy-CuNV_l7a.js","SecurityControls-C_redfTy.js","ServiceLevelTargets-CXuM4ENo.js","ServiceManagementFramework-B5G4LhDr.js","ServicesOffered-B_OBZM5I.js","ScrollableMatrix-CNydABqZ.js","ConnectedInstitutionsURLs-BmsNaWXO.js","ConnectedUser-CfYJAE0v.js","RemoteCampuses-NGRzWQf8.js","AlienWave-CpRPpDKT.js","AlienWaveInternal-DDEuk0kg.js","Automation-7WUmNT-G.js","CapacityCoreIP-Br9KX5yH.js","CapacityLargestLink-LEyWpKvI.js","CertificateProvider-Bvo47nf9.js","DarkFibreLease-rEaEK83T.js","DarkFibreInstalled-Dlwn_bKp.js","ExternalConnections-CQ5ri9Cp.js","FibreLight-BhW_HRmH.js","IRUDuration-RAtcDfR4.js","MonitoringTools-DrashCOV.js","NetworkFunctionVirtualisation-DgYBul36.js","NetworkMapUrls-xqgin1fL.js","NonRAndEPeer-B8hczKc3.js","OPsAutomation-CaApYas2.js","PassiveMonitoring-HFCN_S9d.js","PertTeam-CvKn3tG_.js","SiemVendors-BCpq8Hqq.js","TrafficRatio-hTxXFYQn.js","TrafficUrl-DMw44Rpa.js","TrafficVolume-CBGOlk8Z.js","WeatherMap-C2uAbI_g.js","Services-2YDP1wpB.js","Landing-Dx2MGVWO.js","SurveySidebar-C_LqylD3.js","survey-3meXCY6T.js","SurveyContainerComponent-CbFnC4ad.js","index-BYMaAaj9.js","survey.core-Dz7VpPEK.js","validation-COFmylEH.js","DaA47pDB.css","SurveyManagementComponent-Lo-9bnmr.js","lodash-YlUwNVit.js","UserManagementComponent-C2zXLwZT.js"])))=>i.map(i=>d[i]); +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["Budget-Bq0pX5us.js","index-0m6TK_PI.js","useData-Ba-3avp3.js","SideBar-D_Yxr_mj.js","xlsx-BHRztzV8.js","index-Y7aK5es_.js","hook-BGVjY_62.js","charthelpers-Cs3DRBw0.js","ChargingStructure-1_V-4vcV.js","PillTable-C7hMt52B.js","ColorPill-D7RILPI9.js","Table-D4mMg192.js","ECProjects-XbmNbffI.js","NrenYearTable-9mB4hcmt.js","FundingSource-gsVmQ_kq.js","chartjs-plugin-datalabels.esm-BoLCz2jr.js","ParentOrganisation-DGI8NZ1v.js","StaffGraph-DAZsRMiP.js","HTMLLegendPlugin-sf8csfcD.js","StaffGraphAbsolute-C52xAnNh.js","SubOrganisation-v6toYwK3.js","Audits-C9KWJV7H.js","BusinessContinuity-BIU4-n6C.js","CentralProcurement-CAaLLWzc.js","CorporateStrategy-BxCdux2s.js","CrisisExercises-E4bPkDFW.js","CrisisManagement-ClnT7m7H.js","EOSCListings-BDxaE5x6.js","Policy-BCFRP7W4.js","SecurityControls-PgdQDxmF.js","ServiceLevelTargets-D4y0vrZC.js","ServiceManagementFramework-DVUOmqGy.js","ServicesOffered-D1PvVwDW.js","ScrollableMatrix-BXISTRn4.js","ConnectedInstitutionsURLs-B0cjkEDo.js","ConnectedUser-B-GDv3Er.js","RemoteCampuses-B8JV-PDN.js","AlienWave-DnjbI9kz.js","AlienWaveInternal-D_ajTXTF.js","Automation-9p1JVo02.js","CapacityCoreIP-CL5l0Sfy.js","CapacityLargestLink-BfzlpsDK.js","CertificateProvider-B_JLIZxE.js","DarkFibreLease-GvJ-CvnR.js","DarkFibreInstalled-B2WOEBMo.js","ExternalConnections-FNDoV6sd.js","FibreLight-CUiE7wzj.js","IRUDuration-BjNHS_5I.js","MonitoringTools-CbBhIorB.js","NetworkFunctionVirtualisation-CzNYu8co.js","NetworkMapUrls-Dt6zTyC6.js","NonRAndEPeer-BYXfmV9K.js","OPsAutomation-Bi0pOS0H.js","PassiveMonitoring-BNpFmLP-.js","PertTeam-DDB9EKsh.js","SiemVendors-DwQpCR11.js","TrafficRatio-DxSttJzu.js","TrafficUrl-DW9ps6i5.js","TrafficVolume-Be6qnrAx.js","WeatherMap-DHJE1C4l.js","Services-N5zhXu4f.js","Landing-B1fxodP3.js","SurveySidebar-Ef_si00x.js","survey-3meXCY6T.js","SurveyContainerComponent-z6e23PTc.js","index-CbTrjKrU.js","survey.core-Dz7VpPEK.js","validation-COFmylEH.js","DaA47pDB.css","SurveyManagementComponent-B6hmLBQS.js","lodash-BV6TOxcP.js","UserManagementComponent-BGNFMFlT.js"])))=>i.map(i=>d[i]); var Kg=Object.defineProperty;var $g=(l,n,c)=>n in l?Kg(l,n,{enumerable:!0,configurable:!0,writable:!0,value:c}):l[n]=c;var wm=(l,n,c)=>$g(l,typeof n!="symbol"?n+"":n,c);(function(){const n=document.createElement("link").relList;if(n&&n.supports&&n.supports("modulepreload"))return;for(const u of document.querySelectorAll('link[rel="modulepreload"]'))s(u);new MutationObserver(u=>{for(const f of u)if(f.type==="childList")for(const d of f.addedNodes)d.tagName==="LINK"&&d.rel==="modulepreload"&&s(d)}).observe(document,{childList:!0,subtree:!0});function c(u){const f={};return u.integrity&&(f.integrity=u.integrity),u.referrerPolicy&&(f.referrerPolicy=u.referrerPolicy),u.crossOrigin==="use-credentials"?f.credentials="include":u.crossOrigin==="anonymous"?f.credentials="omit":f.credentials="same-origin",f}function s(u){if(u.ep)return;u.ep=!0;const f=c(u);fetch(u.href,f)}})();var U2=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function fr(l){return l&&l.__esModule&&Object.prototype.hasOwnProperty.call(l,"default")?l.default:l}var to={exports:{}},er={};/** * @license React * react-jsx-runtime.production.js @@ -80,4 +80,4 @@ Please change the parent <Route path="${q}"> to <Route path="${q==="/"?"*":`${q} Copyright (c) 2018 Jed Watson. Licensed under the MIT License (MIT), see http://jedwatson.github.io/classnames -*/var dy;function AE(){return dy||(dy=1,function(l){(function(){var n={}.hasOwnProperty;function c(){for(var f="",d=0;d<arguments.length;d++){var y=arguments[d];y&&(f=u(f,s(y)))}return f}function s(f){if(typeof f=="string"||typeof f=="number")return f;if(typeof f!="object")return"";if(Array.isArray(f))return c.apply(null,f);if(f.toString!==Object.prototype.toString&&!f.toString.toString().includes("[native code]"))return f.toString();var d="";for(var y in f)n.call(f,y)&&f[y]&&(d=u(d,y));return d}function u(f,d){return d?f?f+" "+d:f+d:f}l.exports?(c.default=c,l.exports=c):window.classNames=c})()}(po)),po.exports}var ME=AE();const Ae=fr(ME);function zE(l,n){if(l==null)return{};var c={};for(var s in l)if({}.hasOwnProperty.call(l,s)){if(n.includes(s))continue;c[s]=l[s]}return c}function Ao(l,n){return Ao=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(c,s){return c.__proto__=s,c},Ao(l,n)}function LE(l,n){l.prototype=Object.create(n.prototype),l.prototype.constructor=l,Ao(l,n)}const UE=["xxl","xl","lg","md","sm","xs"],HE="xs",Zu=g.createContext({prefixes:{},breakpoints:UE,minBreakpoint:HE});function Qe(l,n){const{prefixes:c}=g.useContext(Zu);return l||c[n]||n}function tp(){const{breakpoints:l}=g.useContext(Zu);return l}function np(){const{minBreakpoint:l}=g.useContext(Zu);return l}function BE(){const{dir:l}=g.useContext(Zu);return l==="rtl"}function Ku(l){return l&&l.ownerDocument||document}function qE(l){var n=Ku(l);return n&&n.defaultView||window}function VE(l,n){return qE(l).getComputedStyle(l,n)}var YE=/([A-Z])/g;function kE(l){return l.replace(YE,"-$1").toLowerCase()}var GE=/^ms-/;function Ou(l){return kE(l).replace(GE,"-ms-")}var XE=/^((translate|rotate|scale)(X|Y|Z|3d)?|matrix(3d)?|perspective|skew(X|Y)?)$/i;function QE(l){return!!(l&&XE.test(l))}function gl(l,n){var c="",s="";if(typeof n=="string")return l.style.getPropertyValue(Ou(n))||VE(l).getPropertyValue(Ou(n));Object.keys(n).forEach(function(u){var f=n[u];!f&&f!==0?l.style.removeProperty(Ou(u)):QE(u)?s+=u+"("+f+") ":c+=Ou(u)+": "+f+";"}),s&&(c+="transform: "+s+";"),l.style.cssText+=";"+c}var vo={exports:{}},go,hy;function ZE(){if(hy)return go;hy=1;var l="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";return go=l,go}var Eo,my;function KE(){if(my)return Eo;my=1;var l=ZE();function n(){}function c(){}return c.resetWarningCache=n,Eo=function(){function s(d,y,v,p,b,R){if(R!==l){var S=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw S.name="Invariant Violation",S}}s.isRequired=s;function u(){return s}var f={array:s,bigint:s,bool:s,func:s,number:s,object:s,string:s,symbol:s,any:s,arrayOf:u,element:s,elementType:s,instanceOf:u,node:s,objectOf:u,oneOf:u,oneOfType:u,shape:u,exact:u,checkPropTypes:c,resetWarningCache:n};return f.PropTypes=f,f},Eo}var yy;function $E(){return yy||(yy=1,vo.exports=KE()()),vo.exports}var FE=$E();const fa=fr(FE),py={disabled:!1},ap=Yt.createContext(null);var JE=function(n){return n.scrollTop},cr="unmounted",hl="exited",Ba="entering",yl="entered",Mo="exiting",ha=function(l){LE(n,l);function n(s,u){var f;f=l.call(this,s,u)||this;var d=u,y=d&&!d.isMounting?s.enter:s.appear,v;return f.appearStatus=null,s.in?y?(v=hl,f.appearStatus=Ba):v=yl:s.unmountOnExit||s.mountOnEnter?v=cr:v=hl,f.state={status:v},f.nextCallback=null,f}n.getDerivedStateFromProps=function(u,f){var d=u.in;return d&&f.status===cr?{status:hl}:null};var c=n.prototype;return c.componentDidMount=function(){this.updateStatus(!0,this.appearStatus)},c.componentDidUpdate=function(u){var f=null;if(u!==this.props){var d=this.state.status;this.props.in?d!==Ba&&d!==yl&&(f=Ba):(d===Ba||d===yl)&&(f=Mo)}this.updateStatus(!1,f)},c.componentWillUnmount=function(){this.cancelNextCallback()},c.getTimeouts=function(){var u=this.props.timeout,f,d,y;return f=d=y=u,u!=null&&typeof u!="number"&&(f=u.exit,d=u.enter,y=u.appear!==void 0?u.appear:d),{exit:f,enter:d,appear:y}},c.updateStatus=function(u,f){if(u===void 0&&(u=!1),f!==null)if(this.cancelNextCallback(),f===Ba){if(this.props.unmountOnExit||this.props.mountOnEnter){var d=this.props.nodeRef?this.props.nodeRef.current:ii.findDOMNode(this);d&&JE(d)}this.performEnter(u)}else this.performExit();else this.props.unmountOnExit&&this.state.status===hl&&this.setState({status:cr})},c.performEnter=function(u){var f=this,d=this.props.enter,y=this.context?this.context.isMounting:u,v=this.props.nodeRef?[y]:[ii.findDOMNode(this),y],p=v[0],b=v[1],R=this.getTimeouts(),S=y?R.appear:R.enter;if(!u&&!d||py.disabled){this.safeSetState({status:yl},function(){f.props.onEntered(p)});return}this.props.onEnter(p,b),this.safeSetState({status:Ba},function(){f.props.onEntering(p,b),f.onTransitionEnd(S,function(){f.safeSetState({status:yl},function(){f.props.onEntered(p,b)})})})},c.performExit=function(){var u=this,f=this.props.exit,d=this.getTimeouts(),y=this.props.nodeRef?void 0:ii.findDOMNode(this);if(!f||py.disabled){this.safeSetState({status:hl},function(){u.props.onExited(y)});return}this.props.onExit(y),this.safeSetState({status:Mo},function(){u.props.onExiting(y),u.onTransitionEnd(d.exit,function(){u.safeSetState({status:hl},function(){u.props.onExited(y)})})})},c.cancelNextCallback=function(){this.nextCallback!==null&&(this.nextCallback.cancel(),this.nextCallback=null)},c.safeSetState=function(u,f){f=this.setNextCallback(f),this.setState(u,f)},c.setNextCallback=function(u){var f=this,d=!0;return this.nextCallback=function(y){d&&(d=!1,f.nextCallback=null,u(y))},this.nextCallback.cancel=function(){d=!1},this.nextCallback},c.onTransitionEnd=function(u,f){this.setNextCallback(f);var d=this.props.nodeRef?this.props.nodeRef.current:ii.findDOMNode(this),y=u==null&&!this.props.addEndListener;if(!d||y){setTimeout(this.nextCallback,0);return}if(this.props.addEndListener){var v=this.props.nodeRef?[this.nextCallback]:[d,this.nextCallback],p=v[0],b=v[1];this.props.addEndListener(p,b)}u!=null&&setTimeout(this.nextCallback,u)},c.render=function(){var u=this.state.status;if(u===cr)return null;var f=this.props,d=f.children;f.in,f.mountOnEnter,f.unmountOnExit,f.appear,f.enter,f.exit,f.timeout,f.addEndListener,f.onEnter,f.onEntering,f.onEntered,f.onExit,f.onExiting,f.onExited,f.nodeRef;var y=zE(f,["children","in","mountOnEnter","unmountOnExit","appear","enter","exit","timeout","addEndListener","onEnter","onEntering","onEntered","onExit","onExiting","onExited","nodeRef"]);return Yt.createElement(ap.Provider,{value:null},typeof d=="function"?d(u,y):Yt.cloneElement(Yt.Children.only(d),y))},n}(Yt.Component);ha.contextType=ap;ha.propTypes={};function ei(){}ha.defaultProps={in:!1,mountOnEnter:!1,unmountOnExit:!1,appear:!1,enter:!0,exit:!0,onEnter:ei,onEntering:ei,onEntered:ei,onExit:ei,onExiting:ei,onExited:ei};ha.UNMOUNTED=cr;ha.EXITED=hl;ha.ENTERING=Ba;ha.ENTERED=yl;ha.EXITING=Mo;function PE(l){return l.code==="Escape"||l.keyCode===27}function WE(){const l=g.version.split(".");return{major:+l[0],minor:+l[1],patch:+l[2]}}function $u(l){if(!l||typeof l=="function")return null;const{major:n}=WE();return n>=19?l.props.ref:l.ref}const ri=!!(typeof window<"u"&&window.document&&window.document.createElement);var zo=!1,Lo=!1;try{var bo={get passive(){return zo=!0},get once(){return Lo=zo=!0}};ri&&(window.addEventListener("test",bo,bo),window.removeEventListener("test",bo,!0))}catch{}function lp(l,n,c,s){if(s&&typeof s!="boolean"&&!Lo){var u=s.once,f=s.capture,d=c;!Lo&&u&&(d=c.__once||function y(v){this.removeEventListener(n,y,f),c.call(this,v)},c.__once=d),l.addEventListener(n,d,zo?s:f)}l.addEventListener(n,c,s)}function Uo(l,n,c,s){var u=s&&typeof s!="boolean"?s.capture:s;l.removeEventListener(n,c,u),c.__once&&l.removeEventListener(n,c.__once,u)}function Bu(l,n,c,s){return lp(l,n,c,s),function(){Uo(l,n,c,s)}}function IE(l,n,c,s){if(s===void 0&&(s=!0),l){var u=document.createEvent("HTMLEvents");u.initEvent(n,c,s),l.dispatchEvent(u)}}function eb(l){var n=gl(l,"transitionDuration")||"",c=n.indexOf("ms")===-1?1e3:1;return parseFloat(n)*c}function tb(l,n,c){c===void 0&&(c=5);var s=!1,u=setTimeout(function(){s||IE(l,"transitionend",!0)},n+c),f=Bu(l,"transitionend",function(){s=!0},{once:!0});return function(){clearTimeout(u),f()}}function ip(l,n,c,s){c==null&&(c=eb(l)||0);var u=tb(l,c,s),f=Bu(l,"transitionend",n);return function(){u(),f()}}function vy(l,n){const c=gl(l,n)||"",s=c.indexOf("ms")===-1?1e3:1;return parseFloat(c)*s}function nb(l,n){const c=vy(l,"transitionDuration"),s=vy(l,"transitionDelay"),u=ip(l,f=>{f.target===l&&(u(),n(f))},c+s)}function ab(l){l.offsetHeight}const gy=l=>!l||typeof l=="function"?l:n=>{l.current=n};function lb(l,n){const c=gy(l),s=gy(n);return u=>{c&&c(u),s&&s(u)}}function rp(l,n){return g.useMemo(()=>lb(l,n),[l,n])}function ib(l){return l&&"setState"in l?ii.findDOMNode(l):l??null}const rb=Yt.forwardRef(({onEnter:l,onEntering:n,onEntered:c,onExit:s,onExiting:u,onExited:f,addEndListener:d,children:y,childRef:v,...p},b)=>{const R=g.useRef(null),S=rp(R,v),_=N=>{S(ib(N))},O=N=>W=>{N&&R.current&&N(R.current,W)},H=g.useCallback(O(l),[l]),U=g.useCallback(O(n),[n]),M=g.useCallback(O(c),[c]),q=g.useCallback(O(s),[s]),Y=g.useCallback(O(u),[u]),J=g.useCallback(O(f),[f]),G=g.useCallback(O(d),[d]);return h.jsx(ha,{ref:b,...p,onEnter:H,onEntered:M,onEntering:U,onExit:q,onExited:J,onExiting:Y,addEndListener:G,nodeRef:R,children:typeof y=="function"?(N,W)=>y(N,{...W,ref:_}):Yt.cloneElement(y,{ref:_})})});function ub(l){const n=g.useRef(l);return g.useEffect(()=>{n.current=l},[l]),n}function Ho(l){const n=ub(l);return g.useCallback(function(...c){return n.current&&n.current(...c)},[n])}const Po=l=>g.forwardRef((n,c)=>h.jsx("div",{...n,ref:c,className:Ae(n.className,l)}));function cb(l){const n=g.useRef(l);return g.useEffect(()=>{n.current=l},[l]),n}function pl(l){const n=cb(l);return g.useCallback(function(...c){return n.current&&n.current(...c)},[n])}function sb(){const l=g.useRef(!0),n=g.useRef(()=>l.current);return g.useEffect(()=>(l.current=!0,()=>{l.current=!1}),[]),n.current}function ob(l){const n=g.useRef(null);return g.useEffect(()=>{n.current=l}),n.current}const fb=typeof global<"u"&&global.navigator&&global.navigator.product==="ReactNative",db=typeof document<"u",Ey=db||fb?g.useLayoutEffect:g.useEffect,hb=["as","disabled"];function mb(l,n){if(l==null)return{};var c={};for(var s in l)if({}.hasOwnProperty.call(l,s)){if(n.indexOf(s)>=0)continue;c[s]=l[s]}return c}function yb(l){return!l||l.trim()==="#"}function up({tagName:l,disabled:n,href:c,target:s,rel:u,role:f,onClick:d,tabIndex:y=0,type:v}){l||(c!=null||s!=null||u!=null?l="a":l="button");const p={tagName:l};if(l==="button")return[{type:v||"button",disabled:n},p];const b=S=>{if((n||l==="a"&&yb(c))&&S.preventDefault(),n){S.stopPropagation();return}d==null||d(S)},R=S=>{S.key===" "&&(S.preventDefault(),b(S))};return l==="a"&&(c||(c="#"),n&&(c=void 0)),[{role:f??"button",disabled:void 0,tabIndex:n?void 0:y,href:c,target:l==="a"?s:void 0,"aria-disabled":n||void 0,rel:l==="a"?u:void 0,onClick:b,onKeyDown:R},p]}const pb=g.forwardRef((l,n)=>{let{as:c,disabled:s}=l,u=mb(l,hb);const[f,{tagName:d}]=up(Object.assign({tagName:c,disabled:s},u));return h.jsx(d,Object.assign({},u,f,{ref:n}))});pb.displayName="Button";const vb={[Ba]:"show",[yl]:"show"},Wo=g.forwardRef(({className:l,children:n,transitionClasses:c={},onEnter:s,...u},f)=>{const d={in:!1,timeout:300,mountOnEnter:!1,unmountOnExit:!1,appear:!1,...u},y=g.useCallback((v,p)=>{ab(v),s==null||s(v,p)},[s]);return h.jsx(rb,{ref:f,addEndListener:nb,...d,onEnter:y,childRef:$u(n),children:(v,p)=>g.cloneElement(n,{...p,className:Ae("fade",l,n.props.className,vb[v],c[v])})})});Wo.displayName="Fade";const gb={"aria-label":fa.string,onClick:fa.func,variant:fa.oneOf(["white"])},Io=g.forwardRef(({className:l,variant:n,"aria-label":c="Close",...s},u)=>h.jsx("button",{ref:u,type:"button",className:Ae("btn-close",n&&`btn-close-${n}`,l),"aria-label":c,...s}));Io.displayName="CloseButton";Io.propTypes=gb;const Bo=g.forwardRef(({as:l,bsPrefix:n,variant:c="primary",size:s,active:u=!1,disabled:f=!1,className:d,...y},v)=>{const p=Qe(n,"btn"),[b,{tagName:R}]=up({tagName:l,disabled:f,...y}),S=R;return h.jsx(S,{...b,...y,ref:v,disabled:f,className:Ae(d,p,u&&"active",c&&`${p}-${c}`,s&&`${p}-${s}`,y.href&&f&&"disabled")})});Bo.displayName="Button";const ef=g.forwardRef(({className:l,bsPrefix:n,as:c="div",...s},u)=>(n=Qe(n,"card-body"),h.jsx(c,{ref:u,className:Ae(l,n),...s})));ef.displayName="CardBody";const cp=g.forwardRef(({className:l,bsPrefix:n,as:c="div",...s},u)=>(n=Qe(n,"card-footer"),h.jsx(c,{ref:u,className:Ae(l,n),...s})));cp.displayName="CardFooter";const sp=g.createContext(null);sp.displayName="CardHeaderContext";const op=g.forwardRef(({bsPrefix:l,className:n,as:c="div",...s},u)=>{const f=Qe(l,"card-header"),d=g.useMemo(()=>({cardHeaderBsPrefix:f}),[f]);return h.jsx(sp.Provider,{value:d,children:h.jsx(c,{ref:u,...s,className:Ae(n,f)})})});op.displayName="CardHeader";const fp=g.forwardRef(({bsPrefix:l,className:n,variant:c,as:s="img",...u},f)=>{const d=Qe(l,"card-img");return h.jsx(s,{ref:f,className:Ae(c?`${d}-${c}`:d,n),...u})});fp.displayName="CardImg";const dp=g.forwardRef(({className:l,bsPrefix:n,as:c="div",...s},u)=>(n=Qe(n,"card-img-overlay"),h.jsx(c,{ref:u,className:Ae(l,n),...s})));dp.displayName="CardImgOverlay";const hp=g.forwardRef(({className:l,bsPrefix:n,as:c="a",...s},u)=>(n=Qe(n,"card-link"),h.jsx(c,{ref:u,className:Ae(l,n),...s})));hp.displayName="CardLink";const Eb=Po("h6"),mp=g.forwardRef(({className:l,bsPrefix:n,as:c=Eb,...s},u)=>(n=Qe(n,"card-subtitle"),h.jsx(c,{ref:u,className:Ae(l,n),...s})));mp.displayName="CardSubtitle";const yp=g.forwardRef(({className:l,bsPrefix:n,as:c="p",...s},u)=>(n=Qe(n,"card-text"),h.jsx(c,{ref:u,className:Ae(l,n),...s})));yp.displayName="CardText";const bb=Po("h5"),pp=g.forwardRef(({className:l,bsPrefix:n,as:c=bb,...s},u)=>(n=Qe(n,"card-title"),h.jsx(c,{ref:u,className:Ae(l,n),...s})));pp.displayName="CardTitle";const vp=g.forwardRef(({bsPrefix:l,className:n,bg:c,text:s,border:u,body:f=!1,children:d,as:y="div",...v},p)=>{const b=Qe(l,"card");return h.jsx(y,{ref:p,...v,className:Ae(n,b,c&&`bg-${c}`,s&&`text-${s}`,u&&`border-${u}`),children:f?h.jsx(ef,{children:d}):d})});vp.displayName="Card";const Yn=Object.assign(vp,{Img:fp,Title:pp,Subtitle:mp,Body:ef,Link:hp,Text:yp,Header:op,Footer:cp,ImgOverlay:dp});function Sb(l){const n=g.useRef(l);return n.current=l,n}function xb(l){const n=Sb(l);g.useEffect(()=>()=>n.current(),[])}function _b(l,n){return g.Children.toArray(l).some(c=>g.isValidElement(c)&&c.type===n)}function Rb({as:l,bsPrefix:n,className:c,...s}){n=Qe(n,"col");const u=tp(),f=np(),d=[],y=[];return u.forEach(v=>{const p=s[v];delete s[v];let b,R,S;typeof p=="object"&&p!=null?{span:b,offset:R,order:S}=p:b=p;const _=v!==f?`-${v}`:"";b&&d.push(b===!0?`${n}${_}`:`${n}${_}-${b}`),S!=null&&y.push(`order${_}-${S}`),R!=null&&y.push(`offset${_}-${R}`)}),[{...s,className:Ae(c,...d,...y)},{as:l,bsPrefix:n,spans:d}]}const ln=g.forwardRef((l,n)=>{const[{className:c,...s},{as:u="div",bsPrefix:f,spans:d}]=Rb(l);return h.jsx(u,{...s,ref:n,className:Ae(c,!d.length&&f)})});ln.displayName="Col";const Ya=g.forwardRef(({bsPrefix:l,fluid:n=!1,as:c="div",className:s,...u},f)=>{const d=Qe(l,"container"),y=typeof n=="string"?`-${n}`:"-fluid";return h.jsx(c,{ref:f,...u,className:Ae(s,n?`${d}${y}`:d)})});Ya.displayName="Container";var Tb=Function.prototype.bind.call(Function.prototype.call,[].slice);function ti(l,n){return Tb(l.querySelectorAll(n))}function by(l,n){if(l.contains)return l.contains(n);if(l.compareDocumentPosition)return l===n||!!(l.compareDocumentPosition(n)&16)}var So,Sy;function Nb(){if(Sy)return So;Sy=1;var l=function(){};return So=l,So}var Cb=Nb();const q2=fr(Cb),jb="data-rr-ui-";function Ob(l){return`${jb}${l}`}const gp=g.createContext(ri?window:void 0);gp.Provider;function tf(){return g.useContext(gp)}const Db={type:fa.string,tooltip:fa.bool,as:fa.elementType},Fu=g.forwardRef(({as:l="div",className:n,type:c="valid",tooltip:s=!1,...u},f)=>h.jsx(l,{...u,ref:f,className:Ae(n,`${c}-${s?"tooltip":"feedback"}`)}));Fu.displayName="Feedback";Fu.propTypes=Db;const da=g.createContext({}),nf=g.forwardRef(({id:l,bsPrefix:n,className:c,type:s="checkbox",isValid:u=!1,isInvalid:f=!1,as:d="input",...y},v)=>{const{controlId:p}=g.useContext(da);return n=Qe(n,"form-check-input"),h.jsx(d,{...y,ref:v,type:s,id:l||p,className:Ae(c,n,u&&"is-valid",f&&"is-invalid")})});nf.displayName="FormCheckInput";const qu=g.forwardRef(({bsPrefix:l,className:n,htmlFor:c,...s},u)=>{const{controlId:f}=g.useContext(da);return l=Qe(l,"form-check-label"),h.jsx("label",{...s,ref:u,htmlFor:c||f,className:Ae(n,l)})});qu.displayName="FormCheckLabel";const Ep=g.forwardRef(({id:l,bsPrefix:n,bsSwitchPrefix:c,inline:s=!1,reverse:u=!1,disabled:f=!1,isValid:d=!1,isInvalid:y=!1,feedbackTooltip:v=!1,feedback:p,feedbackType:b,className:R,style:S,title:_="",type:O="checkbox",label:H,children:U,as:M="input",...q},Y)=>{n=Qe(n,"form-check"),c=Qe(c,"form-switch");const{controlId:J}=g.useContext(da),G=g.useMemo(()=>({controlId:l||J}),[J,l]),N=!U&&H!=null&&H!==!1||_b(U,qu),W=h.jsx(nf,{...q,type:O==="switch"?"checkbox":O,ref:Y,isValid:d,isInvalid:y,disabled:f,as:M});return h.jsx(da.Provider,{value:G,children:h.jsx("div",{style:S,className:Ae(R,N&&n,s&&`${n}-inline`,u&&`${n}-reverse`,O==="switch"&&c),children:U||h.jsxs(h.Fragment,{children:[W,N&&h.jsx(qu,{title:_,children:H}),p&&h.jsx(Fu,{type:b,tooltip:v,children:p})]})})})});Ep.displayName="FormCheck";const Vu=Object.assign(Ep,{Input:nf,Label:qu}),bp=g.forwardRef(({bsPrefix:l,type:n,size:c,htmlSize:s,id:u,className:f,isValid:d=!1,isInvalid:y=!1,plaintext:v,readOnly:p,as:b="input",...R},S)=>{const{controlId:_}=g.useContext(da);return l=Qe(l,"form-control"),h.jsx(b,{...R,type:n,size:s,ref:S,readOnly:p,id:u||_,className:Ae(f,v?`${l}-plaintext`:l,c&&`${l}-${c}`,n==="color"&&`${l}-color`,d&&"is-valid",y&&"is-invalid")})});bp.displayName="FormControl";const wb=Object.assign(bp,{Feedback:Fu}),Sp=g.forwardRef(({className:l,bsPrefix:n,as:c="div",...s},u)=>(n=Qe(n,"form-floating"),h.jsx(c,{ref:u,className:Ae(l,n),...s})));Sp.displayName="FormFloating";const af=g.forwardRef(({controlId:l,as:n="div",...c},s)=>{const u=g.useMemo(()=>({controlId:l}),[l]);return h.jsx(da.Provider,{value:u,children:h.jsx(n,{...c,ref:s})})});af.displayName="FormGroup";const xp=g.forwardRef(({as:l="label",bsPrefix:n,column:c=!1,visuallyHidden:s=!1,className:u,htmlFor:f,...d},y)=>{const{controlId:v}=g.useContext(da);n=Qe(n,"form-label");let p="col-form-label";typeof c=="string"&&(p=`${p} ${p}-${c}`);const b=Ae(u,n,s&&"visually-hidden",c&&p);return f=f||v,c?h.jsx(ln,{ref:y,as:"label",className:b,htmlFor:f,...d}):h.jsx(l,{ref:y,className:b,htmlFor:f,...d})});xp.displayName="FormLabel";const _p=g.forwardRef(({bsPrefix:l,className:n,id:c,...s},u)=>{const{controlId:f}=g.useContext(da);return l=Qe(l,"form-range"),h.jsx("input",{...s,type:"range",ref:u,className:Ae(n,l),id:c||f})});_p.displayName="FormRange";const Rp=g.forwardRef(({bsPrefix:l,size:n,htmlSize:c,className:s,isValid:u=!1,isInvalid:f=!1,id:d,...y},v)=>{const{controlId:p}=g.useContext(da);return l=Qe(l,"form-select"),h.jsx("select",{...y,size:c,ref:v,className:Ae(s,l,n&&`${l}-${n}`,u&&"is-valid",f&&"is-invalid"),id:d||p})});Rp.displayName="FormSelect";const Tp=g.forwardRef(({bsPrefix:l,className:n,as:c="small",muted:s,...u},f)=>(l=Qe(l,"form-text"),h.jsx(c,{...u,ref:f,className:Ae(n,l,s&&"text-muted")})));Tp.displayName="FormText";const Np=g.forwardRef((l,n)=>h.jsx(Vu,{...l,ref:n,type:"switch"}));Np.displayName="Switch";const Ab=Object.assign(Np,{Input:Vu.Input,Label:Vu.Label}),Cp=g.forwardRef(({bsPrefix:l,className:n,children:c,controlId:s,label:u,...f},d)=>(l=Qe(l,"form-floating"),h.jsxs(af,{ref:d,className:Ae(n,l),controlId:s,...f,children:[c,h.jsx("label",{htmlFor:s,children:u})]})));Cp.displayName="FloatingLabel";const Mb={_ref:fa.any,validated:fa.bool,as:fa.elementType},lf=g.forwardRef(({className:l,validated:n,as:c="form",...s},u)=>h.jsx(c,{...s,ref:u,className:Ae(l,n&&"was-validated")}));lf.displayName="Form";lf.propTypes=Mb;const Du=Object.assign(lf,{Group:af,Control:wb,Floating:Sp,Check:Vu,Switch:Ab,Label:xp,Text:Tp,Range:_p,Select:Rp,FloatingLabel:Cp}),xy=l=>!l||typeof l=="function"?l:n=>{l.current=n};function zb(l,n){const c=xy(l),s=xy(n);return u=>{c&&c(u),s&&s(u)}}function rf(l,n){return g.useMemo(()=>zb(l,n),[l,n])}var wu;function _y(l){if((!wu&&wu!==0||l)&&ri){var n=document.createElement("div");n.style.position="absolute",n.style.top="-9999px",n.style.width="50px",n.style.height="50px",n.style.overflow="scroll",document.body.appendChild(n),wu=n.offsetWidth-n.clientWidth,document.body.removeChild(n)}return wu}function Lb(){return g.useState(null)}function xo(l){l===void 0&&(l=Ku());try{var n=l.activeElement;return!n||!n.nodeName?null:n}catch{return l.body}}function Ub(l){const n=g.useRef(l);return n.current=l,n}function Hb(l){const n=Ub(l);g.useEffect(()=>()=>n.current(),[])}function Bb(l=document){const n=l.defaultView;return Math.abs(n.innerWidth-l.documentElement.clientWidth)}const Ry=Ob("modal-open");class uf{constructor({ownerDocument:n,handleContainerOverflow:c=!0,isRTL:s=!1}={}){this.handleContainerOverflow=c,this.isRTL=s,this.modals=[],this.ownerDocument=n}getScrollbarWidth(){return Bb(this.ownerDocument)}getElement(){return(this.ownerDocument||document).body}setModalAttributes(n){}removeModalAttributes(n){}setContainerStyle(n){const c={overflow:"hidden"},s=this.isRTL?"paddingLeft":"paddingRight",u=this.getElement();n.style={overflow:u.style.overflow,[s]:u.style[s]},n.scrollBarWidth&&(c[s]=`${parseInt(gl(u,s)||"0",10)+n.scrollBarWidth}px`),u.setAttribute(Ry,""),gl(u,c)}reset(){[...this.modals].forEach(n=>this.remove(n))}removeContainerStyle(n){const c=this.getElement();c.removeAttribute(Ry),Object.assign(c.style,n.style)}add(n){let c=this.modals.indexOf(n);return c!==-1||(c=this.modals.length,this.modals.push(n),this.setModalAttributes(n),c!==0)||(this.state={scrollBarWidth:this.getScrollbarWidth(),style:{}},this.handleContainerOverflow&&this.setContainerStyle(this.state)),c}remove(n){const c=this.modals.indexOf(n);c!==-1&&(this.modals.splice(c,1),!this.modals.length&&this.handleContainerOverflow&&this.removeContainerStyle(this.state),this.removeModalAttributes(n))}isTopModal(n){return!!this.modals.length&&this.modals[this.modals.length-1]===n}}const _o=(l,n)=>ri?l==null?(n||Ku()).body:(typeof l=="function"&&(l=l()),l&&"current"in l&&(l=l.current),l&&("nodeType"in l||l.getBoundingClientRect)?l:null):null;function qb(l,n){const c=tf(),[s,u]=g.useState(()=>_o(l,c==null?void 0:c.document));if(!s){const f=_o(l);f&&u(f)}return g.useEffect(()=>{},[n,s]),g.useEffect(()=>{const f=_o(l);f!==s&&u(f)},[l,s]),s}function Vb({children:l,in:n,onExited:c,mountOnEnter:s,unmountOnExit:u}){const f=g.useRef(null),d=g.useRef(n),y=pl(c);g.useEffect(()=>{n?d.current=!0:y(f.current)},[n,y]);const v=rf(f,$u(l)),p=g.cloneElement(l,{ref:v});return n?p:u||!d.current&&s?null:p}const Yb=["onEnter","onEntering","onEntered","onExit","onExiting","onExited","addEndListener","children"];function kb(l,n){if(l==null)return{};var c={};for(var s in l)if({}.hasOwnProperty.call(l,s)){if(n.indexOf(s)>=0)continue;c[s]=l[s]}return c}function Gb(l){let{onEnter:n,onEntering:c,onEntered:s,onExit:u,onExiting:f,onExited:d,addEndListener:y,children:v}=l,p=kb(l,Yb);const b=g.useRef(null),R=rf(b,$u(v)),S=J=>G=>{J&&b.current&&J(b.current,G)},_=g.useCallback(S(n),[n]),O=g.useCallback(S(c),[c]),H=g.useCallback(S(s),[s]),U=g.useCallback(S(u),[u]),M=g.useCallback(S(f),[f]),q=g.useCallback(S(d),[d]),Y=g.useCallback(S(y),[y]);return Object.assign({},p,{nodeRef:b},n&&{onEnter:_},c&&{onEntering:O},s&&{onEntered:H},u&&{onExit:U},f&&{onExiting:M},d&&{onExited:q},y&&{addEndListener:Y},{children:typeof v=="function"?(J,G)=>v(J,Object.assign({},G,{ref:R})):g.cloneElement(v,{ref:R})})}const Xb=["component"];function Qb(l,n){if(l==null)return{};var c={};for(var s in l)if({}.hasOwnProperty.call(l,s)){if(n.indexOf(s)>=0)continue;c[s]=l[s]}return c}const Zb=g.forwardRef((l,n)=>{let{component:c}=l,s=Qb(l,Xb);const u=Gb(s);return h.jsx(c,Object.assign({ref:n},u))});function Kb({in:l,onTransition:n}){const c=g.useRef(null),s=g.useRef(!0),u=pl(n);return Ey(()=>{if(!c.current)return;let f=!1;return u({in:l,element:c.current,initial:s.current,isStale:()=>f}),()=>{f=!0}},[l,u]),Ey(()=>(s.current=!1,()=>{s.current=!0}),[]),c}function $b({children:l,in:n,onExited:c,onEntered:s,transition:u}){const[f,d]=g.useState(!n);n&&f&&d(!1);const y=Kb({in:!!n,onTransition:p=>{const b=()=>{p.isStale()||(p.in?s==null||s(p.element,p.initial):(d(!0),c==null||c(p.element)))};Promise.resolve(u(p)).then(b,R=>{throw p.in||d(!0),R})}}),v=rf(y,$u(l));return f&&!n?null:g.cloneElement(l,{ref:v})}function Ty(l,n,c){return l?h.jsx(Zb,Object.assign({},c,{component:l})):n?h.jsx($b,Object.assign({},c,{transition:n})):h.jsx(Vb,Object.assign({},c))}const Fb=["show","role","className","style","children","backdrop","keyboard","onBackdropClick","onEscapeKeyDown","transition","runTransition","backdropTransition","runBackdropTransition","autoFocus","enforceFocus","restoreFocus","restoreFocusOptions","renderDialog","renderBackdrop","manager","container","onShow","onHide","onExit","onExited","onExiting","onEnter","onEntering","onEntered"];function Jb(l,n){if(l==null)return{};var c={};for(var s in l)if({}.hasOwnProperty.call(l,s)){if(n.indexOf(s)>=0)continue;c[s]=l[s]}return c}let Ro;function Pb(l){return Ro||(Ro=new uf({ownerDocument:l==null?void 0:l.document})),Ro}function Wb(l){const n=tf(),c=l||Pb(n),s=g.useRef({dialog:null,backdrop:null});return Object.assign(s.current,{add:()=>c.add(s.current),remove:()=>c.remove(s.current),isTopModal:()=>c.isTopModal(s.current),setDialogRef:g.useCallback(u=>{s.current.dialog=u},[]),setBackdropRef:g.useCallback(u=>{s.current.backdrop=u},[])})}const jp=g.forwardRef((l,n)=>{let{show:c=!1,role:s="dialog",className:u,style:f,children:d,backdrop:y=!0,keyboard:v=!0,onBackdropClick:p,onEscapeKeyDown:b,transition:R,runTransition:S,backdropTransition:_,runBackdropTransition:O,autoFocus:H=!0,enforceFocus:U=!0,restoreFocus:M=!0,restoreFocusOptions:q,renderDialog:Y,renderBackdrop:J=De=>h.jsx("div",Object.assign({},De)),manager:G,container:N,onShow:W,onHide:ie=()=>{},onExit:X,onExited:I,onExiting:de,onEnter:Ne,onEntering:Ye,onEntered:Be}=l,ze=Jb(l,Fb);const K=tf(),ce=qb(N),ne=Wb(G),Re=sb(),T=ob(c),[Q,le]=g.useState(!c),te=g.useRef(null);g.useImperativeHandle(n,()=>ne,[ne]),ri&&!T&&c&&(te.current=xo(K==null?void 0:K.document)),c&&Q&&le(!1);const P=pl(()=>{if(ne.add(),Ee.current=Bu(document,"keydown",Ce),Le.current=Bu(document,"focus",()=>setTimeout(ye),!0),W&&W(),H){var De,Rt;const St=xo((De=(Rt=ne.dialog)==null?void 0:Rt.ownerDocument)!=null?De:K==null?void 0:K.document);ne.dialog&&St&&!by(ne.dialog,St)&&(te.current=St,ne.dialog.focus())}}),ge=pl(()=>{if(ne.remove(),Ee.current==null||Ee.current(),Le.current==null||Le.current(),M){var De;(De=te.current)==null||De.focus==null||De.focus(q),te.current=null}});g.useEffect(()=>{!c||!ce||P()},[c,ce,P]),g.useEffect(()=>{Q&&ge()},[Q,ge]),Hb(()=>{ge()});const ye=pl(()=>{if(!U||!Re()||!ne.isTopModal())return;const De=xo(K==null?void 0:K.document);ne.dialog&&De&&!by(ne.dialog,De)&&ne.dialog.focus()}),Je=pl(De=>{De.target===De.currentTarget&&(p==null||p(De),y===!0&&ie())}),Ce=pl(De=>{v&&PE(De)&&ne.isTopModal()&&(b==null||b(De),De.defaultPrevented||ie())}),Le=g.useRef(),Ee=g.useRef(),Ze=(...De)=>{le(!0),I==null||I(...De)};if(!ce)return null;const vt=Object.assign({role:s,ref:ne.setDialogRef,"aria-modal":s==="dialog"?!0:void 0},ze,{style:f,className:u,tabIndex:-1});let it=Y?Y(vt):h.jsx("div",Object.assign({},vt,{children:g.cloneElement(d,{role:"document"})}));it=Ty(R,S,{unmountOnExit:!0,mountOnEnter:!0,appear:!0,in:!!c,onExit:X,onExiting:de,onExited:Ze,onEnter:Ne,onEntering:Ye,onEntered:Be,children:it});let lt=null;return y&&(lt=J({ref:ne.setBackdropRef,onClick:Je}),lt=Ty(_,O,{in:!!c,appear:!0,mountOnEnter:!0,unmountOnExit:!0,children:lt})),h.jsx(h.Fragment,{children:ii.createPortal(h.jsxs(h.Fragment,{children:[lt,it]}),ce)})});jp.displayName="Modal";const Ib=Object.assign(jp,{Manager:uf});function eS(l,n){return l.classList?l.classList.contains(n):(" "+(l.className.baseVal||l.className)+" ").indexOf(" "+n+" ")!==-1}function tS(l,n){l.classList?l.classList.add(n):eS(l,n)||(typeof l.className=="string"?l.className=l.className+" "+n:l.setAttribute("class",(l.className&&l.className.baseVal||"")+" "+n))}function Ny(l,n){return l.replace(new RegExp("(^|\\s)"+n+"(?:\\s|$)","g"),"$1").replace(/\s+/g," ").replace(/^\s*|\s*$/g,"")}function nS(l,n){l.classList?l.classList.remove(n):typeof l.className=="string"?l.className=Ny(l.className,n):l.setAttribute("class",Ny(l.className&&l.className.baseVal||"",n))}const ni={FIXED_CONTENT:".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",STICKY_CONTENT:".sticky-top",NAVBAR_TOGGLER:".navbar-toggler"};class aS extends uf{adjustAndStore(n,c,s){const u=c.style[n];c.dataset[n]=u,gl(c,{[n]:`${parseFloat(gl(c,n))+s}px`})}restore(n,c){const s=c.dataset[n];s!==void 0&&(delete c.dataset[n],gl(c,{[n]:s}))}setContainerStyle(n){super.setContainerStyle(n);const c=this.getElement();if(tS(c,"modal-open"),!n.scrollBarWidth)return;const s=this.isRTL?"paddingLeft":"paddingRight",u=this.isRTL?"marginLeft":"marginRight";ti(c,ni.FIXED_CONTENT).forEach(f=>this.adjustAndStore(s,f,n.scrollBarWidth)),ti(c,ni.STICKY_CONTENT).forEach(f=>this.adjustAndStore(u,f,-n.scrollBarWidth)),ti(c,ni.NAVBAR_TOGGLER).forEach(f=>this.adjustAndStore(u,f,n.scrollBarWidth))}removeContainerStyle(n){super.removeContainerStyle(n);const c=this.getElement();nS(c,"modal-open");const s=this.isRTL?"paddingLeft":"paddingRight",u=this.isRTL?"marginLeft":"marginRight";ti(c,ni.FIXED_CONTENT).forEach(f=>this.restore(s,f)),ti(c,ni.STICKY_CONTENT).forEach(f=>this.restore(u,f)),ti(c,ni.NAVBAR_TOGGLER).forEach(f=>this.restore(u,f))}}let To;function lS(l){return To||(To=new aS(l)),To}const Op=g.forwardRef(({className:l,bsPrefix:n,as:c="div",...s},u)=>(n=Qe(n,"modal-body"),h.jsx(c,{ref:u,className:Ae(l,n),...s})));Op.displayName="ModalBody";const Dp=g.createContext({onHide(){}}),cf=g.forwardRef(({bsPrefix:l,className:n,contentClassName:c,centered:s,size:u,fullscreen:f,children:d,scrollable:y,...v},p)=>{l=Qe(l,"modal");const b=`${l}-dialog`,R=typeof f=="string"?`${l}-fullscreen-${f}`:`${l}-fullscreen`;return h.jsx("div",{...v,ref:p,className:Ae(b,n,u&&`${l}-${u}`,s&&`${b}-centered`,y&&`${b}-scrollable`,f&&R),children:h.jsx("div",{className:Ae(`${l}-content`,c),children:d})})});cf.displayName="ModalDialog";const wp=g.forwardRef(({className:l,bsPrefix:n,as:c="div",...s},u)=>(n=Qe(n,"modal-footer"),h.jsx(c,{ref:u,className:Ae(l,n),...s})));wp.displayName="ModalFooter";const iS=g.forwardRef(({closeLabel:l="Close",closeVariant:n,closeButton:c=!1,onHide:s,children:u,...f},d)=>{const y=g.useContext(Dp),v=Ho(()=>{y==null||y.onHide(),s==null||s()});return h.jsxs("div",{ref:d,...f,children:[u,c&&h.jsx(Io,{"aria-label":l,variant:n,onClick:v})]})}),Ap=g.forwardRef(({bsPrefix:l,className:n,closeLabel:c="Close",closeButton:s=!1,...u},f)=>(l=Qe(l,"modal-header"),h.jsx(iS,{ref:f,...u,className:Ae(n,l),closeLabel:c,closeButton:s})));Ap.displayName="ModalHeader";const rS=Po("h4"),Mp=g.forwardRef(({className:l,bsPrefix:n,as:c=rS,...s},u)=>(n=Qe(n,"modal-title"),h.jsx(c,{ref:u,className:Ae(l,n),...s})));Mp.displayName="ModalTitle";function uS(l){return h.jsx(Wo,{...l,timeout:null})}function cS(l){return h.jsx(Wo,{...l,timeout:null})}const zp=g.forwardRef(({bsPrefix:l,className:n,style:c,dialogClassName:s,contentClassName:u,children:f,dialogAs:d=cf,"data-bs-theme":y,"aria-labelledby":v,"aria-describedby":p,"aria-label":b,show:R=!1,animation:S=!0,backdrop:_=!0,keyboard:O=!0,onEscapeKeyDown:H,onShow:U,onHide:M,container:q,autoFocus:Y=!0,enforceFocus:J=!0,restoreFocus:G=!0,restoreFocusOptions:N,onEntered:W,onExit:ie,onExiting:X,onEnter:I,onEntering:de,onExited:Ne,backdropClassName:Ye,manager:Be,...ze},K)=>{const[ce,ne]=g.useState({}),[Re,T]=g.useState(!1),Q=g.useRef(!1),le=g.useRef(!1),te=g.useRef(null),[P,ge]=Lb(),ye=rp(K,ge),Je=Ho(M),Ce=BE();l=Qe(l,"modal");const Le=g.useMemo(()=>({onHide:Je}),[Je]);function Ee(){return Be||lS({isRTL:Ce})}function Ze(_e){if(!ri)return;const Ie=Ee().getScrollbarWidth()>0,kt=_e.scrollHeight>Ku(_e).documentElement.clientHeight;ne({paddingRight:Ie&&!kt?_y():void 0,paddingLeft:!Ie&&kt?_y():void 0})}const vt=Ho(()=>{P&&Ze(P.dialog)});xb(()=>{Uo(window,"resize",vt),te.current==null||te.current()});const it=()=>{Q.current=!0},lt=_e=>{Q.current&&P&&_e.target===P.dialog&&(le.current=!0),Q.current=!1},De=()=>{T(!0),te.current=ip(P.dialog,()=>{T(!1)})},Rt=_e=>{_e.target===_e.currentTarget&&De()},St=_e=>{if(_==="static"){Rt(_e);return}if(le.current||_e.target!==_e.currentTarget){le.current=!1;return}M==null||M()},Pt=_e=>{O?H==null||H(_e):(_e.preventDefault(),_==="static"&&De())},Zt=(_e,Ie)=>{_e&&Ze(_e),I==null||I(_e,Ie)},un=_e=>{te.current==null||te.current(),ie==null||ie(_e)},cn=(_e,Ie)=>{de==null||de(_e,Ie),lp(window,"resize",vt)},Ut=_e=>{_e&&(_e.style.display=""),Ne==null||Ne(_e),Uo(window,"resize",vt)},Ht=g.useCallback(_e=>h.jsx("div",{..._e,className:Ae(`${l}-backdrop`,Ye,!S&&"show")}),[S,Ye,l]),mt={...c,...ce};mt.display="block";const Kt=_e=>h.jsx("div",{role:"dialog",..._e,style:mt,className:Ae(n,l,Re&&`${l}-static`,!S&&"show"),onClick:_?St:void 0,onMouseUp:lt,"data-bs-theme":y,"aria-label":b,"aria-labelledby":v,"aria-describedby":p,children:h.jsx(d,{...ze,onMouseDown:it,className:s,contentClassName:u,children:f})});return h.jsx(Dp.Provider,{value:Le,children:h.jsx(Ib,{show:R,ref:ye,backdrop:_,container:q,keyboard:!0,autoFocus:Y,enforceFocus:J,restoreFocus:G,restoreFocusOptions:N,onEscapeKeyDown:Pt,onShow:U,onHide:M,onEnter:Zt,onEntering:cn,onEntered:W,onExit:un,onExiting:X,onExited:Ut,manager:Ee(),transition:S?uS:void 0,backdropTransition:S?cS:void 0,renderBackdrop:Ht,renderDialog:Kt})})});zp.displayName="Modal";const ir=Object.assign(zp,{Body:Op,Header:Ap,Title:Mp,Footer:wp,Dialog:cf,TRANSITION_DURATION:300,BACKDROP_TRANSITION_DURATION:150}),Rn=g.forwardRef(({bsPrefix:l,className:n,as:c="div",...s},u)=>{const f=Qe(l,"row"),d=tp(),y=np(),v=`${f}-cols`,p=[];return d.forEach(b=>{const R=s[b];delete s[b];let S;R!=null&&typeof R=="object"?{cols:S}=R:S=R;const _=b!==y?`-${b}`:"";S!=null&&p.push(`${v}${_}-${S}`)}),h.jsx(c,{ref:u,...s,className:Ae(n,f,...p)})});Rn.displayName="Row";const sS="/static/DY3vaYXT.svg";function oS(){const l=Ke.c(6),{user:n}=g.useContext(Fo),{pathname:c}=Xn();let s;l[0]===Symbol.for("react.memo_cache_sentinel")?(s=h.jsx(ln,{xs:10,children:h.jsx("div",{className:"nav-wrapper",children:h.jsxs("nav",{className:"header-nav",children:[h.jsx("a",{href:"https://geant.org/",children:h.jsx("img",{src:sS,alt:"GÉANT Logo"})}),h.jsxs("ul",{children:[h.jsx("li",{children:h.jsx("a",{className:"nav-link-entry",href:"https://network.geant.org/",children:"NETWORK"})}),h.jsx("li",{children:h.jsx("a",{className:"nav-link-entry",href:"https://geant.org/services/",children:"SERVICES"})}),h.jsx("li",{children:h.jsx("a",{className:"nav-link-entry",href:"https://community.geant.org/",children:"COMMUNITY"})}),h.jsx("li",{children:h.jsx("a",{className:"nav-link-entry",href:"https://tnc23.geant.org/",children:"TNC"})}),h.jsx("li",{children:h.jsx("a",{className:"nav-link-entry",href:"https://geant.org/projects/",children:"PROJECTS"})}),h.jsx("li",{children:h.jsx("a",{className:"nav-link-entry",href:"https://connect.geant.org/",children:"CONNECT"})}),h.jsx("li",{children:h.jsx("a",{className:"nav-link-entry",href:"https://impact.geant.org/",children:"IMPACT"})}),h.jsx("li",{children:h.jsx("a",{className:"nav-link-entry",href:"https://careers.geant.org/",children:"CAREERS"})}),h.jsx("li",{children:h.jsx("a",{className:"nav-link-entry",href:"https://about.geant.org/",children:"ABOUT"})}),h.jsx("li",{children:h.jsx("a",{className:"nav-link-entry",href:"https://connect.geant.org/community-news",children:"NEWS"})}),h.jsx("li",{children:h.jsx("a",{className:"nav-link-entry",href:"https://resources.geant.org/",children:"RESOURCES"})}),h.jsx("li",{children:h.jsx(Tn,{className:"nav-link-entry",to:"/",children:"COMPENDIUM"})})]})]})})}),l[0]=s):s=l[0];let u;l[1]!==c||l[2]!==n.permissions.admin?(u=n.permissions.admin&&!c.includes("survey")&&h.jsx("div",{className:"nav-link",style:{float:"right"},children:h.jsx(Tn,{className:"nav-link-entry",to:"/survey",children:h.jsx("span",{children:"Go to Survey"})})}),l[1]=c,l[2]=n.permissions.admin,l[3]=u):u=l[3];let f;return l[4]!==u?(f=h.jsx("div",{className:"external-page-nav-bar",children:h.jsx(Ya,{children:h.jsxs(Rn,{children:[s,h.jsx(ln,{xs:2,children:u})]})})}),l[4]=u,l[5]=f):f=l[5],f}const fS="/static/A3T3A-a_.svg",dS="/static/DOOiIGTs.png";function hS(){const l=Ke.c(9);let n;l[0]===Symbol.for("react.memo_cache_sentinel")?(n=h.jsx("a",{href:"https://geant.org",children:h.jsx("img",{src:fS,className:"m-3",style:{maxWidth:"100px"},alt:"GÉANT Logo"})}),l[0]=n):n=l[0];let c;l[1]===Symbol.for("react.memo_cache_sentinel")?(c=h.jsxs(ln,{children:[n,h.jsx("img",{src:dS,className:"m-3",style:{maxWidth:"200px"},alt:"European Union Flag"})]}),l[1]=c):c=l[1];let s,u;l[2]===Symbol.for("react.memo_cache_sentinel")?(s=h.jsx("a",{className:"mx-3 footer-link",href:"https://geant.org/Disclaimer/",children:"Disclaimer"}),u=h.jsx("wbr",{}),l[2]=s,l[3]=u):(s=l[2],u=l[3]);let f,d;l[4]===Symbol.for("react.memo_cache_sentinel")?(f=h.jsx("a",{className:"mx-3 footer-link",href:"https://geant.org/geant-anti-slavery-policy/",children:"GEANT Anti‑Slavery Policy"}),d=h.jsx("wbr",{}),l[4]=f,l[5]=d):(f=l[4],d=l[5]);let y,v;l[6]===Symbol.for("react.memo_cache_sentinel")?(y=h.jsx("a",{className:"mx-3 footer-link",href:"https://geant.org/Privacy-Notice/",children:"Privacy Policy"}),v=h.jsx("wbr",{}),l[6]=y,l[7]=v):(y=l[6],v=l[7]);let p;return l[8]===Symbol.for("react.memo_cache_sentinel")?(p=h.jsx("footer",{className:"page-footer pt-3",children:h.jsx(Ya,{children:h.jsxs(Rn,{children:[c,h.jsx(ln,{className:"mt-4 text-end",children:h.jsxs("span",{children:[s,u,"|",f,d,"|",y,v,"|",h.jsx("a",{className:"mx-3 footer-link",style:{cursor:"pointer"},onClick:mS,children:"Analytics Consent"})]})})]})})}),l[8]=p):p=l[8],p}function mS(){localStorage.removeItem("matomo_consent"),window.location.reload()}const Lp="/static/C4lsyu6A.svg",Up="/static/DhA-EmEc.svg";function Hp(){const l=Ke.c(16),n=g.useContext(ep);let c;l[0]!==n?(c=O=>n==null?void 0:n.trackPageView(O),l[0]=n,l[1]=c):c=l[1];const s=c;let u;l[2]!==n?(u=O=>n==null?void 0:n.trackEvent(O),l[2]=n,l[3]=u):u=l[3];const f=u;let d;l[4]!==n?(d=()=>n==null?void 0:n.trackEvents(),l[4]=n,l[5]=d):d=l[5];const y=d;let v;l[6]!==n?(v=O=>n==null?void 0:n.trackLink(O),l[6]=n,l[7]=v):v=l[7];const p=v,b=yS;let R;l[8]!==n?(R=(O,...H)=>{const U=H;n==null||n.pushInstruction(O,...U)},l[8]=n,l[9]=R):R=l[9];const S=R;let _;return l[10]!==S||l[11]!==f||l[12]!==y||l[13]!==p||l[14]!==s?(_={trackEvent:f,trackEvents:y,trackPageView:s,trackLink:p,enableLinkTracking:b,pushInstruction:S},l[10]=S,l[11]=f,l[12]=y,l[13]=p,l[14]=s,l[15]=_):_=l[15],_}function yS(){}function Bp(){const l=Ke.c(13),{trackPageView:n}=Hp();let c,s;l[0]!==n?(c=()=>{n({documentTitle:"GEANT Compendium Landing Page"})},s=[n],l[0]=n,l[1]=c,l[2]=s):(c=l[1],s=l[2]),g.useEffect(c,s);let u;l[3]===Symbol.for("react.memo_cache_sentinel")?(u=h.jsx("h1",{className:"geant-header",children:"THE GÉANT COMPENDIUM OF NRENS"}),l[3]=u):u=l[3];let f;l[4]===Symbol.for("react.memo_cache_sentinel")?(f=h.jsx(Rn,{children:h.jsxs("div",{className:"center-text",children:[u,h.jsxs("div",{className:"wordwrap pt-4",children:[h.jsx("p",{style:{textAlign:"left",fontSize:"20px"},children:"Each year GÉANT invites European National Research and Eduction Networks to fill in a questionnaire asking about their network, their organisation, standards and policies, connected users, and the services they offer their users. This Compendium of responses is an authoritative reference source for anyone with an interest in the development of research and education networking in Europe and beyond. No two NRENs are identical, with great diversity in their structures, funding, size, and focus."}),h.jsx("p",{style:{textAlign:"left",fontSize:"20px"},children:"The GÉANT Compendium of NRENs Report is published annually, using both data from the Compendium from other sources, including surveys and studies carried out within different teams within GÉANT and the NREN community. The Report gives a broad overview of the European NREN landscape, identifying developments and trends."}),h.jsx("p",{style:{textAlign:"left",fontSize:"20px"},children:"Compendium Data, the responses from the NRENs, are made available to be viewed and downloaded. Graphs, charts, and tables can be customised to show as many or few NRENs as required, across different years. These can be downloaded as images or in PDF form."})]})]})}),l[4]=f):f=l[4];let d;l[5]===Symbol.for("react.memo_cache_sentinel")?(d={backgroundColor:"white"},l[5]=d):d=l[5];let y;l[6]===Symbol.for("react.memo_cache_sentinel")?(y={width:"18rem"},l[6]=y):y=l[6];let v;l[7]===Symbol.for("react.memo_cache_sentinel")?(v=h.jsx(Yn.Img,{src:Lp}),l[7]=v):v=l[7];let p;l[8]===Symbol.for("react.memo_cache_sentinel")?(p=h.jsx(Yn.Title,{children:"Compendium Data"}),l[8]=p):p=l[8];let b;l[9]===Symbol.for("react.memo_cache_sentinel")?(b=h.jsx(ln,{align:"center",children:h.jsx(Yn,{border:"light",style:y,children:h.jsxs(Tn,{to:"/data",className:"link-text",children:[v,h.jsxs(Yn.Body,{children:[p,h.jsx(Yn.Text,{children:h.jsx("span",{children:"Statistical representation of the annual Compendium Survey data is available here"})})]})]})})}),l[9]=b):b=l[9];let R;l[10]===Symbol.for("react.memo_cache_sentinel")?(R={width:"18rem"},l[10]=R):R=l[10];let S;l[11]===Symbol.for("react.memo_cache_sentinel")?(S=h.jsx(Yn.Img,{src:Up}),l[11]=S):S=l[11];let _;return l[12]===Symbol.for("react.memo_cache_sentinel")?(_=h.jsxs(Ya,{className:"py-5 grey-container",children:[f,h.jsx(Rn,{children:h.jsx(ln,{children:h.jsx(Ya,{style:d,className:"rounded-border",children:h.jsxs(Rn,{className:"justify-content-md-center",children:[b,h.jsx(ln,{align:"center",children:h.jsx(Yn,{border:"light",style:R,children:h.jsxs("a",{href:"https://resources.geant.org/geant-compendia/",className:"link-text",target:"_blank",rel:"noreferrer",children:[S,h.jsxs(Yn.Body,{children:[h.jsx(Yn.Title,{children:"Compendium Reports"}),h.jsx(Yn.Text,{children:"A GÉANT Compendium Report is published annually, drawing on data from the Compendium Survey filled in by NRENs, complemented by information from other surveys"})]})]})})})]})})})})]}),l[12]=_):_=l[12],_}var qp={color:void 0,size:void 0,className:void 0,style:void 0,attr:void 0},Cy=Yt.createContext&&Yt.createContext(qp),pS=["attr","size","title"];function vS(l,n){if(l==null)return{};var c=gS(l,n),s,u;if(Object.getOwnPropertySymbols){var f=Object.getOwnPropertySymbols(l);for(u=0;u<f.length;u++)s=f[u],!(n.indexOf(s)>=0)&&Object.prototype.propertyIsEnumerable.call(l,s)&&(c[s]=l[s])}return c}function gS(l,n){if(l==null)return{};var c={};for(var s in l)if(Object.prototype.hasOwnProperty.call(l,s)){if(n.indexOf(s)>=0)continue;c[s]=l[s]}return c}function Yu(){return Yu=Object.assign?Object.assign.bind():function(l){for(var n=1;n<arguments.length;n++){var c=arguments[n];for(var s in c)Object.prototype.hasOwnProperty.call(c,s)&&(l[s]=c[s])}return l},Yu.apply(this,arguments)}function jy(l,n){var c=Object.keys(l);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(l);n&&(s=s.filter(function(u){return Object.getOwnPropertyDescriptor(l,u).enumerable})),c.push.apply(c,s)}return c}function ku(l){for(var n=1;n<arguments.length;n++){var c=arguments[n]!=null?arguments[n]:{};n%2?jy(Object(c),!0).forEach(function(s){ES(l,s,c[s])}):Object.getOwnPropertyDescriptors?Object.defineProperties(l,Object.getOwnPropertyDescriptors(c)):jy(Object(c)).forEach(function(s){Object.defineProperty(l,s,Object.getOwnPropertyDescriptor(c,s))})}return l}function ES(l,n,c){return n=bS(n),n in l?Object.defineProperty(l,n,{value:c,enumerable:!0,configurable:!0,writable:!0}):l[n]=c,l}function bS(l){var n=SS(l,"string");return typeof n=="symbol"?n:n+""}function SS(l,n){if(typeof l!="object"||!l)return l;var c=l[Symbol.toPrimitive];if(c!==void 0){var s=c.call(l,n||"default");if(typeof s!="object")return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return(n==="string"?String:Number)(l)}function Vp(l){return l&&l.map((n,c)=>Yt.createElement(n.tag,ku({key:c},n.attr),Vp(n.child)))}function Yp(l){return n=>Yt.createElement(xS,Yu({attr:ku({},l.attr)},n),Vp(l.child))}function xS(l){var n=c=>{var{attr:s,size:u,title:f}=l,d=vS(l,pS),y=u||c.size||"1em",v;return c.className&&(v=c.className),l.className&&(v=(v?v+" ":"")+l.className),Yt.createElement("svg",Yu({stroke:"currentColor",fill:"currentColor",strokeWidth:"0"},c.attr,s,d,{className:v,style:ku(ku({color:l.color||c.color},c.style),l.style),height:y,width:y,xmlns:"http://www.w3.org/2000/svg"}),f&&Yt.createElement("title",null,f),l.children)};return Cy!==void 0?Yt.createElement(Cy.Consumer,null,c=>n(c)):n(qp)}function _S(l){return Yp({tag:"svg",attr:{viewBox:"0 0 1024 1024",fill:"currentColor",fillRule:"evenodd"},child:[{tag:"path",attr:{d:"M799.855 166.312c.023.007.043.018.084.059l57.69 57.69c.041.041.052.06.059.084a.118.118 0 0 1 0 .069c-.007.023-.018.042-.059.083L569.926 512l287.703 287.703c.041.04.052.06.059.083a.118.118 0 0 1 0 .07c-.007.022-.018.042-.059.083l-57.69 57.69c-.041.041-.06.052-.084.059a.118.118 0 0 1-.069 0c-.023-.007-.042-.018-.083-.059L512 569.926 224.297 857.629c-.04.041-.06.052-.083.059a.118.118 0 0 1-.07 0c-.022-.007-.042-.018-.083-.059l-57.69-57.69c-.041-.041-.052-.06-.059-.084a.118.118 0 0 1 0-.069c.007-.023.018-.042.059-.083L454.073 512 166.371 224.297c-.041-.04-.052-.06-.059-.083a.118.118 0 0 1 0-.07c.007-.022.018-.042.059-.083l57.69-57.69c.041-.041.06-.052.084-.059a.118.118 0 0 1 .069 0c.023.007.042.018.083.059L512 454.073l287.703-287.702c.04-.041.06-.052.083-.059a.118.118 0 0 1 .07 0Z"},child:[]}]})(l)}function RS(l){return Yp({tag:"svg",attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M482 152h60q8 0 8 8v704q0 8-8 8h-60q-8 0-8-8V160q0-8 8-8Z"},child:[]},{tag:"path",attr:{d:"M192 474h672q8 0 8 8v60q0 8-8 8H160q-8 0-8-8v-60q0-8 8-8Z"},child:[]}]})(l)}const rr=l=>{const n=Ke.c(23),{title:c,children:s,startCollapsed:u,theme:f}=l,d=f===void 0?"":f,[y,v]=g.useState(!!u);let p;n[0]===Symbol.for("react.memo_cache_sentinel")?(p={color:"white",paddingBottom:"3px",marginTop:"3px",marginLeft:"3px",scale:"1.3"},n[0]=p):p=n[0];let b=p;if(d){let G;n[1]===Symbol.for("react.memo_cache_sentinel")?(G={...b,color:"black",fontWeight:"bold"},n[1]=G):G=n[1],b=G}const R=`collapsible-box${d} p-0`;let S;n[2]!==c?(S=h.jsx(ln,{children:h.jsx("h1",{className:"bold-caps-16pt dark-teal pt-3 ps-3",children:c})}),n[2]=c,n[3]=S):S=n[3];const _=`toggle-btn${d} p-${d?3:2}`;let O;n[4]!==y?(O=()=>v(!y),n[4]=y,n[5]=O):O=n[5];let H;n[6]!==y||n[7]!==b?(H=y?h.jsx(RS,{style:b}):h.jsx(_S,{style:b}),n[6]=y,n[7]=b,n[8]=H):H=n[8];let U;n[9]!==_||n[10]!==O||n[11]!==H?(U=h.jsx(ln,{className:"flex-grow-0 flex-shrink-1",children:h.jsx("div",{className:_,onClick:O,children:H})}),n[9]=_,n[10]=O,n[11]=H,n[12]=U):U=n[12];let M;n[13]!==S||n[14]!==U?(M=h.jsxs(Rn,{children:[S,U]}),n[13]=S,n[14]=U,n[15]=M):M=n[15];const q=`collapsible-content${y?" collapsed":""}`;let Y;n[16]!==s||n[17]!==q?(Y=h.jsx("div",{className:q,children:s}),n[16]=s,n[17]=q,n[18]=Y):Y=n[18];let J;return n[19]!==Y||n[20]!==R||n[21]!==M?(J=h.jsxs("div",{className:R,children:[M,Y]}),n[19]=Y,n[20]=R,n[21]=M,n[22]=J):J=n[22],J};function TS(l){const n=Ke.c(8),{section:c}=l;let s;n[0]===Symbol.for("react.memo_cache_sentinel")?(s={display:"flex",alignSelf:"right",lineHeight:"1.5rem",marginTop:"0.5rem"},n[0]=s):s=n[0];let u,f;n[1]===Symbol.for("react.memo_cache_sentinel")?(u=h.jsx("br",{}),f={float:"right"},n[1]=u,n[2]=f):(u=n[1],f=n[2]);let d;n[3]!==c?(d=h.jsx("div",{style:s,children:h.jsxs("span",{children:["Compendium ",u,h.jsx("span",{style:f,children:c})]})}),n[3]=c,n[4]=d):d=n[4];let y;n[5]===Symbol.for("react.memo_cache_sentinel")?(y=h.jsx("img",{src:Up,style:{maxWidth:"4rem"},alt:"Compendium Data logo"}),n[5]=y):y=n[5];let v;return n[6]!==d?(v=h.jsxs("div",{className:"bold-caps-17pt section-container",children:[d,y]}),n[6]=d,n[7]=v):v=n[7],v}function NS(l){const n=Ke.c(14),{type:c}=l;let s="";c=="data"?s=" compendium-data-header":c=="reports"&&(s=" compendium-reports-header");let u;n[0]===Symbol.for("react.memo_cache_sentinel")?(u={marginTop:"0.5rem"},n[0]=u):u=n[0];const f=c==="data"?"/data":"/";let d;n[1]===Symbol.for("react.memo_cache_sentinel")?(d={textDecoration:"none",color:"white"},n[1]=d):d=n[1];const y=c==="data"?"Data":"Reports";let v;n[2]!==y?(v=h.jsxs("span",{children:["Compendium ",y]}),n[2]=y,n[3]=v):v=n[3];let p;n[4]!==f||n[5]!==v?(p=h.jsx(ln,{sm:8,children:h.jsx("h1",{className:"bold-caps-30pt",style:u,children:h.jsx(Tn,{to:f,style:d,children:v})})}),n[4]=f,n[5]=v,n[6]=p):p=n[6];let b;n[7]===Symbol.for("react.memo_cache_sentinel")?(b={color:"inherit"},n[7]=b):b=n[7];let R;n[8]===Symbol.for("react.memo_cache_sentinel")?(R=h.jsx(ln,{sm:4,children:h.jsx("a",{style:b,href:"https://resources.geant.org/geant-compendia/",target:"_blank",rel:"noreferrer",children:h.jsx(TS,{section:"Reports"})})}),n[8]=R):R=n[8];let S;n[9]!==p?(S=h.jsx(Ya,{children:h.jsxs(Rn,{children:[p,R]})}),n[9]=p,n[10]=S):S=n[10];let _;return n[11]!==s||n[12]!==S?(_=h.jsx("div",{className:s,children:S}),n[11]=s,n[12]=S,n[13]=_):_=n[13],_}function CS(l){const n=Ke.c(8),{children:c,type:s}=l;let u="";s=="data"?u=" compendium-data-banner":s=="reports"&&(u=" compendium-reports-banner");let f,d;n[0]===Symbol.for("react.memo_cache_sentinel")?(f=h.jsx("img",{src:Lp,style:{maxWidth:"7rem",marginBottom:"1rem"},alt:"Compendium Data logo"}),d={display:"flex",alignSelf:"right"},n[0]=f,n[1]=d):(f=n[0],d=n[1]);let y;n[2]===Symbol.for("react.memo_cache_sentinel")?(y={paddingTop:"1rem"},n[2]=y):y=n[2];let v;n[3]!==c?(v=h.jsx(Ya,{children:h.jsx(Rn,{children:h.jsx(Rn,{children:h.jsxs("div",{className:"section-container",children:[f,h.jsx("div",{style:d,children:h.jsx("div",{className:"center-text",style:y,children:c})})]})})})}),n[3]=c,n[4]=v):v=n[4];let p;return n[5]!==u||n[6]!==v?(p=h.jsx("div",{className:u,children:v}),n[5]=u,n[6]=v,n[7]=p):p=n[7],p}var li=(l=>(l.Organisation="ORGANISATION",l.Policy="STANDARDS AND POLICIES",l.ConnectedUsers="CONNECTED USERS",l.Network="NETWORK",l.Services="SERVICES",l))(li||{}),jS=(l=>(l.CSV="CSV",l.EXCEL="EXCEL",l))(jS||{}),OS=(l=>(l.PNG="png",l.JPEG="jpeg",l.SVG="svg",l))(OS||{});const V2={universities:"Universities & Other (ISCED 6-8)",further_education:"Further education (ISCED 4-5)",secondary_schools:"Secondary schools (ISCED 2-3)",primary_schools:"Primary schools (ISCED 1)",institutes:"Research Institutes",cultural:"Libraries, Museums, Archives, Cultural institutions",hospitals:"Non-university public Hospitals",government:"Government departments (national, regional, local)",iros:"International (virtual) research organisations",for_profit_orgs:"For-profit organisations"},Y2={commercial_r_and_e:"Commercial R&E traffic only",commercial_general:"Commercial general",commercial_collaboration:"Commercial for collaboration only (project/time limited)",commercial_service_provider:"Commercial Service Provider",university_spin_off:"University Spin Off/Incubator"},k2={collaboration:"Connection to your network for collaboration with R&E users",service_supplier:"Connection to your network for supplying services for R&E",direct_peering:"Direct peering (e.g. direct peering or cloud peering)"};function DS(){const l=Ke.c(7),{preview:n,setPreview:c}=g.useContext(Iy),{user:s}=g.useContext(Fo),[u]=lE();let f;l[0]!==u?(f=u.get("preview"),l[0]=u,l[1]=f):f=l[1];const d=f;let y,v;return l[2]!==d||l[3]!==c||l[4]!==s?(y=()=>{d!==null&&(s.permissions.admin||s.role=="observer")&&c(!0)},v=[d,c,s],l[2]=d,l[3]=c,l[4]=s,l[5]=y,l[6]=v):(y=l[5],v=l[6]),g.useEffect(y,v),n}function yr(l){const n=Ke.c(9),{to:c,children:s}=l,u=window.location.pathname===c,f=g.useRef(null);let d,y;n[0]!==u?(d=()=>{u&&f.current&&f.current.scrollIntoView({behavior:"smooth",block:"center"})},y=[u],n[0]=u,n[1]=d,n[2]=y):(d=n[1],y=n[2]),g.useEffect(d,y);let v;n[3]!==s||n[4]!==u?(v=u?h.jsx("b",{children:s}):s,n[3]=s,n[4]=u,n[5]=v):v=n[5];let p;return n[6]!==v||n[7]!==c?(p=h.jsx(Rn,{children:h.jsx(Tn,{to:c,className:"link-text-underline",ref:f,children:v})}),n[6]=v,n[7]=c,n[8]=p):p=n[8],p}const se={budget:"Budget of NRENs per Year",funding:"Income Source of NRENs",charging:"Charging Mechanism of NRENs","employee-count":"Number of NREN Employees",roles:"Roles of NREN employees (Technical v. Non-Technical)",employment:"Types of Employment within NRENs",suborganisations:"NREN Sub-Organisations",parentorganisation:"NREN Parent Organisations","ec-projects":"NREN Involvement in European Commission Projects",policy:"NREN Policies",audits:"External and Internal Audits of Information Security Management Systems","business-continuity":"NREN Business Continuity Planning","central-procurement":"Value of Software Procured for Customers by NRENs","crisis-management":"Crisis Management Procedures","crisis-exercise":"Crisis Exercises - NREN Operation and Participation",eosc_listings:"NREN Services Listed on the EOSC Portal","security-control":"Security Controls Used by NRENs","services-offered":"Services Offered by NRENs by Types of Users","corporate-strategy":"NREN Corporate Strategies","service-level-targets":"NRENs Offering Service Level Targets","service-management-framework":"NRENs Operating a Formal Service Management Framework","institutions-urls":"Webpages Listing Institutions and Organisations Connected to NREN Networks","connected-proportion":"Proportion of Different Categories of Institutions Served by NRENs","connectivity-level":"Level of IP Connectivity by Institution Type","connection-carrier":"Methods of Carrying IP Traffic to Users","connectivity-load":"Connectivity Load","connectivity-growth":"Connectivity Growth","remote-campuses":"NREN Connectivity to Remote Campuses in Other Countries","commercial-charging-level":"Commercial Charging Level","commercial-connectivity":"Commercial Connectivity","traffic-volume":"NREN Traffic - NREN Customers & External Networks","iru-duration":"Average Duration of IRU leases of Fibre by NRENs","fibre-light":"Approaches to lighting NREN fibre networks","dark-fibre-lease":"Kilometres of Leased Dark Fibre (National)","dark-fibre-lease-international":"Kilometres of Leased Dark Fibre (International)","dark-fibre-installed":"Kilometres of Installed Dark Fibre","network-map":"NREN Network Maps","monitoring-tools":"Tools for Monitoring or Troubleshooting the Network - Offered to Client Institutions","pert-team":"NRENs with Performance Enhancement Response Teams","passive-monitoring":"Methods for Passively Monitoring International Traffic","traffic-stats":"Traffic Statistics","weather-map":"NREN Online Network Weather Maps","certificate-provider":"Certification Services used by NRENs","siem-vendors":"Vendors of SIEM/SOC systems used by NRENs","alien-wave":"NREN Use of 3rd Party Alienwave/Lightpath Services","alien-wave-internal":"Internal NREN Use of Alien Waves","capacity-largest-link":"Capacity of the Largest Link in an NREN Network","external-connections":"NREN External IP Connections","capacity-core-ip":"NREN Core IP Capacity","non-rne-peers":"Number of Non-R&E Networks NRENs Peer With","traffic-ratio":"Types of traffic in NREN networks (Commodity v. Research & Education)","ops-automation":"NREN Automation of Operational Processes","network-automation":"Network Tasks for which NRENs Use Automation",nfv:"Kinds of Network Function Virtualisation used by NRENs","network-services":"NREN Network services matrix","isp-support-services":"NREN ISP support services matrix","security-services":"NREN Security services matrix","identity-services":"NREN Identity services matrix","collaboration-services":"NREN Collaboration services matrix","multimedia-services":"NREN Multimedia services matrix","storage-and-hosting-services":"NREN Storage and hosting services matrix","professional-services":"NREN Professional services matrix"};function wS(l){const n=Ke.c(52),{sidebar:c}=l,s=c===void 0?!1:c,u=s?yr:Tn,f=s?"":"link-text-underline";let d;n[0]!==s?(d=s&&h.jsx("h5",{children:"Organisation"}),n[0]=s,n[1]=d):d=n[1];let y;n[2]===Symbol.for("react.memo_cache_sentinel")?(y=h.jsx("h6",{className:"section-title",children:"Budget, Income and Billing"}),n[2]=y):y=n[2];let v;n[3]===Symbol.for("react.memo_cache_sentinel")?(v=h.jsx("span",{children:se.budget}),n[3]=v):v=n[3];let p;n[4]!==u||n[5]!==f?(p=h.jsx(u,{to:"/budget",className:f,children:v}),n[4]=u,n[5]=f,n[6]=p):p=n[6];let b;n[7]===Symbol.for("react.memo_cache_sentinel")?(b=h.jsx("span",{children:se.funding}),n[7]=b):b=n[7];let R;n[8]!==u||n[9]!==f?(R=h.jsx(u,{to:"/funding",className:f,children:b}),n[8]=u,n[9]=f,n[10]=R):R=n[10];let S;n[11]===Symbol.for("react.memo_cache_sentinel")?(S=h.jsx("span",{children:se.charging}),n[11]=S):S=n[11];let _;n[12]!==u||n[13]!==f?(_=h.jsx(u,{to:"/charging",className:f,children:S}),n[12]=u,n[13]=f,n[14]=_):_=n[14];let O,H;n[15]===Symbol.for("react.memo_cache_sentinel")?(O=h.jsx("hr",{className:"fake-divider"}),H=h.jsx("h6",{className:"section-title",children:"Staff and Projects"}),n[15]=O,n[16]=H):(O=n[15],H=n[16]);let U;n[17]===Symbol.for("react.memo_cache_sentinel")?(U=h.jsx("span",{children:se["employee-count"]}),n[17]=U):U=n[17];let M;n[18]!==u||n[19]!==f?(M=h.jsx(u,{to:"/employee-count",className:f,children:U}),n[18]=u,n[19]=f,n[20]=M):M=n[20];let q;n[21]===Symbol.for("react.memo_cache_sentinel")?(q=h.jsx("span",{children:se.employment}),n[21]=q):q=n[21];let Y;n[22]!==u||n[23]!==f?(Y=h.jsx(u,{to:"/employment",className:f,children:q}),n[22]=u,n[23]=f,n[24]=Y):Y=n[24];let J;n[25]===Symbol.for("react.memo_cache_sentinel")?(J=h.jsx("span",{children:se.roles}),n[25]=J):J=n[25];let G;n[26]!==u||n[27]!==f?(G=h.jsx(u,{to:"/roles",className:f,children:J}),n[26]=u,n[27]=f,n[28]=G):G=n[28];let N;n[29]===Symbol.for("react.memo_cache_sentinel")?(N=h.jsx("span",{children:se.parentorganisation}),n[29]=N):N=n[29];let W;n[30]!==u||n[31]!==f?(W=h.jsx(u,{to:"/parentorganisation",className:f,children:N}),n[30]=u,n[31]=f,n[32]=W):W=n[32];let ie;n[33]===Symbol.for("react.memo_cache_sentinel")?(ie=h.jsx("span",{children:se.suborganisations}),n[33]=ie):ie=n[33];let X;n[34]!==u||n[35]!==f?(X=h.jsx(u,{to:"/suborganisations",className:f,children:ie}),n[34]=u,n[35]=f,n[36]=X):X=n[36];let I;n[37]===Symbol.for("react.memo_cache_sentinel")?(I=h.jsx("span",{children:se["ec-projects"]}),n[37]=I):I=n[37];let de;n[38]!==u||n[39]!==f?(de=h.jsx(u,{to:"/ec-projects",className:f,children:I}),n[38]=u,n[39]=f,n[40]=de):de=n[40];let Ne;return n[41]!==M||n[42]!==Y||n[43]!==G||n[44]!==W||n[45]!==d||n[46]!==X||n[47]!==de||n[48]!==p||n[49]!==R||n[50]!==_?(Ne=h.jsxs(h.Fragment,{children:[d,y,p,R,_,O,H,M,Y,G,W,X,de]}),n[41]=M,n[42]=Y,n[43]=G,n[44]=W,n[45]=d,n[46]=X,n[47]=de,n[48]=p,n[49]=R,n[50]=_,n[51]=Ne):Ne=n[51],Ne}function AS(l){const n=Ke.c(61),{sidebar:c}=l,s=c===void 0?!1:c,u=s?yr:Tn,f=s?"":"link-text-underline";let d;n[0]!==s?(d=s&&h.jsx("h5",{children:"Standards And Policies"}),n[0]=s,n[1]=d):d=n[1];let y;n[2]===Symbol.for("react.memo_cache_sentinel")?(y=h.jsx("h6",{className:"section-title",children:"Policy & Portfolio"}),n[2]=y):y=n[2];let v;n[3]===Symbol.for("react.memo_cache_sentinel")?(v=h.jsx("span",{children:se["corporate-strategy"]}),n[3]=v):v=n[3];let p;n[4]!==u||n[5]!==f?(p=h.jsx(u,{to:"/corporate-strategy",className:f,children:v}),n[4]=u,n[5]=f,n[6]=p):p=n[6];let b;n[7]===Symbol.for("react.memo_cache_sentinel")?(b=h.jsx("span",{children:se.policy}),n[7]=b):b=n[7];let R;n[8]!==u||n[9]!==f?(R=h.jsx(u,{to:"/policy",className:f,children:b}),n[8]=u,n[9]=f,n[10]=R):R=n[10];let S;n[11]===Symbol.for("react.memo_cache_sentinel")?(S=h.jsx("span",{children:se["central-procurement"]}),n[11]=S):S=n[11];let _;n[12]!==u||n[13]!==f?(_=h.jsx(u,{to:"/central-procurement",className:f,children:S}),n[12]=u,n[13]=f,n[14]=_):_=n[14];let O;n[15]===Symbol.for("react.memo_cache_sentinel")?(O=h.jsx("span",{children:se["service-management-framework"]}),n[15]=O):O=n[15];let H;n[16]!==u||n[17]!==f?(H=h.jsx(u,{to:"/service-management-framework",className:f,children:O}),n[16]=u,n[17]=f,n[18]=H):H=n[18];let U;n[19]===Symbol.for("react.memo_cache_sentinel")?(U=h.jsx("span",{children:se["service-level-targets"]}),n[19]=U):U=n[19];let M;n[20]!==u||n[21]!==f?(M=h.jsx(u,{to:"/service-level-targets",className:f,children:U}),n[20]=u,n[21]=f,n[22]=M):M=n[22];let q;n[23]===Symbol.for("react.memo_cache_sentinel")?(q=h.jsx("span",{children:se["services-offered"]}),n[23]=q):q=n[23];let Y;n[24]!==u||n[25]!==f?(Y=h.jsx(u,{to:"/services-offered",className:f,children:q}),n[24]=u,n[25]=f,n[26]=Y):Y=n[26];let J;n[27]===Symbol.for("react.memo_cache_sentinel")?(J=h.jsx("h6",{className:"section-title",children:"Standards"}),n[27]=J):J=n[27];let G;n[28]===Symbol.for("react.memo_cache_sentinel")?(G=h.jsx("span",{children:se.audits}),n[28]=G):G=n[28];let N;n[29]!==u||n[30]!==f?(N=h.jsx(u,{to:"/audits",className:f,children:G}),n[29]=u,n[30]=f,n[31]=N):N=n[31];let W;n[32]===Symbol.for("react.memo_cache_sentinel")?(W=h.jsx("span",{children:se["business-continuity"]}),n[32]=W):W=n[32];let ie;n[33]!==u||n[34]!==f?(ie=h.jsx(u,{to:"/business-continuity",className:f,children:W}),n[33]=u,n[34]=f,n[35]=ie):ie=n[35];let X;n[36]===Symbol.for("react.memo_cache_sentinel")?(X=h.jsx("span",{children:se["crisis-management"]}),n[36]=X):X=n[36];let I;n[37]!==u||n[38]!==f?(I=h.jsx(u,{to:"/crisis-management",className:f,children:X}),n[37]=u,n[38]=f,n[39]=I):I=n[39];let de;n[40]===Symbol.for("react.memo_cache_sentinel")?(de=h.jsx("span",{children:se["crisis-exercise"]}),n[40]=de):de=n[40];let Ne;n[41]!==u||n[42]!==f?(Ne=h.jsx(u,{to:"/crisis-exercise",className:f,children:de}),n[41]=u,n[42]=f,n[43]=Ne):Ne=n[43];let Ye;n[44]===Symbol.for("react.memo_cache_sentinel")?(Ye=h.jsx("span",{children:se["security-control"]}),n[44]=Ye):Ye=n[44];let Be;n[45]!==u||n[46]!==f?(Be=h.jsx(u,{to:"/security-control",className:f,children:Ye}),n[45]=u,n[46]=f,n[47]=Be):Be=n[47];let ze;return n[48]!==H||n[49]!==M||n[50]!==Y||n[51]!==N||n[52]!==d||n[53]!==ie||n[54]!==I||n[55]!==Ne||n[56]!==Be||n[57]!==p||n[58]!==R||n[59]!==_?(ze=h.jsxs(h.Fragment,{children:[d,y,p,R,_,H,M,Y,J,N,ie,I,Ne,Be]}),n[48]=H,n[49]=M,n[50]=Y,n[51]=N,n[52]=d,n[53]=ie,n[54]=I,n[55]=Ne,n[56]=Be,n[57]=p,n[58]=R,n[59]=_,n[60]=ze):ze=n[60],ze}function MS(l){const n=Ke.c(52),{sidebar:c}=l,s=c===void 0?!1:c,u=s?yr:Tn,f=s?"":"link-text-underline";let d;n[0]!==s?(d=s&&h.jsx("h5",{children:"Connected Users"}),n[0]=s,n[1]=d):d=n[1];let y;n[2]===Symbol.for("react.memo_cache_sentinel")?(y=h.jsx("h6",{className:"section-title",children:"Connected Users"}),n[2]=y):y=n[2];let v;n[3]===Symbol.for("react.memo_cache_sentinel")?(v=h.jsx("span",{children:se["institutions-urls"]}),n[3]=v):v=n[3];let p;n[4]!==u||n[5]!==f?(p=h.jsx(u,{to:"/institutions-urls",className:f,children:v}),n[4]=u,n[5]=f,n[6]=p):p=n[6];let b;n[7]===Symbol.for("react.memo_cache_sentinel")?(b=h.jsx("span",{children:se["connected-proportion"]}),n[7]=b):b=n[7];let R;n[8]!==u||n[9]!==f?(R=h.jsx(u,{to:"/connected-proportion",className:f,children:b}),n[8]=u,n[9]=f,n[10]=R):R=n[10];let S;n[11]===Symbol.for("react.memo_cache_sentinel")?(S=h.jsx("span",{children:se["connectivity-level"]}),n[11]=S):S=n[11];let _;n[12]!==u||n[13]!==f?(_=h.jsx(u,{to:"/connectivity-level",className:f,children:S}),n[12]=u,n[13]=f,n[14]=_):_=n[14];let O;n[15]===Symbol.for("react.memo_cache_sentinel")?(O=h.jsx("span",{children:se["connection-carrier"]}),n[15]=O):O=n[15];let H;n[16]!==u||n[17]!==f?(H=h.jsx(u,{to:"/connection-carrier",className:f,children:O}),n[16]=u,n[17]=f,n[18]=H):H=n[18];let U;n[19]===Symbol.for("react.memo_cache_sentinel")?(U=h.jsx("span",{children:se["connectivity-load"]}),n[19]=U):U=n[19];let M;n[20]!==u||n[21]!==f?(M=h.jsx(u,{to:"/connectivity-load",className:f,children:U}),n[20]=u,n[21]=f,n[22]=M):M=n[22];let q;n[23]===Symbol.for("react.memo_cache_sentinel")?(q=h.jsx("span",{children:se["connectivity-growth"]}),n[23]=q):q=n[23];let Y;n[24]!==u||n[25]!==f?(Y=h.jsx(u,{to:"/connectivity-growth",className:f,children:q}),n[24]=u,n[25]=f,n[26]=Y):Y=n[26];let J;n[27]===Symbol.for("react.memo_cache_sentinel")?(J=h.jsx("span",{children:se["remote-campuses"]}),n[27]=J):J=n[27];let G;n[28]!==u||n[29]!==f?(G=h.jsx(u,{to:"/remote-campuses",className:f,children:J}),n[28]=u,n[29]=f,n[30]=G):G=n[30];let N,W;n[31]===Symbol.for("react.memo_cache_sentinel")?(N=h.jsx("hr",{className:"fake-divider"}),W=h.jsx("h6",{className:"section-title",children:"Connected Users - Commercial"}),n[31]=N,n[32]=W):(N=n[31],W=n[32]);let ie;n[33]===Symbol.for("react.memo_cache_sentinel")?(ie=h.jsx("span",{children:se["commercial-charging-level"]}),n[33]=ie):ie=n[33];let X;n[34]!==u||n[35]!==f?(X=h.jsx(u,{to:"/commercial-charging-level",className:f,children:ie}),n[34]=u,n[35]=f,n[36]=X):X=n[36];let I;n[37]===Symbol.for("react.memo_cache_sentinel")?(I=h.jsx("span",{children:se["commercial-connectivity"]}),n[37]=I):I=n[37];let de;n[38]!==u||n[39]!==f?(de=h.jsx(u,{to:"/commercial-connectivity",className:f,children:I}),n[38]=u,n[39]=f,n[40]=de):de=n[40];let Ne;return n[41]!==H||n[42]!==M||n[43]!==Y||n[44]!==G||n[45]!==d||n[46]!==X||n[47]!==de||n[48]!==p||n[49]!==R||n[50]!==_?(Ne=h.jsxs(h.Fragment,{children:[d,y,p,R,_,H,M,Y,G,N,W,X,de]}),n[41]=H,n[42]=M,n[43]=Y,n[44]=G,n[45]=d,n[46]=X,n[47]=de,n[48]=p,n[49]=R,n[50]=_,n[51]=Ne):Ne=n[51],Ne}function zS(l){const n=Ke.c(133),{sidebar:c}=l,s=c===void 0?!1:c,u=s?yr:Tn,f=s?"":"link-text-underline";let d;n[0]!==s?(d=s&&h.jsx("h5",{children:"Network"}),n[0]=s,n[1]=d):d=n[1];let y;n[2]===Symbol.for("react.memo_cache_sentinel")?(y=h.jsx("h6",{className:"section-title",children:"Connectivity"}),n[2]=y):y=n[2];let v;n[3]===Symbol.for("react.memo_cache_sentinel")?(v=h.jsx("span",{children:se["dark-fibre-lease"]}),n[3]=v):v=n[3];let p;n[4]!==u||n[5]!==f?(p=h.jsx(u,{to:"/dark-fibre-lease",className:f,children:v}),n[4]=u,n[5]=f,n[6]=p):p=n[6];let b;n[7]===Symbol.for("react.memo_cache_sentinel")?(b=h.jsx("span",{children:se["dark-fibre-lease-international"]}),n[7]=b):b=n[7];let R;n[8]!==u||n[9]!==f?(R=h.jsx(u,{to:"/dark-fibre-lease-international",className:f,children:b}),n[8]=u,n[9]=f,n[10]=R):R=n[10];let S;n[11]===Symbol.for("react.memo_cache_sentinel")?(S=h.jsx("span",{children:se["iru-duration"]}),n[11]=S):S=n[11];let _;n[12]!==u||n[13]!==f?(_=h.jsx(u,{to:"/iru-duration",className:f,children:S}),n[12]=u,n[13]=f,n[14]=_):_=n[14];let O;n[15]===Symbol.for("react.memo_cache_sentinel")?(O=h.jsx("span",{children:se["dark-fibre-installed"]}),n[15]=O):O=n[15];let H;n[16]!==u||n[17]!==f?(H=h.jsx(u,{to:"/dark-fibre-installed",className:f,children:O}),n[16]=u,n[17]=f,n[18]=H):H=n[18];let U;n[19]===Symbol.for("react.memo_cache_sentinel")?(U=h.jsx("span",{children:se["fibre-light"]}),n[19]=U):U=n[19];let M;n[20]!==u||n[21]!==f?(M=h.jsx(u,{to:"/fibre-light",className:f,children:U}),n[20]=u,n[21]=f,n[22]=M):M=n[22];let q;n[23]===Symbol.for("react.memo_cache_sentinel")?(q=h.jsx("span",{children:se["network-map"]}),n[23]=q):q=n[23];let Y;n[24]!==u||n[25]!==f?(Y=h.jsx(u,{to:"/network-map",className:f,children:q}),n[24]=u,n[25]=f,n[26]=Y):Y=n[26];let J,G;n[27]===Symbol.for("react.memo_cache_sentinel")?(J=h.jsx("hr",{className:"fake-divider"}),G=h.jsx("h6",{className:"section-title",children:"Performance Monitoring & Management"}),n[27]=J,n[28]=G):(J=n[27],G=n[28]);let N;n[29]===Symbol.for("react.memo_cache_sentinel")?(N=h.jsx("span",{children:se["monitoring-tools"]}),n[29]=N):N=n[29];let W;n[30]!==u||n[31]!==f?(W=h.jsx(u,{to:"/monitoring-tools",className:f,children:N}),n[30]=u,n[31]=f,n[32]=W):W=n[32];let ie;n[33]===Symbol.for("react.memo_cache_sentinel")?(ie=h.jsx("span",{children:se["passive-monitoring"]}),n[33]=ie):ie=n[33];let X;n[34]!==u||n[35]!==f?(X=h.jsx(u,{to:"/passive-monitoring",className:f,children:ie}),n[34]=u,n[35]=f,n[36]=X):X=n[36];let I;n[37]===Symbol.for("react.memo_cache_sentinel")?(I=h.jsx("span",{children:se["traffic-stats"]}),n[37]=I):I=n[37];let de;n[38]!==u||n[39]!==f?(de=h.jsx(u,{to:"/traffic-stats",className:f,children:I}),n[38]=u,n[39]=f,n[40]=de):de=n[40];let Ne;n[41]===Symbol.for("react.memo_cache_sentinel")?(Ne=h.jsx("span",{children:se["siem-vendors"]}),n[41]=Ne):Ne=n[41];let Ye;n[42]!==u||n[43]!==f?(Ye=h.jsx(u,{to:"/siem-vendors",className:f,children:Ne}),n[42]=u,n[43]=f,n[44]=Ye):Ye=n[44];let Be;n[45]===Symbol.for("react.memo_cache_sentinel")?(Be=h.jsx("span",{children:se["certificate-provider"]}),n[45]=Be):Be=n[45];let ze;n[46]!==u||n[47]!==f?(ze=h.jsx(u,{to:"/certificate-providers",className:f,children:Be}),n[46]=u,n[47]=f,n[48]=ze):ze=n[48];let K;n[49]===Symbol.for("react.memo_cache_sentinel")?(K=h.jsx("span",{children:se["weather-map"]}),n[49]=K):K=n[49];let ce;n[50]!==u||n[51]!==f?(ce=h.jsx(u,{to:"/weather-map",className:f,children:K}),n[50]=u,n[51]=f,n[52]=ce):ce=n[52];let ne;n[53]===Symbol.for("react.memo_cache_sentinel")?(ne=h.jsx("span",{children:se["pert-team"]}),n[53]=ne):ne=n[53];let Re;n[54]!==u||n[55]!==f?(Re=h.jsx(u,{to:"/pert-team",className:f,children:ne}),n[54]=u,n[55]=f,n[56]=Re):Re=n[56];let T,Q;n[57]===Symbol.for("react.memo_cache_sentinel")?(T=h.jsx("hr",{className:"fake-divider"}),Q=h.jsx("h6",{className:"section-title",children:"Alienwave"}),n[57]=T,n[58]=Q):(T=n[57],Q=n[58]);let le;n[59]===Symbol.for("react.memo_cache_sentinel")?(le=h.jsx("span",{children:se["alien-wave"]}),n[59]=le):le=n[59];let te;n[60]!==u||n[61]!==f?(te=h.jsx(u,{to:"/alien-wave",className:f,children:le}),n[60]=u,n[61]=f,n[62]=te):te=n[62];let P;n[63]===Symbol.for("react.memo_cache_sentinel")?(P=h.jsx("span",{children:se["alien-wave-internal"]}),n[63]=P):P=n[63];let ge;n[64]!==u||n[65]!==f?(ge=h.jsx(u,{to:"/alien-wave-internal",className:f,children:P}),n[64]=u,n[65]=f,n[66]=ge):ge=n[66];let ye,Je;n[67]===Symbol.for("react.memo_cache_sentinel")?(ye=h.jsx("hr",{className:"fake-divider"}),Je=h.jsx("h6",{className:"section-title",children:"Capacity"}),n[67]=ye,n[68]=Je):(ye=n[67],Je=n[68]);let Ce;n[69]===Symbol.for("react.memo_cache_sentinel")?(Ce=h.jsx("span",{children:se["capacity-largest-link"]}),n[69]=Ce):Ce=n[69];let Le;n[70]!==u||n[71]!==f?(Le=h.jsx(u,{to:"/capacity-largest-link",className:f,children:Ce}),n[70]=u,n[71]=f,n[72]=Le):Le=n[72];let Ee;n[73]===Symbol.for("react.memo_cache_sentinel")?(Ee=h.jsx("span",{children:se["capacity-core-ip"]}),n[73]=Ee):Ee=n[73];let Ze;n[74]!==u||n[75]!==f?(Ze=h.jsx(u,{to:"/capacity-core-ip",className:f,children:Ee}),n[74]=u,n[75]=f,n[76]=Ze):Ze=n[76];let vt;n[77]===Symbol.for("react.memo_cache_sentinel")?(vt=h.jsx("span",{children:se["external-connections"]}),n[77]=vt):vt=n[77];let it;n[78]!==u||n[79]!==f?(it=h.jsx(u,{to:"/external-connections",className:f,children:vt}),n[78]=u,n[79]=f,n[80]=it):it=n[80];let lt;n[81]===Symbol.for("react.memo_cache_sentinel")?(lt=h.jsx("span",{children:se["non-rne-peers"]}),n[81]=lt):lt=n[81];let De;n[82]!==u||n[83]!==f?(De=h.jsx(u,{to:"/non-rne-peers",className:f,children:lt}),n[82]=u,n[83]=f,n[84]=De):De=n[84];let Rt;n[85]===Symbol.for("react.memo_cache_sentinel")?(Rt=h.jsx("span",{children:se["traffic-volume"]}),n[85]=Rt):Rt=n[85];let St;n[86]!==u||n[87]!==f?(St=h.jsx(u,{to:"/traffic-volume",className:f,children:Rt}),n[86]=u,n[87]=f,n[88]=St):St=n[88];let Pt;n[89]===Symbol.for("react.memo_cache_sentinel")?(Pt=h.jsx("span",{children:se["traffic-ratio"]}),n[89]=Pt):Pt=n[89];let Zt;n[90]!==u||n[91]!==f?(Zt=h.jsx(u,{to:"/traffic-ratio",className:f,children:Pt}),n[90]=u,n[91]=f,n[92]=Zt):Zt=n[92];let un,cn;n[93]===Symbol.for("react.memo_cache_sentinel")?(un=h.jsx("hr",{className:"fake-divider"}),cn=h.jsx("h6",{className:"section-title",children:"Software-Defined Networking (SDN) & Network Function Virtualisation(NFV)"}),n[93]=un,n[94]=cn):(un=n[93],cn=n[94]);let Ut;n[95]===Symbol.for("react.memo_cache_sentinel")?(Ut=h.jsx("span",{children:se["ops-automation"]}),n[95]=Ut):Ut=n[95];let Ht;n[96]!==u||n[97]!==f?(Ht=h.jsx(u,{to:"/ops-automation",className:f,children:Ut}),n[96]=u,n[97]=f,n[98]=Ht):Ht=n[98];let mt;n[99]===Symbol.for("react.memo_cache_sentinel")?(mt=h.jsx("span",{children:se.nfv}),n[99]=mt):mt=n[99];let Kt;n[100]!==u||n[101]!==f?(Kt=h.jsx(u,{to:"/nfv",className:f,children:mt}),n[100]=u,n[101]=f,n[102]=Kt):Kt=n[102];let _e;n[103]===Symbol.for("react.memo_cache_sentinel")?(_e=h.jsx("span",{children:se["network-automation"]}),n[103]=_e):_e=n[103];let Ie;n[104]!==u||n[105]!==f?(Ie=h.jsx(u,{to:"/network-automation",className:f,children:_e}),n[104]=u,n[105]=f,n[106]=Ie):Ie=n[106];let kt;return n[107]!==H||n[108]!==M||n[109]!==Y||n[110]!==W||n[111]!==d||n[112]!==X||n[113]!==de||n[114]!==Ye||n[115]!==ze||n[116]!==ce||n[117]!==Re||n[118]!==te||n[119]!==ge||n[120]!==Le||n[121]!==Ze||n[122]!==it||n[123]!==De||n[124]!==St||n[125]!==p||n[126]!==Zt||n[127]!==Ht||n[128]!==Kt||n[129]!==Ie||n[130]!==R||n[131]!==_?(kt=h.jsxs(h.Fragment,{children:[d,y,p,R,_,H,M,Y,J,G,W,X,de,Ye,ze,ce,Re,T,Q,te,ge,ye,Je,Le,Ze,it,De,St,Zt,un,cn,Ht,Kt,Ie]}),n[107]=H,n[108]=M,n[109]=Y,n[110]=W,n[111]=d,n[112]=X,n[113]=de,n[114]=Ye,n[115]=ze,n[116]=ce,n[117]=Re,n[118]=te,n[119]=ge,n[120]=Le,n[121]=Ze,n[122]=it,n[123]=De,n[124]=St,n[125]=p,n[126]=Zt,n[127]=Ht,n[128]=Kt,n[129]=Ie,n[130]=R,n[131]=_,n[132]=kt):kt=n[132],kt}function LS(l){const n=Ke.c(44),{sidebar:c}=l,s=c===void 0?!1:c,u=s?yr:Tn,f=s?"":"link-text-underline";let d;n[0]!==s?(d=s&&h.jsx("h5",{children:"Services"}),n[0]=s,n[1]=d):d=n[1];let y;n[2]===Symbol.for("react.memo_cache_sentinel")?(y=h.jsx("span",{children:se["network-services"]}),n[2]=y):y=n[2];let v;n[3]!==u||n[4]!==f?(v=h.jsx(u,{to:"/network-services",className:f,children:y}),n[3]=u,n[4]=f,n[5]=v):v=n[5];let p;n[6]===Symbol.for("react.memo_cache_sentinel")?(p=h.jsx("span",{children:se["isp-support-services"]}),n[6]=p):p=n[6];let b;n[7]!==u||n[8]!==f?(b=h.jsx(u,{to:"/isp-support-services",className:f,children:p}),n[7]=u,n[8]=f,n[9]=b):b=n[9];let R;n[10]===Symbol.for("react.memo_cache_sentinel")?(R=h.jsx("span",{children:se["security-services"]}),n[10]=R):R=n[10];let S;n[11]!==u||n[12]!==f?(S=h.jsx(u,{to:"/security-services",className:f,children:R}),n[11]=u,n[12]=f,n[13]=S):S=n[13];let _;n[14]===Symbol.for("react.memo_cache_sentinel")?(_=h.jsx("span",{children:se["identity-services"]}),n[14]=_):_=n[14];let O;n[15]!==u||n[16]!==f?(O=h.jsx(u,{to:"/identity-services",className:f,children:_}),n[15]=u,n[16]=f,n[17]=O):O=n[17];let H;n[18]===Symbol.for("react.memo_cache_sentinel")?(H=h.jsx("span",{children:se["storage-and-hosting-services"]}),n[18]=H):H=n[18];let U;n[19]!==u||n[20]!==f?(U=h.jsx(u,{to:"/storage-and-hosting-services",className:f,children:H}),n[19]=u,n[20]=f,n[21]=U):U=n[21];let M;n[22]===Symbol.for("react.memo_cache_sentinel")?(M=h.jsx("span",{children:se["multimedia-services"]}),n[22]=M):M=n[22];let q;n[23]!==u||n[24]!==f?(q=h.jsx(u,{to:"/multimedia-services",className:f,children:M}),n[23]=u,n[24]=f,n[25]=q):q=n[25];let Y;n[26]===Symbol.for("react.memo_cache_sentinel")?(Y=h.jsx("span",{children:se["collaboration-services"]}),n[26]=Y):Y=n[26];let J;n[27]!==u||n[28]!==f?(J=h.jsx(u,{to:"/collaboration-services",className:f,children:Y}),n[27]=u,n[28]=f,n[29]=J):J=n[29];let G;n[30]===Symbol.for("react.memo_cache_sentinel")?(G=h.jsx("span",{children:se["professional-services"]}),n[30]=G):G=n[30];let N;n[31]!==u||n[32]!==f?(N=h.jsx(u,{to:"/professional-services",className:f,children:G}),n[31]=u,n[32]=f,n[33]=N):N=n[33];let W;return n[34]!==O||n[35]!==U||n[36]!==q||n[37]!==J||n[38]!==N||n[39]!==d||n[40]!==v||n[41]!==b||n[42]!==S?(W=h.jsxs(h.Fragment,{children:[d,v,b,S,O,U,q,J,N]}),n[34]=O,n[35]=U,n[36]=q,n[37]=J,n[38]=N,n[39]=d,n[40]=v,n[41]=b,n[42]=S,n[43]=W):W=n[43],W}function US(){const l=Ke.c(10);DS();const{trackPageView:n}=Hp();let c,s;l[0]!==n?(c=()=>{n({documentTitle:"Compendium Data"})},s=[n],l[0]=n,l[1]=c,l[2]=s):(c=l[1],s=l[2]),Yt.useEffect(c,s);let u;l[3]===Symbol.for("react.memo_cache_sentinel")?(u=h.jsx(NS,{type:"data"}),l[3]=u):u=l[3];let f;l[4]===Symbol.for("react.memo_cache_sentinel")?(f=h.jsx(CS,{type:"data",children:h.jsx("p",{className:"wordwrap",children:"The GÉANT Compendium provides an authoritative reference source for anyone with an interest in the development of research and education networking in Europe and beyond. Published since 2001, the Compendium provides information on key areas such as users, services, traffic, budget and staffing."})}),l[4]=f):f=l[4];let d;l[5]===Symbol.for("react.memo_cache_sentinel")?(d=h.jsx(rr,{title:li.Organisation,children:h.jsx(wS,{})}),l[5]=d):d=l[5];let y;l[6]===Symbol.for("react.memo_cache_sentinel")?(y=h.jsx(rr,{title:li.Policy,startCollapsed:!0,children:h.jsx(AS,{})}),l[6]=y):y=l[6];let v;l[7]===Symbol.for("react.memo_cache_sentinel")?(v=h.jsx(rr,{title:li.ConnectedUsers,startCollapsed:!0,children:h.jsx(MS,{})}),l[7]=v):v=l[7];let p;l[8]===Symbol.for("react.memo_cache_sentinel")?(p=h.jsx(rr,{title:li.Network,startCollapsed:!0,children:h.jsx(zS,{})}),l[8]=p):p=l[8];let b;return l[9]===Symbol.for("react.memo_cache_sentinel")?(b=h.jsxs(h.Fragment,{children:[u,f,h.jsx(Ya,{className:"mt-5 mb-5",children:h.jsxs(Rn,{children:[d,y,v,p,h.jsx(rr,{title:li.Services,startCollapsed:!0,children:h.jsx(LS,{})})]})})]}),l[9]=b):b=l[9],b}const HS=()=>{const l=Ke.c(26),{consent:n,setConsent:c}=g.useContext(Jo),[s,u]=g.useState(n===null);let f;l[0]===Symbol.for("react.memo_cache_sentinel")?(f=()=>{u(!1),window.location.reload()},l[0]=f):f=l[0];const d=f,[y,v]=g.useState(!0);let p;l[1]!==c?(p=N=>{const W=new Date;W.setDate(W.getDate()+30),localStorage.setItem("matomo_consent",JSON.stringify({consent:N,expiry:W})),c(N)},l[1]=c,l[2]=p):p=l[2];const b=p;let R;l[3]===Symbol.for("react.memo_cache_sentinel")?(R=h.jsx(ir.Header,{closeButton:!0,children:h.jsx(ir.Title,{children:"Privacy on this site"})}),l[3]=R):R=l[3];let S;l[4]===Symbol.for("react.memo_cache_sentinel")?(S=h.jsx("a",{href:"https://geant.org/Privacy-Notice/",children:"Privacy Policy"}),l[4]=S):S=l[4];let _;l[5]===Symbol.for("react.memo_cache_sentinel")?(_=h.jsxs("p",{children:["On our site we use Matomo to collect and process data about your visit to better understand how it is used. For more information, see our ",S,".",h.jsx("br",{}),"Below, you can choose to accept or decline to have this data collected."]}),l[5]=_):_=l[5];let O;l[6]!==y?(O=()=>v(!y),l[6]=y,l[7]=O):O=l[7];let H;l[8]!==y||l[9]!==O?(H=h.jsx(Du.Check,{type:"checkbox",label:"Analytics",checked:y,onChange:O}),l[8]=y,l[9]=O,l[10]=H):H=l[10];let U;l[11]===Symbol.for("react.memo_cache_sentinel")?(U=h.jsx(Du.Text,{className:"text-muted",children:"We collect information about your visit on the compendium site — this helps us understand how the site is used, and how we can improve it."}),l[11]=U):U=l[11];let M;l[12]!==H?(M=h.jsxs(ir.Body,{children:[_,h.jsx(Du,{children:h.jsxs(Du.Group,{className:"mb-3",children:[H,U]})})]}),l[12]=H,l[13]=M):M=l[13];let q;l[14]!==b?(q=h.jsx(Bo,{variant:"secondary",onClick:()=>{b(!1),d()},children:"Decline all"}),l[14]=b,l[15]=q):q=l[15];let Y;l[16]!==y||l[17]!==b?(Y=h.jsx(Bo,{variant:"primary",onClick:()=>{b(y),d()},children:"Save consent for 30 days"}),l[16]=y,l[17]=b,l[18]=Y):Y=l[18];let J;l[19]!==Y||l[20]!==q?(J=h.jsxs(ir.Footer,{children:[q,Y]}),l[19]=Y,l[20]=q,l[21]=J):J=l[21];let G;return l[22]!==s||l[23]!==J||l[24]!==M?(G=h.jsxs(ir,{show:s,centered:!0,children:[R,M,J]}),l[22]=s,l[23]=J,l[24]=M,l[25]=G):G=l[25],G},BS=g.lazy(()=>be(()=>import("./Budget-CVs5cg26.js"),__vite__mapDeps([0,1,2,3,4,5,6,7]))),qS=g.lazy(()=>be(()=>import("./ChargingStructure-CPkeaV7G.js"),__vite__mapDeps([8,2,3,4,5,6,9,10,11]))),VS=g.lazy(()=>be(()=>import("./ECProjects-CegfdWfI.js"),__vite__mapDeps([12,2,3,4,5,6,13,11]))),YS=g.lazy(()=>be(()=>import("./FundingSource-BB230uTC.js"),__vite__mapDeps([14,1,2,3,4,5,6,15]))),kS=g.lazy(()=>be(()=>import("./ParentOrganisation-C_34aAmv.js"),__vite__mapDeps([16,2,3,4,5,6,13,11]))),Oy=g.lazy(()=>be(()=>import("./StaffGraph-BhGKlAbH.js"),__vite__mapDeps([17,1,2,3,4,5,6,18]))),GS=g.lazy(()=>be(()=>import("./StaffGraphAbsolute-DYsL_bJE.js"),__vite__mapDeps([19,1,2,3,4,5,6,15,7]))),XS=g.lazy(()=>be(()=>import("./SubOrganisation-Csf8sqHo.js"),__vite__mapDeps([20,2,3,4,5,6,13,11]))),QS=g.lazy(()=>be(()=>import("./Audits-DrRfyBs4.js"),__vite__mapDeps([21,2,3,4,5,6,9,10,11]))),ZS=g.lazy(()=>be(()=>import("./BusinessContinuity-jrf4-tia.js"),__vite__mapDeps([22,2,3,4,5,6,9,10,11]))),KS=g.lazy(()=>be(()=>import("./CentralProcurement-C2sliv5Z.js"),__vite__mapDeps([23,2,3,4,5,6,15,1,7]))),$S=g.lazy(()=>be(()=>import("./CorporateStrategy-B96fGlR3.js"),__vite__mapDeps([24,2,3,4,5,6,13,11]))),FS=g.lazy(()=>be(()=>import("./CrisisExercises-D8VSuWUx.js"),__vite__mapDeps([25,2,3,4,5,6,9,10,11]))),JS=g.lazy(()=>be(()=>import("./CrisisManagement-DPAIuZEV.js"),__vite__mapDeps([26,2,3,4,5,6,9,10,11]))),PS=g.lazy(()=>be(()=>import("./EOSCListings-cU4UG7og.js"),__vite__mapDeps([27,2,3,4,5,6,13,11]))),WS=g.lazy(()=>be(()=>import("./Policy-CuNV_l7a.js"),__vite__mapDeps([28,2,3,4,5,6,13,11]))),IS=g.lazy(()=>be(()=>import("./SecurityControls-C_redfTy.js"),__vite__mapDeps([29,2,3,4,5,6,9,10,11]))),e2=g.lazy(()=>be(()=>import("./ServiceLevelTargets-CXuM4ENo.js"),__vite__mapDeps([30,2,3,4,5,6,9,10,11]))),t2=g.lazy(()=>be(()=>import("./ServiceManagementFramework-B5G4LhDr.js"),__vite__mapDeps([31,2,3,4,5,6,9,10,11]))),n2=g.lazy(()=>be(()=>import("./ServicesOffered-B_OBZM5I.js"),__vite__mapDeps([32,2,3,4,5,6,33,11]))),a2=g.lazy(()=>be(()=>import("./ConnectedInstitutionsURLs-BmsNaWXO.js"),__vite__mapDeps([34,2,3,4,5,6,13,11]))),dl=g.lazy(()=>be(()=>import("./ConnectedUser-CfYJAE0v.js"),__vite__mapDeps([35,2,3,4,5,6,33,11]))),l2=g.lazy(()=>be(()=>import("./RemoteCampuses-NGRzWQf8.js"),__vite__mapDeps([36,2,3,4,5,6,11]))),i2=g.lazy(()=>be(()=>import("./AlienWave-CpRPpDKT.js"),__vite__mapDeps([37,2,3,4,5,6,9,10,11]))),r2=g.lazy(()=>be(()=>import("./AlienWaveInternal-DDEuk0kg.js"),__vite__mapDeps([38,2,3,4,5,6,9,10,11]))),u2=g.lazy(()=>be(()=>import("./Automation-7WUmNT-G.js"),__vite__mapDeps([39,2,3,4,5,6,10,11]))),c2=g.lazy(()=>be(()=>import("./CapacityCoreIP-Br9KX5yH.js"),__vite__mapDeps([40,1,2,3,4,5,6,15,7]))),s2=g.lazy(()=>be(()=>import("./CapacityLargestLink-LEyWpKvI.js"),__vite__mapDeps([41,1,2,3,4,5,6,15,7]))),o2=g.lazy(()=>be(()=>import("./CertificateProvider-Bvo47nf9.js"),__vite__mapDeps([42,2,3,4,5,6,9,10,11]))),Dy=g.lazy(()=>be(()=>import("./DarkFibreLease-rEaEK83T.js"),__vite__mapDeps([43,1,2,3,4,5,6,7]))),f2=g.lazy(()=>be(()=>import("./DarkFibreInstalled-Dlwn_bKp.js"),__vite__mapDeps([44,1,2,3,4,5,6,7]))),d2=g.lazy(()=>be(()=>import("./ExternalConnections-CQ5ri9Cp.js"),__vite__mapDeps([45,2,3,4,5,6,11]))),h2=g.lazy(()=>be(()=>import("./FibreLight-BhW_HRmH.js"),__vite__mapDeps([46,2,3,4,5,6,9,10,11]))),m2=g.lazy(()=>be(()=>import("./IRUDuration-RAtcDfR4.js"),__vite__mapDeps([47,1,2,3,4,5,6,7]))),y2=g.lazy(()=>be(()=>import("./MonitoringTools-DrashCOV.js"),__vite__mapDeps([48,2,3,4,5,6,9,10,11]))),p2=g.lazy(()=>be(()=>import("./NetworkFunctionVirtualisation-DgYBul36.js"),__vite__mapDeps([49,2,3,4,5,6,10,11]))),v2=g.lazy(()=>be(()=>import("./NetworkMapUrls-xqgin1fL.js"),__vite__mapDeps([50,2,3,4,5,6,13,11]))),g2=g.lazy(()=>be(()=>import("./NonRAndEPeer-B8hczKc3.js"),__vite__mapDeps([51,1,2,3,4,5,6,15,7]))),E2=g.lazy(()=>be(()=>import("./OPsAutomation-CaApYas2.js"),__vite__mapDeps([52,2,3,4,5,6,9,10,11]))),b2=g.lazy(()=>be(()=>import("./PassiveMonitoring-HFCN_S9d.js"),__vite__mapDeps([53,2,3,4,5,6,9,10,11]))),S2=g.lazy(()=>be(()=>import("./PertTeam-CvKn3tG_.js"),__vite__mapDeps([54,2,3,4,5,6,9,10,11]))),x2=g.lazy(()=>be(()=>import("./SiemVendors-BCpq8Hqq.js"),__vite__mapDeps([55,2,3,4,5,6,9,10,11]))),_2=g.lazy(()=>be(()=>import("./TrafficRatio-hTxXFYQn.js"),__vite__mapDeps([56,1,2,3,4,5,6,18]))),R2=g.lazy(()=>be(()=>import("./TrafficUrl-DMw44Rpa.js"),__vite__mapDeps([57,2,3,4,5,6,13,11]))),T2=g.lazy(()=>be(()=>import("./TrafficVolume-CBGOlk8Z.js"),__vite__mapDeps([58,1,2,3,4,5,6,7]))),N2=g.lazy(()=>be(()=>import("./WeatherMap-C2uAbI_g.js"),__vite__mapDeps([59,2,3,4,5,6,13,11]))),Ua=g.lazy(()=>be(()=>import("./Services-2YDP1wpB.js"),__vite__mapDeps([60,2,3,4,5,6,11]))),C2=g.lazy(()=>be(()=>import("./Landing-Dx2MGVWO.js"),__vite__mapDeps([61,4,62,3,63,11]))),No=g.lazy(()=>be(()=>import("./SurveyContainerComponent-CbFnC4ad.js"),__vite__mapDeps([64,65,66,67,62,3,68]))),j2=g.lazy(()=>be(()=>import("./SurveyManagementComponent-Lo-9bnmr.js"),__vite__mapDeps([69,70,6,11,65,67,63,62,3]))),O2=g.lazy(()=>be(()=>import("./UserManagementComponent-C2zXLwZT.js"),__vite__mapDeps([71,65,62,3,5,70,6,11]))),D2=()=>{const l=Ke.c(9),{pathname:n}=Xn(),c=n!=="/";let s;l[0]===Symbol.for("react.memo_cache_sentinel")?(s=h.jsx(oS,{}),l[0]=s):s=l[0];let u;l[1]!==c?(u=h.jsx("main",{className:"grow",children:c?h.jsx(T0,{}):h.jsx(Bp,{})}),l[1]=c,l[2]=u):u=l[2];let f;l[3]===Symbol.for("react.memo_cache_sentinel")?(f=h.jsx(HS,{}),l[3]=f):f=l[3];let d;l[4]!==u?(d=h.jsxs(wE,{children:[s,u,f]}),l[4]=u,l[5]=d):d=l[5];let y;l[6]===Symbol.for("react.memo_cache_sentinel")?(y=h.jsx(hS,{}),l[6]=y):y=l[6];let v;return l[7]!==d?(v=h.jsxs(h.Fragment,{children:[d,y]}),l[7]=d,l[8]=v):v=l[8],v},w2=P0([{path:"",element:h.jsx(D2,{}),children:[{path:"/budget",element:h.jsx(BS,{})},{path:"/funding",element:h.jsx(YS,{})},{path:"/employment",element:h.jsx(Oy,{},"staffgraph")},{path:"/traffic-ratio",element:h.jsx(_2,{})},{path:"/roles",element:h.jsx(Oy,{roles:!0},"staffgraphroles")},{path:"/employee-count",element:h.jsx(GS,{})},{path:"/charging",element:h.jsx(qS,{})},{path:"/suborganisations",element:h.jsx(XS,{})},{path:"/parentorganisation",element:h.jsx(kS,{})},{path:"/ec-projects",element:h.jsx(VS,{})},{path:"/policy",element:h.jsx(WS,{})},{path:"/traffic-volume",element:h.jsx(T2,{})},{path:"/data",element:h.jsx(US,{})},{path:"/institutions-urls",element:h.jsx(a2,{})},{path:"/connected-proportion",element:h.jsx(dl,{page:Qt.ConnectedProportion},Qt.ConnectedProportion)},{path:"/connectivity-level",element:h.jsx(dl,{page:Qt.ConnectivityLevel},Qt.ConnectivityLevel)},{path:"/connectivity-growth",element:h.jsx(dl,{page:Qt.ConnectivityGrowth},Qt.ConnectivityGrowth)},{path:"/connection-carrier",element:h.jsx(dl,{page:Qt.ConnectionCarrier},Qt.ConnectionCarrier)},{path:"/connectivity-load",element:h.jsx(dl,{page:Qt.ConnectivityLoad},Qt.ConnectivityLoad)},{path:"/commercial-charging-level",element:h.jsx(dl,{page:Qt.CommercialChargingLevel},Qt.CommercialChargingLevel)},{path:"/commercial-connectivity",element:h.jsx(dl,{page:Qt.CommercialConnectivity},Qt.CommercialConnectivity)},{path:"/network-services",element:h.jsx(Ua,{category:Lt.network_services},Lt.network_services)},{path:"/isp-support-services",element:h.jsx(Ua,{category:Lt.isp_support},Lt.isp_support)},{path:"/security-services",element:h.jsx(Ua,{category:Lt.security},Lt.security)},{path:"/identity-services",element:h.jsx(Ua,{category:Lt.identity},Lt.identity)},{path:"/collaboration-services",element:h.jsx(Ua,{category:Lt.collaboration},Lt.collaboration)},{path:"/multimedia-services",element:h.jsx(Ua,{category:Lt.multimedia},Lt.multimedia)},{path:"/storage-and-hosting-services",element:h.jsx(Ua,{category:Lt.storage_and_hosting},Lt.storage_and_hosting)},{path:"/professional-services",element:h.jsx(Ua,{category:Lt.professional_services},Lt.professional_services)},{path:"/dark-fibre-lease",element:h.jsx(Dy,{national:!0},"darkfibrenational")},{path:"/dark-fibre-lease-international",element:h.jsx(Dy,{},"darkfibreinternational")},{path:"/dark-fibre-installed",element:h.jsx(f2,{})},{path:"/remote-campuses",element:h.jsx(l2,{})},{path:"/eosc-listings",element:h.jsx(PS,{})},{path:"/fibre-light",element:h.jsx(h2,{})},{path:"/monitoring-tools",element:h.jsx(y2,{})},{path:"/pert-team",element:h.jsx(S2,{})},{path:"/passive-monitoring",element:h.jsx(b2,{})},{path:"/alien-wave",element:h.jsx(i2,{})},{path:"/alien-wave-internal",element:h.jsx(r2,{})},{path:"/external-connections",element:h.jsx(d2,{})},{path:"/ops-automation",element:h.jsx(E2,{})},{path:"/network-automation",element:h.jsx(u2,{})},{path:"/traffic-stats",element:h.jsx(R2,{})},{path:"/weather-map",element:h.jsx(N2,{})},{path:"/network-map",element:h.jsx(v2,{})},{path:"/nfv",element:h.jsx(p2,{})},{path:"/certificate-providers",element:h.jsx(o2,{})},{path:"/siem-vendors",element:h.jsx(x2,{})},{path:"/capacity-largest-link",element:h.jsx(s2,{})},{path:"/capacity-core-ip",element:h.jsx(c2,{})},{path:"/non-rne-peers",element:h.jsx(g2,{})},{path:"/iru-duration",element:h.jsx(m2,{})},{path:"/audits",element:h.jsx(QS,{})},{path:"/business-continuity",element:h.jsx(ZS,{})},{path:"/crisis-management",element:h.jsx(JS,{})},{path:"/crisis-exercise",element:h.jsx(FS,{})},{path:"/central-procurement",element:h.jsx(KS,{})},{path:"/security-control",element:h.jsx(IS,{})},{path:"/services-offered",element:h.jsx(n2,{})},{path:"/service-management-framework",element:h.jsx(t2,{})},{path:"/service-level-targets",element:h.jsx(e2,{})},{path:"/corporate-strategy",element:h.jsx($S,{})},{path:"/survey/admin/surveys",element:h.jsx(j2,{})},{path:"/survey/admin/users",element:h.jsx(O2,{})},{path:"/survey/admin/inspect/:year",element:h.jsx(No,{loadFrom:"/api/response/inspect/"})},{path:"/survey/admin/try/:year",element:h.jsx(No,{loadFrom:"/api/response/try/"})},{path:"/survey/response/:year/:nren",element:h.jsx(No,{loadFrom:"/api/response/load/"})},{path:"/survey/*",element:h.jsx(C2,{})},{path:"/*",element:h.jsx(Bp,{})}]}]);function A2(){const l=Ke.c(1);let n;return l[0]===Symbol.for("react.memo_cache_sentinel")?(n=h.jsx("div",{className:"app",children:h.jsx(oE,{router:w2})}),l[0]=n):n=l[0],n}const M2=document.getElementById("root"),z2=a1.createRoot(M2);z2.render(h.jsx(Yt.StrictMode,{children:h.jsx(A2,{})}));export{zE as $,Ho as A,pb as B,ln as C,Xy as D,Ya as E,yE as F,MS as G,LS as H,jS as I,vE as J,OS as K,Tn as L,Iy as M,zS as N,wS as O,AS as P,Hp as Q,Rn as R,li as S,NS as T,V2 as U,SE as V,Du as W,DS as X,_S as Y,RS as Z,Yp as _,Qt as a,Lt as a0,Fo as a1,yr as a2,Gu as a3,wy as a4,B2 as a5,H2 as a6,be as a7,rb as a8,nb as a9,$u as aa,gl as ab,hl as ac,Mo as ad,Ba as ae,yl as af,ab as ag,U2 as ah,nf as ai,OE as aj,Y2 as b,Ke as c,k2 as d,rr as e,Yt as f,up as g,Qe as h,Ae as i,h as j,sb as k,by as l,Bu as m,Ob as n,Ku as o,tf as p,ob as q,g as r,ti as s,se as t,pl as u,lp as v,q2 as w,rp as x,Bo as y,BE as z}; +*/var dy;function AE(){return dy||(dy=1,function(l){(function(){var n={}.hasOwnProperty;function c(){for(var f="",d=0;d<arguments.length;d++){var y=arguments[d];y&&(f=u(f,s(y)))}return f}function s(f){if(typeof f=="string"||typeof f=="number")return f;if(typeof f!="object")return"";if(Array.isArray(f))return c.apply(null,f);if(f.toString!==Object.prototype.toString&&!f.toString.toString().includes("[native code]"))return f.toString();var d="";for(var y in f)n.call(f,y)&&f[y]&&(d=u(d,y));return d}function u(f,d){return d?f?f+" "+d:f+d:f}l.exports?(c.default=c,l.exports=c):window.classNames=c})()}(po)),po.exports}var ME=AE();const Ae=fr(ME);function zE(l,n){if(l==null)return{};var c={};for(var s in l)if({}.hasOwnProperty.call(l,s)){if(n.includes(s))continue;c[s]=l[s]}return c}function Ao(l,n){return Ao=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(c,s){return c.__proto__=s,c},Ao(l,n)}function LE(l,n){l.prototype=Object.create(n.prototype),l.prototype.constructor=l,Ao(l,n)}const UE=["xxl","xl","lg","md","sm","xs"],HE="xs",Zu=g.createContext({prefixes:{},breakpoints:UE,minBreakpoint:HE});function Qe(l,n){const{prefixes:c}=g.useContext(Zu);return l||c[n]||n}function tp(){const{breakpoints:l}=g.useContext(Zu);return l}function np(){const{minBreakpoint:l}=g.useContext(Zu);return l}function BE(){const{dir:l}=g.useContext(Zu);return l==="rtl"}function Ku(l){return l&&l.ownerDocument||document}function qE(l){var n=Ku(l);return n&&n.defaultView||window}function VE(l,n){return qE(l).getComputedStyle(l,n)}var YE=/([A-Z])/g;function kE(l){return l.replace(YE,"-$1").toLowerCase()}var GE=/^ms-/;function Ou(l){return kE(l).replace(GE,"-ms-")}var XE=/^((translate|rotate|scale)(X|Y|Z|3d)?|matrix(3d)?|perspective|skew(X|Y)?)$/i;function QE(l){return!!(l&&XE.test(l))}function gl(l,n){var c="",s="";if(typeof n=="string")return l.style.getPropertyValue(Ou(n))||VE(l).getPropertyValue(Ou(n));Object.keys(n).forEach(function(u){var f=n[u];!f&&f!==0?l.style.removeProperty(Ou(u)):QE(u)?s+=u+"("+f+") ":c+=Ou(u)+": "+f+";"}),s&&(c+="transform: "+s+";"),l.style.cssText+=";"+c}var vo={exports:{}},go,hy;function ZE(){if(hy)return go;hy=1;var l="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";return go=l,go}var Eo,my;function KE(){if(my)return Eo;my=1;var l=ZE();function n(){}function c(){}return c.resetWarningCache=n,Eo=function(){function s(d,y,v,p,b,R){if(R!==l){var S=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw S.name="Invariant Violation",S}}s.isRequired=s;function u(){return s}var f={array:s,bigint:s,bool:s,func:s,number:s,object:s,string:s,symbol:s,any:s,arrayOf:u,element:s,elementType:s,instanceOf:u,node:s,objectOf:u,oneOf:u,oneOfType:u,shape:u,exact:u,checkPropTypes:c,resetWarningCache:n};return f.PropTypes=f,f},Eo}var yy;function $E(){return yy||(yy=1,vo.exports=KE()()),vo.exports}var FE=$E();const fa=fr(FE),py={disabled:!1},ap=Yt.createContext(null);var JE=function(n){return n.scrollTop},cr="unmounted",hl="exited",Ba="entering",yl="entered",Mo="exiting",ha=function(l){LE(n,l);function n(s,u){var f;f=l.call(this,s,u)||this;var d=u,y=d&&!d.isMounting?s.enter:s.appear,v;return f.appearStatus=null,s.in?y?(v=hl,f.appearStatus=Ba):v=yl:s.unmountOnExit||s.mountOnEnter?v=cr:v=hl,f.state={status:v},f.nextCallback=null,f}n.getDerivedStateFromProps=function(u,f){var d=u.in;return d&&f.status===cr?{status:hl}:null};var c=n.prototype;return c.componentDidMount=function(){this.updateStatus(!0,this.appearStatus)},c.componentDidUpdate=function(u){var f=null;if(u!==this.props){var d=this.state.status;this.props.in?d!==Ba&&d!==yl&&(f=Ba):(d===Ba||d===yl)&&(f=Mo)}this.updateStatus(!1,f)},c.componentWillUnmount=function(){this.cancelNextCallback()},c.getTimeouts=function(){var u=this.props.timeout,f,d,y;return f=d=y=u,u!=null&&typeof u!="number"&&(f=u.exit,d=u.enter,y=u.appear!==void 0?u.appear:d),{exit:f,enter:d,appear:y}},c.updateStatus=function(u,f){if(u===void 0&&(u=!1),f!==null)if(this.cancelNextCallback(),f===Ba){if(this.props.unmountOnExit||this.props.mountOnEnter){var d=this.props.nodeRef?this.props.nodeRef.current:ii.findDOMNode(this);d&&JE(d)}this.performEnter(u)}else this.performExit();else this.props.unmountOnExit&&this.state.status===hl&&this.setState({status:cr})},c.performEnter=function(u){var f=this,d=this.props.enter,y=this.context?this.context.isMounting:u,v=this.props.nodeRef?[y]:[ii.findDOMNode(this),y],p=v[0],b=v[1],R=this.getTimeouts(),S=y?R.appear:R.enter;if(!u&&!d||py.disabled){this.safeSetState({status:yl},function(){f.props.onEntered(p)});return}this.props.onEnter(p,b),this.safeSetState({status:Ba},function(){f.props.onEntering(p,b),f.onTransitionEnd(S,function(){f.safeSetState({status:yl},function(){f.props.onEntered(p,b)})})})},c.performExit=function(){var u=this,f=this.props.exit,d=this.getTimeouts(),y=this.props.nodeRef?void 0:ii.findDOMNode(this);if(!f||py.disabled){this.safeSetState({status:hl},function(){u.props.onExited(y)});return}this.props.onExit(y),this.safeSetState({status:Mo},function(){u.props.onExiting(y),u.onTransitionEnd(d.exit,function(){u.safeSetState({status:hl},function(){u.props.onExited(y)})})})},c.cancelNextCallback=function(){this.nextCallback!==null&&(this.nextCallback.cancel(),this.nextCallback=null)},c.safeSetState=function(u,f){f=this.setNextCallback(f),this.setState(u,f)},c.setNextCallback=function(u){var f=this,d=!0;return this.nextCallback=function(y){d&&(d=!1,f.nextCallback=null,u(y))},this.nextCallback.cancel=function(){d=!1},this.nextCallback},c.onTransitionEnd=function(u,f){this.setNextCallback(f);var d=this.props.nodeRef?this.props.nodeRef.current:ii.findDOMNode(this),y=u==null&&!this.props.addEndListener;if(!d||y){setTimeout(this.nextCallback,0);return}if(this.props.addEndListener){var v=this.props.nodeRef?[this.nextCallback]:[d,this.nextCallback],p=v[0],b=v[1];this.props.addEndListener(p,b)}u!=null&&setTimeout(this.nextCallback,u)},c.render=function(){var u=this.state.status;if(u===cr)return null;var f=this.props,d=f.children;f.in,f.mountOnEnter,f.unmountOnExit,f.appear,f.enter,f.exit,f.timeout,f.addEndListener,f.onEnter,f.onEntering,f.onEntered,f.onExit,f.onExiting,f.onExited,f.nodeRef;var y=zE(f,["children","in","mountOnEnter","unmountOnExit","appear","enter","exit","timeout","addEndListener","onEnter","onEntering","onEntered","onExit","onExiting","onExited","nodeRef"]);return Yt.createElement(ap.Provider,{value:null},typeof d=="function"?d(u,y):Yt.cloneElement(Yt.Children.only(d),y))},n}(Yt.Component);ha.contextType=ap;ha.propTypes={};function ei(){}ha.defaultProps={in:!1,mountOnEnter:!1,unmountOnExit:!1,appear:!1,enter:!0,exit:!0,onEnter:ei,onEntering:ei,onEntered:ei,onExit:ei,onExiting:ei,onExited:ei};ha.UNMOUNTED=cr;ha.EXITED=hl;ha.ENTERING=Ba;ha.ENTERED=yl;ha.EXITING=Mo;function PE(l){return l.code==="Escape"||l.keyCode===27}function WE(){const l=g.version.split(".");return{major:+l[0],minor:+l[1],patch:+l[2]}}function $u(l){if(!l||typeof l=="function")return null;const{major:n}=WE();return n>=19?l.props.ref:l.ref}const ri=!!(typeof window<"u"&&window.document&&window.document.createElement);var zo=!1,Lo=!1;try{var bo={get passive(){return zo=!0},get once(){return Lo=zo=!0}};ri&&(window.addEventListener("test",bo,bo),window.removeEventListener("test",bo,!0))}catch{}function lp(l,n,c,s){if(s&&typeof s!="boolean"&&!Lo){var u=s.once,f=s.capture,d=c;!Lo&&u&&(d=c.__once||function y(v){this.removeEventListener(n,y,f),c.call(this,v)},c.__once=d),l.addEventListener(n,d,zo?s:f)}l.addEventListener(n,c,s)}function Uo(l,n,c,s){var u=s&&typeof s!="boolean"?s.capture:s;l.removeEventListener(n,c,u),c.__once&&l.removeEventListener(n,c.__once,u)}function Bu(l,n,c,s){return lp(l,n,c,s),function(){Uo(l,n,c,s)}}function IE(l,n,c,s){if(s===void 0&&(s=!0),l){var u=document.createEvent("HTMLEvents");u.initEvent(n,c,s),l.dispatchEvent(u)}}function eb(l){var n=gl(l,"transitionDuration")||"",c=n.indexOf("ms")===-1?1e3:1;return parseFloat(n)*c}function tb(l,n,c){c===void 0&&(c=5);var s=!1,u=setTimeout(function(){s||IE(l,"transitionend",!0)},n+c),f=Bu(l,"transitionend",function(){s=!0},{once:!0});return function(){clearTimeout(u),f()}}function ip(l,n,c,s){c==null&&(c=eb(l)||0);var u=tb(l,c,s),f=Bu(l,"transitionend",n);return function(){u(),f()}}function vy(l,n){const c=gl(l,n)||"",s=c.indexOf("ms")===-1?1e3:1;return parseFloat(c)*s}function nb(l,n){const c=vy(l,"transitionDuration"),s=vy(l,"transitionDelay"),u=ip(l,f=>{f.target===l&&(u(),n(f))},c+s)}function ab(l){l.offsetHeight}const gy=l=>!l||typeof l=="function"?l:n=>{l.current=n};function lb(l,n){const c=gy(l),s=gy(n);return u=>{c&&c(u),s&&s(u)}}function rp(l,n){return g.useMemo(()=>lb(l,n),[l,n])}function ib(l){return l&&"setState"in l?ii.findDOMNode(l):l??null}const rb=Yt.forwardRef(({onEnter:l,onEntering:n,onEntered:c,onExit:s,onExiting:u,onExited:f,addEndListener:d,children:y,childRef:v,...p},b)=>{const R=g.useRef(null),S=rp(R,v),_=N=>{S(ib(N))},O=N=>W=>{N&&R.current&&N(R.current,W)},H=g.useCallback(O(l),[l]),U=g.useCallback(O(n),[n]),M=g.useCallback(O(c),[c]),q=g.useCallback(O(s),[s]),Y=g.useCallback(O(u),[u]),J=g.useCallback(O(f),[f]),G=g.useCallback(O(d),[d]);return h.jsx(ha,{ref:b,...p,onEnter:H,onEntered:M,onEntering:U,onExit:q,onExited:J,onExiting:Y,addEndListener:G,nodeRef:R,children:typeof y=="function"?(N,W)=>y(N,{...W,ref:_}):Yt.cloneElement(y,{ref:_})})});function ub(l){const n=g.useRef(l);return g.useEffect(()=>{n.current=l},[l]),n}function Ho(l){const n=ub(l);return g.useCallback(function(...c){return n.current&&n.current(...c)},[n])}const Po=l=>g.forwardRef((n,c)=>h.jsx("div",{...n,ref:c,className:Ae(n.className,l)}));function cb(l){const n=g.useRef(l);return g.useEffect(()=>{n.current=l},[l]),n}function pl(l){const n=cb(l);return g.useCallback(function(...c){return n.current&&n.current(...c)},[n])}function sb(){const l=g.useRef(!0),n=g.useRef(()=>l.current);return g.useEffect(()=>(l.current=!0,()=>{l.current=!1}),[]),n.current}function ob(l){const n=g.useRef(null);return g.useEffect(()=>{n.current=l}),n.current}const fb=typeof global<"u"&&global.navigator&&global.navigator.product==="ReactNative",db=typeof document<"u",Ey=db||fb?g.useLayoutEffect:g.useEffect,hb=["as","disabled"];function mb(l,n){if(l==null)return{};var c={};for(var s in l)if({}.hasOwnProperty.call(l,s)){if(n.indexOf(s)>=0)continue;c[s]=l[s]}return c}function yb(l){return!l||l.trim()==="#"}function up({tagName:l,disabled:n,href:c,target:s,rel:u,role:f,onClick:d,tabIndex:y=0,type:v}){l||(c!=null||s!=null||u!=null?l="a":l="button");const p={tagName:l};if(l==="button")return[{type:v||"button",disabled:n},p];const b=S=>{if((n||l==="a"&&yb(c))&&S.preventDefault(),n){S.stopPropagation();return}d==null||d(S)},R=S=>{S.key===" "&&(S.preventDefault(),b(S))};return l==="a"&&(c||(c="#"),n&&(c=void 0)),[{role:f??"button",disabled:void 0,tabIndex:n?void 0:y,href:c,target:l==="a"?s:void 0,"aria-disabled":n||void 0,rel:l==="a"?u:void 0,onClick:b,onKeyDown:R},p]}const pb=g.forwardRef((l,n)=>{let{as:c,disabled:s}=l,u=mb(l,hb);const[f,{tagName:d}]=up(Object.assign({tagName:c,disabled:s},u));return h.jsx(d,Object.assign({},u,f,{ref:n}))});pb.displayName="Button";const vb={[Ba]:"show",[yl]:"show"},Wo=g.forwardRef(({className:l,children:n,transitionClasses:c={},onEnter:s,...u},f)=>{const d={in:!1,timeout:300,mountOnEnter:!1,unmountOnExit:!1,appear:!1,...u},y=g.useCallback((v,p)=>{ab(v),s==null||s(v,p)},[s]);return h.jsx(rb,{ref:f,addEndListener:nb,...d,onEnter:y,childRef:$u(n),children:(v,p)=>g.cloneElement(n,{...p,className:Ae("fade",l,n.props.className,vb[v],c[v])})})});Wo.displayName="Fade";const gb={"aria-label":fa.string,onClick:fa.func,variant:fa.oneOf(["white"])},Io=g.forwardRef(({className:l,variant:n,"aria-label":c="Close",...s},u)=>h.jsx("button",{ref:u,type:"button",className:Ae("btn-close",n&&`btn-close-${n}`,l),"aria-label":c,...s}));Io.displayName="CloseButton";Io.propTypes=gb;const Bo=g.forwardRef(({as:l,bsPrefix:n,variant:c="primary",size:s,active:u=!1,disabled:f=!1,className:d,...y},v)=>{const p=Qe(n,"btn"),[b,{tagName:R}]=up({tagName:l,disabled:f,...y}),S=R;return h.jsx(S,{...b,...y,ref:v,disabled:f,className:Ae(d,p,u&&"active",c&&`${p}-${c}`,s&&`${p}-${s}`,y.href&&f&&"disabled")})});Bo.displayName="Button";const ef=g.forwardRef(({className:l,bsPrefix:n,as:c="div",...s},u)=>(n=Qe(n,"card-body"),h.jsx(c,{ref:u,className:Ae(l,n),...s})));ef.displayName="CardBody";const cp=g.forwardRef(({className:l,bsPrefix:n,as:c="div",...s},u)=>(n=Qe(n,"card-footer"),h.jsx(c,{ref:u,className:Ae(l,n),...s})));cp.displayName="CardFooter";const sp=g.createContext(null);sp.displayName="CardHeaderContext";const op=g.forwardRef(({bsPrefix:l,className:n,as:c="div",...s},u)=>{const f=Qe(l,"card-header"),d=g.useMemo(()=>({cardHeaderBsPrefix:f}),[f]);return h.jsx(sp.Provider,{value:d,children:h.jsx(c,{ref:u,...s,className:Ae(n,f)})})});op.displayName="CardHeader";const fp=g.forwardRef(({bsPrefix:l,className:n,variant:c,as:s="img",...u},f)=>{const d=Qe(l,"card-img");return h.jsx(s,{ref:f,className:Ae(c?`${d}-${c}`:d,n),...u})});fp.displayName="CardImg";const dp=g.forwardRef(({className:l,bsPrefix:n,as:c="div",...s},u)=>(n=Qe(n,"card-img-overlay"),h.jsx(c,{ref:u,className:Ae(l,n),...s})));dp.displayName="CardImgOverlay";const hp=g.forwardRef(({className:l,bsPrefix:n,as:c="a",...s},u)=>(n=Qe(n,"card-link"),h.jsx(c,{ref:u,className:Ae(l,n),...s})));hp.displayName="CardLink";const Eb=Po("h6"),mp=g.forwardRef(({className:l,bsPrefix:n,as:c=Eb,...s},u)=>(n=Qe(n,"card-subtitle"),h.jsx(c,{ref:u,className:Ae(l,n),...s})));mp.displayName="CardSubtitle";const yp=g.forwardRef(({className:l,bsPrefix:n,as:c="p",...s},u)=>(n=Qe(n,"card-text"),h.jsx(c,{ref:u,className:Ae(l,n),...s})));yp.displayName="CardText";const bb=Po("h5"),pp=g.forwardRef(({className:l,bsPrefix:n,as:c=bb,...s},u)=>(n=Qe(n,"card-title"),h.jsx(c,{ref:u,className:Ae(l,n),...s})));pp.displayName="CardTitle";const vp=g.forwardRef(({bsPrefix:l,className:n,bg:c,text:s,border:u,body:f=!1,children:d,as:y="div",...v},p)=>{const b=Qe(l,"card");return h.jsx(y,{ref:p,...v,className:Ae(n,b,c&&`bg-${c}`,s&&`text-${s}`,u&&`border-${u}`),children:f?h.jsx(ef,{children:d}):d})});vp.displayName="Card";const Yn=Object.assign(vp,{Img:fp,Title:pp,Subtitle:mp,Body:ef,Link:hp,Text:yp,Header:op,Footer:cp,ImgOverlay:dp});function Sb(l){const n=g.useRef(l);return n.current=l,n}function xb(l){const n=Sb(l);g.useEffect(()=>()=>n.current(),[])}function _b(l,n){return g.Children.toArray(l).some(c=>g.isValidElement(c)&&c.type===n)}function Rb({as:l,bsPrefix:n,className:c,...s}){n=Qe(n,"col");const u=tp(),f=np(),d=[],y=[];return u.forEach(v=>{const p=s[v];delete s[v];let b,R,S;typeof p=="object"&&p!=null?{span:b,offset:R,order:S}=p:b=p;const _=v!==f?`-${v}`:"";b&&d.push(b===!0?`${n}${_}`:`${n}${_}-${b}`),S!=null&&y.push(`order${_}-${S}`),R!=null&&y.push(`offset${_}-${R}`)}),[{...s,className:Ae(c,...d,...y)},{as:l,bsPrefix:n,spans:d}]}const ln=g.forwardRef((l,n)=>{const[{className:c,...s},{as:u="div",bsPrefix:f,spans:d}]=Rb(l);return h.jsx(u,{...s,ref:n,className:Ae(c,!d.length&&f)})});ln.displayName="Col";const Ya=g.forwardRef(({bsPrefix:l,fluid:n=!1,as:c="div",className:s,...u},f)=>{const d=Qe(l,"container"),y=typeof n=="string"?`-${n}`:"-fluid";return h.jsx(c,{ref:f,...u,className:Ae(s,n?`${d}${y}`:d)})});Ya.displayName="Container";var Tb=Function.prototype.bind.call(Function.prototype.call,[].slice);function ti(l,n){return Tb(l.querySelectorAll(n))}function by(l,n){if(l.contains)return l.contains(n);if(l.compareDocumentPosition)return l===n||!!(l.compareDocumentPosition(n)&16)}var So,Sy;function Nb(){if(Sy)return So;Sy=1;var l=function(){};return So=l,So}var Cb=Nb();const q2=fr(Cb),jb="data-rr-ui-";function Ob(l){return`${jb}${l}`}const gp=g.createContext(ri?window:void 0);gp.Provider;function tf(){return g.useContext(gp)}const Db={type:fa.string,tooltip:fa.bool,as:fa.elementType},Fu=g.forwardRef(({as:l="div",className:n,type:c="valid",tooltip:s=!1,...u},f)=>h.jsx(l,{...u,ref:f,className:Ae(n,`${c}-${s?"tooltip":"feedback"}`)}));Fu.displayName="Feedback";Fu.propTypes=Db;const da=g.createContext({}),nf=g.forwardRef(({id:l,bsPrefix:n,className:c,type:s="checkbox",isValid:u=!1,isInvalid:f=!1,as:d="input",...y},v)=>{const{controlId:p}=g.useContext(da);return n=Qe(n,"form-check-input"),h.jsx(d,{...y,ref:v,type:s,id:l||p,className:Ae(c,n,u&&"is-valid",f&&"is-invalid")})});nf.displayName="FormCheckInput";const qu=g.forwardRef(({bsPrefix:l,className:n,htmlFor:c,...s},u)=>{const{controlId:f}=g.useContext(da);return l=Qe(l,"form-check-label"),h.jsx("label",{...s,ref:u,htmlFor:c||f,className:Ae(n,l)})});qu.displayName="FormCheckLabel";const Ep=g.forwardRef(({id:l,bsPrefix:n,bsSwitchPrefix:c,inline:s=!1,reverse:u=!1,disabled:f=!1,isValid:d=!1,isInvalid:y=!1,feedbackTooltip:v=!1,feedback:p,feedbackType:b,className:R,style:S,title:_="",type:O="checkbox",label:H,children:U,as:M="input",...q},Y)=>{n=Qe(n,"form-check"),c=Qe(c,"form-switch");const{controlId:J}=g.useContext(da),G=g.useMemo(()=>({controlId:l||J}),[J,l]),N=!U&&H!=null&&H!==!1||_b(U,qu),W=h.jsx(nf,{...q,type:O==="switch"?"checkbox":O,ref:Y,isValid:d,isInvalid:y,disabled:f,as:M});return h.jsx(da.Provider,{value:G,children:h.jsx("div",{style:S,className:Ae(R,N&&n,s&&`${n}-inline`,u&&`${n}-reverse`,O==="switch"&&c),children:U||h.jsxs(h.Fragment,{children:[W,N&&h.jsx(qu,{title:_,children:H}),p&&h.jsx(Fu,{type:b,tooltip:v,children:p})]})})})});Ep.displayName="FormCheck";const Vu=Object.assign(Ep,{Input:nf,Label:qu}),bp=g.forwardRef(({bsPrefix:l,type:n,size:c,htmlSize:s,id:u,className:f,isValid:d=!1,isInvalid:y=!1,plaintext:v,readOnly:p,as:b="input",...R},S)=>{const{controlId:_}=g.useContext(da);return l=Qe(l,"form-control"),h.jsx(b,{...R,type:n,size:s,ref:S,readOnly:p,id:u||_,className:Ae(f,v?`${l}-plaintext`:l,c&&`${l}-${c}`,n==="color"&&`${l}-color`,d&&"is-valid",y&&"is-invalid")})});bp.displayName="FormControl";const wb=Object.assign(bp,{Feedback:Fu}),Sp=g.forwardRef(({className:l,bsPrefix:n,as:c="div",...s},u)=>(n=Qe(n,"form-floating"),h.jsx(c,{ref:u,className:Ae(l,n),...s})));Sp.displayName="FormFloating";const af=g.forwardRef(({controlId:l,as:n="div",...c},s)=>{const u=g.useMemo(()=>({controlId:l}),[l]);return h.jsx(da.Provider,{value:u,children:h.jsx(n,{...c,ref:s})})});af.displayName="FormGroup";const xp=g.forwardRef(({as:l="label",bsPrefix:n,column:c=!1,visuallyHidden:s=!1,className:u,htmlFor:f,...d},y)=>{const{controlId:v}=g.useContext(da);n=Qe(n,"form-label");let p="col-form-label";typeof c=="string"&&(p=`${p} ${p}-${c}`);const b=Ae(u,n,s&&"visually-hidden",c&&p);return f=f||v,c?h.jsx(ln,{ref:y,as:"label",className:b,htmlFor:f,...d}):h.jsx(l,{ref:y,className:b,htmlFor:f,...d})});xp.displayName="FormLabel";const _p=g.forwardRef(({bsPrefix:l,className:n,id:c,...s},u)=>{const{controlId:f}=g.useContext(da);return l=Qe(l,"form-range"),h.jsx("input",{...s,type:"range",ref:u,className:Ae(n,l),id:c||f})});_p.displayName="FormRange";const Rp=g.forwardRef(({bsPrefix:l,size:n,htmlSize:c,className:s,isValid:u=!1,isInvalid:f=!1,id:d,...y},v)=>{const{controlId:p}=g.useContext(da);return l=Qe(l,"form-select"),h.jsx("select",{...y,size:c,ref:v,className:Ae(s,l,n&&`${l}-${n}`,u&&"is-valid",f&&"is-invalid"),id:d||p})});Rp.displayName="FormSelect";const Tp=g.forwardRef(({bsPrefix:l,className:n,as:c="small",muted:s,...u},f)=>(l=Qe(l,"form-text"),h.jsx(c,{...u,ref:f,className:Ae(n,l,s&&"text-muted")})));Tp.displayName="FormText";const Np=g.forwardRef((l,n)=>h.jsx(Vu,{...l,ref:n,type:"switch"}));Np.displayName="Switch";const Ab=Object.assign(Np,{Input:Vu.Input,Label:Vu.Label}),Cp=g.forwardRef(({bsPrefix:l,className:n,children:c,controlId:s,label:u,...f},d)=>(l=Qe(l,"form-floating"),h.jsxs(af,{ref:d,className:Ae(n,l),controlId:s,...f,children:[c,h.jsx("label",{htmlFor:s,children:u})]})));Cp.displayName="FloatingLabel";const Mb={_ref:fa.any,validated:fa.bool,as:fa.elementType},lf=g.forwardRef(({className:l,validated:n,as:c="form",...s},u)=>h.jsx(c,{...s,ref:u,className:Ae(l,n&&"was-validated")}));lf.displayName="Form";lf.propTypes=Mb;const Du=Object.assign(lf,{Group:af,Control:wb,Floating:Sp,Check:Vu,Switch:Ab,Label:xp,Text:Tp,Range:_p,Select:Rp,FloatingLabel:Cp}),xy=l=>!l||typeof l=="function"?l:n=>{l.current=n};function zb(l,n){const c=xy(l),s=xy(n);return u=>{c&&c(u),s&&s(u)}}function rf(l,n){return g.useMemo(()=>zb(l,n),[l,n])}var wu;function _y(l){if((!wu&&wu!==0||l)&&ri){var n=document.createElement("div");n.style.position="absolute",n.style.top="-9999px",n.style.width="50px",n.style.height="50px",n.style.overflow="scroll",document.body.appendChild(n),wu=n.offsetWidth-n.clientWidth,document.body.removeChild(n)}return wu}function Lb(){return g.useState(null)}function xo(l){l===void 0&&(l=Ku());try{var n=l.activeElement;return!n||!n.nodeName?null:n}catch{return l.body}}function Ub(l){const n=g.useRef(l);return n.current=l,n}function Hb(l){const n=Ub(l);g.useEffect(()=>()=>n.current(),[])}function Bb(l=document){const n=l.defaultView;return Math.abs(n.innerWidth-l.documentElement.clientWidth)}const Ry=Ob("modal-open");class uf{constructor({ownerDocument:n,handleContainerOverflow:c=!0,isRTL:s=!1}={}){this.handleContainerOverflow=c,this.isRTL=s,this.modals=[],this.ownerDocument=n}getScrollbarWidth(){return Bb(this.ownerDocument)}getElement(){return(this.ownerDocument||document).body}setModalAttributes(n){}removeModalAttributes(n){}setContainerStyle(n){const c={overflow:"hidden"},s=this.isRTL?"paddingLeft":"paddingRight",u=this.getElement();n.style={overflow:u.style.overflow,[s]:u.style[s]},n.scrollBarWidth&&(c[s]=`${parseInt(gl(u,s)||"0",10)+n.scrollBarWidth}px`),u.setAttribute(Ry,""),gl(u,c)}reset(){[...this.modals].forEach(n=>this.remove(n))}removeContainerStyle(n){const c=this.getElement();c.removeAttribute(Ry),Object.assign(c.style,n.style)}add(n){let c=this.modals.indexOf(n);return c!==-1||(c=this.modals.length,this.modals.push(n),this.setModalAttributes(n),c!==0)||(this.state={scrollBarWidth:this.getScrollbarWidth(),style:{}},this.handleContainerOverflow&&this.setContainerStyle(this.state)),c}remove(n){const c=this.modals.indexOf(n);c!==-1&&(this.modals.splice(c,1),!this.modals.length&&this.handleContainerOverflow&&this.removeContainerStyle(this.state),this.removeModalAttributes(n))}isTopModal(n){return!!this.modals.length&&this.modals[this.modals.length-1]===n}}const _o=(l,n)=>ri?l==null?(n||Ku()).body:(typeof l=="function"&&(l=l()),l&&"current"in l&&(l=l.current),l&&("nodeType"in l||l.getBoundingClientRect)?l:null):null;function qb(l,n){const c=tf(),[s,u]=g.useState(()=>_o(l,c==null?void 0:c.document));if(!s){const f=_o(l);f&&u(f)}return g.useEffect(()=>{},[n,s]),g.useEffect(()=>{const f=_o(l);f!==s&&u(f)},[l,s]),s}function Vb({children:l,in:n,onExited:c,mountOnEnter:s,unmountOnExit:u}){const f=g.useRef(null),d=g.useRef(n),y=pl(c);g.useEffect(()=>{n?d.current=!0:y(f.current)},[n,y]);const v=rf(f,$u(l)),p=g.cloneElement(l,{ref:v});return n?p:u||!d.current&&s?null:p}const Yb=["onEnter","onEntering","onEntered","onExit","onExiting","onExited","addEndListener","children"];function kb(l,n){if(l==null)return{};var c={};for(var s in l)if({}.hasOwnProperty.call(l,s)){if(n.indexOf(s)>=0)continue;c[s]=l[s]}return c}function Gb(l){let{onEnter:n,onEntering:c,onEntered:s,onExit:u,onExiting:f,onExited:d,addEndListener:y,children:v}=l,p=kb(l,Yb);const b=g.useRef(null),R=rf(b,$u(v)),S=J=>G=>{J&&b.current&&J(b.current,G)},_=g.useCallback(S(n),[n]),O=g.useCallback(S(c),[c]),H=g.useCallback(S(s),[s]),U=g.useCallback(S(u),[u]),M=g.useCallback(S(f),[f]),q=g.useCallback(S(d),[d]),Y=g.useCallback(S(y),[y]);return Object.assign({},p,{nodeRef:b},n&&{onEnter:_},c&&{onEntering:O},s&&{onEntered:H},u&&{onExit:U},f&&{onExiting:M},d&&{onExited:q},y&&{addEndListener:Y},{children:typeof v=="function"?(J,G)=>v(J,Object.assign({},G,{ref:R})):g.cloneElement(v,{ref:R})})}const Xb=["component"];function Qb(l,n){if(l==null)return{};var c={};for(var s in l)if({}.hasOwnProperty.call(l,s)){if(n.indexOf(s)>=0)continue;c[s]=l[s]}return c}const Zb=g.forwardRef((l,n)=>{let{component:c}=l,s=Qb(l,Xb);const u=Gb(s);return h.jsx(c,Object.assign({ref:n},u))});function Kb({in:l,onTransition:n}){const c=g.useRef(null),s=g.useRef(!0),u=pl(n);return Ey(()=>{if(!c.current)return;let f=!1;return u({in:l,element:c.current,initial:s.current,isStale:()=>f}),()=>{f=!0}},[l,u]),Ey(()=>(s.current=!1,()=>{s.current=!0}),[]),c}function $b({children:l,in:n,onExited:c,onEntered:s,transition:u}){const[f,d]=g.useState(!n);n&&f&&d(!1);const y=Kb({in:!!n,onTransition:p=>{const b=()=>{p.isStale()||(p.in?s==null||s(p.element,p.initial):(d(!0),c==null||c(p.element)))};Promise.resolve(u(p)).then(b,R=>{throw p.in||d(!0),R})}}),v=rf(y,$u(l));return f&&!n?null:g.cloneElement(l,{ref:v})}function Ty(l,n,c){return l?h.jsx(Zb,Object.assign({},c,{component:l})):n?h.jsx($b,Object.assign({},c,{transition:n})):h.jsx(Vb,Object.assign({},c))}const Fb=["show","role","className","style","children","backdrop","keyboard","onBackdropClick","onEscapeKeyDown","transition","runTransition","backdropTransition","runBackdropTransition","autoFocus","enforceFocus","restoreFocus","restoreFocusOptions","renderDialog","renderBackdrop","manager","container","onShow","onHide","onExit","onExited","onExiting","onEnter","onEntering","onEntered"];function Jb(l,n){if(l==null)return{};var c={};for(var s in l)if({}.hasOwnProperty.call(l,s)){if(n.indexOf(s)>=0)continue;c[s]=l[s]}return c}let Ro;function Pb(l){return Ro||(Ro=new uf({ownerDocument:l==null?void 0:l.document})),Ro}function Wb(l){const n=tf(),c=l||Pb(n),s=g.useRef({dialog:null,backdrop:null});return Object.assign(s.current,{add:()=>c.add(s.current),remove:()=>c.remove(s.current),isTopModal:()=>c.isTopModal(s.current),setDialogRef:g.useCallback(u=>{s.current.dialog=u},[]),setBackdropRef:g.useCallback(u=>{s.current.backdrop=u},[])})}const jp=g.forwardRef((l,n)=>{let{show:c=!1,role:s="dialog",className:u,style:f,children:d,backdrop:y=!0,keyboard:v=!0,onBackdropClick:p,onEscapeKeyDown:b,transition:R,runTransition:S,backdropTransition:_,runBackdropTransition:O,autoFocus:H=!0,enforceFocus:U=!0,restoreFocus:M=!0,restoreFocusOptions:q,renderDialog:Y,renderBackdrop:J=De=>h.jsx("div",Object.assign({},De)),manager:G,container:N,onShow:W,onHide:ie=()=>{},onExit:X,onExited:I,onExiting:de,onEnter:Ne,onEntering:Ye,onEntered:Be}=l,ze=Jb(l,Fb);const K=tf(),ce=qb(N),ne=Wb(G),Re=sb(),T=ob(c),[Q,le]=g.useState(!c),te=g.useRef(null);g.useImperativeHandle(n,()=>ne,[ne]),ri&&!T&&c&&(te.current=xo(K==null?void 0:K.document)),c&&Q&&le(!1);const P=pl(()=>{if(ne.add(),Ee.current=Bu(document,"keydown",Ce),Le.current=Bu(document,"focus",()=>setTimeout(ye),!0),W&&W(),H){var De,Rt;const St=xo((De=(Rt=ne.dialog)==null?void 0:Rt.ownerDocument)!=null?De:K==null?void 0:K.document);ne.dialog&&St&&!by(ne.dialog,St)&&(te.current=St,ne.dialog.focus())}}),ge=pl(()=>{if(ne.remove(),Ee.current==null||Ee.current(),Le.current==null||Le.current(),M){var De;(De=te.current)==null||De.focus==null||De.focus(q),te.current=null}});g.useEffect(()=>{!c||!ce||P()},[c,ce,P]),g.useEffect(()=>{Q&&ge()},[Q,ge]),Hb(()=>{ge()});const ye=pl(()=>{if(!U||!Re()||!ne.isTopModal())return;const De=xo(K==null?void 0:K.document);ne.dialog&&De&&!by(ne.dialog,De)&&ne.dialog.focus()}),Je=pl(De=>{De.target===De.currentTarget&&(p==null||p(De),y===!0&&ie())}),Ce=pl(De=>{v&&PE(De)&&ne.isTopModal()&&(b==null||b(De),De.defaultPrevented||ie())}),Le=g.useRef(),Ee=g.useRef(),Ze=(...De)=>{le(!0),I==null||I(...De)};if(!ce)return null;const vt=Object.assign({role:s,ref:ne.setDialogRef,"aria-modal":s==="dialog"?!0:void 0},ze,{style:f,className:u,tabIndex:-1});let it=Y?Y(vt):h.jsx("div",Object.assign({},vt,{children:g.cloneElement(d,{role:"document"})}));it=Ty(R,S,{unmountOnExit:!0,mountOnEnter:!0,appear:!0,in:!!c,onExit:X,onExiting:de,onExited:Ze,onEnter:Ne,onEntering:Ye,onEntered:Be,children:it});let lt=null;return y&&(lt=J({ref:ne.setBackdropRef,onClick:Je}),lt=Ty(_,O,{in:!!c,appear:!0,mountOnEnter:!0,unmountOnExit:!0,children:lt})),h.jsx(h.Fragment,{children:ii.createPortal(h.jsxs(h.Fragment,{children:[lt,it]}),ce)})});jp.displayName="Modal";const Ib=Object.assign(jp,{Manager:uf});function eS(l,n){return l.classList?l.classList.contains(n):(" "+(l.className.baseVal||l.className)+" ").indexOf(" "+n+" ")!==-1}function tS(l,n){l.classList?l.classList.add(n):eS(l,n)||(typeof l.className=="string"?l.className=l.className+" "+n:l.setAttribute("class",(l.className&&l.className.baseVal||"")+" "+n))}function Ny(l,n){return l.replace(new RegExp("(^|\\s)"+n+"(?:\\s|$)","g"),"$1").replace(/\s+/g," ").replace(/^\s*|\s*$/g,"")}function nS(l,n){l.classList?l.classList.remove(n):typeof l.className=="string"?l.className=Ny(l.className,n):l.setAttribute("class",Ny(l.className&&l.className.baseVal||"",n))}const ni={FIXED_CONTENT:".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",STICKY_CONTENT:".sticky-top",NAVBAR_TOGGLER:".navbar-toggler"};class aS extends uf{adjustAndStore(n,c,s){const u=c.style[n];c.dataset[n]=u,gl(c,{[n]:`${parseFloat(gl(c,n))+s}px`})}restore(n,c){const s=c.dataset[n];s!==void 0&&(delete c.dataset[n],gl(c,{[n]:s}))}setContainerStyle(n){super.setContainerStyle(n);const c=this.getElement();if(tS(c,"modal-open"),!n.scrollBarWidth)return;const s=this.isRTL?"paddingLeft":"paddingRight",u=this.isRTL?"marginLeft":"marginRight";ti(c,ni.FIXED_CONTENT).forEach(f=>this.adjustAndStore(s,f,n.scrollBarWidth)),ti(c,ni.STICKY_CONTENT).forEach(f=>this.adjustAndStore(u,f,-n.scrollBarWidth)),ti(c,ni.NAVBAR_TOGGLER).forEach(f=>this.adjustAndStore(u,f,n.scrollBarWidth))}removeContainerStyle(n){super.removeContainerStyle(n);const c=this.getElement();nS(c,"modal-open");const s=this.isRTL?"paddingLeft":"paddingRight",u=this.isRTL?"marginLeft":"marginRight";ti(c,ni.FIXED_CONTENT).forEach(f=>this.restore(s,f)),ti(c,ni.STICKY_CONTENT).forEach(f=>this.restore(u,f)),ti(c,ni.NAVBAR_TOGGLER).forEach(f=>this.restore(u,f))}}let To;function lS(l){return To||(To=new aS(l)),To}const Op=g.forwardRef(({className:l,bsPrefix:n,as:c="div",...s},u)=>(n=Qe(n,"modal-body"),h.jsx(c,{ref:u,className:Ae(l,n),...s})));Op.displayName="ModalBody";const Dp=g.createContext({onHide(){}}),cf=g.forwardRef(({bsPrefix:l,className:n,contentClassName:c,centered:s,size:u,fullscreen:f,children:d,scrollable:y,...v},p)=>{l=Qe(l,"modal");const b=`${l}-dialog`,R=typeof f=="string"?`${l}-fullscreen-${f}`:`${l}-fullscreen`;return h.jsx("div",{...v,ref:p,className:Ae(b,n,u&&`${l}-${u}`,s&&`${b}-centered`,y&&`${b}-scrollable`,f&&R),children:h.jsx("div",{className:Ae(`${l}-content`,c),children:d})})});cf.displayName="ModalDialog";const wp=g.forwardRef(({className:l,bsPrefix:n,as:c="div",...s},u)=>(n=Qe(n,"modal-footer"),h.jsx(c,{ref:u,className:Ae(l,n),...s})));wp.displayName="ModalFooter";const iS=g.forwardRef(({closeLabel:l="Close",closeVariant:n,closeButton:c=!1,onHide:s,children:u,...f},d)=>{const y=g.useContext(Dp),v=Ho(()=>{y==null||y.onHide(),s==null||s()});return h.jsxs("div",{ref:d,...f,children:[u,c&&h.jsx(Io,{"aria-label":l,variant:n,onClick:v})]})}),Ap=g.forwardRef(({bsPrefix:l,className:n,closeLabel:c="Close",closeButton:s=!1,...u},f)=>(l=Qe(l,"modal-header"),h.jsx(iS,{ref:f,...u,className:Ae(n,l),closeLabel:c,closeButton:s})));Ap.displayName="ModalHeader";const rS=Po("h4"),Mp=g.forwardRef(({className:l,bsPrefix:n,as:c=rS,...s},u)=>(n=Qe(n,"modal-title"),h.jsx(c,{ref:u,className:Ae(l,n),...s})));Mp.displayName="ModalTitle";function uS(l){return h.jsx(Wo,{...l,timeout:null})}function cS(l){return h.jsx(Wo,{...l,timeout:null})}const zp=g.forwardRef(({bsPrefix:l,className:n,style:c,dialogClassName:s,contentClassName:u,children:f,dialogAs:d=cf,"data-bs-theme":y,"aria-labelledby":v,"aria-describedby":p,"aria-label":b,show:R=!1,animation:S=!0,backdrop:_=!0,keyboard:O=!0,onEscapeKeyDown:H,onShow:U,onHide:M,container:q,autoFocus:Y=!0,enforceFocus:J=!0,restoreFocus:G=!0,restoreFocusOptions:N,onEntered:W,onExit:ie,onExiting:X,onEnter:I,onEntering:de,onExited:Ne,backdropClassName:Ye,manager:Be,...ze},K)=>{const[ce,ne]=g.useState({}),[Re,T]=g.useState(!1),Q=g.useRef(!1),le=g.useRef(!1),te=g.useRef(null),[P,ge]=Lb(),ye=rp(K,ge),Je=Ho(M),Ce=BE();l=Qe(l,"modal");const Le=g.useMemo(()=>({onHide:Je}),[Je]);function Ee(){return Be||lS({isRTL:Ce})}function Ze(_e){if(!ri)return;const Ie=Ee().getScrollbarWidth()>0,kt=_e.scrollHeight>Ku(_e).documentElement.clientHeight;ne({paddingRight:Ie&&!kt?_y():void 0,paddingLeft:!Ie&&kt?_y():void 0})}const vt=Ho(()=>{P&&Ze(P.dialog)});xb(()=>{Uo(window,"resize",vt),te.current==null||te.current()});const it=()=>{Q.current=!0},lt=_e=>{Q.current&&P&&_e.target===P.dialog&&(le.current=!0),Q.current=!1},De=()=>{T(!0),te.current=ip(P.dialog,()=>{T(!1)})},Rt=_e=>{_e.target===_e.currentTarget&&De()},St=_e=>{if(_==="static"){Rt(_e);return}if(le.current||_e.target!==_e.currentTarget){le.current=!1;return}M==null||M()},Pt=_e=>{O?H==null||H(_e):(_e.preventDefault(),_==="static"&&De())},Zt=(_e,Ie)=>{_e&&Ze(_e),I==null||I(_e,Ie)},un=_e=>{te.current==null||te.current(),ie==null||ie(_e)},cn=(_e,Ie)=>{de==null||de(_e,Ie),lp(window,"resize",vt)},Ut=_e=>{_e&&(_e.style.display=""),Ne==null||Ne(_e),Uo(window,"resize",vt)},Ht=g.useCallback(_e=>h.jsx("div",{..._e,className:Ae(`${l}-backdrop`,Ye,!S&&"show")}),[S,Ye,l]),mt={...c,...ce};mt.display="block";const Kt=_e=>h.jsx("div",{role:"dialog",..._e,style:mt,className:Ae(n,l,Re&&`${l}-static`,!S&&"show"),onClick:_?St:void 0,onMouseUp:lt,"data-bs-theme":y,"aria-label":b,"aria-labelledby":v,"aria-describedby":p,children:h.jsx(d,{...ze,onMouseDown:it,className:s,contentClassName:u,children:f})});return h.jsx(Dp.Provider,{value:Le,children:h.jsx(Ib,{show:R,ref:ye,backdrop:_,container:q,keyboard:!0,autoFocus:Y,enforceFocus:J,restoreFocus:G,restoreFocusOptions:N,onEscapeKeyDown:Pt,onShow:U,onHide:M,onEnter:Zt,onEntering:cn,onEntered:W,onExit:un,onExiting:X,onExited:Ut,manager:Ee(),transition:S?uS:void 0,backdropTransition:S?cS:void 0,renderBackdrop:Ht,renderDialog:Kt})})});zp.displayName="Modal";const ir=Object.assign(zp,{Body:Op,Header:Ap,Title:Mp,Footer:wp,Dialog:cf,TRANSITION_DURATION:300,BACKDROP_TRANSITION_DURATION:150}),Rn=g.forwardRef(({bsPrefix:l,className:n,as:c="div",...s},u)=>{const f=Qe(l,"row"),d=tp(),y=np(),v=`${f}-cols`,p=[];return d.forEach(b=>{const R=s[b];delete s[b];let S;R!=null&&typeof R=="object"?{cols:S}=R:S=R;const _=b!==y?`-${b}`:"";S!=null&&p.push(`${v}${_}-${S}`)}),h.jsx(c,{ref:u,...s,className:Ae(n,f,...p)})});Rn.displayName="Row";const sS="/static/DY3vaYXT.svg";function oS(){const l=Ke.c(6),{user:n}=g.useContext(Fo),{pathname:c}=Xn();let s;l[0]===Symbol.for("react.memo_cache_sentinel")?(s=h.jsx(ln,{xs:10,children:h.jsx("div",{className:"nav-wrapper",children:h.jsxs("nav",{className:"header-nav",children:[h.jsx("a",{href:"https://geant.org/",children:h.jsx("img",{src:sS,alt:"GÉANT Logo"})}),h.jsxs("ul",{children:[h.jsx("li",{children:h.jsx("a",{className:"nav-link-entry",href:"https://network.geant.org/",children:"NETWORK"})}),h.jsx("li",{children:h.jsx("a",{className:"nav-link-entry",href:"https://geant.org/services/",children:"SERVICES"})}),h.jsx("li",{children:h.jsx("a",{className:"nav-link-entry",href:"https://community.geant.org/",children:"COMMUNITY"})}),h.jsx("li",{children:h.jsx("a",{className:"nav-link-entry",href:"https://tnc23.geant.org/",children:"TNC"})}),h.jsx("li",{children:h.jsx("a",{className:"nav-link-entry",href:"https://geant.org/projects/",children:"PROJECTS"})}),h.jsx("li",{children:h.jsx("a",{className:"nav-link-entry",href:"https://connect.geant.org/",children:"CONNECT"})}),h.jsx("li",{children:h.jsx("a",{className:"nav-link-entry",href:"https://impact.geant.org/",children:"IMPACT"})}),h.jsx("li",{children:h.jsx("a",{className:"nav-link-entry",href:"https://careers.geant.org/",children:"CAREERS"})}),h.jsx("li",{children:h.jsx("a",{className:"nav-link-entry",href:"https://about.geant.org/",children:"ABOUT"})}),h.jsx("li",{children:h.jsx("a",{className:"nav-link-entry",href:"https://connect.geant.org/community-news",children:"NEWS"})}),h.jsx("li",{children:h.jsx("a",{className:"nav-link-entry",href:"https://resources.geant.org/",children:"RESOURCES"})}),h.jsx("li",{children:h.jsx(Tn,{className:"nav-link-entry",to:"/",children:"COMPENDIUM"})})]})]})})}),l[0]=s):s=l[0];let u;l[1]!==c||l[2]!==n.permissions.admin?(u=n.permissions.admin&&!c.includes("survey")&&h.jsx("div",{className:"nav-link",style:{float:"right"},children:h.jsx(Tn,{className:"nav-link-entry",to:"/survey",children:h.jsx("span",{children:"Go to Survey"})})}),l[1]=c,l[2]=n.permissions.admin,l[3]=u):u=l[3];let f;return l[4]!==u?(f=h.jsx("div",{className:"external-page-nav-bar",children:h.jsx(Ya,{children:h.jsxs(Rn,{children:[s,h.jsx(ln,{xs:2,children:u})]})})}),l[4]=u,l[5]=f):f=l[5],f}const fS="/static/A3T3A-a_.svg",dS="/static/DOOiIGTs.png";function hS(){const l=Ke.c(9);let n;l[0]===Symbol.for("react.memo_cache_sentinel")?(n=h.jsx("a",{href:"https://geant.org",children:h.jsx("img",{src:fS,className:"m-3",style:{maxWidth:"100px"},alt:"GÉANT Logo"})}),l[0]=n):n=l[0];let c;l[1]===Symbol.for("react.memo_cache_sentinel")?(c=h.jsxs(ln,{children:[n,h.jsx("img",{src:dS,className:"m-3",style:{maxWidth:"200px"},alt:"European Union Flag"})]}),l[1]=c):c=l[1];let s,u;l[2]===Symbol.for("react.memo_cache_sentinel")?(s=h.jsx("a",{className:"mx-3 footer-link",href:"https://geant.org/Disclaimer/",children:"Disclaimer"}),u=h.jsx("wbr",{}),l[2]=s,l[3]=u):(s=l[2],u=l[3]);let f,d;l[4]===Symbol.for("react.memo_cache_sentinel")?(f=h.jsx("a",{className:"mx-3 footer-link",href:"https://geant.org/geant-anti-slavery-policy/",children:"GEANT Anti‑Slavery Policy"}),d=h.jsx("wbr",{}),l[4]=f,l[5]=d):(f=l[4],d=l[5]);let y,v;l[6]===Symbol.for("react.memo_cache_sentinel")?(y=h.jsx("a",{className:"mx-3 footer-link",href:"https://geant.org/Privacy-Notice/",children:"Privacy Policy"}),v=h.jsx("wbr",{}),l[6]=y,l[7]=v):(y=l[6],v=l[7]);let p;return l[8]===Symbol.for("react.memo_cache_sentinel")?(p=h.jsx("footer",{className:"page-footer pt-3",children:h.jsx(Ya,{children:h.jsxs(Rn,{children:[c,h.jsx(ln,{className:"mt-4 text-end",children:h.jsxs("span",{children:[s,u,"|",f,d,"|",y,v,"|",h.jsx("a",{className:"mx-3 footer-link",style:{cursor:"pointer"},onClick:mS,children:"Analytics Consent"})]})})]})})}),l[8]=p):p=l[8],p}function mS(){localStorage.removeItem("matomo_consent"),window.location.reload()}const Lp="/static/C4lsyu6A.svg",Up="/static/DhA-EmEc.svg";function Hp(){const l=Ke.c(16),n=g.useContext(ep);let c;l[0]!==n?(c=O=>n==null?void 0:n.trackPageView(O),l[0]=n,l[1]=c):c=l[1];const s=c;let u;l[2]!==n?(u=O=>n==null?void 0:n.trackEvent(O),l[2]=n,l[3]=u):u=l[3];const f=u;let d;l[4]!==n?(d=()=>n==null?void 0:n.trackEvents(),l[4]=n,l[5]=d):d=l[5];const y=d;let v;l[6]!==n?(v=O=>n==null?void 0:n.trackLink(O),l[6]=n,l[7]=v):v=l[7];const p=v,b=yS;let R;l[8]!==n?(R=(O,...H)=>{const U=H;n==null||n.pushInstruction(O,...U)},l[8]=n,l[9]=R):R=l[9];const S=R;let _;return l[10]!==S||l[11]!==f||l[12]!==y||l[13]!==p||l[14]!==s?(_={trackEvent:f,trackEvents:y,trackPageView:s,trackLink:p,enableLinkTracking:b,pushInstruction:S},l[10]=S,l[11]=f,l[12]=y,l[13]=p,l[14]=s,l[15]=_):_=l[15],_}function yS(){}function Bp(){const l=Ke.c(13),{trackPageView:n}=Hp();let c,s;l[0]!==n?(c=()=>{n({documentTitle:"GEANT Compendium Landing Page"})},s=[n],l[0]=n,l[1]=c,l[2]=s):(c=l[1],s=l[2]),g.useEffect(c,s);let u;l[3]===Symbol.for("react.memo_cache_sentinel")?(u=h.jsx("h1",{className:"geant-header",children:"THE GÉANT COMPENDIUM OF NRENS"}),l[3]=u):u=l[3];let f;l[4]===Symbol.for("react.memo_cache_sentinel")?(f=h.jsx(Rn,{children:h.jsxs("div",{className:"center-text",children:[u,h.jsxs("div",{className:"wordwrap pt-4",children:[h.jsx("p",{style:{textAlign:"left",fontSize:"20px"},children:"Each year GÉANT invites European National Research and Eduction Networks to fill in a questionnaire asking about their network, their organisation, standards and policies, connected users, and the services they offer their users. This Compendium of responses is an authoritative reference source for anyone with an interest in the development of research and education networking in Europe and beyond. No two NRENs are identical, with great diversity in their structures, funding, size, and focus."}),h.jsx("p",{style:{textAlign:"left",fontSize:"20px"},children:"The GÉANT Compendium of NRENs Report is published annually, using both data from the Compendium from other sources, including surveys and studies carried out within different teams within GÉANT and the NREN community. The Report gives a broad overview of the European NREN landscape, identifying developments and trends."}),h.jsx("p",{style:{textAlign:"left",fontSize:"20px"},children:"Compendium Data, the responses from the NRENs, are made available to be viewed and downloaded. Graphs, charts, and tables can be customised to show as many or few NRENs as required, across different years. These can be downloaded as images or in PDF form."})]})]})}),l[4]=f):f=l[4];let d;l[5]===Symbol.for("react.memo_cache_sentinel")?(d={backgroundColor:"white"},l[5]=d):d=l[5];let y;l[6]===Symbol.for("react.memo_cache_sentinel")?(y={width:"18rem"},l[6]=y):y=l[6];let v;l[7]===Symbol.for("react.memo_cache_sentinel")?(v=h.jsx(Yn.Img,{src:Lp}),l[7]=v):v=l[7];let p;l[8]===Symbol.for("react.memo_cache_sentinel")?(p=h.jsx(Yn.Title,{children:"Compendium Data"}),l[8]=p):p=l[8];let b;l[9]===Symbol.for("react.memo_cache_sentinel")?(b=h.jsx(ln,{align:"center",children:h.jsx(Yn,{border:"light",style:y,children:h.jsxs(Tn,{to:"/data",className:"link-text",children:[v,h.jsxs(Yn.Body,{children:[p,h.jsx(Yn.Text,{children:h.jsx("span",{children:"Statistical representation of the annual Compendium Survey data is available here"})})]})]})})}),l[9]=b):b=l[9];let R;l[10]===Symbol.for("react.memo_cache_sentinel")?(R={width:"18rem"},l[10]=R):R=l[10];let S;l[11]===Symbol.for("react.memo_cache_sentinel")?(S=h.jsx(Yn.Img,{src:Up}),l[11]=S):S=l[11];let _;return l[12]===Symbol.for("react.memo_cache_sentinel")?(_=h.jsxs(Ya,{className:"py-5 grey-container",children:[f,h.jsx(Rn,{children:h.jsx(ln,{children:h.jsx(Ya,{style:d,className:"rounded-border",children:h.jsxs(Rn,{className:"justify-content-md-center",children:[b,h.jsx(ln,{align:"center",children:h.jsx(Yn,{border:"light",style:R,children:h.jsxs("a",{href:"https://resources.geant.org/geant-compendia/",className:"link-text",target:"_blank",rel:"noreferrer",children:[S,h.jsxs(Yn.Body,{children:[h.jsx(Yn.Title,{children:"Compendium Reports"}),h.jsx(Yn.Text,{children:"A GÉANT Compendium Report is published annually, drawing on data from the Compendium Survey filled in by NRENs, complemented by information from other surveys"})]})]})})})]})})})})]}),l[12]=_):_=l[12],_}var qp={color:void 0,size:void 0,className:void 0,style:void 0,attr:void 0},Cy=Yt.createContext&&Yt.createContext(qp),pS=["attr","size","title"];function vS(l,n){if(l==null)return{};var c=gS(l,n),s,u;if(Object.getOwnPropertySymbols){var f=Object.getOwnPropertySymbols(l);for(u=0;u<f.length;u++)s=f[u],!(n.indexOf(s)>=0)&&Object.prototype.propertyIsEnumerable.call(l,s)&&(c[s]=l[s])}return c}function gS(l,n){if(l==null)return{};var c={};for(var s in l)if(Object.prototype.hasOwnProperty.call(l,s)){if(n.indexOf(s)>=0)continue;c[s]=l[s]}return c}function Yu(){return Yu=Object.assign?Object.assign.bind():function(l){for(var n=1;n<arguments.length;n++){var c=arguments[n];for(var s in c)Object.prototype.hasOwnProperty.call(c,s)&&(l[s]=c[s])}return l},Yu.apply(this,arguments)}function jy(l,n){var c=Object.keys(l);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(l);n&&(s=s.filter(function(u){return Object.getOwnPropertyDescriptor(l,u).enumerable})),c.push.apply(c,s)}return c}function ku(l){for(var n=1;n<arguments.length;n++){var c=arguments[n]!=null?arguments[n]:{};n%2?jy(Object(c),!0).forEach(function(s){ES(l,s,c[s])}):Object.getOwnPropertyDescriptors?Object.defineProperties(l,Object.getOwnPropertyDescriptors(c)):jy(Object(c)).forEach(function(s){Object.defineProperty(l,s,Object.getOwnPropertyDescriptor(c,s))})}return l}function ES(l,n,c){return n=bS(n),n in l?Object.defineProperty(l,n,{value:c,enumerable:!0,configurable:!0,writable:!0}):l[n]=c,l}function bS(l){var n=SS(l,"string");return typeof n=="symbol"?n:n+""}function SS(l,n){if(typeof l!="object"||!l)return l;var c=l[Symbol.toPrimitive];if(c!==void 0){var s=c.call(l,n||"default");if(typeof s!="object")return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return(n==="string"?String:Number)(l)}function Vp(l){return l&&l.map((n,c)=>Yt.createElement(n.tag,ku({key:c},n.attr),Vp(n.child)))}function Yp(l){return n=>Yt.createElement(xS,Yu({attr:ku({},l.attr)},n),Vp(l.child))}function xS(l){var n=c=>{var{attr:s,size:u,title:f}=l,d=vS(l,pS),y=u||c.size||"1em",v;return c.className&&(v=c.className),l.className&&(v=(v?v+" ":"")+l.className),Yt.createElement("svg",Yu({stroke:"currentColor",fill:"currentColor",strokeWidth:"0"},c.attr,s,d,{className:v,style:ku(ku({color:l.color||c.color},c.style),l.style),height:y,width:y,xmlns:"http://www.w3.org/2000/svg"}),f&&Yt.createElement("title",null,f),l.children)};return Cy!==void 0?Yt.createElement(Cy.Consumer,null,c=>n(c)):n(qp)}function _S(l){return Yp({tag:"svg",attr:{viewBox:"0 0 1024 1024",fill:"currentColor",fillRule:"evenodd"},child:[{tag:"path",attr:{d:"M799.855 166.312c.023.007.043.018.084.059l57.69 57.69c.041.041.052.06.059.084a.118.118 0 0 1 0 .069c-.007.023-.018.042-.059.083L569.926 512l287.703 287.703c.041.04.052.06.059.083a.118.118 0 0 1 0 .07c-.007.022-.018.042-.059.083l-57.69 57.69c-.041.041-.06.052-.084.059a.118.118 0 0 1-.069 0c-.023-.007-.042-.018-.083-.059L512 569.926 224.297 857.629c-.04.041-.06.052-.083.059a.118.118 0 0 1-.07 0c-.022-.007-.042-.018-.083-.059l-57.69-57.69c-.041-.041-.052-.06-.059-.084a.118.118 0 0 1 0-.069c.007-.023.018-.042.059-.083L454.073 512 166.371 224.297c-.041-.04-.052-.06-.059-.083a.118.118 0 0 1 0-.07c.007-.022.018-.042.059-.083l57.69-57.69c.041-.041.06-.052.084-.059a.118.118 0 0 1 .069 0c.023.007.042.018.083.059L512 454.073l287.703-287.702c.04-.041.06-.052.083-.059a.118.118 0 0 1 .07 0Z"},child:[]}]})(l)}function RS(l){return Yp({tag:"svg",attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M482 152h60q8 0 8 8v704q0 8-8 8h-60q-8 0-8-8V160q0-8 8-8Z"},child:[]},{tag:"path",attr:{d:"M192 474h672q8 0 8 8v60q0 8-8 8H160q-8 0-8-8v-60q0-8 8-8Z"},child:[]}]})(l)}const rr=l=>{const n=Ke.c(23),{title:c,children:s,startCollapsed:u,theme:f}=l,d=f===void 0?"":f,[y,v]=g.useState(!!u);let p;n[0]===Symbol.for("react.memo_cache_sentinel")?(p={color:"white",paddingBottom:"3px",marginTop:"3px",marginLeft:"3px",scale:"1.3"},n[0]=p):p=n[0];let b=p;if(d){let G;n[1]===Symbol.for("react.memo_cache_sentinel")?(G={...b,color:"black",fontWeight:"bold"},n[1]=G):G=n[1],b=G}const R=`collapsible-box${d} p-0`;let S;n[2]!==c?(S=h.jsx(ln,{children:h.jsx("h1",{className:"bold-caps-16pt dark-teal pt-3 ps-3",children:c})}),n[2]=c,n[3]=S):S=n[3];const _=`toggle-btn${d} p-${d?3:2}`;let O;n[4]!==y?(O=()=>v(!y),n[4]=y,n[5]=O):O=n[5];let H;n[6]!==y||n[7]!==b?(H=y?h.jsx(RS,{style:b}):h.jsx(_S,{style:b}),n[6]=y,n[7]=b,n[8]=H):H=n[8];let U;n[9]!==_||n[10]!==O||n[11]!==H?(U=h.jsx(ln,{className:"flex-grow-0 flex-shrink-1",children:h.jsx("div",{className:_,onClick:O,children:H})}),n[9]=_,n[10]=O,n[11]=H,n[12]=U):U=n[12];let M;n[13]!==S||n[14]!==U?(M=h.jsxs(Rn,{children:[S,U]}),n[13]=S,n[14]=U,n[15]=M):M=n[15];const q=`collapsible-content${y?" collapsed":""}`;let Y;n[16]!==s||n[17]!==q?(Y=h.jsx("div",{className:q,children:s}),n[16]=s,n[17]=q,n[18]=Y):Y=n[18];let J;return n[19]!==Y||n[20]!==R||n[21]!==M?(J=h.jsxs("div",{className:R,children:[M,Y]}),n[19]=Y,n[20]=R,n[21]=M,n[22]=J):J=n[22],J};function TS(l){const n=Ke.c(8),{section:c}=l;let s;n[0]===Symbol.for("react.memo_cache_sentinel")?(s={display:"flex",alignSelf:"right",lineHeight:"1.5rem",marginTop:"0.5rem"},n[0]=s):s=n[0];let u,f;n[1]===Symbol.for("react.memo_cache_sentinel")?(u=h.jsx("br",{}),f={float:"right"},n[1]=u,n[2]=f):(u=n[1],f=n[2]);let d;n[3]!==c?(d=h.jsx("div",{style:s,children:h.jsxs("span",{children:["Compendium ",u,h.jsx("span",{style:f,children:c})]})}),n[3]=c,n[4]=d):d=n[4];let y;n[5]===Symbol.for("react.memo_cache_sentinel")?(y=h.jsx("img",{src:Up,style:{maxWidth:"4rem"},alt:"Compendium Data logo"}),n[5]=y):y=n[5];let v;return n[6]!==d?(v=h.jsxs("div",{className:"bold-caps-17pt section-container",children:[d,y]}),n[6]=d,n[7]=v):v=n[7],v}function NS(l){const n=Ke.c(14),{type:c}=l;let s="";c=="data"?s=" compendium-data-header":c=="reports"&&(s=" compendium-reports-header");let u;n[0]===Symbol.for("react.memo_cache_sentinel")?(u={marginTop:"0.5rem"},n[0]=u):u=n[0];const f=c==="data"?"/data":"/";let d;n[1]===Symbol.for("react.memo_cache_sentinel")?(d={textDecoration:"none",color:"white"},n[1]=d):d=n[1];const y=c==="data"?"Data":"Reports";let v;n[2]!==y?(v=h.jsxs("span",{children:["Compendium ",y]}),n[2]=y,n[3]=v):v=n[3];let p;n[4]!==f||n[5]!==v?(p=h.jsx(ln,{sm:8,children:h.jsx("h1",{className:"bold-caps-30pt",style:u,children:h.jsx(Tn,{to:f,style:d,children:v})})}),n[4]=f,n[5]=v,n[6]=p):p=n[6];let b;n[7]===Symbol.for("react.memo_cache_sentinel")?(b={color:"inherit"},n[7]=b):b=n[7];let R;n[8]===Symbol.for("react.memo_cache_sentinel")?(R=h.jsx(ln,{sm:4,children:h.jsx("a",{style:b,href:"https://resources.geant.org/geant-compendia/",target:"_blank",rel:"noreferrer",children:h.jsx(TS,{section:"Reports"})})}),n[8]=R):R=n[8];let S;n[9]!==p?(S=h.jsx(Ya,{children:h.jsxs(Rn,{children:[p,R]})}),n[9]=p,n[10]=S):S=n[10];let _;return n[11]!==s||n[12]!==S?(_=h.jsx("div",{className:s,children:S}),n[11]=s,n[12]=S,n[13]=_):_=n[13],_}function CS(l){const n=Ke.c(8),{children:c,type:s}=l;let u="";s=="data"?u=" compendium-data-banner":s=="reports"&&(u=" compendium-reports-banner");let f,d;n[0]===Symbol.for("react.memo_cache_sentinel")?(f=h.jsx("img",{src:Lp,style:{maxWidth:"7rem",marginBottom:"1rem"},alt:"Compendium Data logo"}),d={display:"flex",alignSelf:"right"},n[0]=f,n[1]=d):(f=n[0],d=n[1]);let y;n[2]===Symbol.for("react.memo_cache_sentinel")?(y={paddingTop:"1rem"},n[2]=y):y=n[2];let v;n[3]!==c?(v=h.jsx(Ya,{children:h.jsx(Rn,{children:h.jsx(Rn,{children:h.jsxs("div",{className:"section-container",children:[f,h.jsx("div",{style:d,children:h.jsx("div",{className:"center-text",style:y,children:c})})]})})})}),n[3]=c,n[4]=v):v=n[4];let p;return n[5]!==u||n[6]!==v?(p=h.jsx("div",{className:u,children:v}),n[5]=u,n[6]=v,n[7]=p):p=n[7],p}var li=(l=>(l.Organisation="ORGANISATION",l.Policy="STANDARDS AND POLICIES",l.ConnectedUsers="CONNECTED USERS",l.Network="NETWORK",l.Services="SERVICES",l))(li||{}),jS=(l=>(l.CSV="CSV",l.EXCEL="EXCEL",l))(jS||{}),OS=(l=>(l.PNG="png",l.JPEG="jpeg",l.SVG="svg",l))(OS||{});const V2={universities:"Universities & Other (ISCED 6-8)",further_education:"Further education (ISCED 4-5)",secondary_schools:"Secondary schools (ISCED 2-3)",primary_schools:"Primary schools (ISCED 1)",institutes:"Research Institutes",cultural:"Libraries, Museums, Archives, Cultural institutions",hospitals:"Non-university public Hospitals",government:"Government departments (national, regional, local)",iros:"International (virtual) research organisations",for_profit_orgs:"For-profit organisations"},Y2={commercial_r_and_e:"Commercial R&E traffic only",commercial_general:"Commercial general",commercial_collaboration:"Commercial for collaboration only (project/time limited)",commercial_service_provider:"Commercial Service Provider",university_spin_off:"University Spin Off/Incubator"},k2={collaboration:"Connection to your network for collaboration with R&E users",service_supplier:"Connection to your network for supplying services for R&E",direct_peering:"Direct peering (e.g. direct peering or cloud peering)"};function DS(){const l=Ke.c(7),{preview:n,setPreview:c}=g.useContext(Iy),{user:s}=g.useContext(Fo),[u]=lE();let f;l[0]!==u?(f=u.get("preview"),l[0]=u,l[1]=f):f=l[1];const d=f;let y,v;return l[2]!==d||l[3]!==c||l[4]!==s?(y=()=>{d!==null&&(s.permissions.admin||s.role=="observer")&&c(!0)},v=[d,c,s],l[2]=d,l[3]=c,l[4]=s,l[5]=y,l[6]=v):(y=l[5],v=l[6]),g.useEffect(y,v),n}function yr(l){const n=Ke.c(9),{to:c,children:s}=l,u=window.location.pathname===c,f=g.useRef(null);let d,y;n[0]!==u?(d=()=>{u&&f.current&&f.current.scrollIntoView({behavior:"smooth",block:"center"})},y=[u],n[0]=u,n[1]=d,n[2]=y):(d=n[1],y=n[2]),g.useEffect(d,y);let v;n[3]!==s||n[4]!==u?(v=u?h.jsx("b",{children:s}):s,n[3]=s,n[4]=u,n[5]=v):v=n[5];let p;return n[6]!==v||n[7]!==c?(p=h.jsx(Rn,{children:h.jsx(Tn,{to:c,className:"link-text-underline",ref:f,children:v})}),n[6]=v,n[7]=c,n[8]=p):p=n[8],p}const se={budget:"Budget of NRENs per Year",funding:"Income Source of NRENs",charging:"Charging Mechanism of NRENs","employee-count":"Number of NREN Employees",roles:"Roles of NREN employees (Technical v. Non-Technical)",employment:"Types of Employment within NRENs",suborganisations:"NREN Sub-Organisations",parentorganisation:"NREN Parent Organisations","ec-projects":"NREN Involvement in European Commission Projects",policy:"NREN Policies",audits:"External and Internal Audits of Information Security Management Systems","business-continuity":"NREN Business Continuity Planning","central-procurement":"Value of Software Procured for Customers by NRENs","crisis-management":"Crisis Management Procedures","crisis-exercise":"Crisis Exercises - NREN Operation and Participation",eosc_listings:"NREN Services Listed on the EOSC Portal","security-control":"Security Controls Used by NRENs","services-offered":"Services Offered by NRENs by Types of Users","corporate-strategy":"NREN Corporate Strategies","service-level-targets":"NRENs Offering Service Level Targets","service-management-framework":"NRENs Operating a Formal Service Management Framework","institutions-urls":"Webpages Listing Institutions and Organisations Connected to NREN Networks","connected-proportion":"Proportion of Different Categories of Institutions Served by NRENs","connectivity-level":"Level of IP Connectivity by Institution Type","connection-carrier":"Methods of Carrying IP Traffic to Users","connectivity-load":"Connectivity Load","connectivity-growth":"Connectivity Growth","remote-campuses":"NREN Connectivity to Remote Campuses in Other Countries","commercial-charging-level":"Commercial Charging Level","commercial-connectivity":"Commercial Connectivity","traffic-volume":"NREN Traffic - NREN Customers & External Networks","iru-duration":"Average Duration of IRU leases of Fibre by NRENs","fibre-light":"Approaches to lighting NREN fibre networks","dark-fibre-lease":"Kilometres of Leased Dark Fibre (National)","dark-fibre-lease-international":"Kilometres of Leased Dark Fibre (International)","dark-fibre-installed":"Kilometres of Installed Dark Fibre","network-map":"NREN Network Maps","monitoring-tools":"Tools for Monitoring or Troubleshooting the Network - Offered to Client Institutions","pert-team":"NRENs with Performance Enhancement Response Teams","passive-monitoring":"Methods for Passively Monitoring International Traffic","traffic-stats":"Traffic Statistics","weather-map":"NREN Online Network Weather Maps","certificate-provider":"Certification Services used by NRENs","siem-vendors":"Vendors of SIEM/SOC systems used by NRENs","alien-wave":"NREN Use of 3rd Party Alienwave/Lightpath Services","alien-wave-internal":"Internal NREN Use of Alien Waves","capacity-largest-link":"Capacity of the Largest Link in an NREN Network","external-connections":"NREN External IP Connections","capacity-core-ip":"NREN Core IP Capacity","non-rne-peers":"Number of Non-R&E Networks NRENs Peer With","traffic-ratio":"Types of traffic in NREN networks (Commodity v. Research & Education)","ops-automation":"NREN Automation of Operational Processes","network-automation":"Network Tasks for which NRENs Use Automation",nfv:"Kinds of Network Function Virtualisation used by NRENs","network-services":"NREN Network services matrix","isp-support-services":"NREN ISP support services matrix","security-services":"NREN Security services matrix","identity-services":"NREN Identity services matrix","collaboration-services":"NREN Collaboration services matrix","multimedia-services":"NREN Multimedia services matrix","storage-and-hosting-services":"NREN Storage and hosting services matrix","professional-services":"NREN Professional services matrix"};function wS(l){const n=Ke.c(52),{sidebar:c}=l,s=c===void 0?!1:c,u=s?yr:Tn,f=s?"":"link-text-underline";let d;n[0]!==s?(d=s&&h.jsx("h5",{children:"Organisation"}),n[0]=s,n[1]=d):d=n[1];let y;n[2]===Symbol.for("react.memo_cache_sentinel")?(y=h.jsx("h6",{className:"section-title",children:"Budget, Income and Billing"}),n[2]=y):y=n[2];let v;n[3]===Symbol.for("react.memo_cache_sentinel")?(v=h.jsx("span",{children:se.budget}),n[3]=v):v=n[3];let p;n[4]!==u||n[5]!==f?(p=h.jsx(u,{to:"/budget",className:f,children:v}),n[4]=u,n[5]=f,n[6]=p):p=n[6];let b;n[7]===Symbol.for("react.memo_cache_sentinel")?(b=h.jsx("span",{children:se.funding}),n[7]=b):b=n[7];let R;n[8]!==u||n[9]!==f?(R=h.jsx(u,{to:"/funding",className:f,children:b}),n[8]=u,n[9]=f,n[10]=R):R=n[10];let S;n[11]===Symbol.for("react.memo_cache_sentinel")?(S=h.jsx("span",{children:se.charging}),n[11]=S):S=n[11];let _;n[12]!==u||n[13]!==f?(_=h.jsx(u,{to:"/charging",className:f,children:S}),n[12]=u,n[13]=f,n[14]=_):_=n[14];let O,H;n[15]===Symbol.for("react.memo_cache_sentinel")?(O=h.jsx("hr",{className:"fake-divider"}),H=h.jsx("h6",{className:"section-title",children:"Staff and Projects"}),n[15]=O,n[16]=H):(O=n[15],H=n[16]);let U;n[17]===Symbol.for("react.memo_cache_sentinel")?(U=h.jsx("span",{children:se["employee-count"]}),n[17]=U):U=n[17];let M;n[18]!==u||n[19]!==f?(M=h.jsx(u,{to:"/employee-count",className:f,children:U}),n[18]=u,n[19]=f,n[20]=M):M=n[20];let q;n[21]===Symbol.for("react.memo_cache_sentinel")?(q=h.jsx("span",{children:se.employment}),n[21]=q):q=n[21];let Y;n[22]!==u||n[23]!==f?(Y=h.jsx(u,{to:"/employment",className:f,children:q}),n[22]=u,n[23]=f,n[24]=Y):Y=n[24];let J;n[25]===Symbol.for("react.memo_cache_sentinel")?(J=h.jsx("span",{children:se.roles}),n[25]=J):J=n[25];let G;n[26]!==u||n[27]!==f?(G=h.jsx(u,{to:"/roles",className:f,children:J}),n[26]=u,n[27]=f,n[28]=G):G=n[28];let N;n[29]===Symbol.for("react.memo_cache_sentinel")?(N=h.jsx("span",{children:se.parentorganisation}),n[29]=N):N=n[29];let W;n[30]!==u||n[31]!==f?(W=h.jsx(u,{to:"/parentorganisation",className:f,children:N}),n[30]=u,n[31]=f,n[32]=W):W=n[32];let ie;n[33]===Symbol.for("react.memo_cache_sentinel")?(ie=h.jsx("span",{children:se.suborganisations}),n[33]=ie):ie=n[33];let X;n[34]!==u||n[35]!==f?(X=h.jsx(u,{to:"/suborganisations",className:f,children:ie}),n[34]=u,n[35]=f,n[36]=X):X=n[36];let I;n[37]===Symbol.for("react.memo_cache_sentinel")?(I=h.jsx("span",{children:se["ec-projects"]}),n[37]=I):I=n[37];let de;n[38]!==u||n[39]!==f?(de=h.jsx(u,{to:"/ec-projects",className:f,children:I}),n[38]=u,n[39]=f,n[40]=de):de=n[40];let Ne;return n[41]!==M||n[42]!==Y||n[43]!==G||n[44]!==W||n[45]!==d||n[46]!==X||n[47]!==de||n[48]!==p||n[49]!==R||n[50]!==_?(Ne=h.jsxs(h.Fragment,{children:[d,y,p,R,_,O,H,M,Y,G,W,X,de]}),n[41]=M,n[42]=Y,n[43]=G,n[44]=W,n[45]=d,n[46]=X,n[47]=de,n[48]=p,n[49]=R,n[50]=_,n[51]=Ne):Ne=n[51],Ne}function AS(l){const n=Ke.c(61),{sidebar:c}=l,s=c===void 0?!1:c,u=s?yr:Tn,f=s?"":"link-text-underline";let d;n[0]!==s?(d=s&&h.jsx("h5",{children:"Standards And Policies"}),n[0]=s,n[1]=d):d=n[1];let y;n[2]===Symbol.for("react.memo_cache_sentinel")?(y=h.jsx("h6",{className:"section-title",children:"Policy & Portfolio"}),n[2]=y):y=n[2];let v;n[3]===Symbol.for("react.memo_cache_sentinel")?(v=h.jsx("span",{children:se["corporate-strategy"]}),n[3]=v):v=n[3];let p;n[4]!==u||n[5]!==f?(p=h.jsx(u,{to:"/corporate-strategy",className:f,children:v}),n[4]=u,n[5]=f,n[6]=p):p=n[6];let b;n[7]===Symbol.for("react.memo_cache_sentinel")?(b=h.jsx("span",{children:se.policy}),n[7]=b):b=n[7];let R;n[8]!==u||n[9]!==f?(R=h.jsx(u,{to:"/policy",className:f,children:b}),n[8]=u,n[9]=f,n[10]=R):R=n[10];let S;n[11]===Symbol.for("react.memo_cache_sentinel")?(S=h.jsx("span",{children:se["central-procurement"]}),n[11]=S):S=n[11];let _;n[12]!==u||n[13]!==f?(_=h.jsx(u,{to:"/central-procurement",className:f,children:S}),n[12]=u,n[13]=f,n[14]=_):_=n[14];let O;n[15]===Symbol.for("react.memo_cache_sentinel")?(O=h.jsx("span",{children:se["service-management-framework"]}),n[15]=O):O=n[15];let H;n[16]!==u||n[17]!==f?(H=h.jsx(u,{to:"/service-management-framework",className:f,children:O}),n[16]=u,n[17]=f,n[18]=H):H=n[18];let U;n[19]===Symbol.for("react.memo_cache_sentinel")?(U=h.jsx("span",{children:se["service-level-targets"]}),n[19]=U):U=n[19];let M;n[20]!==u||n[21]!==f?(M=h.jsx(u,{to:"/service-level-targets",className:f,children:U}),n[20]=u,n[21]=f,n[22]=M):M=n[22];let q;n[23]===Symbol.for("react.memo_cache_sentinel")?(q=h.jsx("span",{children:se["services-offered"]}),n[23]=q):q=n[23];let Y;n[24]!==u||n[25]!==f?(Y=h.jsx(u,{to:"/services-offered",className:f,children:q}),n[24]=u,n[25]=f,n[26]=Y):Y=n[26];let J;n[27]===Symbol.for("react.memo_cache_sentinel")?(J=h.jsx("h6",{className:"section-title",children:"Standards"}),n[27]=J):J=n[27];let G;n[28]===Symbol.for("react.memo_cache_sentinel")?(G=h.jsx("span",{children:se.audits}),n[28]=G):G=n[28];let N;n[29]!==u||n[30]!==f?(N=h.jsx(u,{to:"/audits",className:f,children:G}),n[29]=u,n[30]=f,n[31]=N):N=n[31];let W;n[32]===Symbol.for("react.memo_cache_sentinel")?(W=h.jsx("span",{children:se["business-continuity"]}),n[32]=W):W=n[32];let ie;n[33]!==u||n[34]!==f?(ie=h.jsx(u,{to:"/business-continuity",className:f,children:W}),n[33]=u,n[34]=f,n[35]=ie):ie=n[35];let X;n[36]===Symbol.for("react.memo_cache_sentinel")?(X=h.jsx("span",{children:se["crisis-management"]}),n[36]=X):X=n[36];let I;n[37]!==u||n[38]!==f?(I=h.jsx(u,{to:"/crisis-management",className:f,children:X}),n[37]=u,n[38]=f,n[39]=I):I=n[39];let de;n[40]===Symbol.for("react.memo_cache_sentinel")?(de=h.jsx("span",{children:se["crisis-exercise"]}),n[40]=de):de=n[40];let Ne;n[41]!==u||n[42]!==f?(Ne=h.jsx(u,{to:"/crisis-exercise",className:f,children:de}),n[41]=u,n[42]=f,n[43]=Ne):Ne=n[43];let Ye;n[44]===Symbol.for("react.memo_cache_sentinel")?(Ye=h.jsx("span",{children:se["security-control"]}),n[44]=Ye):Ye=n[44];let Be;n[45]!==u||n[46]!==f?(Be=h.jsx(u,{to:"/security-control",className:f,children:Ye}),n[45]=u,n[46]=f,n[47]=Be):Be=n[47];let ze;return n[48]!==H||n[49]!==M||n[50]!==Y||n[51]!==N||n[52]!==d||n[53]!==ie||n[54]!==I||n[55]!==Ne||n[56]!==Be||n[57]!==p||n[58]!==R||n[59]!==_?(ze=h.jsxs(h.Fragment,{children:[d,y,p,R,_,H,M,Y,J,N,ie,I,Ne,Be]}),n[48]=H,n[49]=M,n[50]=Y,n[51]=N,n[52]=d,n[53]=ie,n[54]=I,n[55]=Ne,n[56]=Be,n[57]=p,n[58]=R,n[59]=_,n[60]=ze):ze=n[60],ze}function MS(l){const n=Ke.c(52),{sidebar:c}=l,s=c===void 0?!1:c,u=s?yr:Tn,f=s?"":"link-text-underline";let d;n[0]!==s?(d=s&&h.jsx("h5",{children:"Connected Users"}),n[0]=s,n[1]=d):d=n[1];let y;n[2]===Symbol.for("react.memo_cache_sentinel")?(y=h.jsx("h6",{className:"section-title",children:"Connected Users"}),n[2]=y):y=n[2];let v;n[3]===Symbol.for("react.memo_cache_sentinel")?(v=h.jsx("span",{children:se["institutions-urls"]}),n[3]=v):v=n[3];let p;n[4]!==u||n[5]!==f?(p=h.jsx(u,{to:"/institutions-urls",className:f,children:v}),n[4]=u,n[5]=f,n[6]=p):p=n[6];let b;n[7]===Symbol.for("react.memo_cache_sentinel")?(b=h.jsx("span",{children:se["connected-proportion"]}),n[7]=b):b=n[7];let R;n[8]!==u||n[9]!==f?(R=h.jsx(u,{to:"/connected-proportion",className:f,children:b}),n[8]=u,n[9]=f,n[10]=R):R=n[10];let S;n[11]===Symbol.for("react.memo_cache_sentinel")?(S=h.jsx("span",{children:se["connectivity-level"]}),n[11]=S):S=n[11];let _;n[12]!==u||n[13]!==f?(_=h.jsx(u,{to:"/connectivity-level",className:f,children:S}),n[12]=u,n[13]=f,n[14]=_):_=n[14];let O;n[15]===Symbol.for("react.memo_cache_sentinel")?(O=h.jsx("span",{children:se["connection-carrier"]}),n[15]=O):O=n[15];let H;n[16]!==u||n[17]!==f?(H=h.jsx(u,{to:"/connection-carrier",className:f,children:O}),n[16]=u,n[17]=f,n[18]=H):H=n[18];let U;n[19]===Symbol.for("react.memo_cache_sentinel")?(U=h.jsx("span",{children:se["connectivity-load"]}),n[19]=U):U=n[19];let M;n[20]!==u||n[21]!==f?(M=h.jsx(u,{to:"/connectivity-load",className:f,children:U}),n[20]=u,n[21]=f,n[22]=M):M=n[22];let q;n[23]===Symbol.for("react.memo_cache_sentinel")?(q=h.jsx("span",{children:se["connectivity-growth"]}),n[23]=q):q=n[23];let Y;n[24]!==u||n[25]!==f?(Y=h.jsx(u,{to:"/connectivity-growth",className:f,children:q}),n[24]=u,n[25]=f,n[26]=Y):Y=n[26];let J;n[27]===Symbol.for("react.memo_cache_sentinel")?(J=h.jsx("span",{children:se["remote-campuses"]}),n[27]=J):J=n[27];let G;n[28]!==u||n[29]!==f?(G=h.jsx(u,{to:"/remote-campuses",className:f,children:J}),n[28]=u,n[29]=f,n[30]=G):G=n[30];let N,W;n[31]===Symbol.for("react.memo_cache_sentinel")?(N=h.jsx("hr",{className:"fake-divider"}),W=h.jsx("h6",{className:"section-title",children:"Connected Users - Commercial"}),n[31]=N,n[32]=W):(N=n[31],W=n[32]);let ie;n[33]===Symbol.for("react.memo_cache_sentinel")?(ie=h.jsx("span",{children:se["commercial-charging-level"]}),n[33]=ie):ie=n[33];let X;n[34]!==u||n[35]!==f?(X=h.jsx(u,{to:"/commercial-charging-level",className:f,children:ie}),n[34]=u,n[35]=f,n[36]=X):X=n[36];let I;n[37]===Symbol.for("react.memo_cache_sentinel")?(I=h.jsx("span",{children:se["commercial-connectivity"]}),n[37]=I):I=n[37];let de;n[38]!==u||n[39]!==f?(de=h.jsx(u,{to:"/commercial-connectivity",className:f,children:I}),n[38]=u,n[39]=f,n[40]=de):de=n[40];let Ne;return n[41]!==H||n[42]!==M||n[43]!==Y||n[44]!==G||n[45]!==d||n[46]!==X||n[47]!==de||n[48]!==p||n[49]!==R||n[50]!==_?(Ne=h.jsxs(h.Fragment,{children:[d,y,p,R,_,H,M,Y,G,N,W,X,de]}),n[41]=H,n[42]=M,n[43]=Y,n[44]=G,n[45]=d,n[46]=X,n[47]=de,n[48]=p,n[49]=R,n[50]=_,n[51]=Ne):Ne=n[51],Ne}function zS(l){const n=Ke.c(133),{sidebar:c}=l,s=c===void 0?!1:c,u=s?yr:Tn,f=s?"":"link-text-underline";let d;n[0]!==s?(d=s&&h.jsx("h5",{children:"Network"}),n[0]=s,n[1]=d):d=n[1];let y;n[2]===Symbol.for("react.memo_cache_sentinel")?(y=h.jsx("h6",{className:"section-title",children:"Connectivity"}),n[2]=y):y=n[2];let v;n[3]===Symbol.for("react.memo_cache_sentinel")?(v=h.jsx("span",{children:se["dark-fibre-lease"]}),n[3]=v):v=n[3];let p;n[4]!==u||n[5]!==f?(p=h.jsx(u,{to:"/dark-fibre-lease",className:f,children:v}),n[4]=u,n[5]=f,n[6]=p):p=n[6];let b;n[7]===Symbol.for("react.memo_cache_sentinel")?(b=h.jsx("span",{children:se["dark-fibre-lease-international"]}),n[7]=b):b=n[7];let R;n[8]!==u||n[9]!==f?(R=h.jsx(u,{to:"/dark-fibre-lease-international",className:f,children:b}),n[8]=u,n[9]=f,n[10]=R):R=n[10];let S;n[11]===Symbol.for("react.memo_cache_sentinel")?(S=h.jsx("span",{children:se["iru-duration"]}),n[11]=S):S=n[11];let _;n[12]!==u||n[13]!==f?(_=h.jsx(u,{to:"/iru-duration",className:f,children:S}),n[12]=u,n[13]=f,n[14]=_):_=n[14];let O;n[15]===Symbol.for("react.memo_cache_sentinel")?(O=h.jsx("span",{children:se["dark-fibre-installed"]}),n[15]=O):O=n[15];let H;n[16]!==u||n[17]!==f?(H=h.jsx(u,{to:"/dark-fibre-installed",className:f,children:O}),n[16]=u,n[17]=f,n[18]=H):H=n[18];let U;n[19]===Symbol.for("react.memo_cache_sentinel")?(U=h.jsx("span",{children:se["fibre-light"]}),n[19]=U):U=n[19];let M;n[20]!==u||n[21]!==f?(M=h.jsx(u,{to:"/fibre-light",className:f,children:U}),n[20]=u,n[21]=f,n[22]=M):M=n[22];let q;n[23]===Symbol.for("react.memo_cache_sentinel")?(q=h.jsx("span",{children:se["network-map"]}),n[23]=q):q=n[23];let Y;n[24]!==u||n[25]!==f?(Y=h.jsx(u,{to:"/network-map",className:f,children:q}),n[24]=u,n[25]=f,n[26]=Y):Y=n[26];let J,G;n[27]===Symbol.for("react.memo_cache_sentinel")?(J=h.jsx("hr",{className:"fake-divider"}),G=h.jsx("h6",{className:"section-title",children:"Performance Monitoring & Management"}),n[27]=J,n[28]=G):(J=n[27],G=n[28]);let N;n[29]===Symbol.for("react.memo_cache_sentinel")?(N=h.jsx("span",{children:se["monitoring-tools"]}),n[29]=N):N=n[29];let W;n[30]!==u||n[31]!==f?(W=h.jsx(u,{to:"/monitoring-tools",className:f,children:N}),n[30]=u,n[31]=f,n[32]=W):W=n[32];let ie;n[33]===Symbol.for("react.memo_cache_sentinel")?(ie=h.jsx("span",{children:se["passive-monitoring"]}),n[33]=ie):ie=n[33];let X;n[34]!==u||n[35]!==f?(X=h.jsx(u,{to:"/passive-monitoring",className:f,children:ie}),n[34]=u,n[35]=f,n[36]=X):X=n[36];let I;n[37]===Symbol.for("react.memo_cache_sentinel")?(I=h.jsx("span",{children:se["traffic-stats"]}),n[37]=I):I=n[37];let de;n[38]!==u||n[39]!==f?(de=h.jsx(u,{to:"/traffic-stats",className:f,children:I}),n[38]=u,n[39]=f,n[40]=de):de=n[40];let Ne;n[41]===Symbol.for("react.memo_cache_sentinel")?(Ne=h.jsx("span",{children:se["siem-vendors"]}),n[41]=Ne):Ne=n[41];let Ye;n[42]!==u||n[43]!==f?(Ye=h.jsx(u,{to:"/siem-vendors",className:f,children:Ne}),n[42]=u,n[43]=f,n[44]=Ye):Ye=n[44];let Be;n[45]===Symbol.for("react.memo_cache_sentinel")?(Be=h.jsx("span",{children:se["certificate-provider"]}),n[45]=Be):Be=n[45];let ze;n[46]!==u||n[47]!==f?(ze=h.jsx(u,{to:"/certificate-providers",className:f,children:Be}),n[46]=u,n[47]=f,n[48]=ze):ze=n[48];let K;n[49]===Symbol.for("react.memo_cache_sentinel")?(K=h.jsx("span",{children:se["weather-map"]}),n[49]=K):K=n[49];let ce;n[50]!==u||n[51]!==f?(ce=h.jsx(u,{to:"/weather-map",className:f,children:K}),n[50]=u,n[51]=f,n[52]=ce):ce=n[52];let ne;n[53]===Symbol.for("react.memo_cache_sentinel")?(ne=h.jsx("span",{children:se["pert-team"]}),n[53]=ne):ne=n[53];let Re;n[54]!==u||n[55]!==f?(Re=h.jsx(u,{to:"/pert-team",className:f,children:ne}),n[54]=u,n[55]=f,n[56]=Re):Re=n[56];let T,Q;n[57]===Symbol.for("react.memo_cache_sentinel")?(T=h.jsx("hr",{className:"fake-divider"}),Q=h.jsx("h6",{className:"section-title",children:"Alienwave"}),n[57]=T,n[58]=Q):(T=n[57],Q=n[58]);let le;n[59]===Symbol.for("react.memo_cache_sentinel")?(le=h.jsx("span",{children:se["alien-wave"]}),n[59]=le):le=n[59];let te;n[60]!==u||n[61]!==f?(te=h.jsx(u,{to:"/alien-wave",className:f,children:le}),n[60]=u,n[61]=f,n[62]=te):te=n[62];let P;n[63]===Symbol.for("react.memo_cache_sentinel")?(P=h.jsx("span",{children:se["alien-wave-internal"]}),n[63]=P):P=n[63];let ge;n[64]!==u||n[65]!==f?(ge=h.jsx(u,{to:"/alien-wave-internal",className:f,children:P}),n[64]=u,n[65]=f,n[66]=ge):ge=n[66];let ye,Je;n[67]===Symbol.for("react.memo_cache_sentinel")?(ye=h.jsx("hr",{className:"fake-divider"}),Je=h.jsx("h6",{className:"section-title",children:"Capacity"}),n[67]=ye,n[68]=Je):(ye=n[67],Je=n[68]);let Ce;n[69]===Symbol.for("react.memo_cache_sentinel")?(Ce=h.jsx("span",{children:se["capacity-largest-link"]}),n[69]=Ce):Ce=n[69];let Le;n[70]!==u||n[71]!==f?(Le=h.jsx(u,{to:"/capacity-largest-link",className:f,children:Ce}),n[70]=u,n[71]=f,n[72]=Le):Le=n[72];let Ee;n[73]===Symbol.for("react.memo_cache_sentinel")?(Ee=h.jsx("span",{children:se["capacity-core-ip"]}),n[73]=Ee):Ee=n[73];let Ze;n[74]!==u||n[75]!==f?(Ze=h.jsx(u,{to:"/capacity-core-ip",className:f,children:Ee}),n[74]=u,n[75]=f,n[76]=Ze):Ze=n[76];let vt;n[77]===Symbol.for("react.memo_cache_sentinel")?(vt=h.jsx("span",{children:se["external-connections"]}),n[77]=vt):vt=n[77];let it;n[78]!==u||n[79]!==f?(it=h.jsx(u,{to:"/external-connections",className:f,children:vt}),n[78]=u,n[79]=f,n[80]=it):it=n[80];let lt;n[81]===Symbol.for("react.memo_cache_sentinel")?(lt=h.jsx("span",{children:se["non-rne-peers"]}),n[81]=lt):lt=n[81];let De;n[82]!==u||n[83]!==f?(De=h.jsx(u,{to:"/non-rne-peers",className:f,children:lt}),n[82]=u,n[83]=f,n[84]=De):De=n[84];let Rt;n[85]===Symbol.for("react.memo_cache_sentinel")?(Rt=h.jsx("span",{children:se["traffic-volume"]}),n[85]=Rt):Rt=n[85];let St;n[86]!==u||n[87]!==f?(St=h.jsx(u,{to:"/traffic-volume",className:f,children:Rt}),n[86]=u,n[87]=f,n[88]=St):St=n[88];let Pt;n[89]===Symbol.for("react.memo_cache_sentinel")?(Pt=h.jsx("span",{children:se["traffic-ratio"]}),n[89]=Pt):Pt=n[89];let Zt;n[90]!==u||n[91]!==f?(Zt=h.jsx(u,{to:"/traffic-ratio",className:f,children:Pt}),n[90]=u,n[91]=f,n[92]=Zt):Zt=n[92];let un,cn;n[93]===Symbol.for("react.memo_cache_sentinel")?(un=h.jsx("hr",{className:"fake-divider"}),cn=h.jsx("h6",{className:"section-title",children:"Software-Defined Networking (SDN) & Network Function Virtualisation(NFV)"}),n[93]=un,n[94]=cn):(un=n[93],cn=n[94]);let Ut;n[95]===Symbol.for("react.memo_cache_sentinel")?(Ut=h.jsx("span",{children:se["ops-automation"]}),n[95]=Ut):Ut=n[95];let Ht;n[96]!==u||n[97]!==f?(Ht=h.jsx(u,{to:"/ops-automation",className:f,children:Ut}),n[96]=u,n[97]=f,n[98]=Ht):Ht=n[98];let mt;n[99]===Symbol.for("react.memo_cache_sentinel")?(mt=h.jsx("span",{children:se.nfv}),n[99]=mt):mt=n[99];let Kt;n[100]!==u||n[101]!==f?(Kt=h.jsx(u,{to:"/nfv",className:f,children:mt}),n[100]=u,n[101]=f,n[102]=Kt):Kt=n[102];let _e;n[103]===Symbol.for("react.memo_cache_sentinel")?(_e=h.jsx("span",{children:se["network-automation"]}),n[103]=_e):_e=n[103];let Ie;n[104]!==u||n[105]!==f?(Ie=h.jsx(u,{to:"/network-automation",className:f,children:_e}),n[104]=u,n[105]=f,n[106]=Ie):Ie=n[106];let kt;return n[107]!==H||n[108]!==M||n[109]!==Y||n[110]!==W||n[111]!==d||n[112]!==X||n[113]!==de||n[114]!==Ye||n[115]!==ze||n[116]!==ce||n[117]!==Re||n[118]!==te||n[119]!==ge||n[120]!==Le||n[121]!==Ze||n[122]!==it||n[123]!==De||n[124]!==St||n[125]!==p||n[126]!==Zt||n[127]!==Ht||n[128]!==Kt||n[129]!==Ie||n[130]!==R||n[131]!==_?(kt=h.jsxs(h.Fragment,{children:[d,y,p,R,_,H,M,Y,J,G,W,X,de,Ye,ze,ce,Re,T,Q,te,ge,ye,Je,Le,Ze,it,De,St,Zt,un,cn,Ht,Kt,Ie]}),n[107]=H,n[108]=M,n[109]=Y,n[110]=W,n[111]=d,n[112]=X,n[113]=de,n[114]=Ye,n[115]=ze,n[116]=ce,n[117]=Re,n[118]=te,n[119]=ge,n[120]=Le,n[121]=Ze,n[122]=it,n[123]=De,n[124]=St,n[125]=p,n[126]=Zt,n[127]=Ht,n[128]=Kt,n[129]=Ie,n[130]=R,n[131]=_,n[132]=kt):kt=n[132],kt}function LS(l){const n=Ke.c(44),{sidebar:c}=l,s=c===void 0?!1:c,u=s?yr:Tn,f=s?"":"link-text-underline";let d;n[0]!==s?(d=s&&h.jsx("h5",{children:"Services"}),n[0]=s,n[1]=d):d=n[1];let y;n[2]===Symbol.for("react.memo_cache_sentinel")?(y=h.jsx("span",{children:se["network-services"]}),n[2]=y):y=n[2];let v;n[3]!==u||n[4]!==f?(v=h.jsx(u,{to:"/network-services",className:f,children:y}),n[3]=u,n[4]=f,n[5]=v):v=n[5];let p;n[6]===Symbol.for("react.memo_cache_sentinel")?(p=h.jsx("span",{children:se["isp-support-services"]}),n[6]=p):p=n[6];let b;n[7]!==u||n[8]!==f?(b=h.jsx(u,{to:"/isp-support-services",className:f,children:p}),n[7]=u,n[8]=f,n[9]=b):b=n[9];let R;n[10]===Symbol.for("react.memo_cache_sentinel")?(R=h.jsx("span",{children:se["security-services"]}),n[10]=R):R=n[10];let S;n[11]!==u||n[12]!==f?(S=h.jsx(u,{to:"/security-services",className:f,children:R}),n[11]=u,n[12]=f,n[13]=S):S=n[13];let _;n[14]===Symbol.for("react.memo_cache_sentinel")?(_=h.jsx("span",{children:se["identity-services"]}),n[14]=_):_=n[14];let O;n[15]!==u||n[16]!==f?(O=h.jsx(u,{to:"/identity-services",className:f,children:_}),n[15]=u,n[16]=f,n[17]=O):O=n[17];let H;n[18]===Symbol.for("react.memo_cache_sentinel")?(H=h.jsx("span",{children:se["storage-and-hosting-services"]}),n[18]=H):H=n[18];let U;n[19]!==u||n[20]!==f?(U=h.jsx(u,{to:"/storage-and-hosting-services",className:f,children:H}),n[19]=u,n[20]=f,n[21]=U):U=n[21];let M;n[22]===Symbol.for("react.memo_cache_sentinel")?(M=h.jsx("span",{children:se["multimedia-services"]}),n[22]=M):M=n[22];let q;n[23]!==u||n[24]!==f?(q=h.jsx(u,{to:"/multimedia-services",className:f,children:M}),n[23]=u,n[24]=f,n[25]=q):q=n[25];let Y;n[26]===Symbol.for("react.memo_cache_sentinel")?(Y=h.jsx("span",{children:se["collaboration-services"]}),n[26]=Y):Y=n[26];let J;n[27]!==u||n[28]!==f?(J=h.jsx(u,{to:"/collaboration-services",className:f,children:Y}),n[27]=u,n[28]=f,n[29]=J):J=n[29];let G;n[30]===Symbol.for("react.memo_cache_sentinel")?(G=h.jsx("span",{children:se["professional-services"]}),n[30]=G):G=n[30];let N;n[31]!==u||n[32]!==f?(N=h.jsx(u,{to:"/professional-services",className:f,children:G}),n[31]=u,n[32]=f,n[33]=N):N=n[33];let W;return n[34]!==O||n[35]!==U||n[36]!==q||n[37]!==J||n[38]!==N||n[39]!==d||n[40]!==v||n[41]!==b||n[42]!==S?(W=h.jsxs(h.Fragment,{children:[d,v,b,S,O,U,q,J,N]}),n[34]=O,n[35]=U,n[36]=q,n[37]=J,n[38]=N,n[39]=d,n[40]=v,n[41]=b,n[42]=S,n[43]=W):W=n[43],W}function US(){const l=Ke.c(10);DS();const{trackPageView:n}=Hp();let c,s;l[0]!==n?(c=()=>{n({documentTitle:"Compendium Data"})},s=[n],l[0]=n,l[1]=c,l[2]=s):(c=l[1],s=l[2]),Yt.useEffect(c,s);let u;l[3]===Symbol.for("react.memo_cache_sentinel")?(u=h.jsx(NS,{type:"data"}),l[3]=u):u=l[3];let f;l[4]===Symbol.for("react.memo_cache_sentinel")?(f=h.jsx(CS,{type:"data",children:h.jsx("p",{className:"wordwrap",children:"The GÉANT Compendium provides an authoritative reference source for anyone with an interest in the development of research and education networking in Europe and beyond. Published since 2001, the Compendium provides information on key areas such as users, services, traffic, budget and staffing."})}),l[4]=f):f=l[4];let d;l[5]===Symbol.for("react.memo_cache_sentinel")?(d=h.jsx(rr,{title:li.Organisation,children:h.jsx(wS,{})}),l[5]=d):d=l[5];let y;l[6]===Symbol.for("react.memo_cache_sentinel")?(y=h.jsx(rr,{title:li.Policy,startCollapsed:!0,children:h.jsx(AS,{})}),l[6]=y):y=l[6];let v;l[7]===Symbol.for("react.memo_cache_sentinel")?(v=h.jsx(rr,{title:li.ConnectedUsers,startCollapsed:!0,children:h.jsx(MS,{})}),l[7]=v):v=l[7];let p;l[8]===Symbol.for("react.memo_cache_sentinel")?(p=h.jsx(rr,{title:li.Network,startCollapsed:!0,children:h.jsx(zS,{})}),l[8]=p):p=l[8];let b;return l[9]===Symbol.for("react.memo_cache_sentinel")?(b=h.jsxs(h.Fragment,{children:[u,f,h.jsx(Ya,{className:"mt-5 mb-5",children:h.jsxs(Rn,{children:[d,y,v,p,h.jsx(rr,{title:li.Services,startCollapsed:!0,children:h.jsx(LS,{})})]})})]}),l[9]=b):b=l[9],b}const HS=()=>{const l=Ke.c(26),{consent:n,setConsent:c}=g.useContext(Jo),[s,u]=g.useState(n===null);let f;l[0]===Symbol.for("react.memo_cache_sentinel")?(f=()=>{u(!1),window.location.reload()},l[0]=f):f=l[0];const d=f,[y,v]=g.useState(!0);let p;l[1]!==c?(p=N=>{const W=new Date;W.setDate(W.getDate()+30),localStorage.setItem("matomo_consent",JSON.stringify({consent:N,expiry:W})),c(N)},l[1]=c,l[2]=p):p=l[2];const b=p;let R;l[3]===Symbol.for("react.memo_cache_sentinel")?(R=h.jsx(ir.Header,{closeButton:!0,children:h.jsx(ir.Title,{children:"Privacy on this site"})}),l[3]=R):R=l[3];let S;l[4]===Symbol.for("react.memo_cache_sentinel")?(S=h.jsx("a",{href:"https://geant.org/Privacy-Notice/",children:"Privacy Policy"}),l[4]=S):S=l[4];let _;l[5]===Symbol.for("react.memo_cache_sentinel")?(_=h.jsxs("p",{children:["On our site we use Matomo to collect and process data about your visit to better understand how it is used. For more information, see our ",S,".",h.jsx("br",{}),"Below, you can choose to accept or decline to have this data collected."]}),l[5]=_):_=l[5];let O;l[6]!==y?(O=()=>v(!y),l[6]=y,l[7]=O):O=l[7];let H;l[8]!==y||l[9]!==O?(H=h.jsx(Du.Check,{type:"checkbox",label:"Analytics",checked:y,onChange:O}),l[8]=y,l[9]=O,l[10]=H):H=l[10];let U;l[11]===Symbol.for("react.memo_cache_sentinel")?(U=h.jsx(Du.Text,{className:"text-muted",children:"We collect information about your visit on the compendium site — this helps us understand how the site is used, and how we can improve it."}),l[11]=U):U=l[11];let M;l[12]!==H?(M=h.jsxs(ir.Body,{children:[_,h.jsx(Du,{children:h.jsxs(Du.Group,{className:"mb-3",children:[H,U]})})]}),l[12]=H,l[13]=M):M=l[13];let q;l[14]!==b?(q=h.jsx(Bo,{variant:"secondary",onClick:()=>{b(!1),d()},children:"Decline all"}),l[14]=b,l[15]=q):q=l[15];let Y;l[16]!==y||l[17]!==b?(Y=h.jsx(Bo,{variant:"primary",onClick:()=>{b(y),d()},children:"Save consent for 30 days"}),l[16]=y,l[17]=b,l[18]=Y):Y=l[18];let J;l[19]!==Y||l[20]!==q?(J=h.jsxs(ir.Footer,{children:[q,Y]}),l[19]=Y,l[20]=q,l[21]=J):J=l[21];let G;return l[22]!==s||l[23]!==J||l[24]!==M?(G=h.jsxs(ir,{show:s,centered:!0,children:[R,M,J]}),l[22]=s,l[23]=J,l[24]=M,l[25]=G):G=l[25],G},BS=g.lazy(()=>be(()=>import("./Budget-Bq0pX5us.js"),__vite__mapDeps([0,1,2,3,4,5,6,7]))),qS=g.lazy(()=>be(()=>import("./ChargingStructure-1_V-4vcV.js"),__vite__mapDeps([8,2,3,4,5,6,9,10,11]))),VS=g.lazy(()=>be(()=>import("./ECProjects-XbmNbffI.js"),__vite__mapDeps([12,2,3,4,5,6,13,11]))),YS=g.lazy(()=>be(()=>import("./FundingSource-gsVmQ_kq.js"),__vite__mapDeps([14,1,2,3,4,5,6,15]))),kS=g.lazy(()=>be(()=>import("./ParentOrganisation-DGI8NZ1v.js"),__vite__mapDeps([16,2,3,4,5,6,13,11]))),Oy=g.lazy(()=>be(()=>import("./StaffGraph-DAZsRMiP.js"),__vite__mapDeps([17,1,2,3,4,5,6,18]))),GS=g.lazy(()=>be(()=>import("./StaffGraphAbsolute-C52xAnNh.js"),__vite__mapDeps([19,1,2,3,4,5,6,15,7]))),XS=g.lazy(()=>be(()=>import("./SubOrganisation-v6toYwK3.js"),__vite__mapDeps([20,2,3,4,5,6,13,11]))),QS=g.lazy(()=>be(()=>import("./Audits-C9KWJV7H.js"),__vite__mapDeps([21,2,3,4,5,6,9,10,11]))),ZS=g.lazy(()=>be(()=>import("./BusinessContinuity-BIU4-n6C.js"),__vite__mapDeps([22,2,3,4,5,6,9,10,11]))),KS=g.lazy(()=>be(()=>import("./CentralProcurement-CAaLLWzc.js"),__vite__mapDeps([23,2,3,4,5,6,15,1,7]))),$S=g.lazy(()=>be(()=>import("./CorporateStrategy-BxCdux2s.js"),__vite__mapDeps([24,2,3,4,5,6,13,11]))),FS=g.lazy(()=>be(()=>import("./CrisisExercises-E4bPkDFW.js"),__vite__mapDeps([25,2,3,4,5,6,9,10,11]))),JS=g.lazy(()=>be(()=>import("./CrisisManagement-ClnT7m7H.js"),__vite__mapDeps([26,2,3,4,5,6,9,10,11]))),PS=g.lazy(()=>be(()=>import("./EOSCListings-BDxaE5x6.js"),__vite__mapDeps([27,2,3,4,5,6,13,11]))),WS=g.lazy(()=>be(()=>import("./Policy-BCFRP7W4.js"),__vite__mapDeps([28,2,3,4,5,6,13,11]))),IS=g.lazy(()=>be(()=>import("./SecurityControls-PgdQDxmF.js"),__vite__mapDeps([29,2,3,4,5,6,9,10,11]))),e2=g.lazy(()=>be(()=>import("./ServiceLevelTargets-D4y0vrZC.js"),__vite__mapDeps([30,2,3,4,5,6,9,10,11]))),t2=g.lazy(()=>be(()=>import("./ServiceManagementFramework-DVUOmqGy.js"),__vite__mapDeps([31,2,3,4,5,6,9,10,11]))),n2=g.lazy(()=>be(()=>import("./ServicesOffered-D1PvVwDW.js"),__vite__mapDeps([32,2,3,4,5,6,33,11]))),a2=g.lazy(()=>be(()=>import("./ConnectedInstitutionsURLs-B0cjkEDo.js"),__vite__mapDeps([34,2,3,4,5,6,13,11]))),dl=g.lazy(()=>be(()=>import("./ConnectedUser-B-GDv3Er.js"),__vite__mapDeps([35,2,3,4,5,6,33,11]))),l2=g.lazy(()=>be(()=>import("./RemoteCampuses-B8JV-PDN.js"),__vite__mapDeps([36,2,3,4,5,6,11]))),i2=g.lazy(()=>be(()=>import("./AlienWave-DnjbI9kz.js"),__vite__mapDeps([37,2,3,4,5,6,9,10,11]))),r2=g.lazy(()=>be(()=>import("./AlienWaveInternal-D_ajTXTF.js"),__vite__mapDeps([38,2,3,4,5,6,9,10,11]))),u2=g.lazy(()=>be(()=>import("./Automation-9p1JVo02.js"),__vite__mapDeps([39,2,3,4,5,6,10,11]))),c2=g.lazy(()=>be(()=>import("./CapacityCoreIP-CL5l0Sfy.js"),__vite__mapDeps([40,1,2,3,4,5,6,15,7]))),s2=g.lazy(()=>be(()=>import("./CapacityLargestLink-BfzlpsDK.js"),__vite__mapDeps([41,1,2,3,4,5,6,15,7]))),o2=g.lazy(()=>be(()=>import("./CertificateProvider-B_JLIZxE.js"),__vite__mapDeps([42,2,3,4,5,6,9,10,11]))),Dy=g.lazy(()=>be(()=>import("./DarkFibreLease-GvJ-CvnR.js"),__vite__mapDeps([43,1,2,3,4,5,6,7]))),f2=g.lazy(()=>be(()=>import("./DarkFibreInstalled-B2WOEBMo.js"),__vite__mapDeps([44,1,2,3,4,5,6,7]))),d2=g.lazy(()=>be(()=>import("./ExternalConnections-FNDoV6sd.js"),__vite__mapDeps([45,2,3,4,5,6,11]))),h2=g.lazy(()=>be(()=>import("./FibreLight-CUiE7wzj.js"),__vite__mapDeps([46,2,3,4,5,6,9,10,11]))),m2=g.lazy(()=>be(()=>import("./IRUDuration-BjNHS_5I.js"),__vite__mapDeps([47,1,2,3,4,5,6,7]))),y2=g.lazy(()=>be(()=>import("./MonitoringTools-CbBhIorB.js"),__vite__mapDeps([48,2,3,4,5,6,9,10,11]))),p2=g.lazy(()=>be(()=>import("./NetworkFunctionVirtualisation-CzNYu8co.js"),__vite__mapDeps([49,2,3,4,5,6,10,11]))),v2=g.lazy(()=>be(()=>import("./NetworkMapUrls-Dt6zTyC6.js"),__vite__mapDeps([50,2,3,4,5,6,13,11]))),g2=g.lazy(()=>be(()=>import("./NonRAndEPeer-BYXfmV9K.js"),__vite__mapDeps([51,1,2,3,4,5,6,15,7]))),E2=g.lazy(()=>be(()=>import("./OPsAutomation-Bi0pOS0H.js"),__vite__mapDeps([52,2,3,4,5,6,9,10,11]))),b2=g.lazy(()=>be(()=>import("./PassiveMonitoring-BNpFmLP-.js"),__vite__mapDeps([53,2,3,4,5,6,9,10,11]))),S2=g.lazy(()=>be(()=>import("./PertTeam-DDB9EKsh.js"),__vite__mapDeps([54,2,3,4,5,6,9,10,11]))),x2=g.lazy(()=>be(()=>import("./SiemVendors-DwQpCR11.js"),__vite__mapDeps([55,2,3,4,5,6,9,10,11]))),_2=g.lazy(()=>be(()=>import("./TrafficRatio-DxSttJzu.js"),__vite__mapDeps([56,1,2,3,4,5,6,18]))),R2=g.lazy(()=>be(()=>import("./TrafficUrl-DW9ps6i5.js"),__vite__mapDeps([57,2,3,4,5,6,13,11]))),T2=g.lazy(()=>be(()=>import("./TrafficVolume-Be6qnrAx.js"),__vite__mapDeps([58,1,2,3,4,5,6,7]))),N2=g.lazy(()=>be(()=>import("./WeatherMap-DHJE1C4l.js"),__vite__mapDeps([59,2,3,4,5,6,13,11]))),Ua=g.lazy(()=>be(()=>import("./Services-N5zhXu4f.js"),__vite__mapDeps([60,2,3,4,5,6,11]))),C2=g.lazy(()=>be(()=>import("./Landing-B1fxodP3.js"),__vite__mapDeps([61,4,62,3,63,11]))),No=g.lazy(()=>be(()=>import("./SurveyContainerComponent-z6e23PTc.js"),__vite__mapDeps([64,65,66,67,62,3,68]))),j2=g.lazy(()=>be(()=>import("./SurveyManagementComponent-B6hmLBQS.js"),__vite__mapDeps([69,70,6,11,65,67,63,62,3]))),O2=g.lazy(()=>be(()=>import("./UserManagementComponent-BGNFMFlT.js"),__vite__mapDeps([71,65,62,3,5,70,6,11]))),D2=()=>{const l=Ke.c(9),{pathname:n}=Xn(),c=n!=="/";let s;l[0]===Symbol.for("react.memo_cache_sentinel")?(s=h.jsx(oS,{}),l[0]=s):s=l[0];let u;l[1]!==c?(u=h.jsx("main",{className:"grow",children:c?h.jsx(T0,{}):h.jsx(Bp,{})}),l[1]=c,l[2]=u):u=l[2];let f;l[3]===Symbol.for("react.memo_cache_sentinel")?(f=h.jsx(HS,{}),l[3]=f):f=l[3];let d;l[4]!==u?(d=h.jsxs(wE,{children:[s,u,f]}),l[4]=u,l[5]=d):d=l[5];let y;l[6]===Symbol.for("react.memo_cache_sentinel")?(y=h.jsx(hS,{}),l[6]=y):y=l[6];let v;return l[7]!==d?(v=h.jsxs(h.Fragment,{children:[d,y]}),l[7]=d,l[8]=v):v=l[8],v},w2=P0([{path:"",element:h.jsx(D2,{}),children:[{path:"/budget",element:h.jsx(BS,{})},{path:"/funding",element:h.jsx(YS,{})},{path:"/employment",element:h.jsx(Oy,{},"staffgraph")},{path:"/traffic-ratio",element:h.jsx(_2,{})},{path:"/roles",element:h.jsx(Oy,{roles:!0},"staffgraphroles")},{path:"/employee-count",element:h.jsx(GS,{})},{path:"/charging",element:h.jsx(qS,{})},{path:"/suborganisations",element:h.jsx(XS,{})},{path:"/parentorganisation",element:h.jsx(kS,{})},{path:"/ec-projects",element:h.jsx(VS,{})},{path:"/policy",element:h.jsx(WS,{})},{path:"/traffic-volume",element:h.jsx(T2,{})},{path:"/data",element:h.jsx(US,{})},{path:"/institutions-urls",element:h.jsx(a2,{})},{path:"/connected-proportion",element:h.jsx(dl,{page:Qt.ConnectedProportion},Qt.ConnectedProportion)},{path:"/connectivity-level",element:h.jsx(dl,{page:Qt.ConnectivityLevel},Qt.ConnectivityLevel)},{path:"/connectivity-growth",element:h.jsx(dl,{page:Qt.ConnectivityGrowth},Qt.ConnectivityGrowth)},{path:"/connection-carrier",element:h.jsx(dl,{page:Qt.ConnectionCarrier},Qt.ConnectionCarrier)},{path:"/connectivity-load",element:h.jsx(dl,{page:Qt.ConnectivityLoad},Qt.ConnectivityLoad)},{path:"/commercial-charging-level",element:h.jsx(dl,{page:Qt.CommercialChargingLevel},Qt.CommercialChargingLevel)},{path:"/commercial-connectivity",element:h.jsx(dl,{page:Qt.CommercialConnectivity},Qt.CommercialConnectivity)},{path:"/network-services",element:h.jsx(Ua,{category:Lt.network_services},Lt.network_services)},{path:"/isp-support-services",element:h.jsx(Ua,{category:Lt.isp_support},Lt.isp_support)},{path:"/security-services",element:h.jsx(Ua,{category:Lt.security},Lt.security)},{path:"/identity-services",element:h.jsx(Ua,{category:Lt.identity},Lt.identity)},{path:"/collaboration-services",element:h.jsx(Ua,{category:Lt.collaboration},Lt.collaboration)},{path:"/multimedia-services",element:h.jsx(Ua,{category:Lt.multimedia},Lt.multimedia)},{path:"/storage-and-hosting-services",element:h.jsx(Ua,{category:Lt.storage_and_hosting},Lt.storage_and_hosting)},{path:"/professional-services",element:h.jsx(Ua,{category:Lt.professional_services},Lt.professional_services)},{path:"/dark-fibre-lease",element:h.jsx(Dy,{national:!0},"darkfibrenational")},{path:"/dark-fibre-lease-international",element:h.jsx(Dy,{},"darkfibreinternational")},{path:"/dark-fibre-installed",element:h.jsx(f2,{})},{path:"/remote-campuses",element:h.jsx(l2,{})},{path:"/eosc-listings",element:h.jsx(PS,{})},{path:"/fibre-light",element:h.jsx(h2,{})},{path:"/monitoring-tools",element:h.jsx(y2,{})},{path:"/pert-team",element:h.jsx(S2,{})},{path:"/passive-monitoring",element:h.jsx(b2,{})},{path:"/alien-wave",element:h.jsx(i2,{})},{path:"/alien-wave-internal",element:h.jsx(r2,{})},{path:"/external-connections",element:h.jsx(d2,{})},{path:"/ops-automation",element:h.jsx(E2,{})},{path:"/network-automation",element:h.jsx(u2,{})},{path:"/traffic-stats",element:h.jsx(R2,{})},{path:"/weather-map",element:h.jsx(N2,{})},{path:"/network-map",element:h.jsx(v2,{})},{path:"/nfv",element:h.jsx(p2,{})},{path:"/certificate-providers",element:h.jsx(o2,{})},{path:"/siem-vendors",element:h.jsx(x2,{})},{path:"/capacity-largest-link",element:h.jsx(s2,{})},{path:"/capacity-core-ip",element:h.jsx(c2,{})},{path:"/non-rne-peers",element:h.jsx(g2,{})},{path:"/iru-duration",element:h.jsx(m2,{})},{path:"/audits",element:h.jsx(QS,{})},{path:"/business-continuity",element:h.jsx(ZS,{})},{path:"/crisis-management",element:h.jsx(JS,{})},{path:"/crisis-exercise",element:h.jsx(FS,{})},{path:"/central-procurement",element:h.jsx(KS,{})},{path:"/security-control",element:h.jsx(IS,{})},{path:"/services-offered",element:h.jsx(n2,{})},{path:"/service-management-framework",element:h.jsx(t2,{})},{path:"/service-level-targets",element:h.jsx(e2,{})},{path:"/corporate-strategy",element:h.jsx($S,{})},{path:"/survey/admin/surveys",element:h.jsx(j2,{})},{path:"/survey/admin/users",element:h.jsx(O2,{})},{path:"/survey/admin/inspect/:year",element:h.jsx(No,{loadFrom:"/api/response/inspect/"})},{path:"/survey/admin/try/:year",element:h.jsx(No,{loadFrom:"/api/response/try/"})},{path:"/survey/response/:year/:nren",element:h.jsx(No,{loadFrom:"/api/response/load/"})},{path:"/survey/*",element:h.jsx(C2,{})},{path:"/*",element:h.jsx(Bp,{})}]}]);function A2(){const l=Ke.c(1);let n;return l[0]===Symbol.for("react.memo_cache_sentinel")?(n=h.jsx("div",{className:"app",children:h.jsx(oE,{router:w2})}),l[0]=n):n=l[0],n}const M2=document.getElementById("root"),z2=a1.createRoot(M2);z2.render(h.jsx(Yt.StrictMode,{children:h.jsx(A2,{})}));export{zE as $,Ho as A,pb as B,ln as C,Xy as D,Ya as E,yE as F,MS as G,LS as H,jS as I,vE as J,OS as K,Tn as L,Iy as M,zS as N,wS as O,AS as P,Hp as Q,Rn as R,li as S,NS as T,V2 as U,SE as V,Du as W,DS as X,_S as Y,RS as Z,Yp as _,Qt as a,Lt as a0,Fo as a1,yr as a2,Gu as a3,wy as a4,B2 as a5,H2 as a6,be as a7,rb as a8,nb as a9,$u as aa,gl as ab,hl as ac,Mo as ad,Ba as ae,yl as af,ab as ag,U2 as ah,nf as ai,OE as aj,Y2 as b,Ke as c,k2 as d,rr as e,Yt as f,up as g,Qe as h,Ae as i,h as j,sb as k,by as l,Bu as m,Ob as n,Ku as o,tf as p,ob as q,g as r,ti as s,se as t,pl as u,lp as v,q2 as w,rp as x,Bo as y,BE as z}; diff --git a/compendium_v2/static/index.html b/compendium_v2/static/index.html index ed8305588505ef75c9c37110e0e9ba9fcde043eb..038793a76c7b47d7ef34a3be67a9c718de37f941 100644 --- a/compendium_v2/static/index.html +++ b/compendium_v2/static/index.html @@ -5,7 +5,7 @@ <meta name="viewport" content="width=device-width, initial-scale=.5"/> <meta name="description" content="The GÉANT Compendium of National Research and Education Networks in Europe is the result of a broad, collective effort to portray the networks of the research and education community in Europe and beyond. The annual NREN Compendium survey invites the world's NRENs to provide detailed information about their network, equipment and users. The results from this survey are highlighted in these studies."/> <title>The GÉANT Compendium</title> - <script type="module" crossorigin src="/static/index-DBbSOdjk.js"></script> + <script type="module" crossorigin src="/static/index-bwDVKb7d.js"></script> <link rel="stylesheet" crossorigin href="/static/index-Cv7xX6AU.css"> </head> <body> diff --git a/compendium_v2/static/lodash-YlUwNVit.js b/compendium_v2/static/lodash-BV6TOxcP.js similarity index 99% rename from compendium_v2/static/lodash-YlUwNVit.js rename to compendium_v2/static/lodash-BV6TOxcP.js index b2ad7e6804a4c579d0ac978eda437c83f2c2da0b..77202066dc2b6d214d0f234a4c84d2ed7c8f8601 100644 --- a/compendium_v2/static/lodash-YlUwNVit.js +++ b/compendium_v2/static/lodash-BV6TOxcP.js @@ -1,4 +1,4 @@ -import{f as vo,r as X,j as On,a8 as A_,a9 as y_,aa as m_,i as Et,ab as xo,ac as E_,ad as R_,ae as I_,af as C_,ag as S_,h as $t,ah as cr}from"./index-DBbSOdjk.js";import{u as T_}from"./hook-D9Tuu5oJ.js";function he(...W){return W.filter(I=>I!=null).reduce((I,o)=>{if(typeof o!="function")throw new Error("Invalid Argument Type, must only provide functions, undefined, or null.");return I===null?o:function(...U){I.apply(this,U),o.apply(this,U)}},null)}const L_={height:["marginTop","marginBottom"],width:["marginLeft","marginRight"]};function O_(W,I){const o=`offset${W[0].toUpperCase()}${W.slice(1)}`,$=I[o],U=L_[W];return $+parseInt(xo(I,U[0]),10)+parseInt(xo(I,U[1]),10)}const W_={[E_]:"collapse",[R_]:"collapsing",[I_]:"collapsing",[C_]:"collapse show"},B_=vo.forwardRef(({onEnter:W,onEntering:I,onEntered:o,onExit:$,onExiting:U,className:k,children:L,dimension:nn="height",in:rn=!1,timeout:ht=300,mountOnEnter:Wn=!1,unmountOnExit:an=!1,appear:_e=!1,getDimensionValue:Kn=O_,...zn},Rt)=>{const N=typeof nn=="function"?nn():nn,et=X.useMemo(()=>he(J=>{J.style[N]="0"},W),[N,W]),de=X.useMemo(()=>he(J=>{const _n=`scroll${N[0].toUpperCase()}${N.slice(1)}`;J.style[N]=`${J[_n]}px`},I),[N,I]),Bn=X.useMemo(()=>he(J=>{J.style[N]=null},o),[N,o]),gt=X.useMemo(()=>he(J=>{J.style[N]=`${Kn(N,J)}px`,S_(J)},$),[$,Kn,N]),Mn=X.useMemo(()=>he(J=>{J.style[N]=null},U),[N,U]);return On.jsx(A_,{ref:Rt,addEndListener:y_,...zn,"aria-expanded":zn.role?rn:null,onEnter:et,onEntering:de,onEntered:Bn,onExit:gt,onExiting:Mn,childRef:m_(L),in:rn,timeout:ht,mountOnEnter:Wn,unmountOnExit:an,appear:_e,children:(J,_n)=>vo.cloneElement(L,{..._n,className:Et(k,L.props.className,W_[J],N==="width"&&"collapse-horizontal")})})});function Ao(W,I){return Array.isArray(W)?W.includes(I):W===I}const pe=X.createContext({});pe.displayName="AccordionContext";const bi=X.forwardRef(({as:W="div",bsPrefix:I,className:o,children:$,eventKey:U,...k},L)=>{const{activeEventKey:nn}=X.useContext(pe);return I=$t(I,"accordion-collapse"),On.jsx(B_,{ref:L,in:Ao(nn,U),...k,className:Et(o,I),children:On.jsx(W,{children:X.Children.only($)})})});bi.displayName="AccordionCollapse";const hr=X.createContext({eventKey:""});hr.displayName="AccordionItemContext";const yo=X.forwardRef(({as:W="div",bsPrefix:I,className:o,onEnter:$,onEntering:U,onEntered:k,onExit:L,onExiting:nn,onExited:rn,...ht},Wn)=>{I=$t(I,"accordion-body");const{eventKey:an}=X.useContext(hr);return On.jsx(bi,{eventKey:an,onEnter:$,onEntering:U,onEntered:k,onExit:L,onExiting:nn,onExited:rn,children:On.jsx(W,{ref:Wn,...ht,className:Et(o,I)})})});yo.displayName="AccordionBody";function M_(W,I){const{activeEventKey:o,onSelect:$,alwaysOpen:U}=X.useContext(pe);return k=>{let L=W===o?null:W;U&&(Array.isArray(o)?o.includes(W)?L=o.filter(nn=>nn!==W):L=[...o,W]:L=[W]),$==null||$(L,k),I==null||I(k)}}const Pi=X.forwardRef(({as:W="button",bsPrefix:I,className:o,onClick:$,...U},k)=>{I=$t(I,"accordion-button");const{eventKey:L}=X.useContext(hr),nn=M_(L,$),{activeEventKey:rn}=X.useContext(pe);return W==="button"&&(U.type="button"),On.jsx(W,{ref:k,onClick:nn,...U,"aria-expanded":Array.isArray(rn)?rn.includes(L):L===rn,className:Et(o,I,!Ao(rn,L)&&"collapsed")})});Pi.displayName="AccordionButton";const mo=X.forwardRef(({as:W="h2","aria-controls":I,bsPrefix:o,className:$,children:U,onClick:k,...L},nn)=>(o=$t(o,"accordion-header"),On.jsx(W,{ref:nn,...L,className:Et($,o),children:On.jsx(Pi,{onClick:k,"aria-controls":I,children:U})})));mo.displayName="AccordionHeader";const Eo=X.forwardRef(({as:W="div",bsPrefix:I,className:o,eventKey:$,...U},k)=>{I=$t(I,"accordion-item");const L=X.useMemo(()=>({eventKey:$}),[$]);return On.jsx(hr.Provider,{value:L,children:On.jsx(W,{ref:k,...U,className:Et(o,I)})})});Eo.displayName="AccordionItem";const Ro=X.forwardRef((W,I)=>{const{as:o="div",activeKey:$,bsPrefix:U,className:k,onSelect:L,flush:nn,alwaysOpen:rn,...ht}=T_(W,{activeKey:"onSelect"}),Wn=$t(U,"accordion"),an=X.useMemo(()=>({activeEventKey:$,onSelect:L,alwaysOpen:rn}),[$,L,rn]);return On.jsx(pe.Provider,{value:an,children:On.jsx(o,{ref:I,...ht,className:Et(k,Wn,nn&&`${Wn}-flush`)})})});Ro.displayName="Accordion";const D_=Object.assign(Ro,{Button:Pi,Collapse:bi,Item:Eo,Header:mo,Body:yo});var ge={exports:{}};/** +import{f as vo,r as X,j as On,a8 as A_,a9 as y_,aa as m_,i as Et,ab as xo,ac as E_,ad as R_,ae as I_,af as C_,ag as S_,h as $t,ah as cr}from"./index-bwDVKb7d.js";import{u as T_}from"./hook-BGVjY_62.js";function he(...W){return W.filter(I=>I!=null).reduce((I,o)=>{if(typeof o!="function")throw new Error("Invalid Argument Type, must only provide functions, undefined, or null.");return I===null?o:function(...U){I.apply(this,U),o.apply(this,U)}},null)}const L_={height:["marginTop","marginBottom"],width:["marginLeft","marginRight"]};function O_(W,I){const o=`offset${W[0].toUpperCase()}${W.slice(1)}`,$=I[o],U=L_[W];return $+parseInt(xo(I,U[0]),10)+parseInt(xo(I,U[1]),10)}const W_={[E_]:"collapse",[R_]:"collapsing",[I_]:"collapsing",[C_]:"collapse show"},B_=vo.forwardRef(({onEnter:W,onEntering:I,onEntered:o,onExit:$,onExiting:U,className:k,children:L,dimension:nn="height",in:rn=!1,timeout:ht=300,mountOnEnter:Wn=!1,unmountOnExit:an=!1,appear:_e=!1,getDimensionValue:Kn=O_,...zn},Rt)=>{const N=typeof nn=="function"?nn():nn,et=X.useMemo(()=>he(J=>{J.style[N]="0"},W),[N,W]),de=X.useMemo(()=>he(J=>{const _n=`scroll${N[0].toUpperCase()}${N.slice(1)}`;J.style[N]=`${J[_n]}px`},I),[N,I]),Bn=X.useMemo(()=>he(J=>{J.style[N]=null},o),[N,o]),gt=X.useMemo(()=>he(J=>{J.style[N]=`${Kn(N,J)}px`,S_(J)},$),[$,Kn,N]),Mn=X.useMemo(()=>he(J=>{J.style[N]=null},U),[N,U]);return On.jsx(A_,{ref:Rt,addEndListener:y_,...zn,"aria-expanded":zn.role?rn:null,onEnter:et,onEntering:de,onEntered:Bn,onExit:gt,onExiting:Mn,childRef:m_(L),in:rn,timeout:ht,mountOnEnter:Wn,unmountOnExit:an,appear:_e,children:(J,_n)=>vo.cloneElement(L,{..._n,className:Et(k,L.props.className,W_[J],N==="width"&&"collapse-horizontal")})})});function Ao(W,I){return Array.isArray(W)?W.includes(I):W===I}const pe=X.createContext({});pe.displayName="AccordionContext";const bi=X.forwardRef(({as:W="div",bsPrefix:I,className:o,children:$,eventKey:U,...k},L)=>{const{activeEventKey:nn}=X.useContext(pe);return I=$t(I,"accordion-collapse"),On.jsx(B_,{ref:L,in:Ao(nn,U),...k,className:Et(o,I),children:On.jsx(W,{children:X.Children.only($)})})});bi.displayName="AccordionCollapse";const hr=X.createContext({eventKey:""});hr.displayName="AccordionItemContext";const yo=X.forwardRef(({as:W="div",bsPrefix:I,className:o,onEnter:$,onEntering:U,onEntered:k,onExit:L,onExiting:nn,onExited:rn,...ht},Wn)=>{I=$t(I,"accordion-body");const{eventKey:an}=X.useContext(hr);return On.jsx(bi,{eventKey:an,onEnter:$,onEntering:U,onEntered:k,onExit:L,onExiting:nn,onExited:rn,children:On.jsx(W,{ref:Wn,...ht,className:Et(o,I)})})});yo.displayName="AccordionBody";function M_(W,I){const{activeEventKey:o,onSelect:$,alwaysOpen:U}=X.useContext(pe);return k=>{let L=W===o?null:W;U&&(Array.isArray(o)?o.includes(W)?L=o.filter(nn=>nn!==W):L=[...o,W]:L=[W]),$==null||$(L,k),I==null||I(k)}}const Pi=X.forwardRef(({as:W="button",bsPrefix:I,className:o,onClick:$,...U},k)=>{I=$t(I,"accordion-button");const{eventKey:L}=X.useContext(hr),nn=M_(L,$),{activeEventKey:rn}=X.useContext(pe);return W==="button"&&(U.type="button"),On.jsx(W,{ref:k,onClick:nn,...U,"aria-expanded":Array.isArray(rn)?rn.includes(L):L===rn,className:Et(o,I,!Ao(rn,L)&&"collapsed")})});Pi.displayName="AccordionButton";const mo=X.forwardRef(({as:W="h2","aria-controls":I,bsPrefix:o,className:$,children:U,onClick:k,...L},nn)=>(o=$t(o,"accordion-header"),On.jsx(W,{ref:nn,...L,className:Et($,o),children:On.jsx(Pi,{onClick:k,"aria-controls":I,children:U})})));mo.displayName="AccordionHeader";const Eo=X.forwardRef(({as:W="div",bsPrefix:I,className:o,eventKey:$,...U},k)=>{I=$t(I,"accordion-item");const L=X.useMemo(()=>({eventKey:$}),[$]);return On.jsx(hr.Provider,{value:L,children:On.jsx(W,{ref:k,...U,className:Et(o,I)})})});Eo.displayName="AccordionItem";const Ro=X.forwardRef((W,I)=>{const{as:o="div",activeKey:$,bsPrefix:U,className:k,onSelect:L,flush:nn,alwaysOpen:rn,...ht}=T_(W,{activeKey:"onSelect"}),Wn=$t(U,"accordion"),an=X.useMemo(()=>({activeEventKey:$,onSelect:L,alwaysOpen:rn}),[$,L,rn]);return On.jsx(pe.Provider,{value:an,children:On.jsx(o,{ref:I,...ht,className:Et(k,Wn,nn&&`${Wn}-flush`)})})});Ro.displayName="Accordion";const D_=Object.assign(Ro,{Button:Pi,Collapse:bi,Item:Eo,Header:mo,Body:yo});var ge={exports:{}};/** * @license * Lodash <https://lodash.com/> * Copyright OpenJS Foundation and other contributors <https://openjsf.org/> diff --git a/compendium_v2/static/useData-CcKTpALT.js b/compendium_v2/static/useData-Ba-3avp3.js similarity index 64% rename from compendium_v2/static/useData-CcKTpALT.js rename to compendium_v2/static/useData-Ba-3avp3.js index 95cba3a28d3b6b5fa3dfc18a64397d14746fd092..6fe790a38b3c3bb092e826e78c19fc4864ee58a8 100644 --- a/compendium_v2/static/useData-CcKTpALT.js +++ b/compendium_v2/static/useData-Ba-3avp3.js @@ -1,20 +1,20 @@ -var Wa=Object.defineProperty;var Va=(e,t,n)=>t in e?Wa(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var R=(e,t,n)=>Va(e,typeof t!="symbol"?t+"":t,n);import{r as E,u as Wt,g as Ya,j as M,h as qt,i as Kt,k as Ua,w as Xa,l as bs,o as qa,m as fn,f as ue,n as lr,B as Ka,p as Ga,q as Ja,s as xs,v as Za,x as cr,y as Ft,z as Qa,A as tl,c as wt,D as el,S as G,E as hr,R as se,O as nl,P as il,G as sl,N as ol,H as rl,I as ve,J as ur,K as ge,M as al,Q as ll,T as cl,L as hl,V as ul,C as ys,W as Zn,X as dl}from"./index-DBbSOdjk.js";import{S as rn}from"./SideBar-DfD7Pj8p.js";import{u as Qn,w as fl}from"./xlsx-BHRztzV8.js";import{c as dr,F as fr}from"./index-DkYuYqrz.js";import{u as pl}from"./hook-D9Tuu5oJ.js";function gl(){return E.useState(null)}function ml(e,t,n,i=!1){const s=Wt(n);E.useEffect(()=>{const o=typeof e=="function"?e():e;return o.addEventListener(t,s,i),()=>o.removeEventListener(t,s,i)},[e])}const bl=["onKeyDown"];function xl(e,t){if(e==null)return{};var n={};for(var i in e)if({}.hasOwnProperty.call(e,i)){if(t.indexOf(i)>=0)continue;n[i]=e[i]}return n}function yl(e){return!e||e.trim()==="#"}const pr=E.forwardRef((e,t)=>{let{onKeyDown:n}=e,i=xl(e,bl);const[s]=Ya(Object.assign({tagName:"a"},i)),o=Wt(r=>{s.onKeyDown(r),n==null||n(r)});return yl(i.href)||i.role==="button"?M.jsx("a",Object.assign({ref:t},i,s,{onKeyDown:o})):M.jsx("a",Object.assign({ref:t},i,{onKeyDown:n}))});pr.displayName="Anchor";const Ri=E.forwardRef(({bsPrefix:e,className:t,role:n="toolbar",...i},s)=>{const o=qt(e,"btn-toolbar");return M.jsx("div",{...i,ref:s,className:Kt(t,o),role:n})});Ri.displayName="ButtonToolbar";function vl(e,t,n){const i=E.useRef(e!==void 0),[s,o]=E.useState(t),r=e!==void 0,a=i.current;return i.current=r,!r&&a&&s!==t&&o(t),[r?e:s,E.useCallback((...l)=>{const[c,...h]=l;let u=n==null?void 0:n(c,...h);return o(c),u},[n])]}function _l(){const[,e]=E.useReducer(t=>t+1,0);return e}const Un=E.createContext(null);var vs=Object.prototype.hasOwnProperty;function _s(e,t,n){for(n of e.keys())if(We(n,t))return n}function We(e,t){var n,i,s;if(e===t)return!0;if(e&&t&&(n=e.constructor)===t.constructor){if(n===Date)return e.getTime()===t.getTime();if(n===RegExp)return e.toString()===t.toString();if(n===Array){if((i=e.length)===t.length)for(;i--&&We(e[i],t[i]););return i===-1}if(n===Set){if(e.size!==t.size)return!1;for(i of e)if(s=i,s&&typeof s=="object"&&(s=_s(t,s),!s)||!t.has(s))return!1;return!0}if(n===Map){if(e.size!==t.size)return!1;for(i of e)if(s=i[0],s&&typeof s=="object"&&(s=_s(t,s),!s)||!We(i[1],t.get(s)))return!1;return!0}if(n===ArrayBuffer)e=new Uint8Array(e),t=new Uint8Array(t);else if(n===DataView){if((i=e.byteLength)===t.byteLength)for(;i--&&e.getInt8(i)===t.getInt8(i););return i===-1}if(ArrayBuffer.isView(e)){if((i=e.byteLength)===t.byteLength)for(;i--&&e[i]===t[i];);return i===-1}if(!n||typeof e=="object"){i=0;for(n in e)if(vs.call(e,n)&&++i&&!vs.call(t,n)||!(n in t)||!We(e[n],t[n]))return!1;return Object.keys(t).length===i}}return e!==e&&t!==t}function wl(e){const t=Ua();return[e[0],E.useCallback(n=>{if(t())return e[1](n)},[t,e[1]])]}var ut="top",xt="bottom",yt="right",dt="left",Li="auto",an=[ut,xt,yt,dt],ke="start",Ge="end",Sl="clippingParents",gr="viewport",Le="popper",kl="reference",ws=an.reduce(function(e,t){return e.concat([t+"-"+ke,t+"-"+Ge])},[]),mr=[].concat(an,[Li]).reduce(function(e,t){return e.concat([t,t+"-"+ke,t+"-"+Ge])},[]),Ml="beforeRead",Cl="read",Pl="afterRead",Ol="beforeMain",Dl="main",El="afterMain",Al="beforeWrite",Tl="write",Rl="afterWrite",Ll=[Ml,Cl,Pl,Ol,Dl,El,Al,Tl,Rl];function Pt(e){return e.split("-")[0]}function gt(e){if(e==null)return window;if(e.toString()!=="[object Window]"){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function de(e){var t=gt(e).Element;return e instanceof t||e instanceof Element}function Ot(e){var t=gt(e).HTMLElement;return e instanceof t||e instanceof HTMLElement}function Fi(e){if(typeof ShadowRoot>"u")return!1;var t=gt(e).ShadowRoot;return e instanceof t||e instanceof ShadowRoot}var ce=Math.max,Fn=Math.min,Me=Math.round;function vi(){var e=navigator.userAgentData;return e!=null&&e.brands&&Array.isArray(e.brands)?e.brands.map(function(t){return t.brand+"/"+t.version}).join(" "):navigator.userAgent}function br(){return!/^((?!chrome|android).)*safari/i.test(vi())}function Ce(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!1);var i=e.getBoundingClientRect(),s=1,o=1;t&&Ot(e)&&(s=e.offsetWidth>0&&Me(i.width)/e.offsetWidth||1,o=e.offsetHeight>0&&Me(i.height)/e.offsetHeight||1);var r=de(e)?gt(e):window,a=r.visualViewport,l=!br()&&n,c=(i.left+(l&&a?a.offsetLeft:0))/s,h=(i.top+(l&&a?a.offsetTop:0))/o,u=i.width/s,d=i.height/o;return{width:u,height:d,top:h,right:c+u,bottom:h+d,left:c,x:c,y:h}}function Ii(e){var t=Ce(e),n=e.offsetWidth,i=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-i)<=1&&(i=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:i}}function xr(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&Fi(n)){var i=t;do{if(i&&e.isSameNode(i))return!0;i=i.parentNode||i.host}while(i)}return!1}function Ut(e){return e?(e.nodeName||"").toLowerCase():null}function It(e){return gt(e).getComputedStyle(e)}function Fl(e){return["table","td","th"].indexOf(Ut(e))>=0}function Gt(e){return((de(e)?e.ownerDocument:e.document)||window.document).documentElement}function Xn(e){return Ut(e)==="html"?e:e.assignedSlot||e.parentNode||(Fi(e)?e.host:null)||Gt(e)}function Ss(e){return!Ot(e)||It(e).position==="fixed"?null:e.offsetParent}function Il(e){var t=/firefox/i.test(vi()),n=/Trident/i.test(vi());if(n&&Ot(e)){var i=It(e);if(i.position==="fixed")return null}var s=Xn(e);for(Fi(s)&&(s=s.host);Ot(s)&&["html","body"].indexOf(Ut(s))<0;){var o=It(s);if(o.transform!=="none"||o.perspective!=="none"||o.contain==="paint"||["transform","perspective"].indexOf(o.willChange)!==-1||t&&o.willChange==="filter"||t&&o.filter&&o.filter!=="none")return s;s=s.parentNode}return null}function ln(e){for(var t=gt(e),n=Ss(e);n&&Fl(n)&&It(n).position==="static";)n=Ss(n);return n&&(Ut(n)==="html"||Ut(n)==="body"&&It(n).position==="static")?t:n||Il(e)||t}function ji(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function Ve(e,t,n){return ce(e,Fn(t,n))}function jl(e,t,n){var i=Ve(e,t,n);return i>n?n:i}function yr(){return{top:0,right:0,bottom:0,left:0}}function vr(e){return Object.assign({},yr(),e)}function _r(e,t){return t.reduce(function(n,i){return n[i]=e,n},{})}var $l=function(t,n){return t=typeof t=="function"?t(Object.assign({},n.rects,{placement:n.placement})):t,vr(typeof t!="number"?t:_r(t,an))};function zl(e){var t,n=e.state,i=e.name,s=e.options,o=n.elements.arrow,r=n.modifiersData.popperOffsets,a=Pt(n.placement),l=ji(a),c=[dt,yt].indexOf(a)>=0,h=c?"height":"width";if(!(!o||!r)){var u=$l(s.padding,n),d=Ii(o),f=l==="y"?ut:dt,g=l==="y"?xt:yt,m=n.rects.reference[h]+n.rects.reference[l]-r[l]-n.rects.popper[h],p=r[l]-n.rects.reference[l],b=ln(o),x=b?l==="y"?b.clientHeight||0:b.clientWidth||0:0,v=m/2-p/2,_=u[f],y=x-d[h]-u[g],w=x/2-d[h]/2+v,k=Ve(_,w,y),S=l;n.modifiersData[i]=(t={},t[S]=k,t.centerOffset=k-w,t)}}function Nl(e){var t=e.state,n=e.options,i=n.element,s=i===void 0?"[data-popper-arrow]":i;s!=null&&(typeof s=="string"&&(s=t.elements.popper.querySelector(s),!s)||xr(t.elements.popper,s)&&(t.elements.arrow=s))}const Bl={name:"arrow",enabled:!0,phase:"main",fn:zl,effect:Nl,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Pe(e){return e.split("-")[1]}var Hl={top:"auto",right:"auto",bottom:"auto",left:"auto"};function Wl(e,t){var n=e.x,i=e.y,s=t.devicePixelRatio||1;return{x:Me(n*s)/s||0,y:Me(i*s)/s||0}}function ks(e){var t,n=e.popper,i=e.popperRect,s=e.placement,o=e.variation,r=e.offsets,a=e.position,l=e.gpuAcceleration,c=e.adaptive,h=e.roundOffsets,u=e.isFixed,d=r.x,f=d===void 0?0:d,g=r.y,m=g===void 0?0:g,p=typeof h=="function"?h({x:f,y:m}):{x:f,y:m};f=p.x,m=p.y;var b=r.hasOwnProperty("x"),x=r.hasOwnProperty("y"),v=dt,_=ut,y=window;if(c){var w=ln(n),k="clientHeight",S="clientWidth";if(w===gt(n)&&(w=Gt(n),It(w).position!=="static"&&a==="absolute"&&(k="scrollHeight",S="scrollWidth")),w=w,s===ut||(s===dt||s===yt)&&o===Ge){_=xt;var C=u&&w===y&&y.visualViewport?y.visualViewport.height:w[k];m-=C-i.height,m*=l?1:-1}if(s===dt||(s===ut||s===xt)&&o===Ge){v=yt;var D=u&&w===y&&y.visualViewport?y.visualViewport.width:w[S];f-=D-i.width,f*=l?1:-1}}var P=Object.assign({position:a},c&&Hl),O=h===!0?Wl({x:f,y:m},gt(n)):{x:f,y:m};if(f=O.x,m=O.y,l){var A;return Object.assign({},P,(A={},A[_]=x?"0":"",A[v]=b?"0":"",A.transform=(y.devicePixelRatio||1)<=1?"translate("+f+"px, "+m+"px)":"translate3d("+f+"px, "+m+"px, 0)",A))}return Object.assign({},P,(t={},t[_]=x?m+"px":"",t[v]=b?f+"px":"",t.transform="",t))}function Vl(e){var t=e.state,n=e.options,i=n.gpuAcceleration,s=i===void 0?!0:i,o=n.adaptive,r=o===void 0?!0:o,a=n.roundOffsets,l=a===void 0?!0:a,c={placement:Pt(t.placement),variation:Pe(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:s,isFixed:t.options.strategy==="fixed"};t.modifiersData.popperOffsets!=null&&(t.styles.popper=Object.assign({},t.styles.popper,ks(Object.assign({},c,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:r,roundOffsets:l})))),t.modifiersData.arrow!=null&&(t.styles.arrow=Object.assign({},t.styles.arrow,ks(Object.assign({},c,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}const Yl={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:Vl,data:{}};var pn={passive:!0};function Ul(e){var t=e.state,n=e.instance,i=e.options,s=i.scroll,o=s===void 0?!0:s,r=i.resize,a=r===void 0?!0:r,l=gt(t.elements.popper),c=[].concat(t.scrollParents.reference,t.scrollParents.popper);return o&&c.forEach(function(h){h.addEventListener("scroll",n.update,pn)}),a&&l.addEventListener("resize",n.update,pn),function(){o&&c.forEach(function(h){h.removeEventListener("scroll",n.update,pn)}),a&&l.removeEventListener("resize",n.update,pn)}}const Xl={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:Ul,data:{}};var ql={left:"right",right:"left",bottom:"top",top:"bottom"};function Tn(e){return e.replace(/left|right|bottom|top/g,function(t){return ql[t]})}var Kl={start:"end",end:"start"};function Ms(e){return e.replace(/start|end/g,function(t){return Kl[t]})}function $i(e){var t=gt(e),n=t.pageXOffset,i=t.pageYOffset;return{scrollLeft:n,scrollTop:i}}function zi(e){return Ce(Gt(e)).left+$i(e).scrollLeft}function Gl(e,t){var n=gt(e),i=Gt(e),s=n.visualViewport,o=i.clientWidth,r=i.clientHeight,a=0,l=0;if(s){o=s.width,r=s.height;var c=br();(c||!c&&t==="fixed")&&(a=s.offsetLeft,l=s.offsetTop)}return{width:o,height:r,x:a+zi(e),y:l}}function Jl(e){var t,n=Gt(e),i=$i(e),s=(t=e.ownerDocument)==null?void 0:t.body,o=ce(n.scrollWidth,n.clientWidth,s?s.scrollWidth:0,s?s.clientWidth:0),r=ce(n.scrollHeight,n.clientHeight,s?s.scrollHeight:0,s?s.clientHeight:0),a=-i.scrollLeft+zi(e),l=-i.scrollTop;return It(s||n).direction==="rtl"&&(a+=ce(n.clientWidth,s?s.clientWidth:0)-o),{width:o,height:r,x:a,y:l}}function Ni(e){var t=It(e),n=t.overflow,i=t.overflowX,s=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+s+i)}function wr(e){return["html","body","#document"].indexOf(Ut(e))>=0?e.ownerDocument.body:Ot(e)&&Ni(e)?e:wr(Xn(e))}function Ye(e,t){var n;t===void 0&&(t=[]);var i=wr(e),s=i===((n=e.ownerDocument)==null?void 0:n.body),o=gt(i),r=s?[o].concat(o.visualViewport||[],Ni(i)?i:[]):i,a=t.concat(r);return s?a:a.concat(Ye(Xn(r)))}function _i(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function Zl(e,t){var n=Ce(e,!1,t==="fixed");return n.top=n.top+e.clientTop,n.left=n.left+e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}function Cs(e,t,n){return t===gr?_i(Gl(e,n)):de(t)?Zl(t,n):_i(Jl(Gt(e)))}function Ql(e){var t=Ye(Xn(e)),n=["absolute","fixed"].indexOf(It(e).position)>=0,i=n&&Ot(e)?ln(e):e;return de(i)?t.filter(function(s){return de(s)&&xr(s,i)&&Ut(s)!=="body"}):[]}function tc(e,t,n,i){var s=t==="clippingParents"?Ql(e):[].concat(t),o=[].concat(s,[n]),r=o[0],a=o.reduce(function(l,c){var h=Cs(e,c,i);return l.top=ce(h.top,l.top),l.right=Fn(h.right,l.right),l.bottom=Fn(h.bottom,l.bottom),l.left=ce(h.left,l.left),l},Cs(e,r,i));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}function Sr(e){var t=e.reference,n=e.element,i=e.placement,s=i?Pt(i):null,o=i?Pe(i):null,r=t.x+t.width/2-n.width/2,a=t.y+t.height/2-n.height/2,l;switch(s){case ut:l={x:r,y:t.y-n.height};break;case xt:l={x:r,y:t.y+t.height};break;case yt:l={x:t.x+t.width,y:a};break;case dt:l={x:t.x-n.width,y:a};break;default:l={x:t.x,y:t.y}}var c=s?ji(s):null;if(c!=null){var h=c==="y"?"height":"width";switch(o){case ke:l[c]=l[c]-(t[h]/2-n[h]/2);break;case Ge:l[c]=l[c]+(t[h]/2-n[h]/2);break}}return l}function Je(e,t){t===void 0&&(t={});var n=t,i=n.placement,s=i===void 0?e.placement:i,o=n.strategy,r=o===void 0?e.strategy:o,a=n.boundary,l=a===void 0?Sl:a,c=n.rootBoundary,h=c===void 0?gr:c,u=n.elementContext,d=u===void 0?Le:u,f=n.altBoundary,g=f===void 0?!1:f,m=n.padding,p=m===void 0?0:m,b=vr(typeof p!="number"?p:_r(p,an)),x=d===Le?kl:Le,v=e.rects.popper,_=e.elements[g?x:d],y=tc(de(_)?_:_.contextElement||Gt(e.elements.popper),l,h,r),w=Ce(e.elements.reference),k=Sr({reference:w,element:v,strategy:"absolute",placement:s}),S=_i(Object.assign({},v,k)),C=d===Le?S:w,D={top:y.top-C.top+b.top,bottom:C.bottom-y.bottom+b.bottom,left:y.left-C.left+b.left,right:C.right-y.right+b.right},P=e.modifiersData.offset;if(d===Le&&P){var O=P[s];Object.keys(D).forEach(function(A){var I=[yt,xt].indexOf(A)>=0?1:-1,T=[ut,xt].indexOf(A)>=0?"y":"x";D[A]+=O[T]*I})}return D}function ec(e,t){t===void 0&&(t={});var n=t,i=n.placement,s=n.boundary,o=n.rootBoundary,r=n.padding,a=n.flipVariations,l=n.allowedAutoPlacements,c=l===void 0?mr:l,h=Pe(i),u=h?a?ws:ws.filter(function(g){return Pe(g)===h}):an,d=u.filter(function(g){return c.indexOf(g)>=0});d.length===0&&(d=u);var f=d.reduce(function(g,m){return g[m]=Je(e,{placement:m,boundary:s,rootBoundary:o,padding:r})[Pt(m)],g},{});return Object.keys(f).sort(function(g,m){return f[g]-f[m]})}function nc(e){if(Pt(e)===Li)return[];var t=Tn(e);return[Ms(e),t,Ms(t)]}function ic(e){var t=e.state,n=e.options,i=e.name;if(!t.modifiersData[i]._skip){for(var s=n.mainAxis,o=s===void 0?!0:s,r=n.altAxis,a=r===void 0?!0:r,l=n.fallbackPlacements,c=n.padding,h=n.boundary,u=n.rootBoundary,d=n.altBoundary,f=n.flipVariations,g=f===void 0?!0:f,m=n.allowedAutoPlacements,p=t.options.placement,b=Pt(p),x=b===p,v=l||(x||!g?[Tn(p)]:nc(p)),_=[p].concat(v).reduce(function(U,X){return U.concat(Pt(X)===Li?ec(t,{placement:X,boundary:h,rootBoundary:u,padding:c,flipVariations:g,allowedAutoPlacements:m}):X)},[]),y=t.rects.reference,w=t.rects.popper,k=new Map,S=!0,C=_[0],D=0;D<_.length;D++){var P=_[D],O=Pt(P),A=Pe(P)===ke,I=[ut,xt].indexOf(O)>=0,T=I?"width":"height",L=Je(t,{placement:P,boundary:h,rootBoundary:u,altBoundary:d,padding:c}),F=I?A?yt:dt:A?xt:ut;y[T]>w[T]&&(F=Tn(F));var H=Tn(F),$=[];if(o&&$.push(L[O]<=0),a&&$.push(L[F]<=0,L[H]<=0),$.every(function(U){return U})){C=P,S=!1;break}k.set(P,$)}if(S)for(var N=g?3:1,tt=function(X){var K=_.find(function(Et){var W=k.get(Et);if(W)return W.slice(0,X).every(function(et){return et})});if(K)return C=K,"break"},Q=N;Q>0;Q--){var nt=tt(Q);if(nt==="break")break}t.placement!==C&&(t.modifiersData[i]._skip=!0,t.placement=C,t.reset=!0)}}const sc={name:"flip",enabled:!0,phase:"main",fn:ic,requiresIfExists:["offset"],data:{_skip:!1}};function Ps(e,t,n){return n===void 0&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function Os(e){return[ut,yt,xt,dt].some(function(t){return e[t]>=0})}function oc(e){var t=e.state,n=e.name,i=t.rects.reference,s=t.rects.popper,o=t.modifiersData.preventOverflow,r=Je(t,{elementContext:"reference"}),a=Je(t,{altBoundary:!0}),l=Ps(r,i),c=Ps(a,s,o),h=Os(l),u=Os(c);t.modifiersData[n]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:h,hasPopperEscaped:u},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":h,"data-popper-escaped":u})}const rc={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:oc};function ac(e,t,n){var i=Pt(e),s=[dt,ut].indexOf(i)>=0?-1:1,o=typeof n=="function"?n(Object.assign({},t,{placement:e})):n,r=o[0],a=o[1];return r=r||0,a=(a||0)*s,[dt,yt].indexOf(i)>=0?{x:a,y:r}:{x:r,y:a}}function lc(e){var t=e.state,n=e.options,i=e.name,s=n.offset,o=s===void 0?[0,0]:s,r=mr.reduce(function(h,u){return h[u]=ac(u,t.rects,o),h},{}),a=r[t.placement],l=a.x,c=a.y;t.modifiersData.popperOffsets!=null&&(t.modifiersData.popperOffsets.x+=l,t.modifiersData.popperOffsets.y+=c),t.modifiersData[i]=r}const cc={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:lc};function hc(e){var t=e.state,n=e.name;t.modifiersData[n]=Sr({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})}const uc={name:"popperOffsets",enabled:!0,phase:"read",fn:hc,data:{}};function dc(e){return e==="x"?"y":"x"}function fc(e){var t=e.state,n=e.options,i=e.name,s=n.mainAxis,o=s===void 0?!0:s,r=n.altAxis,a=r===void 0?!1:r,l=n.boundary,c=n.rootBoundary,h=n.altBoundary,u=n.padding,d=n.tether,f=d===void 0?!0:d,g=n.tetherOffset,m=g===void 0?0:g,p=Je(t,{boundary:l,rootBoundary:c,padding:u,altBoundary:h}),b=Pt(t.placement),x=Pe(t.placement),v=!x,_=ji(b),y=dc(_),w=t.modifiersData.popperOffsets,k=t.rects.reference,S=t.rects.popper,C=typeof m=="function"?m(Object.assign({},t.rects,{placement:t.placement})):m,D=typeof C=="number"?{mainAxis:C,altAxis:C}:Object.assign({mainAxis:0,altAxis:0},C),P=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,O={x:0,y:0};if(w){if(o){var A,I=_==="y"?ut:dt,T=_==="y"?xt:yt,L=_==="y"?"height":"width",F=w[_],H=F+p[I],$=F-p[T],N=f?-S[L]/2:0,tt=x===ke?k[L]:S[L],Q=x===ke?-S[L]:-k[L],nt=t.elements.arrow,U=f&&nt?Ii(nt):{width:0,height:0},X=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:yr(),K=X[I],Et=X[T],W=Ve(0,k[L],U[L]),et=v?k[L]/2-N-W-K-D.mainAxis:tt-W-K-D.mainAxis,Re=v?-k[L]/2+N+W+Et+D.mainAxis:Q+W+Et+D.mainAxis,$t=t.elements.arrow&&ln(t.elements.arrow),Jt=$t?_==="y"?$t.clientTop||0:$t.clientLeft||0:0,Zt=(A=P==null?void 0:P[_])!=null?A:0,lt=F+et-Zt-Jt,Na=F+Re-Zt,cs=Ve(f?Fn(H,lt):H,F,f?ce($,Na):$);w[_]=cs,O[_]=cs-F}if(a){var hs,Ba=_==="x"?ut:dt,Ha=_==="x"?xt:yt,Qt=w[y],dn=y==="y"?"height":"width",us=Qt+p[Ba],ds=Qt-p[Ha],Jn=[ut,dt].indexOf(b)!==-1,fs=(hs=P==null?void 0:P[y])!=null?hs:0,ps=Jn?us:Qt-k[dn]-S[dn]-fs+D.altAxis,gs=Jn?Qt+k[dn]+S[dn]-fs-D.altAxis:ds,ms=f&&Jn?jl(ps,Qt,gs):Ve(f?ps:us,Qt,f?gs:ds);w[y]=ms,O[y]=ms-Qt}t.modifiersData[i]=O}}const pc={name:"preventOverflow",enabled:!0,phase:"main",fn:fc,requiresIfExists:["offset"]};function gc(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function mc(e){return e===gt(e)||!Ot(e)?$i(e):gc(e)}function bc(e){var t=e.getBoundingClientRect(),n=Me(t.width)/e.offsetWidth||1,i=Me(t.height)/e.offsetHeight||1;return n!==1||i!==1}function xc(e,t,n){n===void 0&&(n=!1);var i=Ot(t),s=Ot(t)&&bc(t),o=Gt(t),r=Ce(e,s,n),a={scrollLeft:0,scrollTop:0},l={x:0,y:0};return(i||!i&&!n)&&((Ut(t)!=="body"||Ni(o))&&(a=mc(t)),Ot(t)?(l=Ce(t,!0),l.x+=t.clientLeft,l.y+=t.clientTop):o&&(l.x=zi(o))),{x:r.left+a.scrollLeft-l.x,y:r.top+a.scrollTop-l.y,width:r.width,height:r.height}}function yc(e){var t=new Map,n=new Set,i=[];e.forEach(function(o){t.set(o.name,o)});function s(o){n.add(o.name);var r=[].concat(o.requires||[],o.requiresIfExists||[]);r.forEach(function(a){if(!n.has(a)){var l=t.get(a);l&&s(l)}}),i.push(o)}return e.forEach(function(o){n.has(o.name)||s(o)}),i}function vc(e){var t=yc(e);return Ll.reduce(function(n,i){return n.concat(t.filter(function(s){return s.phase===i}))},[])}function _c(e){var t;return function(){return t||(t=new Promise(function(n){Promise.resolve().then(function(){t=void 0,n(e())})})),t}}function wc(e){var t=e.reduce(function(n,i){var s=n[i.name];return n[i.name]=s?Object.assign({},s,i,{options:Object.assign({},s.options,i.options),data:Object.assign({},s.data,i.data)}):i,n},{});return Object.keys(t).map(function(n){return t[n]})}var Ds={placement:"bottom",modifiers:[],strategy:"absolute"};function Es(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return!t.some(function(i){return!(i&&typeof i.getBoundingClientRect=="function")})}function Sc(e){e===void 0&&(e={});var t=e,n=t.defaultModifiers,i=n===void 0?[]:n,s=t.defaultOptions,o=s===void 0?Ds:s;return function(a,l,c){c===void 0&&(c=o);var h={placement:"bottom",orderedModifiers:[],options:Object.assign({},Ds,o),modifiersData:{},elements:{reference:a,popper:l},attributes:{},styles:{}},u=[],d=!1,f={state:h,setOptions:function(b){var x=typeof b=="function"?b(h.options):b;m(),h.options=Object.assign({},o,h.options,x),h.scrollParents={reference:de(a)?Ye(a):a.contextElement?Ye(a.contextElement):[],popper:Ye(l)};var v=vc(wc([].concat(i,h.options.modifiers)));return h.orderedModifiers=v.filter(function(_){return _.enabled}),g(),f.update()},forceUpdate:function(){if(!d){var b=h.elements,x=b.reference,v=b.popper;if(Es(x,v)){h.rects={reference:xc(x,ln(v),h.options.strategy==="fixed"),popper:Ii(v)},h.reset=!1,h.placement=h.options.placement,h.orderedModifiers.forEach(function(D){return h.modifiersData[D.name]=Object.assign({},D.data)});for(var _=0;_<h.orderedModifiers.length;_++){if(h.reset===!0){h.reset=!1,_=-1;continue}var y=h.orderedModifiers[_],w=y.fn,k=y.options,S=k===void 0?{}:k,C=y.name;typeof w=="function"&&(h=w({state:h,options:S,name:C,instance:f})||h)}}}},update:_c(function(){return new Promise(function(p){f.forceUpdate(),p(h)})}),destroy:function(){m(),d=!0}};if(!Es(a,l))return f;f.setOptions(c).then(function(p){!d&&c.onFirstUpdate&&c.onFirstUpdate(p)});function g(){h.orderedModifiers.forEach(function(p){var b=p.name,x=p.options,v=x===void 0?{}:x,_=p.effect;if(typeof _=="function"){var y=_({state:h,name:b,instance:f,options:v}),w=function(){};u.push(y||w)}})}function m(){u.forEach(function(p){return p()}),u=[]}return f}}const kc=Sc({defaultModifiers:[rc,uc,Yl,Xl,cc,sc,pc,Bl]}),Mc=["enabled","placement","strategy","modifiers"];function Cc(e,t){if(e==null)return{};var n={};for(var i in e)if({}.hasOwnProperty.call(e,i)){if(t.indexOf(i)>=0)continue;n[i]=e[i]}return n}const Pc={name:"applyStyles",enabled:!1,phase:"afterWrite",fn:()=>{}},Oc={name:"ariaDescribedBy",enabled:!0,phase:"afterWrite",effect:({state:e})=>()=>{const{reference:t,popper:n}=e.elements;if("removeAttribute"in t){const i=(t.getAttribute("aria-describedby")||"").split(",").filter(s=>s.trim()!==n.id);i.length?t.setAttribute("aria-describedby",i.join(",")):t.removeAttribute("aria-describedby")}},fn:({state:e})=>{var t;const{popper:n,reference:i}=e.elements,s=(t=n.getAttribute("role"))==null?void 0:t.toLowerCase();if(n.id&&s==="tooltip"&&"setAttribute"in i){const o=i.getAttribute("aria-describedby");if(o&&o.split(",").indexOf(n.id)!==-1)return;i.setAttribute("aria-describedby",o?`${o},${n.id}`:n.id)}}},Dc=[];function Ec(e,t,n={}){let{enabled:i=!0,placement:s="bottom",strategy:o="absolute",modifiers:r=Dc}=n,a=Cc(n,Mc);const l=E.useRef(r),c=E.useRef(),h=E.useCallback(()=>{var p;(p=c.current)==null||p.update()},[]),u=E.useCallback(()=>{var p;(p=c.current)==null||p.forceUpdate()},[]),[d,f]=wl(E.useState({placement:s,update:h,forceUpdate:u,attributes:{},styles:{popper:{},arrow:{}}})),g=E.useMemo(()=>({name:"updateStateModifier",enabled:!0,phase:"write",requires:["computeStyles"],fn:({state:p})=>{const b={},x={};Object.keys(p.elements).forEach(v=>{b[v]=p.styles[v],x[v]=p.attributes[v]}),f({state:p,styles:b,attributes:x,update:h,forceUpdate:u,placement:p.placement})}}),[h,u,f]),m=E.useMemo(()=>(We(l.current,r)||(l.current=r),l.current),[r]);return E.useEffect(()=>{!c.current||!i||c.current.setOptions({placement:s,strategy:o,modifiers:[...m,g,Pc]})},[o,s,g,i,m]),E.useEffect(()=>{if(!(!i||e==null||t==null))return c.current=kc(e,t,Object.assign({},a,{placement:s,strategy:o,modifiers:[...m,Oc,g]})),()=>{c.current!=null&&(c.current.destroy(),c.current=void 0,f(p=>Object.assign({},p,{attributes:{},styles:{popper:{}}})))}},[i,e,t]),d}const As=()=>{};function Ac(e){return e.button===0}function Tc(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}const ti=e=>e&&("current"in e?e.current:e),Ts={click:"mousedown",mouseup:"mousedown",pointerup:"pointerdown"};function Rc(e,t=As,{disabled:n,clickTrigger:i="click"}={}){const s=E.useRef(!1),o=E.useRef(!1),r=E.useCallback(c=>{const h=ti(e);Xa(!!h,"ClickOutside captured a close event but does not have a ref to compare it to. useClickOutside(), should be passed a ref that resolves to a DOM node"),s.current=!h||Tc(c)||!Ac(c)||!!bs(h,c.target)||o.current,o.current=!1},[e]),a=Wt(c=>{const h=ti(e);h&&bs(h,c.target)?o.current=!0:o.current=!1}),l=Wt(c=>{s.current||t(c)});E.useEffect(()=>{var c,h;if(n||e==null)return;const u=qa(ti(e)),d=u.defaultView||window;let f=(c=d.event)!=null?c:(h=d.parent)==null?void 0:h.event,g=null;Ts[i]&&(g=fn(u,Ts[i],a,!0));const m=fn(u,i,r,!0),p=fn(u,i,x=>{if(x===f){f=void 0;return}l(x)});let b=[];return"ontouchstart"in u.documentElement&&(b=[].slice.call(u.body.children).map(x=>fn(x,"mousemove",As))),()=>{g==null||g(),m(),p(),b.forEach(x=>x())}},[e,n,i,r,a,l])}function Lc(e){const t={};return Array.isArray(e)?(e==null||e.forEach(n=>{t[n.name]=n}),t):e||t}function Fc(e={}){return Array.isArray(e)?e:Object.keys(e).map(t=>(e[t].name=t,e[t]))}function Ic({enabled:e,enableEvents:t,placement:n,flip:i,offset:s,fixed:o,containerPadding:r,arrowElement:a,popperConfig:l={}}){var c,h,u,d,f;const g=Lc(l.modifiers);return Object.assign({},l,{placement:n,enabled:e,strategy:o?"fixed":l.strategy,modifiers:Fc(Object.assign({},g,{eventListeners:{enabled:t,options:(c=g.eventListeners)==null?void 0:c.options},preventOverflow:Object.assign({},g.preventOverflow,{options:r?Object.assign({padding:r},(h=g.preventOverflow)==null?void 0:h.options):(u=g.preventOverflow)==null?void 0:u.options}),offset:{options:Object.assign({offset:s},(d=g.offset)==null?void 0:d.options)},arrow:Object.assign({},g.arrow,{enabled:!!a,options:Object.assign({},(f=g.arrow)==null?void 0:f.options,{element:a})}),flip:Object.assign({enabled:!!i},g.flip)}))})}const jc=["children","usePopper"];function $c(e,t){if(e==null)return{};var n={};for(var i in e)if({}.hasOwnProperty.call(e,i)){if(t.indexOf(i)>=0)continue;n[i]=e[i]}return n}const zc=()=>{};function kr(e={}){const t=E.useContext(Un),[n,i]=gl(),s=E.useRef(!1),{flip:o,offset:r,rootCloseEvent:a,fixed:l=!1,placement:c,popperConfig:h={},enableEventListeners:u=!0,usePopper:d=!!t}=e,f=(t==null?void 0:t.show)==null?!!e.show:t.show;f&&!s.current&&(s.current=!0);const g=w=>{t==null||t.toggle(!1,w)},{placement:m,setMenu:p,menuElement:b,toggleElement:x}=t||{},v=Ec(x,b,Ic({placement:c||m||"bottom-start",enabled:d,enableEvents:u??f,offset:r,flip:o,fixed:l,arrowElement:n,popperConfig:h})),_=Object.assign({ref:p||zc,"aria-labelledby":x==null?void 0:x.id},v.attributes.popper,{style:v.styles.popper}),y={show:f,placement:m,hasShown:s.current,toggle:t==null?void 0:t.toggle,popper:d?v:null,arrowProps:d?Object.assign({ref:i},v.attributes.arrow,{style:v.styles.arrow}):{}};return Rc(b,g,{clickTrigger:a,disabled:!f}),[_,y]}function Mr(e){let{children:t,usePopper:n=!0}=e,i=$c(e,jc);const[s,o]=kr(Object.assign({},i,{usePopper:n}));return M.jsx(M.Fragment,{children:t(s,o)})}Mr.displayName="DropdownMenu";const Bi={prefix:String(Math.round(Math.random()*1e10)),current:0},Cr=ue.createContext(Bi),Nc=ue.createContext(!1);let Bc=!!(typeof window<"u"&&window.document&&window.document.createElement),ei=new WeakMap;function Hc(e=!1){let t=E.useContext(Cr),n=E.useRef(null);if(n.current===null&&!e){var i,s;let o=(s=ue.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED)===null||s===void 0||(i=s.ReactCurrentOwner)===null||i===void 0?void 0:i.current;if(o){let r=ei.get(o);r==null?ei.set(o,{id:t.current,state:o.memoizedState}):o.memoizedState!==r.state&&(t.current=r.id,ei.delete(o))}n.current=++t.current}return n.current}function Wc(e){let t=E.useContext(Cr);t===Bi&&!Bc&&console.warn("When server rendering, you must wrap your application in an <SSRProvider> to ensure consistent ids are generated between the client and server.");let n=Hc(!!e),i=`react-aria${t.prefix}`;return e||`${i}-${n}`}function Vc(e){let t=ue.useId(),[n]=E.useState(Kc()),i=n?"react-aria":`react-aria${Bi.prefix}`;return e||`${i}-${t}`}const Yc=typeof ue.useId=="function"?Vc:Wc;function Uc(){return!1}function Xc(){return!0}function qc(e){return()=>{}}function Kc(){return typeof ue.useSyncExternalStore=="function"?ue.useSyncExternalStore(qc,Uc,Xc):E.useContext(Nc)}const Pr=e=>{var t;return((t=e.getAttribute("role"))==null?void 0:t.toLowerCase())==="menu"},Rs=()=>{};function Or(){const e=Yc(),{show:t=!1,toggle:n=Rs,setToggle:i,menuElement:s}=E.useContext(Un)||{},o=E.useCallback(a=>{n(!t,a)},[t,n]),r={id:e,ref:i||Rs,onClick:o,"aria-expanded":!!t};return s&&Pr(s)&&(r["aria-haspopup"]=!0),[r,{show:t,toggle:n}]}function Dr({children:e}){const[t,n]=Or();return M.jsx(M.Fragment,{children:e(t,n)})}Dr.displayName="DropdownToggle";const wi=E.createContext(null),Ls=(e,t=null)=>e!=null?String(e):t||null,Er=E.createContext(null);Er.displayName="NavContext";const Gc=["eventKey","disabled","onClick","active","as"];function Jc(e,t){if(e==null)return{};var n={};for(var i in e)if({}.hasOwnProperty.call(e,i)){if(t.indexOf(i)>=0)continue;n[i]=e[i]}return n}function Ar({key:e,href:t,active:n,disabled:i,onClick:s}){const o=E.useContext(wi),r=E.useContext(Er),{activeKey:a}=r||{},l=Ls(e,t),c=n==null&&e!=null?Ls(a)===l:n;return[{onClick:Wt(u=>{i||(s==null||s(u),o&&!u.isPropagationStopped()&&o(l,u))}),"aria-disabled":i||void 0,"aria-selected":c,[lr("dropdown-item")]:""},{isActive:c}]}const Tr=E.forwardRef((e,t)=>{let{eventKey:n,disabled:i,onClick:s,active:o,as:r=Ka}=e,a=Jc(e,Gc);const[l]=Ar({key:n,href:a.href,disabled:i,onClick:s,active:o});return M.jsx(r,Object.assign({},a,{ref:t},l))});Tr.displayName="DropdownItem";function Fs(){const e=_l(),t=E.useRef(null),n=E.useCallback(i=>{t.current=i,e()},[e]);return[t,n]}function cn({defaultShow:e,show:t,onSelect:n,onToggle:i,itemSelector:s=`* [${lr("dropdown-item")}]`,focusFirstItemOnShow:o,placement:r="bottom-start",children:a}){const l=Ga(),[c,h]=vl(t,e,i),[u,d]=Fs(),f=u.current,[g,m]=Fs(),p=g.current,b=Ja(c),x=E.useRef(null),v=E.useRef(!1),_=E.useContext(wi),y=E.useCallback((P,O,A=O==null?void 0:O.type)=>{h(P,{originalEvent:O,source:A})},[h]),w=Wt((P,O)=>{n==null||n(P,O),y(!1,O,"select"),O.isPropagationStopped()||_==null||_(P,O)}),k=E.useMemo(()=>({toggle:y,placement:r,show:c,menuElement:f,toggleElement:p,setMenu:d,setToggle:m}),[y,r,c,f,p,d,m]);f&&b&&!c&&(v.current=f.contains(f.ownerDocument.activeElement));const S=Wt(()=>{p&&p.focus&&p.focus()}),C=Wt(()=>{const P=x.current;let O=o;if(O==null&&(O=u.current&&Pr(u.current)?"keyboard":!1),O===!1||O==="keyboard"&&!/^key.+$/.test(P))return;const A=xs(u.current,s)[0];A&&A.focus&&A.focus()});E.useEffect(()=>{c?C():v.current&&(v.current=!1,S())},[c,v,S,C]),E.useEffect(()=>{x.current=null});const D=(P,O)=>{if(!u.current)return null;const A=xs(u.current,s);let I=A.indexOf(P)+O;return I=Math.max(0,Math.min(I,A.length)),A[I]};return ml(E.useCallback(()=>l.document,[l]),"keydown",P=>{var O,A;const{key:I}=P,T=P.target,L=(O=u.current)==null?void 0:O.contains(T),F=(A=g.current)==null?void 0:A.contains(T);if(/input|textarea/i.test(T.tagName)&&(I===" "||I!=="Escape"&&L||I==="Escape"&&T.type==="search")||!L&&!F||I==="Tab"&&(!u.current||!c))return;x.current=P.type;const $={originalEvent:P,source:P.type};switch(I){case"ArrowUp":{const N=D(T,-1);N&&N.focus&&N.focus(),P.preventDefault();return}case"ArrowDown":if(P.preventDefault(),!c)h(!0,$);else{const N=D(T,1);N&&N.focus&&N.focus()}return;case"Tab":Za(T.ownerDocument,"keyup",N=>{var tt;(N.key==="Tab"&&!N.target||!((tt=u.current)!=null&&tt.contains(N.target)))&&h(!1,$)},{once:!0});break;case"Escape":I==="Escape"&&(P.preventDefault(),P.stopPropagation()),h(!1,$);break}}),M.jsx(wi.Provider,{value:w,children:M.jsx(Un.Provider,{value:k,children:a})})}cn.displayName="Dropdown";cn.Menu=Mr;cn.Toggle=Dr;cn.Item=Tr;const Hi=E.createContext({});Hi.displayName="DropdownContext";const Rr=E.forwardRef(({className:e,bsPrefix:t,as:n="hr",role:i="separator",...s},o)=>(t=qt(t,"dropdown-divider"),M.jsx(n,{ref:o,className:Kt(e,t),role:i,...s})));Rr.displayName="DropdownDivider";const Lr=E.forwardRef(({className:e,bsPrefix:t,as:n="div",role:i="heading",...s},o)=>(t=qt(t,"dropdown-header"),M.jsx(n,{ref:o,className:Kt(e,t),role:i,...s})));Lr.displayName="DropdownHeader";const Fr=E.forwardRef(({bsPrefix:e,className:t,eventKey:n,disabled:i=!1,onClick:s,active:o,as:r=pr,...a},l)=>{const c=qt(e,"dropdown-item"),[h,u]=Ar({key:n,href:a.href,disabled:i,onClick:s,active:o});return M.jsx(r,{...a,...h,ref:l,className:Kt(t,c,u.isActive&&"active",i&&"disabled")})});Fr.displayName="DropdownItem";const Ir=E.forwardRef(({className:e,bsPrefix:t,as:n="span",...i},s)=>(t=qt(t,"dropdown-item-text"),M.jsx(n,{ref:s,className:Kt(e,t),...i})));Ir.displayName="DropdownItemText";const Zc=typeof global<"u"&&global.navigator&&global.navigator.product==="ReactNative",Qc=typeof document<"u",th=Qc||Zc?E.useLayoutEffect:E.useEffect,jr=E.createContext(null);jr.displayName="NavbarContext";function $r(e,t){return e}function zr(e,t,n){const i=n?"top-end":"top-start",s=n?"top-start":"top-end",o=n?"bottom-end":"bottom-start",r=n?"bottom-start":"bottom-end",a=n?"right-start":"left-start",l=n?"right-end":"left-end",c=n?"left-start":"right-start",h=n?"left-end":"right-end";let u=e?r:o;return t==="up"?u=e?s:i:t==="end"?u=e?h:c:t==="start"?u=e?l:a:t==="down-centered"?u="bottom":t==="up-centered"&&(u="top"),u}const Nr=E.forwardRef(({bsPrefix:e,className:t,align:n,rootCloseEvent:i,flip:s=!0,show:o,renderOnMount:r,as:a="div",popperConfig:l,variant:c,...h},u)=>{let d=!1;const f=E.useContext(jr),g=qt(e,"dropdown-menu"),{align:m,drop:p,isRTL:b}=E.useContext(Hi);n=n||m;const x=E.useContext(dr),v=[];if(n)if(typeof n=="object"){const P=Object.keys(n);if(P.length){const O=P[0],A=n[O];d=A==="start",v.push(`${g}-${O}-${A}`)}}else n==="end"&&(d=!0);const _=zr(d,p,b),[y,{hasShown:w,popper:k,show:S,toggle:C}]=kr({flip:s,rootCloseEvent:i,show:o,usePopper:!f&&v.length===0,offset:[0,2],popperConfig:l,placement:_});if(y.ref=cr($r(u),y.ref),th(()=>{S&&(k==null||k.update())},[S]),!w&&!r&&!x)return null;typeof a!="string"&&(y.show=S,y.close=()=>C==null?void 0:C(!1),y.align=n);let D=h.style;return k!=null&&k.placement&&(D={...h.style,...y.style},h["x-placement"]=k.placement),M.jsx(a,{...h,...y,style:D,...(v.length||f)&&{"data-bs-popper":"static"},className:Kt(t,g,S&&"show",d&&`${g}-end`,c&&`${g}-${c}`,...v)})});Nr.displayName="DropdownMenu";const Br=E.forwardRef(({bsPrefix:e,split:t,className:n,childBsPrefix:i,as:s=Ft,...o},r)=>{const a=qt(e,"dropdown-toggle"),l=E.useContext(Un);i!==void 0&&(o.bsPrefix=i);const[c]=Or();return c.ref=cr(c.ref,$r(r)),M.jsx(s,{className:Kt(n,a,t&&`${a}-split`,(l==null?void 0:l.show)&&"show"),...c,...o})});Br.displayName="DropdownToggle";const Hr=E.forwardRef((e,t)=>{const{bsPrefix:n,drop:i="down",show:s,className:o,align:r="start",onSelect:a,onToggle:l,focusFirstItemOnShow:c,as:h="div",navbar:u,autoClose:d=!0,...f}=pl(e,{show:"onToggle"}),g=E.useContext(dr),m=qt(n,"dropdown"),p=Qa(),b=k=>d===!1?k==="click":d==="inside"?k!=="rootClose":d==="outside"?k!=="select":!0,x=tl((k,S)=>{var C;!((C=S.originalEvent)==null||(C=C.target)==null)&&C.classList.contains("dropdown-toggle")&&S.source==="mousedown"||(S.originalEvent.currentTarget===document&&(S.source!=="keydown"||S.originalEvent.key==="Escape")&&(S.source="rootClose"),b(S.source)&&(l==null||l(k,S)))}),_=zr(r==="end",i,p),y=E.useMemo(()=>({align:r,drop:i,isRTL:p}),[r,i,p]),w={down:m,"down-centered":`${m}-center`,up:"dropup","up-centered":"dropup-center dropup",end:"dropend",start:"dropstart"};return M.jsx(Hi.Provider,{value:y,children:M.jsx(cn,{placement:_,show:s,onSelect:a,onToggle:x,focusFirstItemOnShow:c,itemSelector:`.${m}-item:not(.disabled):not(:disabled)`,children:g?f.children:M.jsx(h,{...f,ref:t,className:Kt(o,s&&"show",w[i])})})})});Hr.displayName="Dropdown";const ni=Object.assign(Hr,{Toggle:Br,Menu:Nr,Item:Fr,ItemText:Ir,Divider:Rr,Header:Lr});/*! +var Va=Object.defineProperty;var Ya=(e,t,n)=>t in e?Va(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var R=(e,t,n)=>Ya(e,typeof t!="symbol"?t+"":t,n);import{r as A,u as Wt,g as Ua,j as M,h as qt,i as Kt,k as Xa,w as qa,l as xs,o as Ka,m as fn,f as ue,n as cr,B as Ga,p as Ja,q as Za,s as ys,v as Qa,x as hr,y as Ft,z as tl,A as el,c as wt,D as nl,S as G,E as ur,R as se,O as il,P as sl,G as ol,N as rl,H as al,I as ve,J as dr,K as ge,M as ll,Q as cl,T as hl,L as ul,V as dl,C as vs,W as Qn,X as fl}from"./index-bwDVKb7d.js";import{S as rn}from"./SideBar-D_Yxr_mj.js";import{u as ti,w as pl}from"./xlsx-BHRztzV8.js";import{c as fr,F as pr}from"./index-Y7aK5es_.js";import{u as gl}from"./hook-BGVjY_62.js";function ml(){return A.useState(null)}function bl(e,t,n,i=!1){const s=Wt(n);A.useEffect(()=>{const o=typeof e=="function"?e():e;return o.addEventListener(t,s,i),()=>o.removeEventListener(t,s,i)},[e])}const xl=["onKeyDown"];function yl(e,t){if(e==null)return{};var n={};for(var i in e)if({}.hasOwnProperty.call(e,i)){if(t.indexOf(i)>=0)continue;n[i]=e[i]}return n}function vl(e){return!e||e.trim()==="#"}const gr=A.forwardRef((e,t)=>{let{onKeyDown:n}=e,i=yl(e,xl);const[s]=Ua(Object.assign({tagName:"a"},i)),o=Wt(r=>{s.onKeyDown(r),n==null||n(r)});return vl(i.href)||i.role==="button"?M.jsx("a",Object.assign({ref:t},i,s,{onKeyDown:o})):M.jsx("a",Object.assign({ref:t},i,{onKeyDown:n}))});gr.displayName="Anchor";const Li=A.forwardRef(({bsPrefix:e,className:t,role:n="toolbar",...i},s)=>{const o=qt(e,"btn-toolbar");return M.jsx("div",{...i,ref:s,className:Kt(t,o),role:n})});Li.displayName="ButtonToolbar";function _l(e,t,n){const i=A.useRef(e!==void 0),[s,o]=A.useState(t),r=e!==void 0,a=i.current;return i.current=r,!r&&a&&s!==t&&o(t),[r?e:s,A.useCallback((...l)=>{const[c,...h]=l;let u=n==null?void 0:n(c,...h);return o(c),u},[n])]}function wl(){const[,e]=A.useReducer(t=>t+1,0);return e}const Xn=A.createContext(null);var _s=Object.prototype.hasOwnProperty;function ws(e,t,n){for(n of e.keys())if(We(n,t))return n}function We(e,t){var n,i,s;if(e===t)return!0;if(e&&t&&(n=e.constructor)===t.constructor){if(n===Date)return e.getTime()===t.getTime();if(n===RegExp)return e.toString()===t.toString();if(n===Array){if((i=e.length)===t.length)for(;i--&&We(e[i],t[i]););return i===-1}if(n===Set){if(e.size!==t.size)return!1;for(i of e)if(s=i,s&&typeof s=="object"&&(s=ws(t,s),!s)||!t.has(s))return!1;return!0}if(n===Map){if(e.size!==t.size)return!1;for(i of e)if(s=i[0],s&&typeof s=="object"&&(s=ws(t,s),!s)||!We(i[1],t.get(s)))return!1;return!0}if(n===ArrayBuffer)e=new Uint8Array(e),t=new Uint8Array(t);else if(n===DataView){if((i=e.byteLength)===t.byteLength)for(;i--&&e.getInt8(i)===t.getInt8(i););return i===-1}if(ArrayBuffer.isView(e)){if((i=e.byteLength)===t.byteLength)for(;i--&&e[i]===t[i];);return i===-1}if(!n||typeof e=="object"){i=0;for(n in e)if(_s.call(e,n)&&++i&&!_s.call(t,n)||!(n in t)||!We(e[n],t[n]))return!1;return Object.keys(t).length===i}}return e!==e&&t!==t}function Sl(e){const t=Xa();return[e[0],A.useCallback(n=>{if(t())return e[1](n)},[t,e[1]])]}var ut="top",xt="bottom",yt="right",dt="left",Fi="auto",an=[ut,xt,yt,dt],ke="start",Ge="end",kl="clippingParents",mr="viewport",Le="popper",Ml="reference",Ss=an.reduce(function(e,t){return e.concat([t+"-"+ke,t+"-"+Ge])},[]),br=[].concat(an,[Fi]).reduce(function(e,t){return e.concat([t,t+"-"+ke,t+"-"+Ge])},[]),Cl="beforeRead",Pl="read",Ol="afterRead",Dl="beforeMain",Al="main",El="afterMain",Tl="beforeWrite",Rl="write",Ll="afterWrite",Fl=[Cl,Pl,Ol,Dl,Al,El,Tl,Rl,Ll];function Pt(e){return e.split("-")[0]}function gt(e){if(e==null)return window;if(e.toString()!=="[object Window]"){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function de(e){var t=gt(e).Element;return e instanceof t||e instanceof Element}function Ot(e){var t=gt(e).HTMLElement;return e instanceof t||e instanceof HTMLElement}function Ii(e){if(typeof ShadowRoot>"u")return!1;var t=gt(e).ShadowRoot;return e instanceof t||e instanceof ShadowRoot}var ce=Math.max,Fn=Math.min,Me=Math.round;function _i(){var e=navigator.userAgentData;return e!=null&&e.brands&&Array.isArray(e.brands)?e.brands.map(function(t){return t.brand+"/"+t.version}).join(" "):navigator.userAgent}function xr(){return!/^((?!chrome|android).)*safari/i.test(_i())}function Ce(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!1);var i=e.getBoundingClientRect(),s=1,o=1;t&&Ot(e)&&(s=e.offsetWidth>0&&Me(i.width)/e.offsetWidth||1,o=e.offsetHeight>0&&Me(i.height)/e.offsetHeight||1);var r=de(e)?gt(e):window,a=r.visualViewport,l=!xr()&&n,c=(i.left+(l&&a?a.offsetLeft:0))/s,h=(i.top+(l&&a?a.offsetTop:0))/o,u=i.width/s,d=i.height/o;return{width:u,height:d,top:h,right:c+u,bottom:h+d,left:c,x:c,y:h}}function ji(e){var t=Ce(e),n=e.offsetWidth,i=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-i)<=1&&(i=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:i}}function yr(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&Ii(n)){var i=t;do{if(i&&e.isSameNode(i))return!0;i=i.parentNode||i.host}while(i)}return!1}function Ut(e){return e?(e.nodeName||"").toLowerCase():null}function It(e){return gt(e).getComputedStyle(e)}function Il(e){return["table","td","th"].indexOf(Ut(e))>=0}function Gt(e){return((de(e)?e.ownerDocument:e.document)||window.document).documentElement}function qn(e){return Ut(e)==="html"?e:e.assignedSlot||e.parentNode||(Ii(e)?e.host:null)||Gt(e)}function ks(e){return!Ot(e)||It(e).position==="fixed"?null:e.offsetParent}function jl(e){var t=/firefox/i.test(_i()),n=/Trident/i.test(_i());if(n&&Ot(e)){var i=It(e);if(i.position==="fixed")return null}var s=qn(e);for(Ii(s)&&(s=s.host);Ot(s)&&["html","body"].indexOf(Ut(s))<0;){var o=It(s);if(o.transform!=="none"||o.perspective!=="none"||o.contain==="paint"||["transform","perspective"].indexOf(o.willChange)!==-1||t&&o.willChange==="filter"||t&&o.filter&&o.filter!=="none")return s;s=s.parentNode}return null}function ln(e){for(var t=gt(e),n=ks(e);n&&Il(n)&&It(n).position==="static";)n=ks(n);return n&&(Ut(n)==="html"||Ut(n)==="body"&&It(n).position==="static")?t:n||jl(e)||t}function $i(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function Ve(e,t,n){return ce(e,Fn(t,n))}function $l(e,t,n){var i=Ve(e,t,n);return i>n?n:i}function vr(){return{top:0,right:0,bottom:0,left:0}}function _r(e){return Object.assign({},vr(),e)}function wr(e,t){return t.reduce(function(n,i){return n[i]=e,n},{})}var zl=function(t,n){return t=typeof t=="function"?t(Object.assign({},n.rects,{placement:n.placement})):t,_r(typeof t!="number"?t:wr(t,an))};function Nl(e){var t,n=e.state,i=e.name,s=e.options,o=n.elements.arrow,r=n.modifiersData.popperOffsets,a=Pt(n.placement),l=$i(a),c=[dt,yt].indexOf(a)>=0,h=c?"height":"width";if(!(!o||!r)){var u=zl(s.padding,n),d=ji(o),f=l==="y"?ut:dt,g=l==="y"?xt:yt,m=n.rects.reference[h]+n.rects.reference[l]-r[l]-n.rects.popper[h],p=r[l]-n.rects.reference[l],b=ln(o),x=b?l==="y"?b.clientHeight||0:b.clientWidth||0:0,v=m/2-p/2,_=u[f],y=x-d[h]-u[g],w=x/2-d[h]/2+v,k=Ve(_,w,y),S=l;n.modifiersData[i]=(t={},t[S]=k,t.centerOffset=k-w,t)}}function Bl(e){var t=e.state,n=e.options,i=n.element,s=i===void 0?"[data-popper-arrow]":i;s!=null&&(typeof s=="string"&&(s=t.elements.popper.querySelector(s),!s)||yr(t.elements.popper,s)&&(t.elements.arrow=s))}const Hl={name:"arrow",enabled:!0,phase:"main",fn:Nl,effect:Bl,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Pe(e){return e.split("-")[1]}var Wl={top:"auto",right:"auto",bottom:"auto",left:"auto"};function Vl(e,t){var n=e.x,i=e.y,s=t.devicePixelRatio||1;return{x:Me(n*s)/s||0,y:Me(i*s)/s||0}}function Ms(e){var t,n=e.popper,i=e.popperRect,s=e.placement,o=e.variation,r=e.offsets,a=e.position,l=e.gpuAcceleration,c=e.adaptive,h=e.roundOffsets,u=e.isFixed,d=r.x,f=d===void 0?0:d,g=r.y,m=g===void 0?0:g,p=typeof h=="function"?h({x:f,y:m}):{x:f,y:m};f=p.x,m=p.y;var b=r.hasOwnProperty("x"),x=r.hasOwnProperty("y"),v=dt,_=ut,y=window;if(c){var w=ln(n),k="clientHeight",S="clientWidth";if(w===gt(n)&&(w=Gt(n),It(w).position!=="static"&&a==="absolute"&&(k="scrollHeight",S="scrollWidth")),w=w,s===ut||(s===dt||s===yt)&&o===Ge){_=xt;var C=u&&w===y&&y.visualViewport?y.visualViewport.height:w[k];m-=C-i.height,m*=l?1:-1}if(s===dt||(s===ut||s===xt)&&o===Ge){v=yt;var D=u&&w===y&&y.visualViewport?y.visualViewport.width:w[S];f-=D-i.width,f*=l?1:-1}}var P=Object.assign({position:a},c&&Wl),O=h===!0?Vl({x:f,y:m},gt(n)):{x:f,y:m};if(f=O.x,m=O.y,l){var E;return Object.assign({},P,(E={},E[_]=x?"0":"",E[v]=b?"0":"",E.transform=(y.devicePixelRatio||1)<=1?"translate("+f+"px, "+m+"px)":"translate3d("+f+"px, "+m+"px, 0)",E))}return Object.assign({},P,(t={},t[_]=x?m+"px":"",t[v]=b?f+"px":"",t.transform="",t))}function Yl(e){var t=e.state,n=e.options,i=n.gpuAcceleration,s=i===void 0?!0:i,o=n.adaptive,r=o===void 0?!0:o,a=n.roundOffsets,l=a===void 0?!0:a,c={placement:Pt(t.placement),variation:Pe(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:s,isFixed:t.options.strategy==="fixed"};t.modifiersData.popperOffsets!=null&&(t.styles.popper=Object.assign({},t.styles.popper,Ms(Object.assign({},c,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:r,roundOffsets:l})))),t.modifiersData.arrow!=null&&(t.styles.arrow=Object.assign({},t.styles.arrow,Ms(Object.assign({},c,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}const Ul={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:Yl,data:{}};var pn={passive:!0};function Xl(e){var t=e.state,n=e.instance,i=e.options,s=i.scroll,o=s===void 0?!0:s,r=i.resize,a=r===void 0?!0:r,l=gt(t.elements.popper),c=[].concat(t.scrollParents.reference,t.scrollParents.popper);return o&&c.forEach(function(h){h.addEventListener("scroll",n.update,pn)}),a&&l.addEventListener("resize",n.update,pn),function(){o&&c.forEach(function(h){h.removeEventListener("scroll",n.update,pn)}),a&&l.removeEventListener("resize",n.update,pn)}}const ql={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:Xl,data:{}};var Kl={left:"right",right:"left",bottom:"top",top:"bottom"};function Tn(e){return e.replace(/left|right|bottom|top/g,function(t){return Kl[t]})}var Gl={start:"end",end:"start"};function Cs(e){return e.replace(/start|end/g,function(t){return Gl[t]})}function zi(e){var t=gt(e),n=t.pageXOffset,i=t.pageYOffset;return{scrollLeft:n,scrollTop:i}}function Ni(e){return Ce(Gt(e)).left+zi(e).scrollLeft}function Jl(e,t){var n=gt(e),i=Gt(e),s=n.visualViewport,o=i.clientWidth,r=i.clientHeight,a=0,l=0;if(s){o=s.width,r=s.height;var c=xr();(c||!c&&t==="fixed")&&(a=s.offsetLeft,l=s.offsetTop)}return{width:o,height:r,x:a+Ni(e),y:l}}function Zl(e){var t,n=Gt(e),i=zi(e),s=(t=e.ownerDocument)==null?void 0:t.body,o=ce(n.scrollWidth,n.clientWidth,s?s.scrollWidth:0,s?s.clientWidth:0),r=ce(n.scrollHeight,n.clientHeight,s?s.scrollHeight:0,s?s.clientHeight:0),a=-i.scrollLeft+Ni(e),l=-i.scrollTop;return It(s||n).direction==="rtl"&&(a+=ce(n.clientWidth,s?s.clientWidth:0)-o),{width:o,height:r,x:a,y:l}}function Bi(e){var t=It(e),n=t.overflow,i=t.overflowX,s=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+s+i)}function Sr(e){return["html","body","#document"].indexOf(Ut(e))>=0?e.ownerDocument.body:Ot(e)&&Bi(e)?e:Sr(qn(e))}function Ye(e,t){var n;t===void 0&&(t=[]);var i=Sr(e),s=i===((n=e.ownerDocument)==null?void 0:n.body),o=gt(i),r=s?[o].concat(o.visualViewport||[],Bi(i)?i:[]):i,a=t.concat(r);return s?a:a.concat(Ye(qn(r)))}function wi(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function Ql(e,t){var n=Ce(e,!1,t==="fixed");return n.top=n.top+e.clientTop,n.left=n.left+e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}function Ps(e,t,n){return t===mr?wi(Jl(e,n)):de(t)?Ql(t,n):wi(Zl(Gt(e)))}function tc(e){var t=Ye(qn(e)),n=["absolute","fixed"].indexOf(It(e).position)>=0,i=n&&Ot(e)?ln(e):e;return de(i)?t.filter(function(s){return de(s)&&yr(s,i)&&Ut(s)!=="body"}):[]}function ec(e,t,n,i){var s=t==="clippingParents"?tc(e):[].concat(t),o=[].concat(s,[n]),r=o[0],a=o.reduce(function(l,c){var h=Ps(e,c,i);return l.top=ce(h.top,l.top),l.right=Fn(h.right,l.right),l.bottom=Fn(h.bottom,l.bottom),l.left=ce(h.left,l.left),l},Ps(e,r,i));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}function kr(e){var t=e.reference,n=e.element,i=e.placement,s=i?Pt(i):null,o=i?Pe(i):null,r=t.x+t.width/2-n.width/2,a=t.y+t.height/2-n.height/2,l;switch(s){case ut:l={x:r,y:t.y-n.height};break;case xt:l={x:r,y:t.y+t.height};break;case yt:l={x:t.x+t.width,y:a};break;case dt:l={x:t.x-n.width,y:a};break;default:l={x:t.x,y:t.y}}var c=s?$i(s):null;if(c!=null){var h=c==="y"?"height":"width";switch(o){case ke:l[c]=l[c]-(t[h]/2-n[h]/2);break;case Ge:l[c]=l[c]+(t[h]/2-n[h]/2);break}}return l}function Je(e,t){t===void 0&&(t={});var n=t,i=n.placement,s=i===void 0?e.placement:i,o=n.strategy,r=o===void 0?e.strategy:o,a=n.boundary,l=a===void 0?kl:a,c=n.rootBoundary,h=c===void 0?mr:c,u=n.elementContext,d=u===void 0?Le:u,f=n.altBoundary,g=f===void 0?!1:f,m=n.padding,p=m===void 0?0:m,b=_r(typeof p!="number"?p:wr(p,an)),x=d===Le?Ml:Le,v=e.rects.popper,_=e.elements[g?x:d],y=ec(de(_)?_:_.contextElement||Gt(e.elements.popper),l,h,r),w=Ce(e.elements.reference),k=kr({reference:w,element:v,strategy:"absolute",placement:s}),S=wi(Object.assign({},v,k)),C=d===Le?S:w,D={top:y.top-C.top+b.top,bottom:C.bottom-y.bottom+b.bottom,left:y.left-C.left+b.left,right:C.right-y.right+b.right},P=e.modifiersData.offset;if(d===Le&&P){var O=P[s];Object.keys(D).forEach(function(E){var I=[yt,xt].indexOf(E)>=0?1:-1,T=[ut,xt].indexOf(E)>=0?"y":"x";D[E]+=O[T]*I})}return D}function nc(e,t){t===void 0&&(t={});var n=t,i=n.placement,s=n.boundary,o=n.rootBoundary,r=n.padding,a=n.flipVariations,l=n.allowedAutoPlacements,c=l===void 0?br:l,h=Pe(i),u=h?a?Ss:Ss.filter(function(g){return Pe(g)===h}):an,d=u.filter(function(g){return c.indexOf(g)>=0});d.length===0&&(d=u);var f=d.reduce(function(g,m){return g[m]=Je(e,{placement:m,boundary:s,rootBoundary:o,padding:r})[Pt(m)],g},{});return Object.keys(f).sort(function(g,m){return f[g]-f[m]})}function ic(e){if(Pt(e)===Fi)return[];var t=Tn(e);return[Cs(e),t,Cs(t)]}function sc(e){var t=e.state,n=e.options,i=e.name;if(!t.modifiersData[i]._skip){for(var s=n.mainAxis,o=s===void 0?!0:s,r=n.altAxis,a=r===void 0?!0:r,l=n.fallbackPlacements,c=n.padding,h=n.boundary,u=n.rootBoundary,d=n.altBoundary,f=n.flipVariations,g=f===void 0?!0:f,m=n.allowedAutoPlacements,p=t.options.placement,b=Pt(p),x=b===p,v=l||(x||!g?[Tn(p)]:ic(p)),_=[p].concat(v).reduce(function(U,X){return U.concat(Pt(X)===Fi?nc(t,{placement:X,boundary:h,rootBoundary:u,padding:c,flipVariations:g,allowedAutoPlacements:m}):X)},[]),y=t.rects.reference,w=t.rects.popper,k=new Map,S=!0,C=_[0],D=0;D<_.length;D++){var P=_[D],O=Pt(P),E=Pe(P)===ke,I=[ut,xt].indexOf(O)>=0,T=I?"width":"height",L=Je(t,{placement:P,boundary:h,rootBoundary:u,altBoundary:d,padding:c}),F=I?E?yt:dt:E?xt:ut;y[T]>w[T]&&(F=Tn(F));var H=Tn(F),$=[];if(o&&$.push(L[O]<=0),a&&$.push(L[F]<=0,L[H]<=0),$.every(function(U){return U})){C=P,S=!1;break}k.set(P,$)}if(S)for(var N=g?3:1,tt=function(X){var K=_.find(function(At){var W=k.get(At);if(W)return W.slice(0,X).every(function(et){return et})});if(K)return C=K,"break"},Q=N;Q>0;Q--){var nt=tt(Q);if(nt==="break")break}t.placement!==C&&(t.modifiersData[i]._skip=!0,t.placement=C,t.reset=!0)}}const oc={name:"flip",enabled:!0,phase:"main",fn:sc,requiresIfExists:["offset"],data:{_skip:!1}};function Os(e,t,n){return n===void 0&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function Ds(e){return[ut,yt,xt,dt].some(function(t){return e[t]>=0})}function rc(e){var t=e.state,n=e.name,i=t.rects.reference,s=t.rects.popper,o=t.modifiersData.preventOverflow,r=Je(t,{elementContext:"reference"}),a=Je(t,{altBoundary:!0}),l=Os(r,i),c=Os(a,s,o),h=Ds(l),u=Ds(c);t.modifiersData[n]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:h,hasPopperEscaped:u},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":h,"data-popper-escaped":u})}const ac={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:rc};function lc(e,t,n){var i=Pt(e),s=[dt,ut].indexOf(i)>=0?-1:1,o=typeof n=="function"?n(Object.assign({},t,{placement:e})):n,r=o[0],a=o[1];return r=r||0,a=(a||0)*s,[dt,yt].indexOf(i)>=0?{x:a,y:r}:{x:r,y:a}}function cc(e){var t=e.state,n=e.options,i=e.name,s=n.offset,o=s===void 0?[0,0]:s,r=br.reduce(function(h,u){return h[u]=lc(u,t.rects,o),h},{}),a=r[t.placement],l=a.x,c=a.y;t.modifiersData.popperOffsets!=null&&(t.modifiersData.popperOffsets.x+=l,t.modifiersData.popperOffsets.y+=c),t.modifiersData[i]=r}const hc={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:cc};function uc(e){var t=e.state,n=e.name;t.modifiersData[n]=kr({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})}const dc={name:"popperOffsets",enabled:!0,phase:"read",fn:uc,data:{}};function fc(e){return e==="x"?"y":"x"}function pc(e){var t=e.state,n=e.options,i=e.name,s=n.mainAxis,o=s===void 0?!0:s,r=n.altAxis,a=r===void 0?!1:r,l=n.boundary,c=n.rootBoundary,h=n.altBoundary,u=n.padding,d=n.tether,f=d===void 0?!0:d,g=n.tetherOffset,m=g===void 0?0:g,p=Je(t,{boundary:l,rootBoundary:c,padding:u,altBoundary:h}),b=Pt(t.placement),x=Pe(t.placement),v=!x,_=$i(b),y=fc(_),w=t.modifiersData.popperOffsets,k=t.rects.reference,S=t.rects.popper,C=typeof m=="function"?m(Object.assign({},t.rects,{placement:t.placement})):m,D=typeof C=="number"?{mainAxis:C,altAxis:C}:Object.assign({mainAxis:0,altAxis:0},C),P=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,O={x:0,y:0};if(w){if(o){var E,I=_==="y"?ut:dt,T=_==="y"?xt:yt,L=_==="y"?"height":"width",F=w[_],H=F+p[I],$=F-p[T],N=f?-S[L]/2:0,tt=x===ke?k[L]:S[L],Q=x===ke?-S[L]:-k[L],nt=t.elements.arrow,U=f&&nt?ji(nt):{width:0,height:0},X=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:vr(),K=X[I],At=X[T],W=Ve(0,k[L],U[L]),et=v?k[L]/2-N-W-K-D.mainAxis:tt-W-K-D.mainAxis,Re=v?-k[L]/2+N+W+At+D.mainAxis:Q+W+At+D.mainAxis,$t=t.elements.arrow&&ln(t.elements.arrow),Jt=$t?_==="y"?$t.clientTop||0:$t.clientLeft||0:0,Zt=(E=P==null?void 0:P[_])!=null?E:0,lt=F+et-Zt-Jt,Ba=F+Re-Zt,hs=Ve(f?Fn(H,lt):H,F,f?ce($,Ba):$);w[_]=hs,O[_]=hs-F}if(a){var us,Ha=_==="x"?ut:dt,Wa=_==="x"?xt:yt,Qt=w[y],dn=y==="y"?"height":"width",ds=Qt+p[Ha],fs=Qt-p[Wa],Zn=[ut,dt].indexOf(b)!==-1,ps=(us=P==null?void 0:P[y])!=null?us:0,gs=Zn?ds:Qt-k[dn]-S[dn]-ps+D.altAxis,ms=Zn?Qt+k[dn]+S[dn]-ps-D.altAxis:fs,bs=f&&Zn?$l(gs,Qt,ms):Ve(f?gs:ds,Qt,f?ms:fs);w[y]=bs,O[y]=bs-Qt}t.modifiersData[i]=O}}const gc={name:"preventOverflow",enabled:!0,phase:"main",fn:pc,requiresIfExists:["offset"]};function mc(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function bc(e){return e===gt(e)||!Ot(e)?zi(e):mc(e)}function xc(e){var t=e.getBoundingClientRect(),n=Me(t.width)/e.offsetWidth||1,i=Me(t.height)/e.offsetHeight||1;return n!==1||i!==1}function yc(e,t,n){n===void 0&&(n=!1);var i=Ot(t),s=Ot(t)&&xc(t),o=Gt(t),r=Ce(e,s,n),a={scrollLeft:0,scrollTop:0},l={x:0,y:0};return(i||!i&&!n)&&((Ut(t)!=="body"||Bi(o))&&(a=bc(t)),Ot(t)?(l=Ce(t,!0),l.x+=t.clientLeft,l.y+=t.clientTop):o&&(l.x=Ni(o))),{x:r.left+a.scrollLeft-l.x,y:r.top+a.scrollTop-l.y,width:r.width,height:r.height}}function vc(e){var t=new Map,n=new Set,i=[];e.forEach(function(o){t.set(o.name,o)});function s(o){n.add(o.name);var r=[].concat(o.requires||[],o.requiresIfExists||[]);r.forEach(function(a){if(!n.has(a)){var l=t.get(a);l&&s(l)}}),i.push(o)}return e.forEach(function(o){n.has(o.name)||s(o)}),i}function _c(e){var t=vc(e);return Fl.reduce(function(n,i){return n.concat(t.filter(function(s){return s.phase===i}))},[])}function wc(e){var t;return function(){return t||(t=new Promise(function(n){Promise.resolve().then(function(){t=void 0,n(e())})})),t}}function Sc(e){var t=e.reduce(function(n,i){var s=n[i.name];return n[i.name]=s?Object.assign({},s,i,{options:Object.assign({},s.options,i.options),data:Object.assign({},s.data,i.data)}):i,n},{});return Object.keys(t).map(function(n){return t[n]})}var As={placement:"bottom",modifiers:[],strategy:"absolute"};function Es(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return!t.some(function(i){return!(i&&typeof i.getBoundingClientRect=="function")})}function kc(e){e===void 0&&(e={});var t=e,n=t.defaultModifiers,i=n===void 0?[]:n,s=t.defaultOptions,o=s===void 0?As:s;return function(a,l,c){c===void 0&&(c=o);var h={placement:"bottom",orderedModifiers:[],options:Object.assign({},As,o),modifiersData:{},elements:{reference:a,popper:l},attributes:{},styles:{}},u=[],d=!1,f={state:h,setOptions:function(b){var x=typeof b=="function"?b(h.options):b;m(),h.options=Object.assign({},o,h.options,x),h.scrollParents={reference:de(a)?Ye(a):a.contextElement?Ye(a.contextElement):[],popper:Ye(l)};var v=_c(Sc([].concat(i,h.options.modifiers)));return h.orderedModifiers=v.filter(function(_){return _.enabled}),g(),f.update()},forceUpdate:function(){if(!d){var b=h.elements,x=b.reference,v=b.popper;if(Es(x,v)){h.rects={reference:yc(x,ln(v),h.options.strategy==="fixed"),popper:ji(v)},h.reset=!1,h.placement=h.options.placement,h.orderedModifiers.forEach(function(D){return h.modifiersData[D.name]=Object.assign({},D.data)});for(var _=0;_<h.orderedModifiers.length;_++){if(h.reset===!0){h.reset=!1,_=-1;continue}var y=h.orderedModifiers[_],w=y.fn,k=y.options,S=k===void 0?{}:k,C=y.name;typeof w=="function"&&(h=w({state:h,options:S,name:C,instance:f})||h)}}}},update:wc(function(){return new Promise(function(p){f.forceUpdate(),p(h)})}),destroy:function(){m(),d=!0}};if(!Es(a,l))return f;f.setOptions(c).then(function(p){!d&&c.onFirstUpdate&&c.onFirstUpdate(p)});function g(){h.orderedModifiers.forEach(function(p){var b=p.name,x=p.options,v=x===void 0?{}:x,_=p.effect;if(typeof _=="function"){var y=_({state:h,name:b,instance:f,options:v}),w=function(){};u.push(y||w)}})}function m(){u.forEach(function(p){return p()}),u=[]}return f}}const Mc=kc({defaultModifiers:[ac,dc,Ul,ql,hc,oc,gc,Hl]}),Cc=["enabled","placement","strategy","modifiers"];function Pc(e,t){if(e==null)return{};var n={};for(var i in e)if({}.hasOwnProperty.call(e,i)){if(t.indexOf(i)>=0)continue;n[i]=e[i]}return n}const Oc={name:"applyStyles",enabled:!1,phase:"afterWrite",fn:()=>{}},Dc={name:"ariaDescribedBy",enabled:!0,phase:"afterWrite",effect:({state:e})=>()=>{const{reference:t,popper:n}=e.elements;if("removeAttribute"in t){const i=(t.getAttribute("aria-describedby")||"").split(",").filter(s=>s.trim()!==n.id);i.length?t.setAttribute("aria-describedby",i.join(",")):t.removeAttribute("aria-describedby")}},fn:({state:e})=>{var t;const{popper:n,reference:i}=e.elements,s=(t=n.getAttribute("role"))==null?void 0:t.toLowerCase();if(n.id&&s==="tooltip"&&"setAttribute"in i){const o=i.getAttribute("aria-describedby");if(o&&o.split(",").indexOf(n.id)!==-1)return;i.setAttribute("aria-describedby",o?`${o},${n.id}`:n.id)}}},Ac=[];function Ec(e,t,n={}){let{enabled:i=!0,placement:s="bottom",strategy:o="absolute",modifiers:r=Ac}=n,a=Pc(n,Cc);const l=A.useRef(r),c=A.useRef(),h=A.useCallback(()=>{var p;(p=c.current)==null||p.update()},[]),u=A.useCallback(()=>{var p;(p=c.current)==null||p.forceUpdate()},[]),[d,f]=Sl(A.useState({placement:s,update:h,forceUpdate:u,attributes:{},styles:{popper:{},arrow:{}}})),g=A.useMemo(()=>({name:"updateStateModifier",enabled:!0,phase:"write",requires:["computeStyles"],fn:({state:p})=>{const b={},x={};Object.keys(p.elements).forEach(v=>{b[v]=p.styles[v],x[v]=p.attributes[v]}),f({state:p,styles:b,attributes:x,update:h,forceUpdate:u,placement:p.placement})}}),[h,u,f]),m=A.useMemo(()=>(We(l.current,r)||(l.current=r),l.current),[r]);return A.useEffect(()=>{!c.current||!i||c.current.setOptions({placement:s,strategy:o,modifiers:[...m,g,Oc]})},[o,s,g,i,m]),A.useEffect(()=>{if(!(!i||e==null||t==null))return c.current=Mc(e,t,Object.assign({},a,{placement:s,strategy:o,modifiers:[...m,Dc,g]})),()=>{c.current!=null&&(c.current.destroy(),c.current=void 0,f(p=>Object.assign({},p,{attributes:{},styles:{popper:{}}})))}},[i,e,t]),d}const Ts=()=>{};function Tc(e){return e.button===0}function Rc(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}const ei=e=>e&&("current"in e?e.current:e),Rs={click:"mousedown",mouseup:"mousedown",pointerup:"pointerdown"};function Lc(e,t=Ts,{disabled:n,clickTrigger:i="click"}={}){const s=A.useRef(!1),o=A.useRef(!1),r=A.useCallback(c=>{const h=ei(e);qa(!!h,"ClickOutside captured a close event but does not have a ref to compare it to. useClickOutside(), should be passed a ref that resolves to a DOM node"),s.current=!h||Rc(c)||!Tc(c)||!!xs(h,c.target)||o.current,o.current=!1},[e]),a=Wt(c=>{const h=ei(e);h&&xs(h,c.target)?o.current=!0:o.current=!1}),l=Wt(c=>{s.current||t(c)});A.useEffect(()=>{var c,h;if(n||e==null)return;const u=Ka(ei(e)),d=u.defaultView||window;let f=(c=d.event)!=null?c:(h=d.parent)==null?void 0:h.event,g=null;Rs[i]&&(g=fn(u,Rs[i],a,!0));const m=fn(u,i,r,!0),p=fn(u,i,x=>{if(x===f){f=void 0;return}l(x)});let b=[];return"ontouchstart"in u.documentElement&&(b=[].slice.call(u.body.children).map(x=>fn(x,"mousemove",Ts))),()=>{g==null||g(),m(),p(),b.forEach(x=>x())}},[e,n,i,r,a,l])}function Fc(e){const t={};return Array.isArray(e)?(e==null||e.forEach(n=>{t[n.name]=n}),t):e||t}function Ic(e={}){return Array.isArray(e)?e:Object.keys(e).map(t=>(e[t].name=t,e[t]))}function jc({enabled:e,enableEvents:t,placement:n,flip:i,offset:s,fixed:o,containerPadding:r,arrowElement:a,popperConfig:l={}}){var c,h,u,d,f;const g=Fc(l.modifiers);return Object.assign({},l,{placement:n,enabled:e,strategy:o?"fixed":l.strategy,modifiers:Ic(Object.assign({},g,{eventListeners:{enabled:t,options:(c=g.eventListeners)==null?void 0:c.options},preventOverflow:Object.assign({},g.preventOverflow,{options:r?Object.assign({padding:r},(h=g.preventOverflow)==null?void 0:h.options):(u=g.preventOverflow)==null?void 0:u.options}),offset:{options:Object.assign({offset:s},(d=g.offset)==null?void 0:d.options)},arrow:Object.assign({},g.arrow,{enabled:!!a,options:Object.assign({},(f=g.arrow)==null?void 0:f.options,{element:a})}),flip:Object.assign({enabled:!!i},g.flip)}))})}const $c=["children","usePopper"];function zc(e,t){if(e==null)return{};var n={};for(var i in e)if({}.hasOwnProperty.call(e,i)){if(t.indexOf(i)>=0)continue;n[i]=e[i]}return n}const Nc=()=>{};function Mr(e={}){const t=A.useContext(Xn),[n,i]=ml(),s=A.useRef(!1),{flip:o,offset:r,rootCloseEvent:a,fixed:l=!1,placement:c,popperConfig:h={},enableEventListeners:u=!0,usePopper:d=!!t}=e,f=(t==null?void 0:t.show)==null?!!e.show:t.show;f&&!s.current&&(s.current=!0);const g=w=>{t==null||t.toggle(!1,w)},{placement:m,setMenu:p,menuElement:b,toggleElement:x}=t||{},v=Ec(x,b,jc({placement:c||m||"bottom-start",enabled:d,enableEvents:u??f,offset:r,flip:o,fixed:l,arrowElement:n,popperConfig:h})),_=Object.assign({ref:p||Nc,"aria-labelledby":x==null?void 0:x.id},v.attributes.popper,{style:v.styles.popper}),y={show:f,placement:m,hasShown:s.current,toggle:t==null?void 0:t.toggle,popper:d?v:null,arrowProps:d?Object.assign({ref:i},v.attributes.arrow,{style:v.styles.arrow}):{}};return Lc(b,g,{clickTrigger:a,disabled:!f}),[_,y]}function Cr(e){let{children:t,usePopper:n=!0}=e,i=zc(e,$c);const[s,o]=Mr(Object.assign({},i,{usePopper:n}));return M.jsx(M.Fragment,{children:t(s,o)})}Cr.displayName="DropdownMenu";const Hi={prefix:String(Math.round(Math.random()*1e10)),current:0},Pr=ue.createContext(Hi),Bc=ue.createContext(!1);let Hc=!!(typeof window<"u"&&window.document&&window.document.createElement),ni=new WeakMap;function Wc(e=!1){let t=A.useContext(Pr),n=A.useRef(null);if(n.current===null&&!e){var i,s;let o=(s=ue.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED)===null||s===void 0||(i=s.ReactCurrentOwner)===null||i===void 0?void 0:i.current;if(o){let r=ni.get(o);r==null?ni.set(o,{id:t.current,state:o.memoizedState}):o.memoizedState!==r.state&&(t.current=r.id,ni.delete(o))}n.current=++t.current}return n.current}function Vc(e){let t=A.useContext(Pr);t===Hi&&!Hc&&console.warn("When server rendering, you must wrap your application in an <SSRProvider> to ensure consistent ids are generated between the client and server.");let n=Wc(!!e),i=`react-aria${t.prefix}`;return e||`${i}-${n}`}function Yc(e){let t=ue.useId(),[n]=A.useState(Gc()),i=n?"react-aria":`react-aria${Hi.prefix}`;return e||`${i}-${t}`}const Uc=typeof ue.useId=="function"?Yc:Vc;function Xc(){return!1}function qc(){return!0}function Kc(e){return()=>{}}function Gc(){return typeof ue.useSyncExternalStore=="function"?ue.useSyncExternalStore(Kc,Xc,qc):A.useContext(Bc)}const Or=e=>{var t;return((t=e.getAttribute("role"))==null?void 0:t.toLowerCase())==="menu"},Ls=()=>{};function Dr(){const e=Uc(),{show:t=!1,toggle:n=Ls,setToggle:i,menuElement:s}=A.useContext(Xn)||{},o=A.useCallback(a=>{n(!t,a)},[t,n]),r={id:e,ref:i||Ls,onClick:o,"aria-expanded":!!t};return s&&Or(s)&&(r["aria-haspopup"]=!0),[r,{show:t,toggle:n}]}function Ar({children:e}){const[t,n]=Dr();return M.jsx(M.Fragment,{children:e(t,n)})}Ar.displayName="DropdownToggle";const Si=A.createContext(null),Fs=(e,t=null)=>e!=null?String(e):t||null,Er=A.createContext(null);Er.displayName="NavContext";const Jc=["eventKey","disabled","onClick","active","as"];function Zc(e,t){if(e==null)return{};var n={};for(var i in e)if({}.hasOwnProperty.call(e,i)){if(t.indexOf(i)>=0)continue;n[i]=e[i]}return n}function Tr({key:e,href:t,active:n,disabled:i,onClick:s}){const o=A.useContext(Si),r=A.useContext(Er),{activeKey:a}=r||{},l=Fs(e,t),c=n==null&&e!=null?Fs(a)===l:n;return[{onClick:Wt(u=>{i||(s==null||s(u),o&&!u.isPropagationStopped()&&o(l,u))}),"aria-disabled":i||void 0,"aria-selected":c,[cr("dropdown-item")]:""},{isActive:c}]}const Rr=A.forwardRef((e,t)=>{let{eventKey:n,disabled:i,onClick:s,active:o,as:r=Ga}=e,a=Zc(e,Jc);const[l]=Tr({key:n,href:a.href,disabled:i,onClick:s,active:o});return M.jsx(r,Object.assign({},a,{ref:t},l))});Rr.displayName="DropdownItem";function Is(){const e=wl(),t=A.useRef(null),n=A.useCallback(i=>{t.current=i,e()},[e]);return[t,n]}function cn({defaultShow:e,show:t,onSelect:n,onToggle:i,itemSelector:s=`* [${cr("dropdown-item")}]`,focusFirstItemOnShow:o,placement:r="bottom-start",children:a}){const l=Ja(),[c,h]=_l(t,e,i),[u,d]=Is(),f=u.current,[g,m]=Is(),p=g.current,b=Za(c),x=A.useRef(null),v=A.useRef(!1),_=A.useContext(Si),y=A.useCallback((P,O,E=O==null?void 0:O.type)=>{h(P,{originalEvent:O,source:E})},[h]),w=Wt((P,O)=>{n==null||n(P,O),y(!1,O,"select"),O.isPropagationStopped()||_==null||_(P,O)}),k=A.useMemo(()=>({toggle:y,placement:r,show:c,menuElement:f,toggleElement:p,setMenu:d,setToggle:m}),[y,r,c,f,p,d,m]);f&&b&&!c&&(v.current=f.contains(f.ownerDocument.activeElement));const S=Wt(()=>{p&&p.focus&&p.focus()}),C=Wt(()=>{const P=x.current;let O=o;if(O==null&&(O=u.current&&Or(u.current)?"keyboard":!1),O===!1||O==="keyboard"&&!/^key.+$/.test(P))return;const E=ys(u.current,s)[0];E&&E.focus&&E.focus()});A.useEffect(()=>{c?C():v.current&&(v.current=!1,S())},[c,v,S,C]),A.useEffect(()=>{x.current=null});const D=(P,O)=>{if(!u.current)return null;const E=ys(u.current,s);let I=E.indexOf(P)+O;return I=Math.max(0,Math.min(I,E.length)),E[I]};return bl(A.useCallback(()=>l.document,[l]),"keydown",P=>{var O,E;const{key:I}=P,T=P.target,L=(O=u.current)==null?void 0:O.contains(T),F=(E=g.current)==null?void 0:E.contains(T);if(/input|textarea/i.test(T.tagName)&&(I===" "||I!=="Escape"&&L||I==="Escape"&&T.type==="search")||!L&&!F||I==="Tab"&&(!u.current||!c))return;x.current=P.type;const $={originalEvent:P,source:P.type};switch(I){case"ArrowUp":{const N=D(T,-1);N&&N.focus&&N.focus(),P.preventDefault();return}case"ArrowDown":if(P.preventDefault(),!c)h(!0,$);else{const N=D(T,1);N&&N.focus&&N.focus()}return;case"Tab":Qa(T.ownerDocument,"keyup",N=>{var tt;(N.key==="Tab"&&!N.target||!((tt=u.current)!=null&&tt.contains(N.target)))&&h(!1,$)},{once:!0});break;case"Escape":I==="Escape"&&(P.preventDefault(),P.stopPropagation()),h(!1,$);break}}),M.jsx(Si.Provider,{value:w,children:M.jsx(Xn.Provider,{value:k,children:a})})}cn.displayName="Dropdown";cn.Menu=Cr;cn.Toggle=Ar;cn.Item=Rr;const Wi=A.createContext({});Wi.displayName="DropdownContext";const Lr=A.forwardRef(({className:e,bsPrefix:t,as:n="hr",role:i="separator",...s},o)=>(t=qt(t,"dropdown-divider"),M.jsx(n,{ref:o,className:Kt(e,t),role:i,...s})));Lr.displayName="DropdownDivider";const Fr=A.forwardRef(({className:e,bsPrefix:t,as:n="div",role:i="heading",...s},o)=>(t=qt(t,"dropdown-header"),M.jsx(n,{ref:o,className:Kt(e,t),role:i,...s})));Fr.displayName="DropdownHeader";const Ir=A.forwardRef(({bsPrefix:e,className:t,eventKey:n,disabled:i=!1,onClick:s,active:o,as:r=gr,...a},l)=>{const c=qt(e,"dropdown-item"),[h,u]=Tr({key:n,href:a.href,disabled:i,onClick:s,active:o});return M.jsx(r,{...a,...h,ref:l,className:Kt(t,c,u.isActive&&"active",i&&"disabled")})});Ir.displayName="DropdownItem";const jr=A.forwardRef(({className:e,bsPrefix:t,as:n="span",...i},s)=>(t=qt(t,"dropdown-item-text"),M.jsx(n,{ref:s,className:Kt(e,t),...i})));jr.displayName="DropdownItemText";const Qc=typeof global<"u"&&global.navigator&&global.navigator.product==="ReactNative",th=typeof document<"u",eh=th||Qc?A.useLayoutEffect:A.useEffect,$r=A.createContext(null);$r.displayName="NavbarContext";function zr(e,t){return e}function Nr(e,t,n){const i=n?"top-end":"top-start",s=n?"top-start":"top-end",o=n?"bottom-end":"bottom-start",r=n?"bottom-start":"bottom-end",a=n?"right-start":"left-start",l=n?"right-end":"left-end",c=n?"left-start":"right-start",h=n?"left-end":"right-end";let u=e?r:o;return t==="up"?u=e?s:i:t==="end"?u=e?h:c:t==="start"?u=e?l:a:t==="down-centered"?u="bottom":t==="up-centered"&&(u="top"),u}const Br=A.forwardRef(({bsPrefix:e,className:t,align:n,rootCloseEvent:i,flip:s=!0,show:o,renderOnMount:r,as:a="div",popperConfig:l,variant:c,...h},u)=>{let d=!1;const f=A.useContext($r),g=qt(e,"dropdown-menu"),{align:m,drop:p,isRTL:b}=A.useContext(Wi);n=n||m;const x=A.useContext(fr),v=[];if(n)if(typeof n=="object"){const P=Object.keys(n);if(P.length){const O=P[0],E=n[O];d=E==="start",v.push(`${g}-${O}-${E}`)}}else n==="end"&&(d=!0);const _=Nr(d,p,b),[y,{hasShown:w,popper:k,show:S,toggle:C}]=Mr({flip:s,rootCloseEvent:i,show:o,usePopper:!f&&v.length===0,offset:[0,2],popperConfig:l,placement:_});if(y.ref=hr(zr(u),y.ref),eh(()=>{S&&(k==null||k.update())},[S]),!w&&!r&&!x)return null;typeof a!="string"&&(y.show=S,y.close=()=>C==null?void 0:C(!1),y.align=n);let D=h.style;return k!=null&&k.placement&&(D={...h.style,...y.style},h["x-placement"]=k.placement),M.jsx(a,{...h,...y,style:D,...(v.length||f)&&{"data-bs-popper":"static"},className:Kt(t,g,S&&"show",d&&`${g}-end`,c&&`${g}-${c}`,...v)})});Br.displayName="DropdownMenu";const Hr=A.forwardRef(({bsPrefix:e,split:t,className:n,childBsPrefix:i,as:s=Ft,...o},r)=>{const a=qt(e,"dropdown-toggle"),l=A.useContext(Xn);i!==void 0&&(o.bsPrefix=i);const[c]=Dr();return c.ref=hr(c.ref,zr(r)),M.jsx(s,{className:Kt(n,a,t&&`${a}-split`,(l==null?void 0:l.show)&&"show"),...c,...o})});Hr.displayName="DropdownToggle";const Wr=A.forwardRef((e,t)=>{const{bsPrefix:n,drop:i="down",show:s,className:o,align:r="start",onSelect:a,onToggle:l,focusFirstItemOnShow:c,as:h="div",navbar:u,autoClose:d=!0,...f}=gl(e,{show:"onToggle"}),g=A.useContext(fr),m=qt(n,"dropdown"),p=tl(),b=k=>d===!1?k==="click":d==="inside"?k!=="rootClose":d==="outside"?k!=="select":!0,x=el((k,S)=>{var C;!((C=S.originalEvent)==null||(C=C.target)==null)&&C.classList.contains("dropdown-toggle")&&S.source==="mousedown"||(S.originalEvent.currentTarget===document&&(S.source!=="keydown"||S.originalEvent.key==="Escape")&&(S.source="rootClose"),b(S.source)&&(l==null||l(k,S)))}),_=Nr(r==="end",i,p),y=A.useMemo(()=>({align:r,drop:i,isRTL:p}),[r,i,p]),w={down:m,"down-centered":`${m}-center`,up:"dropup","up-centered":"dropup-center dropup",end:"dropend",start:"dropstart"};return M.jsx(Wi.Provider,{value:y,children:M.jsx(cn,{placement:_,show:s,onSelect:a,onToggle:x,focusFirstItemOnShow:c,itemSelector:`.${m}-item:not(.disabled):not(:disabled)`,children:g?f.children:M.jsx(h,{...f,ref:t,className:Kt(o,s&&"show",w[i])})})})});Wr.displayName="Dropdown";const ii=Object.assign(Wr,{Toggle:Hr,Menu:Br,Item:Ir,ItemText:jr,Divider:Lr,Header:Fr});/*! * @kurkle/color v0.3.2 * https://github.com/kurkle/color#readme * (c) 2023 Jukka Kurkela * Released under the MIT License - */function hn(e){return e+.5|0}const Nt=(e,t,n)=>Math.max(Math.min(e,n),t);function Ne(e){return Nt(hn(e*2.55),0,255)}function Vt(e){return Nt(hn(e*255),0,255)}function Lt(e){return Nt(hn(e/2.55)/100,0,1)}function Is(e){return Nt(hn(e*100),0,100)}const mt={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15},Si=[..."0123456789ABCDEF"],eh=e=>Si[e&15],nh=e=>Si[(e&240)>>4]+Si[e&15],gn=e=>(e&240)>>4===(e&15),ih=e=>gn(e.r)&&gn(e.g)&&gn(e.b)&&gn(e.a);function sh(e){var t=e.length,n;return e[0]==="#"&&(t===4||t===5?n={r:255&mt[e[1]]*17,g:255&mt[e[2]]*17,b:255&mt[e[3]]*17,a:t===5?mt[e[4]]*17:255}:(t===7||t===9)&&(n={r:mt[e[1]]<<4|mt[e[2]],g:mt[e[3]]<<4|mt[e[4]],b:mt[e[5]]<<4|mt[e[6]],a:t===9?mt[e[7]]<<4|mt[e[8]]:255})),n}const oh=(e,t)=>e<255?t(e):"";function rh(e){var t=ih(e)?eh:nh;return e?"#"+t(e.r)+t(e.g)+t(e.b)+oh(e.a,t):void 0}const ah=/^(hsla?|hwb|hsv)\(\s*([-+.e\d]+)(?:deg)?[\s,]+([-+.e\d]+)%[\s,]+([-+.e\d]+)%(?:[\s,]+([-+.e\d]+)(%)?)?\s*\)$/;function Wr(e,t,n){const i=t*Math.min(n,1-n),s=(o,r=(o+e/30)%12)=>n-i*Math.max(Math.min(r-3,9-r,1),-1);return[s(0),s(8),s(4)]}function lh(e,t,n){const i=(s,o=(s+e/60)%6)=>n-n*t*Math.max(Math.min(o,4-o,1),0);return[i(5),i(3),i(1)]}function ch(e,t,n){const i=Wr(e,1,.5);let s;for(t+n>1&&(s=1/(t+n),t*=s,n*=s),s=0;s<3;s++)i[s]*=1-t-n,i[s]+=t;return i}function hh(e,t,n,i,s){return e===s?(t-n)/i+(t<n?6:0):t===s?(n-e)/i+2:(e-t)/i+4}function Wi(e){const n=e.r/255,i=e.g/255,s=e.b/255,o=Math.max(n,i,s),r=Math.min(n,i,s),a=(o+r)/2;let l,c,h;return o!==r&&(h=o-r,c=a>.5?h/(2-o-r):h/(o+r),l=hh(n,i,s,h,o),l=l*60+.5),[l|0,c||0,a]}function Vi(e,t,n,i){return(Array.isArray(t)?e(t[0],t[1],t[2]):e(t,n,i)).map(Vt)}function Yi(e,t,n){return Vi(Wr,e,t,n)}function uh(e,t,n){return Vi(ch,e,t,n)}function dh(e,t,n){return Vi(lh,e,t,n)}function Vr(e){return(e%360+360)%360}function fh(e){const t=ah.exec(e);let n=255,i;if(!t)return;t[5]!==i&&(n=t[6]?Ne(+t[5]):Vt(+t[5]));const s=Vr(+t[2]),o=+t[3]/100,r=+t[4]/100;return t[1]==="hwb"?i=uh(s,o,r):t[1]==="hsv"?i=dh(s,o,r):i=Yi(s,o,r),{r:i[0],g:i[1],b:i[2],a:n}}function ph(e,t){var n=Wi(e);n[0]=Vr(n[0]+t),n=Yi(n),e.r=n[0],e.g=n[1],e.b=n[2]}function gh(e){if(!e)return;const t=Wi(e),n=t[0],i=Is(t[1]),s=Is(t[2]);return e.a<255?`hsla(${n}, ${i}%, ${s}%, ${Lt(e.a)})`:`hsl(${n}, ${i}%, ${s}%)`}const js={x:"dark",Z:"light",Y:"re",X:"blu",W:"gr",V:"medium",U:"slate",A:"ee",T:"ol",S:"or",B:"ra",C:"lateg",D:"ights",R:"in",Q:"turquois",E:"hi",P:"ro",O:"al",N:"le",M:"de",L:"yello",F:"en",K:"ch",G:"arks",H:"ea",I:"ightg",J:"wh"},$s={OiceXe:"f0f8ff",antiquewEte:"faebd7",aqua:"ffff",aquamarRe:"7fffd4",azuY:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"0",blanKedOmond:"ffebcd",Xe:"ff",XeviTet:"8a2be2",bPwn:"a52a2a",burlywood:"deb887",caMtXe:"5f9ea0",KartYuse:"7fff00",KocTate:"d2691e",cSO:"ff7f50",cSnflowerXe:"6495ed",cSnsilk:"fff8dc",crimson:"dc143c",cyan:"ffff",xXe:"8b",xcyan:"8b8b",xgTMnPd:"b8860b",xWay:"a9a9a9",xgYF:"6400",xgYy:"a9a9a9",xkhaki:"bdb76b",xmagFta:"8b008b",xTivegYF:"556b2f",xSange:"ff8c00",xScEd:"9932cc",xYd:"8b0000",xsOmon:"e9967a",xsHgYF:"8fbc8f",xUXe:"483d8b",xUWay:"2f4f4f",xUgYy:"2f4f4f",xQe:"ced1",xviTet:"9400d3",dAppRk:"ff1493",dApskyXe:"bfff",dimWay:"696969",dimgYy:"696969",dodgerXe:"1e90ff",fiYbrick:"b22222",flSOwEte:"fffaf0",foYstWAn:"228b22",fuKsia:"ff00ff",gaRsbSo:"dcdcdc",ghostwEte:"f8f8ff",gTd:"ffd700",gTMnPd:"daa520",Way:"808080",gYF:"8000",gYFLw:"adff2f",gYy:"808080",honeyMw:"f0fff0",hotpRk:"ff69b4",RdianYd:"cd5c5c",Rdigo:"4b0082",ivSy:"fffff0",khaki:"f0e68c",lavFMr:"e6e6fa",lavFMrXsh:"fff0f5",lawngYF:"7cfc00",NmoncEffon:"fffacd",ZXe:"add8e6",ZcSO:"f08080",Zcyan:"e0ffff",ZgTMnPdLw:"fafad2",ZWay:"d3d3d3",ZgYF:"90ee90",ZgYy:"d3d3d3",ZpRk:"ffb6c1",ZsOmon:"ffa07a",ZsHgYF:"20b2aa",ZskyXe:"87cefa",ZUWay:"778899",ZUgYy:"778899",ZstAlXe:"b0c4de",ZLw:"ffffe0",lime:"ff00",limegYF:"32cd32",lRF:"faf0e6",magFta:"ff00ff",maPon:"800000",VaquamarRe:"66cdaa",VXe:"cd",VScEd:"ba55d3",VpurpN:"9370db",VsHgYF:"3cb371",VUXe:"7b68ee",VsprRggYF:"fa9a",VQe:"48d1cc",VviTetYd:"c71585",midnightXe:"191970",mRtcYam:"f5fffa",mistyPse:"ffe4e1",moccasR:"ffe4b5",navajowEte:"ffdead",navy:"80",Tdlace:"fdf5e6",Tive:"808000",TivedBb:"6b8e23",Sange:"ffa500",SangeYd:"ff4500",ScEd:"da70d6",pOegTMnPd:"eee8aa",pOegYF:"98fb98",pOeQe:"afeeee",pOeviTetYd:"db7093",papayawEp:"ffefd5",pHKpuff:"ffdab9",peru:"cd853f",pRk:"ffc0cb",plum:"dda0dd",powMrXe:"b0e0e6",purpN:"800080",YbeccapurpN:"663399",Yd:"ff0000",Psybrown:"bc8f8f",PyOXe:"4169e1",saddNbPwn:"8b4513",sOmon:"fa8072",sandybPwn:"f4a460",sHgYF:"2e8b57",sHshell:"fff5ee",siFna:"a0522d",silver:"c0c0c0",skyXe:"87ceeb",UXe:"6a5acd",UWay:"708090",UgYy:"708090",snow:"fffafa",sprRggYF:"ff7f",stAlXe:"4682b4",tan:"d2b48c",teO:"8080",tEstN:"d8bfd8",tomato:"ff6347",Qe:"40e0d0",viTet:"ee82ee",JHt:"f5deb3",wEte:"ffffff",wEtesmoke:"f5f5f5",Lw:"ffff00",LwgYF:"9acd32"};function mh(){const e={},t=Object.keys($s),n=Object.keys(js);let i,s,o,r,a;for(i=0;i<t.length;i++){for(r=a=t[i],s=0;s<n.length;s++)o=n[s],a=a.replace(o,js[o]);o=parseInt($s[r],16),e[a]=[o>>16&255,o>>8&255,o&255]}return e}let mn;function bh(e){mn||(mn=mh(),mn.transparent=[0,0,0,0]);const t=mn[e.toLowerCase()];return t&&{r:t[0],g:t[1],b:t[2],a:t.length===4?t[3]:255}}const xh=/^rgba?\(\s*([-+.\d]+)(%)?[\s,]+([-+.e\d]+)(%)?[\s,]+([-+.e\d]+)(%)?(?:[\s,/]+([-+.e\d]+)(%)?)?\s*\)$/;function yh(e){const t=xh.exec(e);let n=255,i,s,o;if(t){if(t[7]!==i){const r=+t[7];n=t[8]?Ne(r):Nt(r*255,0,255)}return i=+t[1],s=+t[3],o=+t[5],i=255&(t[2]?Ne(i):Nt(i,0,255)),s=255&(t[4]?Ne(s):Nt(s,0,255)),o=255&(t[6]?Ne(o):Nt(o,0,255)),{r:i,g:s,b:o,a:n}}}function vh(e){return e&&(e.a<255?`rgba(${e.r}, ${e.g}, ${e.b}, ${Lt(e.a)})`:`rgb(${e.r}, ${e.g}, ${e.b})`)}const ii=e=>e<=.0031308?e*12.92:Math.pow(e,1/2.4)*1.055-.055,me=e=>e<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4);function _h(e,t,n){const i=me(Lt(e.r)),s=me(Lt(e.g)),o=me(Lt(e.b));return{r:Vt(ii(i+n*(me(Lt(t.r))-i))),g:Vt(ii(s+n*(me(Lt(t.g))-s))),b:Vt(ii(o+n*(me(Lt(t.b))-o))),a:e.a+n*(t.a-e.a)}}function bn(e,t,n){if(e){let i=Wi(e);i[t]=Math.max(0,Math.min(i[t]+i[t]*n,t===0?360:1)),i=Yi(i),e.r=i[0],e.g=i[1],e.b=i[2]}}function Yr(e,t){return e&&Object.assign(t||{},e)}function zs(e){var t={r:0,g:0,b:0,a:255};return Array.isArray(e)?e.length>=3&&(t={r:e[0],g:e[1],b:e[2],a:255},e.length>3&&(t.a=Vt(e[3]))):(t=Yr(e,{r:0,g:0,b:0,a:1}),t.a=Vt(t.a)),t}function wh(e){return e.charAt(0)==="r"?yh(e):fh(e)}class Ze{constructor(t){if(t instanceof Ze)return t;const n=typeof t;let i;n==="object"?i=zs(t):n==="string"&&(i=sh(t)||bh(t)||wh(t)),this._rgb=i,this._valid=!!i}get valid(){return this._valid}get rgb(){var t=Yr(this._rgb);return t&&(t.a=Lt(t.a)),t}set rgb(t){this._rgb=zs(t)}rgbString(){return this._valid?vh(this._rgb):void 0}hexString(){return this._valid?rh(this._rgb):void 0}hslString(){return this._valid?gh(this._rgb):void 0}mix(t,n){if(t){const i=this.rgb,s=t.rgb;let o;const r=n===o?.5:n,a=2*r-1,l=i.a-s.a,c=((a*l===-1?a:(a+l)/(1+a*l))+1)/2;o=1-c,i.r=255&c*i.r+o*s.r+.5,i.g=255&c*i.g+o*s.g+.5,i.b=255&c*i.b+o*s.b+.5,i.a=r*i.a+(1-r)*s.a,this.rgb=i}return this}interpolate(t,n){return t&&(this._rgb=_h(this._rgb,t._rgb,n)),this}clone(){return new Ze(this.rgb)}alpha(t){return this._rgb.a=Vt(t),this}clearer(t){const n=this._rgb;return n.a*=1-t,this}greyscale(){const t=this._rgb,n=hn(t.r*.3+t.g*.59+t.b*.11);return t.r=t.g=t.b=n,this}opaquer(t){const n=this._rgb;return n.a*=1+t,this}negate(){const t=this._rgb;return t.r=255-t.r,t.g=255-t.g,t.b=255-t.b,this}lighten(t){return bn(this._rgb,2,t),this}darken(t){return bn(this._rgb,2,-t),this}saturate(t){return bn(this._rgb,1,t),this}desaturate(t){return bn(this._rgb,1,-t),this}rotate(t){return ph(this._rgb,t),this}}/*! + */function hn(e){return e+.5|0}const Nt=(e,t,n)=>Math.max(Math.min(e,n),t);function Ne(e){return Nt(hn(e*2.55),0,255)}function Vt(e){return Nt(hn(e*255),0,255)}function Lt(e){return Nt(hn(e/2.55)/100,0,1)}function js(e){return Nt(hn(e*100),0,100)}const mt={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15},ki=[..."0123456789ABCDEF"],nh=e=>ki[e&15],ih=e=>ki[(e&240)>>4]+ki[e&15],gn=e=>(e&240)>>4===(e&15),sh=e=>gn(e.r)&&gn(e.g)&&gn(e.b)&&gn(e.a);function oh(e){var t=e.length,n;return e[0]==="#"&&(t===4||t===5?n={r:255&mt[e[1]]*17,g:255&mt[e[2]]*17,b:255&mt[e[3]]*17,a:t===5?mt[e[4]]*17:255}:(t===7||t===9)&&(n={r:mt[e[1]]<<4|mt[e[2]],g:mt[e[3]]<<4|mt[e[4]],b:mt[e[5]]<<4|mt[e[6]],a:t===9?mt[e[7]]<<4|mt[e[8]]:255})),n}const rh=(e,t)=>e<255?t(e):"";function ah(e){var t=sh(e)?nh:ih;return e?"#"+t(e.r)+t(e.g)+t(e.b)+rh(e.a,t):void 0}const lh=/^(hsla?|hwb|hsv)\(\s*([-+.e\d]+)(?:deg)?[\s,]+([-+.e\d]+)%[\s,]+([-+.e\d]+)%(?:[\s,]+([-+.e\d]+)(%)?)?\s*\)$/;function Vr(e,t,n){const i=t*Math.min(n,1-n),s=(o,r=(o+e/30)%12)=>n-i*Math.max(Math.min(r-3,9-r,1),-1);return[s(0),s(8),s(4)]}function ch(e,t,n){const i=(s,o=(s+e/60)%6)=>n-n*t*Math.max(Math.min(o,4-o,1),0);return[i(5),i(3),i(1)]}function hh(e,t,n){const i=Vr(e,1,.5);let s;for(t+n>1&&(s=1/(t+n),t*=s,n*=s),s=0;s<3;s++)i[s]*=1-t-n,i[s]+=t;return i}function uh(e,t,n,i,s){return e===s?(t-n)/i+(t<n?6:0):t===s?(n-e)/i+2:(e-t)/i+4}function Vi(e){const n=e.r/255,i=e.g/255,s=e.b/255,o=Math.max(n,i,s),r=Math.min(n,i,s),a=(o+r)/2;let l,c,h;return o!==r&&(h=o-r,c=a>.5?h/(2-o-r):h/(o+r),l=uh(n,i,s,h,o),l=l*60+.5),[l|0,c||0,a]}function Yi(e,t,n,i){return(Array.isArray(t)?e(t[0],t[1],t[2]):e(t,n,i)).map(Vt)}function Ui(e,t,n){return Yi(Vr,e,t,n)}function dh(e,t,n){return Yi(hh,e,t,n)}function fh(e,t,n){return Yi(ch,e,t,n)}function Yr(e){return(e%360+360)%360}function ph(e){const t=lh.exec(e);let n=255,i;if(!t)return;t[5]!==i&&(n=t[6]?Ne(+t[5]):Vt(+t[5]));const s=Yr(+t[2]),o=+t[3]/100,r=+t[4]/100;return t[1]==="hwb"?i=dh(s,o,r):t[1]==="hsv"?i=fh(s,o,r):i=Ui(s,o,r),{r:i[0],g:i[1],b:i[2],a:n}}function gh(e,t){var n=Vi(e);n[0]=Yr(n[0]+t),n=Ui(n),e.r=n[0],e.g=n[1],e.b=n[2]}function mh(e){if(!e)return;const t=Vi(e),n=t[0],i=js(t[1]),s=js(t[2]);return e.a<255?`hsla(${n}, ${i}%, ${s}%, ${Lt(e.a)})`:`hsl(${n}, ${i}%, ${s}%)`}const $s={x:"dark",Z:"light",Y:"re",X:"blu",W:"gr",V:"medium",U:"slate",A:"ee",T:"ol",S:"or",B:"ra",C:"lateg",D:"ights",R:"in",Q:"turquois",E:"hi",P:"ro",O:"al",N:"le",M:"de",L:"yello",F:"en",K:"ch",G:"arks",H:"ea",I:"ightg",J:"wh"},zs={OiceXe:"f0f8ff",antiquewEte:"faebd7",aqua:"ffff",aquamarRe:"7fffd4",azuY:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"0",blanKedOmond:"ffebcd",Xe:"ff",XeviTet:"8a2be2",bPwn:"a52a2a",burlywood:"deb887",caMtXe:"5f9ea0",KartYuse:"7fff00",KocTate:"d2691e",cSO:"ff7f50",cSnflowerXe:"6495ed",cSnsilk:"fff8dc",crimson:"dc143c",cyan:"ffff",xXe:"8b",xcyan:"8b8b",xgTMnPd:"b8860b",xWay:"a9a9a9",xgYF:"6400",xgYy:"a9a9a9",xkhaki:"bdb76b",xmagFta:"8b008b",xTivegYF:"556b2f",xSange:"ff8c00",xScEd:"9932cc",xYd:"8b0000",xsOmon:"e9967a",xsHgYF:"8fbc8f",xUXe:"483d8b",xUWay:"2f4f4f",xUgYy:"2f4f4f",xQe:"ced1",xviTet:"9400d3",dAppRk:"ff1493",dApskyXe:"bfff",dimWay:"696969",dimgYy:"696969",dodgerXe:"1e90ff",fiYbrick:"b22222",flSOwEte:"fffaf0",foYstWAn:"228b22",fuKsia:"ff00ff",gaRsbSo:"dcdcdc",ghostwEte:"f8f8ff",gTd:"ffd700",gTMnPd:"daa520",Way:"808080",gYF:"8000",gYFLw:"adff2f",gYy:"808080",honeyMw:"f0fff0",hotpRk:"ff69b4",RdianYd:"cd5c5c",Rdigo:"4b0082",ivSy:"fffff0",khaki:"f0e68c",lavFMr:"e6e6fa",lavFMrXsh:"fff0f5",lawngYF:"7cfc00",NmoncEffon:"fffacd",ZXe:"add8e6",ZcSO:"f08080",Zcyan:"e0ffff",ZgTMnPdLw:"fafad2",ZWay:"d3d3d3",ZgYF:"90ee90",ZgYy:"d3d3d3",ZpRk:"ffb6c1",ZsOmon:"ffa07a",ZsHgYF:"20b2aa",ZskyXe:"87cefa",ZUWay:"778899",ZUgYy:"778899",ZstAlXe:"b0c4de",ZLw:"ffffe0",lime:"ff00",limegYF:"32cd32",lRF:"faf0e6",magFta:"ff00ff",maPon:"800000",VaquamarRe:"66cdaa",VXe:"cd",VScEd:"ba55d3",VpurpN:"9370db",VsHgYF:"3cb371",VUXe:"7b68ee",VsprRggYF:"fa9a",VQe:"48d1cc",VviTetYd:"c71585",midnightXe:"191970",mRtcYam:"f5fffa",mistyPse:"ffe4e1",moccasR:"ffe4b5",navajowEte:"ffdead",navy:"80",Tdlace:"fdf5e6",Tive:"808000",TivedBb:"6b8e23",Sange:"ffa500",SangeYd:"ff4500",ScEd:"da70d6",pOegTMnPd:"eee8aa",pOegYF:"98fb98",pOeQe:"afeeee",pOeviTetYd:"db7093",papayawEp:"ffefd5",pHKpuff:"ffdab9",peru:"cd853f",pRk:"ffc0cb",plum:"dda0dd",powMrXe:"b0e0e6",purpN:"800080",YbeccapurpN:"663399",Yd:"ff0000",Psybrown:"bc8f8f",PyOXe:"4169e1",saddNbPwn:"8b4513",sOmon:"fa8072",sandybPwn:"f4a460",sHgYF:"2e8b57",sHshell:"fff5ee",siFna:"a0522d",silver:"c0c0c0",skyXe:"87ceeb",UXe:"6a5acd",UWay:"708090",UgYy:"708090",snow:"fffafa",sprRggYF:"ff7f",stAlXe:"4682b4",tan:"d2b48c",teO:"8080",tEstN:"d8bfd8",tomato:"ff6347",Qe:"40e0d0",viTet:"ee82ee",JHt:"f5deb3",wEte:"ffffff",wEtesmoke:"f5f5f5",Lw:"ffff00",LwgYF:"9acd32"};function bh(){const e={},t=Object.keys(zs),n=Object.keys($s);let i,s,o,r,a;for(i=0;i<t.length;i++){for(r=a=t[i],s=0;s<n.length;s++)o=n[s],a=a.replace(o,$s[o]);o=parseInt(zs[r],16),e[a]=[o>>16&255,o>>8&255,o&255]}return e}let mn;function xh(e){mn||(mn=bh(),mn.transparent=[0,0,0,0]);const t=mn[e.toLowerCase()];return t&&{r:t[0],g:t[1],b:t[2],a:t.length===4?t[3]:255}}const yh=/^rgba?\(\s*([-+.\d]+)(%)?[\s,]+([-+.e\d]+)(%)?[\s,]+([-+.e\d]+)(%)?(?:[\s,/]+([-+.e\d]+)(%)?)?\s*\)$/;function vh(e){const t=yh.exec(e);let n=255,i,s,o;if(t){if(t[7]!==i){const r=+t[7];n=t[8]?Ne(r):Nt(r*255,0,255)}return i=+t[1],s=+t[3],o=+t[5],i=255&(t[2]?Ne(i):Nt(i,0,255)),s=255&(t[4]?Ne(s):Nt(s,0,255)),o=255&(t[6]?Ne(o):Nt(o,0,255)),{r:i,g:s,b:o,a:n}}}function _h(e){return e&&(e.a<255?`rgba(${e.r}, ${e.g}, ${e.b}, ${Lt(e.a)})`:`rgb(${e.r}, ${e.g}, ${e.b})`)}const si=e=>e<=.0031308?e*12.92:Math.pow(e,1/2.4)*1.055-.055,me=e=>e<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4);function wh(e,t,n){const i=me(Lt(e.r)),s=me(Lt(e.g)),o=me(Lt(e.b));return{r:Vt(si(i+n*(me(Lt(t.r))-i))),g:Vt(si(s+n*(me(Lt(t.g))-s))),b:Vt(si(o+n*(me(Lt(t.b))-o))),a:e.a+n*(t.a-e.a)}}function bn(e,t,n){if(e){let i=Vi(e);i[t]=Math.max(0,Math.min(i[t]+i[t]*n,t===0?360:1)),i=Ui(i),e.r=i[0],e.g=i[1],e.b=i[2]}}function Ur(e,t){return e&&Object.assign(t||{},e)}function Ns(e){var t={r:0,g:0,b:0,a:255};return Array.isArray(e)?e.length>=3&&(t={r:e[0],g:e[1],b:e[2],a:255},e.length>3&&(t.a=Vt(e[3]))):(t=Ur(e,{r:0,g:0,b:0,a:1}),t.a=Vt(t.a)),t}function Sh(e){return e.charAt(0)==="r"?vh(e):ph(e)}class Ze{constructor(t){if(t instanceof Ze)return t;const n=typeof t;let i;n==="object"?i=Ns(t):n==="string"&&(i=oh(t)||xh(t)||Sh(t)),this._rgb=i,this._valid=!!i}get valid(){return this._valid}get rgb(){var t=Ur(this._rgb);return t&&(t.a=Lt(t.a)),t}set rgb(t){this._rgb=Ns(t)}rgbString(){return this._valid?_h(this._rgb):void 0}hexString(){return this._valid?ah(this._rgb):void 0}hslString(){return this._valid?mh(this._rgb):void 0}mix(t,n){if(t){const i=this.rgb,s=t.rgb;let o;const r=n===o?.5:n,a=2*r-1,l=i.a-s.a,c=((a*l===-1?a:(a+l)/(1+a*l))+1)/2;o=1-c,i.r=255&c*i.r+o*s.r+.5,i.g=255&c*i.g+o*s.g+.5,i.b=255&c*i.b+o*s.b+.5,i.a=r*i.a+(1-r)*s.a,this.rgb=i}return this}interpolate(t,n){return t&&(this._rgb=wh(this._rgb,t._rgb,n)),this}clone(){return new Ze(this.rgb)}alpha(t){return this._rgb.a=Vt(t),this}clearer(t){const n=this._rgb;return n.a*=1-t,this}greyscale(){const t=this._rgb,n=hn(t.r*.3+t.g*.59+t.b*.11);return t.r=t.g=t.b=n,this}opaquer(t){const n=this._rgb;return n.a*=1+t,this}negate(){const t=this._rgb;return t.r=255-t.r,t.g=255-t.g,t.b=255-t.b,this}lighten(t){return bn(this._rgb,2,t),this}darken(t){return bn(this._rgb,2,-t),this}saturate(t){return bn(this._rgb,1,t),this}desaturate(t){return bn(this._rgb,1,-t),this}rotate(t){return gh(this._rgb,t),this}}/*! * Chart.js v4.4.8 * https://www.chartjs.org * (c) 2025 Chart.js Contributors * Released under the MIT License - */function At(){}const Sh=(()=>{let e=0;return()=>e++})();function B(e){return e==null}function J(e){if(Array.isArray&&Array.isArray(e))return!0;const t=Object.prototype.toString.call(e);return t.slice(0,7)==="[object"&&t.slice(-6)==="Array]"}function z(e){return e!==null&&Object.prototype.toString.call(e)==="[object Object]"}function vt(e){return(typeof e=="number"||e instanceof Number)&&isFinite(+e)}function St(e,t){return vt(e)?e:t}function j(e,t){return typeof e>"u"?t:e}const kh=(e,t)=>typeof e=="string"&&e.endsWith("%")?parseFloat(e)/100*t:+e;function Y(e,t,n){if(e&&typeof e.call=="function")return e.apply(n,t)}function V(e,t,n,i){let s,o,r;if(J(e))for(o=e.length,s=0;s<o;s++)t.call(n,e[s],s);else if(z(e))for(r=Object.keys(e),o=r.length,s=0;s<o;s++)t.call(n,e[r[s]],r[s])}function In(e,t){let n,i,s,o;if(!e||!t||e.length!==t.length)return!1;for(n=0,i=e.length;n<i;++n)if(s=e[n],o=t[n],s.datasetIndex!==o.datasetIndex||s.index!==o.index)return!1;return!0}function jn(e){if(J(e))return e.map(jn);if(z(e)){const t=Object.create(null),n=Object.keys(e),i=n.length;let s=0;for(;s<i;++s)t[n[s]]=jn(e[n[s]]);return t}return e}function Ur(e){return["__proto__","prototype","constructor"].indexOf(e)===-1}function Mh(e,t,n,i){if(!Ur(e))return;const s=t[e],o=n[e];z(s)&&z(o)?Qe(s,o,i):t[e]=jn(o)}function Qe(e,t,n){const i=J(t)?t:[t],s=i.length;if(!z(e))return e;n=n||{};const o=n.merger||Mh;let r;for(let a=0;a<s;++a){if(r=i[a],!z(r))continue;const l=Object.keys(r);for(let c=0,h=l.length;c<h;++c)o(l[c],e,r,n)}return e}function Ue(e,t){return Qe(e,t,{merger:Ch})}function Ch(e,t,n){if(!Ur(e))return;const i=t[e],s=n[e];z(i)&&z(s)?Ue(i,s):Object.prototype.hasOwnProperty.call(t,e)||(t[e]=jn(s))}const Ns={"":e=>e,x:e=>e.x,y:e=>e.y};function Ph(e){const t=e.split("."),n=[];let i="";for(const s of t)i+=s,i.endsWith("\\")?i=i.slice(0,-1)+".":(n.push(i),i="");return n}function Oh(e){const t=Ph(e);return n=>{for(const i of t){if(i==="")break;n=n&&n[i]}return n}}function Oe(e,t){return(Ns[t]||(Ns[t]=Oh(t)))(e)}function Ui(e){return e.charAt(0).toUpperCase()+e.slice(1)}const tn=e=>typeof e<"u",Xt=e=>typeof e=="function",Bs=(e,t)=>{if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0};function Dh(e){return e.type==="mouseup"||e.type==="click"||e.type==="contextmenu"}const Z=Math.PI,st=2*Z,Eh=st+Z,$n=Number.POSITIVE_INFINITY,Ah=Z/180,it=Z/2,te=Z/4,Hs=Z*2/3,ki=Math.log10,Dt=Math.sign;function Xe(e,t,n){return Math.abs(e-t)<n}function Ws(e){const t=Math.round(e);e=Xe(e,t,e/1e3)?t:e;const n=Math.pow(10,Math.floor(ki(e))),i=e/n;return(i<=1?1:i<=2?2:i<=5?5:10)*n}function Th(e){const t=[],n=Math.sqrt(e);let i;for(i=1;i<n;i++)e%i===0&&(t.push(i),t.push(e/i));return n===(n|0)&&t.push(n),t.sort((s,o)=>s-o).pop(),t}function Rh(e){return typeof e=="symbol"||typeof e=="object"&&e!==null&&!(Symbol.toPrimitive in e||"toString"in e||"valueOf"in e)}function en(e){return!Rh(e)&&!isNaN(parseFloat(e))&&isFinite(e)}function Lh(e,t){const n=Math.round(e);return n-t<=e&&n+t>=e}function Fh(e,t,n){let i,s,o;for(i=0,s=e.length;i<s;i++)o=e[i][n],isNaN(o)||(t.min=Math.min(t.min,o),t.max=Math.max(t.max,o))}function ae(e){return e*(Z/180)}function Ih(e){return e*(180/Z)}function Vs(e){if(!vt(e))return;let t=1,n=0;for(;Math.round(e*t)/t!==e;)t*=10,n++;return n}function Xr(e,t){const n=t.x-e.x,i=t.y-e.y,s=Math.sqrt(n*n+i*i);let o=Math.atan2(i,n);return o<-.5*Z&&(o+=st),{angle:o,distance:s}}function Mi(e,t){return Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2))}function jh(e,t){return(e-t+Eh)%st-Z}function zt(e){return(e%st+st)%st}function Xi(e,t,n,i){const s=zt(e),o=zt(t),r=zt(n),a=zt(o-s),l=zt(r-s),c=zt(s-o),h=zt(s-r);return s===o||s===r||i&&o===r||a>l&&c<h}function rt(e,t,n){return Math.max(t,Math.min(n,e))}function $h(e){return rt(e,-32768,32767)}function Bt(e,t,n,i=1e-6){return e>=Math.min(t,n)-i&&e<=Math.max(t,n)+i}function qi(e,t,n){n=n||(r=>e[r]<t);let i=e.length-1,s=0,o;for(;i-s>1;)o=s+i>>1,n(o)?s=o:i=o;return{lo:s,hi:i}}const le=(e,t,n,i)=>qi(e,n,i?s=>{const o=e[s][t];return o<n||o===n&&e[s+1][t]===n}:s=>e[s][t]<n),zh=(e,t,n)=>qi(e,n,i=>e[i][t]>=n);function Nh(e,t,n){let i=0,s=e.length;for(;i<s&&e[i]<t;)i++;for(;s>i&&e[s-1]>n;)s--;return i>0||s<e.length?e.slice(i,s):e}const qr=["push","pop","shift","splice","unshift"];function Bh(e,t){if(e._chartjs){e._chartjs.listeners.push(t);return}Object.defineProperty(e,"_chartjs",{configurable:!0,enumerable:!1,value:{listeners:[t]}}),qr.forEach(n=>{const i="_onData"+Ui(n),s=e[n];Object.defineProperty(e,n,{configurable:!0,enumerable:!1,value(...o){const r=s.apply(this,o);return e._chartjs.listeners.forEach(a=>{typeof a[i]=="function"&&a[i](...o)}),r}})})}function Ys(e,t){const n=e._chartjs;if(!n)return;const i=n.listeners,s=i.indexOf(t);s!==-1&&i.splice(s,1),!(i.length>0)&&(qr.forEach(o=>{delete e[o]}),delete e._chartjs)}function Kr(e){const t=new Set(e);return t.size===e.length?e:Array.from(t)}const Gr=function(){return typeof window>"u"?function(e){return e()}:window.requestAnimationFrame}();function Jr(e,t){let n=[],i=!1;return function(...s){n=s,i||(i=!0,Gr.call(window,()=>{i=!1,e.apply(t,n)}))}}function Hh(e,t){let n;return function(...i){return t?(clearTimeout(n),n=setTimeout(e,t,i)):e.apply(this,i),t}}const Ki=e=>e==="start"?"left":e==="end"?"right":"center",ot=(e,t,n)=>e==="start"?t:e==="end"?n:(t+n)/2,Wh=(e,t,n,i)=>e===(i?"left":"right")?n:e==="center"?(t+n)/2:t;function Vh(e,t,n){const i=t.length;let s=0,o=i;if(e._sorted){const{iScale:r,vScale:a,_parsed:l}=e,c=e.dataset&&e.dataset.options?e.dataset.options.spanGaps:null,h=r.axis,{min:u,max:d,minDefined:f,maxDefined:g}=r.getUserBounds();if(f){if(s=Math.min(le(l,h,u).lo,n?i:le(t,h,r.getPixelForValue(u)).lo),c){const m=l.slice(0,s+1).reverse().findIndex(p=>!B(p[a.axis]));s-=Math.max(0,m)}s=rt(s,0,i-1)}if(g){let m=Math.max(le(l,r.axis,d,!0).hi+1,n?0:le(t,h,r.getPixelForValue(d),!0).hi+1);if(c){const p=l.slice(m-1).findIndex(b=>!B(b[a.axis]));m+=Math.max(0,p)}o=rt(m,s,i)-s}else o=i-s}return{start:s,count:o}}function Yh(e){const{xScale:t,yScale:n,_scaleRanges:i}=e,s={xmin:t.min,xmax:t.max,ymin:n.min,ymax:n.max};if(!i)return e._scaleRanges=s,!0;const o=i.xmin!==t.min||i.xmax!==t.max||i.ymin!==n.min||i.ymax!==n.max;return Object.assign(i,s),o}const xn=e=>e===0||e===1,Us=(e,t,n)=>-(Math.pow(2,10*(e-=1))*Math.sin((e-t)*st/n)),Xs=(e,t,n)=>Math.pow(2,-10*e)*Math.sin((e-t)*st/n)+1,qe={linear:e=>e,easeInQuad:e=>e*e,easeOutQuad:e=>-e*(e-2),easeInOutQuad:e=>(e/=.5)<1?.5*e*e:-.5*(--e*(e-2)-1),easeInCubic:e=>e*e*e,easeOutCubic:e=>(e-=1)*e*e+1,easeInOutCubic:e=>(e/=.5)<1?.5*e*e*e:.5*((e-=2)*e*e+2),easeInQuart:e=>e*e*e*e,easeOutQuart:e=>-((e-=1)*e*e*e-1),easeInOutQuart:e=>(e/=.5)<1?.5*e*e*e*e:-.5*((e-=2)*e*e*e-2),easeInQuint:e=>e*e*e*e*e,easeOutQuint:e=>(e-=1)*e*e*e*e+1,easeInOutQuint:e=>(e/=.5)<1?.5*e*e*e*e*e:.5*((e-=2)*e*e*e*e+2),easeInSine:e=>-Math.cos(e*it)+1,easeOutSine:e=>Math.sin(e*it),easeInOutSine:e=>-.5*(Math.cos(Z*e)-1),easeInExpo:e=>e===0?0:Math.pow(2,10*(e-1)),easeOutExpo:e=>e===1?1:-Math.pow(2,-10*e)+1,easeInOutExpo:e=>xn(e)?e:e<.5?.5*Math.pow(2,10*(e*2-1)):.5*(-Math.pow(2,-10*(e*2-1))+2),easeInCirc:e=>e>=1?e:-(Math.sqrt(1-e*e)-1),easeOutCirc:e=>Math.sqrt(1-(e-=1)*e),easeInOutCirc:e=>(e/=.5)<1?-.5*(Math.sqrt(1-e*e)-1):.5*(Math.sqrt(1-(e-=2)*e)+1),easeInElastic:e=>xn(e)?e:Us(e,.075,.3),easeOutElastic:e=>xn(e)?e:Xs(e,.075,.3),easeInOutElastic(e){return xn(e)?e:e<.5?.5*Us(e*2,.1125,.45):.5+.5*Xs(e*2-1,.1125,.45)},easeInBack(e){return e*e*((1.70158+1)*e-1.70158)},easeOutBack(e){return(e-=1)*e*((1.70158+1)*e+1.70158)+1},easeInOutBack(e){let t=1.70158;return(e/=.5)<1?.5*(e*e*(((t*=1.525)+1)*e-t)):.5*((e-=2)*e*(((t*=1.525)+1)*e+t)+2)},easeInBounce:e=>1-qe.easeOutBounce(1-e),easeOutBounce(e){return e<1/2.75?7.5625*e*e:e<2/2.75?7.5625*(e-=1.5/2.75)*e+.75:e<2.5/2.75?7.5625*(e-=2.25/2.75)*e+.9375:7.5625*(e-=2.625/2.75)*e+.984375},easeInOutBounce:e=>e<.5?qe.easeInBounce(e*2)*.5:qe.easeOutBounce(e*2-1)*.5+.5};function Gi(e){if(e&&typeof e=="object"){const t=e.toString();return t==="[object CanvasPattern]"||t==="[object CanvasGradient]"}return!1}function qs(e){return Gi(e)?e:new Ze(e)}function si(e){return Gi(e)?e:new Ze(e).saturate(.5).darken(.1).hexString()}const Uh=["x","y","borderWidth","radius","tension"],Xh=["color","borderColor","backgroundColor"];function qh(e){e.set("animation",{delay:void 0,duration:1e3,easing:"easeOutQuart",fn:void 0,from:void 0,loop:void 0,to:void 0,type:void 0}),e.describe("animation",{_fallback:!1,_indexable:!1,_scriptable:t=>t!=="onProgress"&&t!=="onComplete"&&t!=="fn"}),e.set("animations",{colors:{type:"color",properties:Xh},numbers:{type:"number",properties:Uh}}),e.describe("animations",{_fallback:"animation"}),e.set("transitions",{active:{animation:{duration:400}},resize:{animation:{duration:0}},show:{animations:{colors:{from:"transparent"},visible:{type:"boolean",duration:0}}},hide:{animations:{colors:{to:"transparent"},visible:{type:"boolean",easing:"linear",fn:t=>t|0}}}})}function Kh(e){e.set("layout",{autoPadding:!0,padding:{top:0,right:0,bottom:0,left:0}})}const Ks=new Map;function Gh(e,t){t=t||{};const n=e+JSON.stringify(t);let i=Ks.get(n);return i||(i=new Intl.NumberFormat(e,t),Ks.set(n,i)),i}function Zr(e,t,n){return Gh(t,n).format(e)}const Qr={values(e){return J(e)?e:""+e},numeric(e,t,n){if(e===0)return"0";const i=this.chart.options.locale;let s,o=e;if(n.length>1){const c=Math.max(Math.abs(n[0].value),Math.abs(n[n.length-1].value));(c<1e-4||c>1e15)&&(s="scientific"),o=Jh(e,n)}const r=ki(Math.abs(o)),a=isNaN(r)?1:Math.max(Math.min(-1*Math.floor(r),20),0),l={notation:s,minimumFractionDigits:a,maximumFractionDigits:a};return Object.assign(l,this.options.ticks.format),Zr(e,i,l)},logarithmic(e,t,n){if(e===0)return"0";const i=n[t].significand||e/Math.pow(10,Math.floor(ki(e)));return[1,2,3,5,10,15].includes(i)||t>.8*n.length?Qr.numeric.call(this,e,t,n):""}};function Jh(e,t){let n=t.length>3?t[2].value-t[1].value:t[1].value-t[0].value;return Math.abs(n)>=1&&e!==Math.floor(e)&&(n=e-Math.floor(e)),n}var ta={formatters:Qr};function Zh(e){e.set("scale",{display:!0,offset:!1,reverse:!1,beginAtZero:!1,bounds:"ticks",clip:!0,grace:0,grid:{display:!0,lineWidth:1,drawOnChartArea:!0,drawTicks:!0,tickLength:8,tickWidth:(t,n)=>n.lineWidth,tickColor:(t,n)=>n.color,offset:!1},border:{display:!0,dash:[],dashOffset:0,width:1},title:{display:!1,text:"",padding:{top:4,bottom:4}},ticks:{minRotation:0,maxRotation:50,mirror:!1,textStrokeWidth:0,textStrokeColor:"",padding:3,display:!0,autoSkip:!0,autoSkipPadding:3,labelOffset:0,callback:ta.formatters.values,minor:{},major:{},align:"center",crossAlign:"near",showLabelBackdrop:!1,backdropColor:"rgba(255, 255, 255, 0.75)",backdropPadding:2}}),e.route("scale.ticks","color","","color"),e.route("scale.grid","color","","borderColor"),e.route("scale.border","color","","borderColor"),e.route("scale.title","color","","color"),e.describe("scale",{_fallback:!1,_scriptable:t=>!t.startsWith("before")&&!t.startsWith("after")&&t!=="callback"&&t!=="parser",_indexable:t=>t!=="borderDash"&&t!=="tickBorderDash"&&t!=="dash"}),e.describe("scales",{_fallback:"scale"}),e.describe("scale.ticks",{_scriptable:t=>t!=="backdropPadding"&&t!=="callback",_indexable:t=>t!=="backdropPadding"})}const fe=Object.create(null),Ci=Object.create(null);function Ke(e,t){if(!t)return e;const n=t.split(".");for(let i=0,s=n.length;i<s;++i){const o=n[i];e=e[o]||(e[o]=Object.create(null))}return e}function oi(e,t,n){return typeof t=="string"?Qe(Ke(e,t),n):Qe(Ke(e,""),t)}class Qh{constructor(t,n){this.animation=void 0,this.backgroundColor="rgba(0,0,0,0.1)",this.borderColor="rgba(0,0,0,0.1)",this.color="#666",this.datasets={},this.devicePixelRatio=i=>i.chart.platform.getDevicePixelRatio(),this.elements={},this.events=["mousemove","mouseout","click","touchstart","touchmove"],this.font={family:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",size:12,style:"normal",lineHeight:1.2,weight:null},this.hover={},this.hoverBackgroundColor=(i,s)=>si(s.backgroundColor),this.hoverBorderColor=(i,s)=>si(s.borderColor),this.hoverColor=(i,s)=>si(s.color),this.indexAxis="x",this.interaction={mode:"nearest",intersect:!0,includeInvisible:!1},this.maintainAspectRatio=!0,this.onHover=null,this.onClick=null,this.parsing=!0,this.plugins={},this.responsive=!0,this.scale=void 0,this.scales={},this.showLine=!0,this.drawActiveElementsOnTop=!0,this.describe(t),this.apply(n)}set(t,n){return oi(this,t,n)}get(t){return Ke(this,t)}describe(t,n){return oi(Ci,t,n)}override(t,n){return oi(fe,t,n)}route(t,n,i,s){const o=Ke(this,t),r=Ke(this,i),a="_"+n;Object.defineProperties(o,{[a]:{value:o[n],writable:!0},[n]:{enumerable:!0,get(){const l=this[a],c=r[s];return z(l)?Object.assign({},c,l):j(l,c)},set(l){this[a]=l}}})}apply(t){t.forEach(n=>n(this))}}var q=new Qh({_scriptable:e=>!e.startsWith("on"),_indexable:e=>e!=="events",hover:{_fallback:"interaction"},interaction:{_scriptable:!1,_indexable:!1}},[qh,Kh,Zh]);function tu(e){return!e||B(e.size)||B(e.family)?null:(e.style?e.style+" ":"")+(e.weight?e.weight+" ":"")+e.size+"px "+e.family}function Gs(e,t,n,i,s){let o=t[s];return o||(o=t[s]=e.measureText(s).width,n.push(s)),o>i&&(i=o),i}function ee(e,t,n){const i=e.currentDevicePixelRatio,s=n!==0?Math.max(n/2,.5):0;return Math.round((t-s)*i)/i+s}function Js(e,t){!t&&!e||(t=t||e.getContext("2d"),t.save(),t.resetTransform(),t.clearRect(0,0,e.width,e.height),t.restore())}function Pi(e,t,n,i){ea(e,t,n,i,null)}function ea(e,t,n,i,s){let o,r,a,l,c,h,u,d;const f=t.pointStyle,g=t.rotation,m=t.radius;let p=(g||0)*Ah;if(f&&typeof f=="object"&&(o=f.toString(),o==="[object HTMLImageElement]"||o==="[object HTMLCanvasElement]")){e.save(),e.translate(n,i),e.rotate(p),e.drawImage(f,-f.width/2,-f.height/2,f.width,f.height),e.restore();return}if(!(isNaN(m)||m<=0)){switch(e.beginPath(),f){default:s?e.ellipse(n,i,s/2,m,0,0,st):e.arc(n,i,m,0,st),e.closePath();break;case"triangle":h=s?s/2:m,e.moveTo(n+Math.sin(p)*h,i-Math.cos(p)*m),p+=Hs,e.lineTo(n+Math.sin(p)*h,i-Math.cos(p)*m),p+=Hs,e.lineTo(n+Math.sin(p)*h,i-Math.cos(p)*m),e.closePath();break;case"rectRounded":c=m*.516,l=m-c,r=Math.cos(p+te)*l,u=Math.cos(p+te)*(s?s/2-c:l),a=Math.sin(p+te)*l,d=Math.sin(p+te)*(s?s/2-c:l),e.arc(n-u,i-a,c,p-Z,p-it),e.arc(n+d,i-r,c,p-it,p),e.arc(n+u,i+a,c,p,p+it),e.arc(n-d,i+r,c,p+it,p+Z),e.closePath();break;case"rect":if(!g){l=Math.SQRT1_2*m,h=s?s/2:l,e.rect(n-h,i-l,2*h,2*l);break}p+=te;case"rectRot":u=Math.cos(p)*(s?s/2:m),r=Math.cos(p)*m,a=Math.sin(p)*m,d=Math.sin(p)*(s?s/2:m),e.moveTo(n-u,i-a),e.lineTo(n+d,i-r),e.lineTo(n+u,i+a),e.lineTo(n-d,i+r),e.closePath();break;case"crossRot":p+=te;case"cross":u=Math.cos(p)*(s?s/2:m),r=Math.cos(p)*m,a=Math.sin(p)*m,d=Math.sin(p)*(s?s/2:m),e.moveTo(n-u,i-a),e.lineTo(n+u,i+a),e.moveTo(n+d,i-r),e.lineTo(n-d,i+r);break;case"star":u=Math.cos(p)*(s?s/2:m),r=Math.cos(p)*m,a=Math.sin(p)*m,d=Math.sin(p)*(s?s/2:m),e.moveTo(n-u,i-a),e.lineTo(n+u,i+a),e.moveTo(n+d,i-r),e.lineTo(n-d,i+r),p+=te,u=Math.cos(p)*(s?s/2:m),r=Math.cos(p)*m,a=Math.sin(p)*m,d=Math.sin(p)*(s?s/2:m),e.moveTo(n-u,i-a),e.lineTo(n+u,i+a),e.moveTo(n+d,i-r),e.lineTo(n-d,i+r);break;case"line":r=s?s/2:Math.cos(p)*m,a=Math.sin(p)*m,e.moveTo(n-r,i-a),e.lineTo(n+r,i+a);break;case"dash":e.moveTo(n,i),e.lineTo(n+Math.cos(p)*(s?s/2:m),i+Math.sin(p)*m);break;case!1:e.closePath();break}e.fill(),t.borderWidth>0&&e.stroke()}}function nn(e,t,n){return n=n||.5,!t||e&&e.x>t.left-n&&e.x<t.right+n&&e.y>t.top-n&&e.y<t.bottom+n}function Ji(e,t){e.save(),e.beginPath(),e.rect(t.left,t.top,t.right-t.left,t.bottom-t.top),e.clip()}function Zi(e){e.restore()}function eu(e,t,n,i,s){if(!t)return e.lineTo(n.x,n.y);if(s==="middle"){const o=(t.x+n.x)/2;e.lineTo(o,t.y),e.lineTo(o,n.y)}else s==="after"!=!!i?e.lineTo(t.x,n.y):e.lineTo(n.x,t.y);e.lineTo(n.x,n.y)}function nu(e,t,n,i){if(!t)return e.lineTo(n.x,n.y);e.bezierCurveTo(i?t.cp1x:t.cp2x,i?t.cp1y:t.cp2y,i?n.cp2x:n.cp1x,i?n.cp2y:n.cp1y,n.x,n.y)}function iu(e,t){t.translation&&e.translate(t.translation[0],t.translation[1]),B(t.rotation)||e.rotate(t.rotation),t.color&&(e.fillStyle=t.color),t.textAlign&&(e.textAlign=t.textAlign),t.textBaseline&&(e.textBaseline=t.textBaseline)}function su(e,t,n,i,s){if(s.strikethrough||s.underline){const o=e.measureText(i),r=t-o.actualBoundingBoxLeft,a=t+o.actualBoundingBoxRight,l=n-o.actualBoundingBoxAscent,c=n+o.actualBoundingBoxDescent,h=s.strikethrough?(l+c)/2:c;e.strokeStyle=e.fillStyle,e.beginPath(),e.lineWidth=s.decorationWidth||2,e.moveTo(r,h),e.lineTo(a,h),e.stroke()}}function ou(e,t){const n=e.fillStyle;e.fillStyle=t.color,e.fillRect(t.left,t.top,t.width,t.height),e.fillStyle=n}function sn(e,t,n,i,s,o={}){const r=J(t)?t:[t],a=o.strokeWidth>0&&o.strokeColor!=="";let l,c;for(e.save(),e.font=s.string,iu(e,o),l=0;l<r.length;++l)c=r[l],o.backdrop&&ou(e,o.backdrop),a&&(o.strokeColor&&(e.strokeStyle=o.strokeColor),B(o.strokeWidth)||(e.lineWidth=o.strokeWidth),e.strokeText(c,n,i,o.maxWidth)),e.fillText(c,n,i,o.maxWidth),su(e,n,i,c,o),i+=Number(s.lineHeight);e.restore()}function zn(e,t){const{x:n,y:i,w:s,h:o,radius:r}=t;e.arc(n+r.topLeft,i+r.topLeft,r.topLeft,1.5*Z,Z,!0),e.lineTo(n,i+o-r.bottomLeft),e.arc(n+r.bottomLeft,i+o-r.bottomLeft,r.bottomLeft,Z,it,!0),e.lineTo(n+s-r.bottomRight,i+o),e.arc(n+s-r.bottomRight,i+o-r.bottomRight,r.bottomRight,it,0,!0),e.lineTo(n+s,i+r.topRight),e.arc(n+s-r.topRight,i+r.topRight,r.topRight,0,-it,!0),e.lineTo(n+r.topLeft,i)}const ru=/^(normal|(\d+(?:\.\d+)?)(px|em|%)?)$/,au=/^(normal|italic|initial|inherit|unset|(oblique( -?[0-9]?[0-9]deg)?))$/;function lu(e,t){const n=(""+e).match(ru);if(!n||n[1]==="normal")return t*1.2;switch(e=+n[2],n[3]){case"px":return e;case"%":e/=100;break}return t*e}const cu=e=>+e||0;function Qi(e,t){const n={},i=z(t),s=i?Object.keys(t):t,o=z(e)?i?r=>j(e[r],e[t[r]]):r=>e[r]:()=>e;for(const r of s)n[r]=cu(o(r));return n}function na(e){return Qi(e,{top:"y",right:"x",bottom:"y",left:"x"})}function _e(e){return Qi(e,["topLeft","topRight","bottomLeft","bottomRight"])}function _t(e){const t=na(e);return t.width=t.left+t.right,t.height=t.top+t.bottom,t}function at(e,t){e=e||{},t=t||q.font;let n=j(e.size,t.size);typeof n=="string"&&(n=parseInt(n,10));let i=j(e.style,t.style);i&&!(""+i).match(au)&&(console.warn('Invalid font style specified: "'+i+'"'),i=void 0);const s={family:j(e.family,t.family),lineHeight:lu(j(e.lineHeight,t.lineHeight),n),size:n,style:i,weight:j(e.weight,t.weight),string:""};return s.string=tu(s),s}function yn(e,t,n,i){let s,o,r;for(s=0,o=e.length;s<o;++s)if(r=e[s],r!==void 0&&(t!==void 0&&typeof r=="function"&&(r=r(t)),n!==void 0&&J(r)&&(r=r[n%r.length]),r!==void 0))return r}function hu(e,t,n){const{min:i,max:s}=e,o=kh(t,(s-i)/2),r=(a,l)=>n&&a===0?0:a+l;return{min:r(i,-Math.abs(o)),max:r(s,o)}}function pe(e,t){return Object.assign(Object.create(e),t)}function ts(e,t=[""],n,i,s=()=>e[0]){const o=n||e;typeof i>"u"&&(i=ra("_fallback",e));const r={[Symbol.toStringTag]:"Object",_cacheable:!0,_scopes:e,_rootScopes:o,_fallback:i,_getTarget:s,override:a=>ts([a,...e],t,o,i)};return new Proxy(r,{deleteProperty(a,l){return delete a[l],delete a._keys,delete e[0][l],!0},get(a,l){return sa(a,l,()=>xu(l,t,e,a))},getOwnPropertyDescriptor(a,l){return Reflect.getOwnPropertyDescriptor(a._scopes[0],l)},getPrototypeOf(){return Reflect.getPrototypeOf(e[0])},has(a,l){return Qs(a).includes(l)},ownKeys(a){return Qs(a)},set(a,l,c){const h=a._storage||(a._storage=s());return a[l]=h[l]=c,delete a._keys,!0}})}function De(e,t,n,i){const s={_cacheable:!1,_proxy:e,_context:t,_subProxy:n,_stack:new Set,_descriptors:ia(e,i),setContext:o=>De(e,o,n,i),override:o=>De(e.override(o),t,n,i)};return new Proxy(s,{deleteProperty(o,r){return delete o[r],delete e[r],!0},get(o,r,a){return sa(o,r,()=>du(o,r,a))},getOwnPropertyDescriptor(o,r){return o._descriptors.allKeys?Reflect.has(e,r)?{enumerable:!0,configurable:!0}:void 0:Reflect.getOwnPropertyDescriptor(e,r)},getPrototypeOf(){return Reflect.getPrototypeOf(e)},has(o,r){return Reflect.has(e,r)},ownKeys(){return Reflect.ownKeys(e)},set(o,r,a){return e[r]=a,delete o[r],!0}})}function ia(e,t={scriptable:!0,indexable:!0}){const{_scriptable:n=t.scriptable,_indexable:i=t.indexable,_allKeys:s=t.allKeys}=e;return{allKeys:s,scriptable:n,indexable:i,isScriptable:Xt(n)?n:()=>n,isIndexable:Xt(i)?i:()=>i}}const uu=(e,t)=>e?e+Ui(t):t,es=(e,t)=>z(t)&&e!=="adapters"&&(Object.getPrototypeOf(t)===null||t.constructor===Object);function sa(e,t,n){if(Object.prototype.hasOwnProperty.call(e,t)||t==="constructor")return e[t];const i=n();return e[t]=i,i}function du(e,t,n){const{_proxy:i,_context:s,_subProxy:o,_descriptors:r}=e;let a=i[t];return Xt(a)&&r.isScriptable(t)&&(a=fu(t,a,e,n)),J(a)&&a.length&&(a=pu(t,a,e,r.isIndexable)),es(t,a)&&(a=De(a,s,o&&o[t],r)),a}function fu(e,t,n,i){const{_proxy:s,_context:o,_subProxy:r,_stack:a}=n;if(a.has(e))throw new Error("Recursion detected: "+Array.from(a).join("->")+"->"+e);a.add(e);let l=t(o,r||i);return a.delete(e),es(e,l)&&(l=ns(s._scopes,s,e,l)),l}function pu(e,t,n,i){const{_proxy:s,_context:o,_subProxy:r,_descriptors:a}=n;if(typeof o.index<"u"&&i(e))return t[o.index%t.length];if(z(t[0])){const l=t,c=s._scopes.filter(h=>h!==l);t=[];for(const h of l){const u=ns(c,s,e,h);t.push(De(u,o,r&&r[e],a))}}return t}function oa(e,t,n){return Xt(e)?e(t,n):e}const gu=(e,t)=>e===!0?t:typeof e=="string"?Oe(t,e):void 0;function mu(e,t,n,i,s){for(const o of t){const r=gu(n,o);if(r){e.add(r);const a=oa(r._fallback,n,s);if(typeof a<"u"&&a!==n&&a!==i)return a}else if(r===!1&&typeof i<"u"&&n!==i)return null}return!1}function ns(e,t,n,i){const s=t._rootScopes,o=oa(t._fallback,n,i),r=[...e,...s],a=new Set;a.add(i);let l=Zs(a,r,n,o||n,i);return l===null||typeof o<"u"&&o!==n&&(l=Zs(a,r,o,l,i),l===null)?!1:ts(Array.from(a),[""],s,o,()=>bu(t,n,i))}function Zs(e,t,n,i,s){for(;n;)n=mu(e,t,n,i,s);return n}function bu(e,t,n){const i=e._getTarget();t in i||(i[t]={});const s=i[t];return J(s)&&z(n)?n:s||{}}function xu(e,t,n,i){let s;for(const o of t)if(s=ra(uu(o,e),n),typeof s<"u")return es(e,s)?ns(n,i,e,s):s}function ra(e,t){for(const n of t){if(!n)continue;const i=n[e];if(typeof i<"u")return i}}function Qs(e){let t=e._keys;return t||(t=e._keys=yu(e._scopes)),t}function yu(e){const t=new Set;for(const n of e)for(const i of Object.keys(n).filter(s=>!s.startsWith("_")))t.add(i);return Array.from(t)}const vu=Number.EPSILON||1e-14,Ee=(e,t)=>t<e.length&&!e[t].skip&&e[t],aa=e=>e==="x"?"y":"x";function _u(e,t,n,i){const s=e.skip?t:e,o=t,r=n.skip?t:n,a=Mi(o,s),l=Mi(r,o);let c=a/(a+l),h=l/(a+l);c=isNaN(c)?0:c,h=isNaN(h)?0:h;const u=i*c,d=i*h;return{previous:{x:o.x-u*(r.x-s.x),y:o.y-u*(r.y-s.y)},next:{x:o.x+d*(r.x-s.x),y:o.y+d*(r.y-s.y)}}}function wu(e,t,n){const i=e.length;let s,o,r,a,l,c=Ee(e,0);for(let h=0;h<i-1;++h)if(l=c,c=Ee(e,h+1),!(!l||!c)){if(Xe(t[h],0,vu)){n[h]=n[h+1]=0;continue}s=n[h]/t[h],o=n[h+1]/t[h],a=Math.pow(s,2)+Math.pow(o,2),!(a<=9)&&(r=3/Math.sqrt(a),n[h]=s*r*t[h],n[h+1]=o*r*t[h])}}function Su(e,t,n="x"){const i=aa(n),s=e.length;let o,r,a,l=Ee(e,0);for(let c=0;c<s;++c){if(r=a,a=l,l=Ee(e,c+1),!a)continue;const h=a[n],u=a[i];r&&(o=(h-r[n])/3,a[`cp1${n}`]=h-o,a[`cp1${i}`]=u-o*t[c]),l&&(o=(l[n]-h)/3,a[`cp2${n}`]=h+o,a[`cp2${i}`]=u+o*t[c])}}function ku(e,t="x"){const n=aa(t),i=e.length,s=Array(i).fill(0),o=Array(i);let r,a,l,c=Ee(e,0);for(r=0;r<i;++r)if(a=l,l=c,c=Ee(e,r+1),!!l){if(c){const h=c[t]-l[t];s[r]=h!==0?(c[n]-l[n])/h:0}o[r]=a?c?Dt(s[r-1])!==Dt(s[r])?0:(s[r-1]+s[r])/2:s[r-1]:s[r]}wu(e,s,o),Su(e,o,t)}function vn(e,t,n){return Math.max(Math.min(e,n),t)}function Mu(e,t){let n,i,s,o,r,a=nn(e[0],t);for(n=0,i=e.length;n<i;++n)r=o,o=a,a=n<i-1&&nn(e[n+1],t),o&&(s=e[n],r&&(s.cp1x=vn(s.cp1x,t.left,t.right),s.cp1y=vn(s.cp1y,t.top,t.bottom)),a&&(s.cp2x=vn(s.cp2x,t.left,t.right),s.cp2y=vn(s.cp2y,t.top,t.bottom)))}function Cu(e,t,n,i,s){let o,r,a,l;if(t.spanGaps&&(e=e.filter(c=>!c.skip)),t.cubicInterpolationMode==="monotone")ku(e,s);else{let c=i?e[e.length-1]:e[0];for(o=0,r=e.length;o<r;++o)a=e[o],l=_u(c,a,e[Math.min(o+1,r-(i?0:1))%r],t.tension),a.cp1x=l.previous.x,a.cp1y=l.previous.y,a.cp2x=l.next.x,a.cp2y=l.next.y,c=a}t.capBezierPoints&&Mu(e,n)}function is(){return typeof window<"u"&&typeof document<"u"}function ss(e){let t=e.parentNode;return t&&t.toString()==="[object ShadowRoot]"&&(t=t.host),t}function Nn(e,t,n){let i;return typeof e=="string"?(i=parseInt(e,10),e.indexOf("%")!==-1&&(i=i/100*t.parentNode[n])):i=e,i}const qn=e=>e.ownerDocument.defaultView.getComputedStyle(e,null);function Pu(e,t){return qn(e).getPropertyValue(t)}const Ou=["top","right","bottom","left"];function he(e,t,n){const i={};n=n?"-"+n:"";for(let s=0;s<4;s++){const o=Ou[s];i[o]=parseFloat(e[t+"-"+o+n])||0}return i.width=i.left+i.right,i.height=i.top+i.bottom,i}const Du=(e,t,n)=>(e>0||t>0)&&(!n||!n.shadowRoot);function Eu(e,t){const n=e.touches,i=n&&n.length?n[0]:e,{offsetX:s,offsetY:o}=i;let r=!1,a,l;if(Du(s,o,e.target))a=s,l=o;else{const c=t.getBoundingClientRect();a=i.clientX-c.left,l=i.clientY-c.top,r=!0}return{x:a,y:l,box:r}}function oe(e,t){if("native"in e)return e;const{canvas:n,currentDevicePixelRatio:i}=t,s=qn(n),o=s.boxSizing==="border-box",r=he(s,"padding"),a=he(s,"border","width"),{x:l,y:c,box:h}=Eu(e,n),u=r.left+(h&&a.left),d=r.top+(h&&a.top);let{width:f,height:g}=t;return o&&(f-=r.width+a.width,g-=r.height+a.height),{x:Math.round((l-u)/f*n.width/i),y:Math.round((c-d)/g*n.height/i)}}function Au(e,t,n){let i,s;if(t===void 0||n===void 0){const o=e&&ss(e);if(!o)t=e.clientWidth,n=e.clientHeight;else{const r=o.getBoundingClientRect(),a=qn(o),l=he(a,"border","width"),c=he(a,"padding");t=r.width-c.width-l.width,n=r.height-c.height-l.height,i=Nn(a.maxWidth,o,"clientWidth"),s=Nn(a.maxHeight,o,"clientHeight")}}return{width:t,height:n,maxWidth:i||$n,maxHeight:s||$n}}const _n=e=>Math.round(e*10)/10;function Tu(e,t,n,i){const s=qn(e),o=he(s,"margin"),r=Nn(s.maxWidth,e,"clientWidth")||$n,a=Nn(s.maxHeight,e,"clientHeight")||$n,l=Au(e,t,n);let{width:c,height:h}=l;if(s.boxSizing==="content-box"){const d=he(s,"border","width"),f=he(s,"padding");c-=f.width+d.width,h-=f.height+d.height}return c=Math.max(0,c-o.width),h=Math.max(0,i?c/i:h-o.height),c=_n(Math.min(c,r,l.maxWidth)),h=_n(Math.min(h,a,l.maxHeight)),c&&!h&&(h=_n(c/2)),(t!==void 0||n!==void 0)&&i&&l.height&&h>l.height&&(h=l.height,c=_n(Math.floor(h*i))),{width:c,height:h}}function to(e,t,n){const i=t||1,s=Math.floor(e.height*i),o=Math.floor(e.width*i);e.height=Math.floor(e.height),e.width=Math.floor(e.width);const r=e.canvas;return r.style&&(n||!r.style.height&&!r.style.width)&&(r.style.height=`${e.height}px`,r.style.width=`${e.width}px`),e.currentDevicePixelRatio!==i||r.height!==s||r.width!==o?(e.currentDevicePixelRatio=i,r.height=s,r.width=o,e.ctx.setTransform(i,0,0,i,0,0),!0):!1}const Ru=function(){let e=!1;try{const t={get passive(){return e=!0,!1}};is()&&(window.addEventListener("test",null,t),window.removeEventListener("test",null,t))}catch{}return e}();function eo(e,t){const n=Pu(e,t),i=n&&n.match(/^(\d+)(\.\d+)?px$/);return i?+i[1]:void 0}function re(e,t,n,i){return{x:e.x+n*(t.x-e.x),y:e.y+n*(t.y-e.y)}}function Lu(e,t,n,i){return{x:e.x+n*(t.x-e.x),y:i==="middle"?n<.5?e.y:t.y:i==="after"?n<1?e.y:t.y:n>0?t.y:e.y}}function Fu(e,t,n,i){const s={x:e.cp2x,y:e.cp2y},o={x:t.cp1x,y:t.cp1y},r=re(e,s,n),a=re(s,o,n),l=re(o,t,n),c=re(r,a,n),h=re(a,l,n);return re(c,h,n)}const Iu=function(e,t){return{x(n){return e+e+t-n},setWidth(n){t=n},textAlign(n){return n==="center"?n:n==="right"?"left":"right"},xPlus(n,i){return n-i},leftForLtr(n,i){return n-i}}},ju=function(){return{x(e){return e},setWidth(e){},textAlign(e){return e},xPlus(e,t){return e+t},leftForLtr(e,t){return e}}};function we(e,t,n){return e?Iu(t,n):ju()}function la(e,t){let n,i;(t==="ltr"||t==="rtl")&&(n=e.canvas.style,i=[n.getPropertyValue("direction"),n.getPropertyPriority("direction")],n.setProperty("direction",t,"important"),e.prevTextDirection=i)}function ca(e,t){t!==void 0&&(delete e.prevTextDirection,e.canvas.style.setProperty("direction",t[0],t[1]))}function ha(e){return e==="angle"?{between:Xi,compare:jh,normalize:zt}:{between:Bt,compare:(t,n)=>t-n,normalize:t=>t}}function no({start:e,end:t,count:n,loop:i,style:s}){return{start:e%n,end:t%n,loop:i&&(t-e+1)%n===0,style:s}}function $u(e,t,n){const{property:i,start:s,end:o}=n,{between:r,normalize:a}=ha(i),l=t.length;let{start:c,end:h,loop:u}=e,d,f;if(u){for(c+=l,h+=l,d=0,f=l;d<f&&r(a(t[c%l][i]),s,o);++d)c--,h--;c%=l,h%=l}return h<c&&(h+=l),{start:c,end:h,loop:u,style:e.style}}function zu(e,t,n){if(!n)return[e];const{property:i,start:s,end:o}=n,r=t.length,{compare:a,between:l,normalize:c}=ha(i),{start:h,end:u,loop:d,style:f}=$u(e,t,n),g=[];let m=!1,p=null,b,x,v;const _=()=>l(s,v,b)&&a(s,v)!==0,y=()=>a(o,b)===0||l(o,v,b),w=()=>m||_(),k=()=>!m||y();for(let S=h,C=h;S<=u;++S)x=t[S%r],!x.skip&&(b=c(x[i]),b!==v&&(m=l(b,s,o),p===null&&w()&&(p=a(b,s)===0?S:C),p!==null&&k()&&(g.push(no({start:p,end:S,loop:d,count:r,style:f})),p=null),C=S,v=b));return p!==null&&g.push(no({start:p,end:u,loop:d,count:r,style:f})),g}function Nu(e,t){const n=[],i=e.segments;for(let s=0;s<i.length;s++){const o=zu(i[s],e.points,t);o.length&&n.push(...o)}return n}function Bu(e,t,n,i){let s=0,o=t-1;if(n&&!i)for(;s<t&&!e[s].skip;)s++;for(;s<t&&e[s].skip;)s++;for(s%=t,n&&(o+=s);o>s&&e[o%t].skip;)o--;return o%=t,{start:s,end:o}}function Hu(e,t,n,i){const s=e.length,o=[];let r=t,a=e[t],l;for(l=t+1;l<=n;++l){const c=e[l%s];c.skip||c.stop?a.skip||(i=!1,o.push({start:t%s,end:(l-1)%s,loop:i}),t=r=c.stop?l:null):(r=l,a.skip&&(t=l)),a=c}return r!==null&&o.push({start:t%s,end:r%s,loop:i}),o}function Wu(e,t){const n=e.points,i=e.options.spanGaps,s=n.length;if(!s)return[];const o=!!e._loop,{start:r,end:a}=Bu(n,s,o,i);if(i===!0)return io(e,[{start:r,end:a,loop:o}],n,t);const l=a<r?a+s:a,c=!!e._fullLoop&&r===0&&a===s-1;return io(e,Hu(n,r,l,c),n,t)}function io(e,t,n,i){return!i||!i.setContext||!n?t:Vu(e,t,n,i)}function Vu(e,t,n,i){const s=e._chart.getContext(),o=so(e.options),{_datasetIndex:r,options:{spanGaps:a}}=e,l=n.length,c=[];let h=o,u=t[0].start,d=u;function f(g,m,p,b){const x=a?-1:1;if(g!==m){for(g+=l;n[g%l].skip;)g-=x;for(;n[m%l].skip;)m+=x;g%l!==m%l&&(c.push({start:g%l,end:m%l,loop:p,style:b}),h=b,u=m%l)}}for(const g of t){u=a?u:g.start;let m=n[u%l],p;for(d=u+1;d<=g.end;d++){const b=n[d%l];p=so(i.setContext(pe(s,{type:"segment",p0:m,p1:b,p0DataIndex:(d-1)%l,p1DataIndex:d%l,datasetIndex:r}))),Yu(p,h)&&f(u,d-1,g.loop,h),m=b,h=p}u<d-1&&f(u,d-1,g.loop,h)}return c}function so(e){return{backgroundColor:e.backgroundColor,borderCapStyle:e.borderCapStyle,borderDash:e.borderDash,borderDashOffset:e.borderDashOffset,borderJoinStyle:e.borderJoinStyle,borderWidth:e.borderWidth,borderColor:e.borderColor}}function Yu(e,t){if(!t)return!1;const n=[],i=function(s,o){return Gi(o)?(n.includes(o)||n.push(o),n.indexOf(o)):o};return JSON.stringify(e,i)!==JSON.stringify(t,i)}/*! + */function Et(){}const kh=(()=>{let e=0;return()=>e++})();function B(e){return e==null}function J(e){if(Array.isArray&&Array.isArray(e))return!0;const t=Object.prototype.toString.call(e);return t.slice(0,7)==="[object"&&t.slice(-6)==="Array]"}function z(e){return e!==null&&Object.prototype.toString.call(e)==="[object Object]"}function vt(e){return(typeof e=="number"||e instanceof Number)&&isFinite(+e)}function St(e,t){return vt(e)?e:t}function j(e,t){return typeof e>"u"?t:e}const Mh=(e,t)=>typeof e=="string"&&e.endsWith("%")?parseFloat(e)/100*t:+e;function Y(e,t,n){if(e&&typeof e.call=="function")return e.apply(n,t)}function V(e,t,n,i){let s,o,r;if(J(e))for(o=e.length,s=0;s<o;s++)t.call(n,e[s],s);else if(z(e))for(r=Object.keys(e),o=r.length,s=0;s<o;s++)t.call(n,e[r[s]],r[s])}function In(e,t){let n,i,s,o;if(!e||!t||e.length!==t.length)return!1;for(n=0,i=e.length;n<i;++n)if(s=e[n],o=t[n],s.datasetIndex!==o.datasetIndex||s.index!==o.index)return!1;return!0}function jn(e){if(J(e))return e.map(jn);if(z(e)){const t=Object.create(null),n=Object.keys(e),i=n.length;let s=0;for(;s<i;++s)t[n[s]]=jn(e[n[s]]);return t}return e}function Xr(e){return["__proto__","prototype","constructor"].indexOf(e)===-1}function Ch(e,t,n,i){if(!Xr(e))return;const s=t[e],o=n[e];z(s)&&z(o)?Qe(s,o,i):t[e]=jn(o)}function Qe(e,t,n){const i=J(t)?t:[t],s=i.length;if(!z(e))return e;n=n||{};const o=n.merger||Ch;let r;for(let a=0;a<s;++a){if(r=i[a],!z(r))continue;const l=Object.keys(r);for(let c=0,h=l.length;c<h;++c)o(l[c],e,r,n)}return e}function Ue(e,t){return Qe(e,t,{merger:Ph})}function Ph(e,t,n){if(!Xr(e))return;const i=t[e],s=n[e];z(i)&&z(s)?Ue(i,s):Object.prototype.hasOwnProperty.call(t,e)||(t[e]=jn(s))}const Bs={"":e=>e,x:e=>e.x,y:e=>e.y};function Oh(e){const t=e.split("."),n=[];let i="";for(const s of t)i+=s,i.endsWith("\\")?i=i.slice(0,-1)+".":(n.push(i),i="");return n}function Dh(e){const t=Oh(e);return n=>{for(const i of t){if(i==="")break;n=n&&n[i]}return n}}function Oe(e,t){return(Bs[t]||(Bs[t]=Dh(t)))(e)}function Xi(e){return e.charAt(0).toUpperCase()+e.slice(1)}const tn=e=>typeof e<"u",Xt=e=>typeof e=="function",Hs=(e,t)=>{if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0};function Ah(e){return e.type==="mouseup"||e.type==="click"||e.type==="contextmenu"}const Z=Math.PI,st=2*Z,Eh=st+Z,$n=Number.POSITIVE_INFINITY,Th=Z/180,it=Z/2,te=Z/4,Ws=Z*2/3,Mi=Math.log10,Dt=Math.sign;function Xe(e,t,n){return Math.abs(e-t)<n}function Vs(e){const t=Math.round(e);e=Xe(e,t,e/1e3)?t:e;const n=Math.pow(10,Math.floor(Mi(e))),i=e/n;return(i<=1?1:i<=2?2:i<=5?5:10)*n}function Rh(e){const t=[],n=Math.sqrt(e);let i;for(i=1;i<n;i++)e%i===0&&(t.push(i),t.push(e/i));return n===(n|0)&&t.push(n),t.sort((s,o)=>s-o).pop(),t}function Lh(e){return typeof e=="symbol"||typeof e=="object"&&e!==null&&!(Symbol.toPrimitive in e||"toString"in e||"valueOf"in e)}function en(e){return!Lh(e)&&!isNaN(parseFloat(e))&&isFinite(e)}function Fh(e,t){const n=Math.round(e);return n-t<=e&&n+t>=e}function Ih(e,t,n){let i,s,o;for(i=0,s=e.length;i<s;i++)o=e[i][n],isNaN(o)||(t.min=Math.min(t.min,o),t.max=Math.max(t.max,o))}function ae(e){return e*(Z/180)}function jh(e){return e*(180/Z)}function Ys(e){if(!vt(e))return;let t=1,n=0;for(;Math.round(e*t)/t!==e;)t*=10,n++;return n}function qr(e,t){const n=t.x-e.x,i=t.y-e.y,s=Math.sqrt(n*n+i*i);let o=Math.atan2(i,n);return o<-.5*Z&&(o+=st),{angle:o,distance:s}}function Ci(e,t){return Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2))}function $h(e,t){return(e-t+Eh)%st-Z}function zt(e){return(e%st+st)%st}function qi(e,t,n,i){const s=zt(e),o=zt(t),r=zt(n),a=zt(o-s),l=zt(r-s),c=zt(s-o),h=zt(s-r);return s===o||s===r||i&&o===r||a>l&&c<h}function rt(e,t,n){return Math.max(t,Math.min(n,e))}function zh(e){return rt(e,-32768,32767)}function Bt(e,t,n,i=1e-6){return e>=Math.min(t,n)-i&&e<=Math.max(t,n)+i}function Ki(e,t,n){n=n||(r=>e[r]<t);let i=e.length-1,s=0,o;for(;i-s>1;)o=s+i>>1,n(o)?s=o:i=o;return{lo:s,hi:i}}const le=(e,t,n,i)=>Ki(e,n,i?s=>{const o=e[s][t];return o<n||o===n&&e[s+1][t]===n}:s=>e[s][t]<n),Nh=(e,t,n)=>Ki(e,n,i=>e[i][t]>=n);function Bh(e,t,n){let i=0,s=e.length;for(;i<s&&e[i]<t;)i++;for(;s>i&&e[s-1]>n;)s--;return i>0||s<e.length?e.slice(i,s):e}const Kr=["push","pop","shift","splice","unshift"];function Hh(e,t){if(e._chartjs){e._chartjs.listeners.push(t);return}Object.defineProperty(e,"_chartjs",{configurable:!0,enumerable:!1,value:{listeners:[t]}}),Kr.forEach(n=>{const i="_onData"+Xi(n),s=e[n];Object.defineProperty(e,n,{configurable:!0,enumerable:!1,value(...o){const r=s.apply(this,o);return e._chartjs.listeners.forEach(a=>{typeof a[i]=="function"&&a[i](...o)}),r}})})}function Us(e,t){const n=e._chartjs;if(!n)return;const i=n.listeners,s=i.indexOf(t);s!==-1&&i.splice(s,1),!(i.length>0)&&(Kr.forEach(o=>{delete e[o]}),delete e._chartjs)}function Gr(e){const t=new Set(e);return t.size===e.length?e:Array.from(t)}const Jr=function(){return typeof window>"u"?function(e){return e()}:window.requestAnimationFrame}();function Zr(e,t){let n=[],i=!1;return function(...s){n=s,i||(i=!0,Jr.call(window,()=>{i=!1,e.apply(t,n)}))}}function Wh(e,t){let n;return function(...i){return t?(clearTimeout(n),n=setTimeout(e,t,i)):e.apply(this,i),t}}const Gi=e=>e==="start"?"left":e==="end"?"right":"center",ot=(e,t,n)=>e==="start"?t:e==="end"?n:(t+n)/2,Vh=(e,t,n,i)=>e===(i?"left":"right")?n:e==="center"?(t+n)/2:t;function Yh(e,t,n){const i=t.length;let s=0,o=i;if(e._sorted){const{iScale:r,vScale:a,_parsed:l}=e,c=e.dataset&&e.dataset.options?e.dataset.options.spanGaps:null,h=r.axis,{min:u,max:d,minDefined:f,maxDefined:g}=r.getUserBounds();if(f){if(s=Math.min(le(l,h,u).lo,n?i:le(t,h,r.getPixelForValue(u)).lo),c){const m=l.slice(0,s+1).reverse().findIndex(p=>!B(p[a.axis]));s-=Math.max(0,m)}s=rt(s,0,i-1)}if(g){let m=Math.max(le(l,r.axis,d,!0).hi+1,n?0:le(t,h,r.getPixelForValue(d),!0).hi+1);if(c){const p=l.slice(m-1).findIndex(b=>!B(b[a.axis]));m+=Math.max(0,p)}o=rt(m,s,i)-s}else o=i-s}return{start:s,count:o}}function Uh(e){const{xScale:t,yScale:n,_scaleRanges:i}=e,s={xmin:t.min,xmax:t.max,ymin:n.min,ymax:n.max};if(!i)return e._scaleRanges=s,!0;const o=i.xmin!==t.min||i.xmax!==t.max||i.ymin!==n.min||i.ymax!==n.max;return Object.assign(i,s),o}const xn=e=>e===0||e===1,Xs=(e,t,n)=>-(Math.pow(2,10*(e-=1))*Math.sin((e-t)*st/n)),qs=(e,t,n)=>Math.pow(2,-10*e)*Math.sin((e-t)*st/n)+1,qe={linear:e=>e,easeInQuad:e=>e*e,easeOutQuad:e=>-e*(e-2),easeInOutQuad:e=>(e/=.5)<1?.5*e*e:-.5*(--e*(e-2)-1),easeInCubic:e=>e*e*e,easeOutCubic:e=>(e-=1)*e*e+1,easeInOutCubic:e=>(e/=.5)<1?.5*e*e*e:.5*((e-=2)*e*e+2),easeInQuart:e=>e*e*e*e,easeOutQuart:e=>-((e-=1)*e*e*e-1),easeInOutQuart:e=>(e/=.5)<1?.5*e*e*e*e:-.5*((e-=2)*e*e*e-2),easeInQuint:e=>e*e*e*e*e,easeOutQuint:e=>(e-=1)*e*e*e*e+1,easeInOutQuint:e=>(e/=.5)<1?.5*e*e*e*e*e:.5*((e-=2)*e*e*e*e+2),easeInSine:e=>-Math.cos(e*it)+1,easeOutSine:e=>Math.sin(e*it),easeInOutSine:e=>-.5*(Math.cos(Z*e)-1),easeInExpo:e=>e===0?0:Math.pow(2,10*(e-1)),easeOutExpo:e=>e===1?1:-Math.pow(2,-10*e)+1,easeInOutExpo:e=>xn(e)?e:e<.5?.5*Math.pow(2,10*(e*2-1)):.5*(-Math.pow(2,-10*(e*2-1))+2),easeInCirc:e=>e>=1?e:-(Math.sqrt(1-e*e)-1),easeOutCirc:e=>Math.sqrt(1-(e-=1)*e),easeInOutCirc:e=>(e/=.5)<1?-.5*(Math.sqrt(1-e*e)-1):.5*(Math.sqrt(1-(e-=2)*e)+1),easeInElastic:e=>xn(e)?e:Xs(e,.075,.3),easeOutElastic:e=>xn(e)?e:qs(e,.075,.3),easeInOutElastic(e){return xn(e)?e:e<.5?.5*Xs(e*2,.1125,.45):.5+.5*qs(e*2-1,.1125,.45)},easeInBack(e){return e*e*((1.70158+1)*e-1.70158)},easeOutBack(e){return(e-=1)*e*((1.70158+1)*e+1.70158)+1},easeInOutBack(e){let t=1.70158;return(e/=.5)<1?.5*(e*e*(((t*=1.525)+1)*e-t)):.5*((e-=2)*e*(((t*=1.525)+1)*e+t)+2)},easeInBounce:e=>1-qe.easeOutBounce(1-e),easeOutBounce(e){return e<1/2.75?7.5625*e*e:e<2/2.75?7.5625*(e-=1.5/2.75)*e+.75:e<2.5/2.75?7.5625*(e-=2.25/2.75)*e+.9375:7.5625*(e-=2.625/2.75)*e+.984375},easeInOutBounce:e=>e<.5?qe.easeInBounce(e*2)*.5:qe.easeOutBounce(e*2-1)*.5+.5};function Ji(e){if(e&&typeof e=="object"){const t=e.toString();return t==="[object CanvasPattern]"||t==="[object CanvasGradient]"}return!1}function Ks(e){return Ji(e)?e:new Ze(e)}function oi(e){return Ji(e)?e:new Ze(e).saturate(.5).darken(.1).hexString()}const Xh=["x","y","borderWidth","radius","tension"],qh=["color","borderColor","backgroundColor"];function Kh(e){e.set("animation",{delay:void 0,duration:1e3,easing:"easeOutQuart",fn:void 0,from:void 0,loop:void 0,to:void 0,type:void 0}),e.describe("animation",{_fallback:!1,_indexable:!1,_scriptable:t=>t!=="onProgress"&&t!=="onComplete"&&t!=="fn"}),e.set("animations",{colors:{type:"color",properties:qh},numbers:{type:"number",properties:Xh}}),e.describe("animations",{_fallback:"animation"}),e.set("transitions",{active:{animation:{duration:400}},resize:{animation:{duration:0}},show:{animations:{colors:{from:"transparent"},visible:{type:"boolean",duration:0}}},hide:{animations:{colors:{to:"transparent"},visible:{type:"boolean",easing:"linear",fn:t=>t|0}}}})}function Gh(e){e.set("layout",{autoPadding:!0,padding:{top:0,right:0,bottom:0,left:0}})}const Gs=new Map;function Jh(e,t){t=t||{};const n=e+JSON.stringify(t);let i=Gs.get(n);return i||(i=new Intl.NumberFormat(e,t),Gs.set(n,i)),i}function Qr(e,t,n){return Jh(t,n).format(e)}const ta={values(e){return J(e)?e:""+e},numeric(e,t,n){if(e===0)return"0";const i=this.chart.options.locale;let s,o=e;if(n.length>1){const c=Math.max(Math.abs(n[0].value),Math.abs(n[n.length-1].value));(c<1e-4||c>1e15)&&(s="scientific"),o=Zh(e,n)}const r=Mi(Math.abs(o)),a=isNaN(r)?1:Math.max(Math.min(-1*Math.floor(r),20),0),l={notation:s,minimumFractionDigits:a,maximumFractionDigits:a};return Object.assign(l,this.options.ticks.format),Qr(e,i,l)},logarithmic(e,t,n){if(e===0)return"0";const i=n[t].significand||e/Math.pow(10,Math.floor(Mi(e)));return[1,2,3,5,10,15].includes(i)||t>.8*n.length?ta.numeric.call(this,e,t,n):""}};function Zh(e,t){let n=t.length>3?t[2].value-t[1].value:t[1].value-t[0].value;return Math.abs(n)>=1&&e!==Math.floor(e)&&(n=e-Math.floor(e)),n}var ea={formatters:ta};function Qh(e){e.set("scale",{display:!0,offset:!1,reverse:!1,beginAtZero:!1,bounds:"ticks",clip:!0,grace:0,grid:{display:!0,lineWidth:1,drawOnChartArea:!0,drawTicks:!0,tickLength:8,tickWidth:(t,n)=>n.lineWidth,tickColor:(t,n)=>n.color,offset:!1},border:{display:!0,dash:[],dashOffset:0,width:1},title:{display:!1,text:"",padding:{top:4,bottom:4}},ticks:{minRotation:0,maxRotation:50,mirror:!1,textStrokeWidth:0,textStrokeColor:"",padding:3,display:!0,autoSkip:!0,autoSkipPadding:3,labelOffset:0,callback:ea.formatters.values,minor:{},major:{},align:"center",crossAlign:"near",showLabelBackdrop:!1,backdropColor:"rgba(255, 255, 255, 0.75)",backdropPadding:2}}),e.route("scale.ticks","color","","color"),e.route("scale.grid","color","","borderColor"),e.route("scale.border","color","","borderColor"),e.route("scale.title","color","","color"),e.describe("scale",{_fallback:!1,_scriptable:t=>!t.startsWith("before")&&!t.startsWith("after")&&t!=="callback"&&t!=="parser",_indexable:t=>t!=="borderDash"&&t!=="tickBorderDash"&&t!=="dash"}),e.describe("scales",{_fallback:"scale"}),e.describe("scale.ticks",{_scriptable:t=>t!=="backdropPadding"&&t!=="callback",_indexable:t=>t!=="backdropPadding"})}const fe=Object.create(null),Pi=Object.create(null);function Ke(e,t){if(!t)return e;const n=t.split(".");for(let i=0,s=n.length;i<s;++i){const o=n[i];e=e[o]||(e[o]=Object.create(null))}return e}function ri(e,t,n){return typeof t=="string"?Qe(Ke(e,t),n):Qe(Ke(e,""),t)}class tu{constructor(t,n){this.animation=void 0,this.backgroundColor="rgba(0,0,0,0.1)",this.borderColor="rgba(0,0,0,0.1)",this.color="#666",this.datasets={},this.devicePixelRatio=i=>i.chart.platform.getDevicePixelRatio(),this.elements={},this.events=["mousemove","mouseout","click","touchstart","touchmove"],this.font={family:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",size:12,style:"normal",lineHeight:1.2,weight:null},this.hover={},this.hoverBackgroundColor=(i,s)=>oi(s.backgroundColor),this.hoverBorderColor=(i,s)=>oi(s.borderColor),this.hoverColor=(i,s)=>oi(s.color),this.indexAxis="x",this.interaction={mode:"nearest",intersect:!0,includeInvisible:!1},this.maintainAspectRatio=!0,this.onHover=null,this.onClick=null,this.parsing=!0,this.plugins={},this.responsive=!0,this.scale=void 0,this.scales={},this.showLine=!0,this.drawActiveElementsOnTop=!0,this.describe(t),this.apply(n)}set(t,n){return ri(this,t,n)}get(t){return Ke(this,t)}describe(t,n){return ri(Pi,t,n)}override(t,n){return ri(fe,t,n)}route(t,n,i,s){const o=Ke(this,t),r=Ke(this,i),a="_"+n;Object.defineProperties(o,{[a]:{value:o[n],writable:!0},[n]:{enumerable:!0,get(){const l=this[a],c=r[s];return z(l)?Object.assign({},c,l):j(l,c)},set(l){this[a]=l}}})}apply(t){t.forEach(n=>n(this))}}var q=new tu({_scriptable:e=>!e.startsWith("on"),_indexable:e=>e!=="events",hover:{_fallback:"interaction"},interaction:{_scriptable:!1,_indexable:!1}},[Kh,Gh,Qh]);function eu(e){return!e||B(e.size)||B(e.family)?null:(e.style?e.style+" ":"")+(e.weight?e.weight+" ":"")+e.size+"px "+e.family}function Js(e,t,n,i,s){let o=t[s];return o||(o=t[s]=e.measureText(s).width,n.push(s)),o>i&&(i=o),i}function ee(e,t,n){const i=e.currentDevicePixelRatio,s=n!==0?Math.max(n/2,.5):0;return Math.round((t-s)*i)/i+s}function Zs(e,t){!t&&!e||(t=t||e.getContext("2d"),t.save(),t.resetTransform(),t.clearRect(0,0,e.width,e.height),t.restore())}function Oi(e,t,n,i){na(e,t,n,i,null)}function na(e,t,n,i,s){let o,r,a,l,c,h,u,d;const f=t.pointStyle,g=t.rotation,m=t.radius;let p=(g||0)*Th;if(f&&typeof f=="object"&&(o=f.toString(),o==="[object HTMLImageElement]"||o==="[object HTMLCanvasElement]")){e.save(),e.translate(n,i),e.rotate(p),e.drawImage(f,-f.width/2,-f.height/2,f.width,f.height),e.restore();return}if(!(isNaN(m)||m<=0)){switch(e.beginPath(),f){default:s?e.ellipse(n,i,s/2,m,0,0,st):e.arc(n,i,m,0,st),e.closePath();break;case"triangle":h=s?s/2:m,e.moveTo(n+Math.sin(p)*h,i-Math.cos(p)*m),p+=Ws,e.lineTo(n+Math.sin(p)*h,i-Math.cos(p)*m),p+=Ws,e.lineTo(n+Math.sin(p)*h,i-Math.cos(p)*m),e.closePath();break;case"rectRounded":c=m*.516,l=m-c,r=Math.cos(p+te)*l,u=Math.cos(p+te)*(s?s/2-c:l),a=Math.sin(p+te)*l,d=Math.sin(p+te)*(s?s/2-c:l),e.arc(n-u,i-a,c,p-Z,p-it),e.arc(n+d,i-r,c,p-it,p),e.arc(n+u,i+a,c,p,p+it),e.arc(n-d,i+r,c,p+it,p+Z),e.closePath();break;case"rect":if(!g){l=Math.SQRT1_2*m,h=s?s/2:l,e.rect(n-h,i-l,2*h,2*l);break}p+=te;case"rectRot":u=Math.cos(p)*(s?s/2:m),r=Math.cos(p)*m,a=Math.sin(p)*m,d=Math.sin(p)*(s?s/2:m),e.moveTo(n-u,i-a),e.lineTo(n+d,i-r),e.lineTo(n+u,i+a),e.lineTo(n-d,i+r),e.closePath();break;case"crossRot":p+=te;case"cross":u=Math.cos(p)*(s?s/2:m),r=Math.cos(p)*m,a=Math.sin(p)*m,d=Math.sin(p)*(s?s/2:m),e.moveTo(n-u,i-a),e.lineTo(n+u,i+a),e.moveTo(n+d,i-r),e.lineTo(n-d,i+r);break;case"star":u=Math.cos(p)*(s?s/2:m),r=Math.cos(p)*m,a=Math.sin(p)*m,d=Math.sin(p)*(s?s/2:m),e.moveTo(n-u,i-a),e.lineTo(n+u,i+a),e.moveTo(n+d,i-r),e.lineTo(n-d,i+r),p+=te,u=Math.cos(p)*(s?s/2:m),r=Math.cos(p)*m,a=Math.sin(p)*m,d=Math.sin(p)*(s?s/2:m),e.moveTo(n-u,i-a),e.lineTo(n+u,i+a),e.moveTo(n+d,i-r),e.lineTo(n-d,i+r);break;case"line":r=s?s/2:Math.cos(p)*m,a=Math.sin(p)*m,e.moveTo(n-r,i-a),e.lineTo(n+r,i+a);break;case"dash":e.moveTo(n,i),e.lineTo(n+Math.cos(p)*(s?s/2:m),i+Math.sin(p)*m);break;case!1:e.closePath();break}e.fill(),t.borderWidth>0&&e.stroke()}}function nn(e,t,n){return n=n||.5,!t||e&&e.x>t.left-n&&e.x<t.right+n&&e.y>t.top-n&&e.y<t.bottom+n}function Zi(e,t){e.save(),e.beginPath(),e.rect(t.left,t.top,t.right-t.left,t.bottom-t.top),e.clip()}function Qi(e){e.restore()}function nu(e,t,n,i,s){if(!t)return e.lineTo(n.x,n.y);if(s==="middle"){const o=(t.x+n.x)/2;e.lineTo(o,t.y),e.lineTo(o,n.y)}else s==="after"!=!!i?e.lineTo(t.x,n.y):e.lineTo(n.x,t.y);e.lineTo(n.x,n.y)}function iu(e,t,n,i){if(!t)return e.lineTo(n.x,n.y);e.bezierCurveTo(i?t.cp1x:t.cp2x,i?t.cp1y:t.cp2y,i?n.cp2x:n.cp1x,i?n.cp2y:n.cp1y,n.x,n.y)}function su(e,t){t.translation&&e.translate(t.translation[0],t.translation[1]),B(t.rotation)||e.rotate(t.rotation),t.color&&(e.fillStyle=t.color),t.textAlign&&(e.textAlign=t.textAlign),t.textBaseline&&(e.textBaseline=t.textBaseline)}function ou(e,t,n,i,s){if(s.strikethrough||s.underline){const o=e.measureText(i),r=t-o.actualBoundingBoxLeft,a=t+o.actualBoundingBoxRight,l=n-o.actualBoundingBoxAscent,c=n+o.actualBoundingBoxDescent,h=s.strikethrough?(l+c)/2:c;e.strokeStyle=e.fillStyle,e.beginPath(),e.lineWidth=s.decorationWidth||2,e.moveTo(r,h),e.lineTo(a,h),e.stroke()}}function ru(e,t){const n=e.fillStyle;e.fillStyle=t.color,e.fillRect(t.left,t.top,t.width,t.height),e.fillStyle=n}function sn(e,t,n,i,s,o={}){const r=J(t)?t:[t],a=o.strokeWidth>0&&o.strokeColor!=="";let l,c;for(e.save(),e.font=s.string,su(e,o),l=0;l<r.length;++l)c=r[l],o.backdrop&&ru(e,o.backdrop),a&&(o.strokeColor&&(e.strokeStyle=o.strokeColor),B(o.strokeWidth)||(e.lineWidth=o.strokeWidth),e.strokeText(c,n,i,o.maxWidth)),e.fillText(c,n,i,o.maxWidth),ou(e,n,i,c,o),i+=Number(s.lineHeight);e.restore()}function zn(e,t){const{x:n,y:i,w:s,h:o,radius:r}=t;e.arc(n+r.topLeft,i+r.topLeft,r.topLeft,1.5*Z,Z,!0),e.lineTo(n,i+o-r.bottomLeft),e.arc(n+r.bottomLeft,i+o-r.bottomLeft,r.bottomLeft,Z,it,!0),e.lineTo(n+s-r.bottomRight,i+o),e.arc(n+s-r.bottomRight,i+o-r.bottomRight,r.bottomRight,it,0,!0),e.lineTo(n+s,i+r.topRight),e.arc(n+s-r.topRight,i+r.topRight,r.topRight,0,-it,!0),e.lineTo(n+r.topLeft,i)}const au=/^(normal|(\d+(?:\.\d+)?)(px|em|%)?)$/,lu=/^(normal|italic|initial|inherit|unset|(oblique( -?[0-9]?[0-9]deg)?))$/;function cu(e,t){const n=(""+e).match(au);if(!n||n[1]==="normal")return t*1.2;switch(e=+n[2],n[3]){case"px":return e;case"%":e/=100;break}return t*e}const hu=e=>+e||0;function ts(e,t){const n={},i=z(t),s=i?Object.keys(t):t,o=z(e)?i?r=>j(e[r],e[t[r]]):r=>e[r]:()=>e;for(const r of s)n[r]=hu(o(r));return n}function ia(e){return ts(e,{top:"y",right:"x",bottom:"y",left:"x"})}function _e(e){return ts(e,["topLeft","topRight","bottomLeft","bottomRight"])}function _t(e){const t=ia(e);return t.width=t.left+t.right,t.height=t.top+t.bottom,t}function at(e,t){e=e||{},t=t||q.font;let n=j(e.size,t.size);typeof n=="string"&&(n=parseInt(n,10));let i=j(e.style,t.style);i&&!(""+i).match(lu)&&(console.warn('Invalid font style specified: "'+i+'"'),i=void 0);const s={family:j(e.family,t.family),lineHeight:cu(j(e.lineHeight,t.lineHeight),n),size:n,style:i,weight:j(e.weight,t.weight),string:""};return s.string=eu(s),s}function yn(e,t,n,i){let s,o,r;for(s=0,o=e.length;s<o;++s)if(r=e[s],r!==void 0&&(t!==void 0&&typeof r=="function"&&(r=r(t)),n!==void 0&&J(r)&&(r=r[n%r.length]),r!==void 0))return r}function uu(e,t,n){const{min:i,max:s}=e,o=Mh(t,(s-i)/2),r=(a,l)=>n&&a===0?0:a+l;return{min:r(i,-Math.abs(o)),max:r(s,o)}}function pe(e,t){return Object.assign(Object.create(e),t)}function es(e,t=[""],n,i,s=()=>e[0]){const o=n||e;typeof i>"u"&&(i=aa("_fallback",e));const r={[Symbol.toStringTag]:"Object",_cacheable:!0,_scopes:e,_rootScopes:o,_fallback:i,_getTarget:s,override:a=>es([a,...e],t,o,i)};return new Proxy(r,{deleteProperty(a,l){return delete a[l],delete a._keys,delete e[0][l],!0},get(a,l){return oa(a,l,()=>yu(l,t,e,a))},getOwnPropertyDescriptor(a,l){return Reflect.getOwnPropertyDescriptor(a._scopes[0],l)},getPrototypeOf(){return Reflect.getPrototypeOf(e[0])},has(a,l){return to(a).includes(l)},ownKeys(a){return to(a)},set(a,l,c){const h=a._storage||(a._storage=s());return a[l]=h[l]=c,delete a._keys,!0}})}function De(e,t,n,i){const s={_cacheable:!1,_proxy:e,_context:t,_subProxy:n,_stack:new Set,_descriptors:sa(e,i),setContext:o=>De(e,o,n,i),override:o=>De(e.override(o),t,n,i)};return new Proxy(s,{deleteProperty(o,r){return delete o[r],delete e[r],!0},get(o,r,a){return oa(o,r,()=>fu(o,r,a))},getOwnPropertyDescriptor(o,r){return o._descriptors.allKeys?Reflect.has(e,r)?{enumerable:!0,configurable:!0}:void 0:Reflect.getOwnPropertyDescriptor(e,r)},getPrototypeOf(){return Reflect.getPrototypeOf(e)},has(o,r){return Reflect.has(e,r)},ownKeys(){return Reflect.ownKeys(e)},set(o,r,a){return e[r]=a,delete o[r],!0}})}function sa(e,t={scriptable:!0,indexable:!0}){const{_scriptable:n=t.scriptable,_indexable:i=t.indexable,_allKeys:s=t.allKeys}=e;return{allKeys:s,scriptable:n,indexable:i,isScriptable:Xt(n)?n:()=>n,isIndexable:Xt(i)?i:()=>i}}const du=(e,t)=>e?e+Xi(t):t,ns=(e,t)=>z(t)&&e!=="adapters"&&(Object.getPrototypeOf(t)===null||t.constructor===Object);function oa(e,t,n){if(Object.prototype.hasOwnProperty.call(e,t)||t==="constructor")return e[t];const i=n();return e[t]=i,i}function fu(e,t,n){const{_proxy:i,_context:s,_subProxy:o,_descriptors:r}=e;let a=i[t];return Xt(a)&&r.isScriptable(t)&&(a=pu(t,a,e,n)),J(a)&&a.length&&(a=gu(t,a,e,r.isIndexable)),ns(t,a)&&(a=De(a,s,o&&o[t],r)),a}function pu(e,t,n,i){const{_proxy:s,_context:o,_subProxy:r,_stack:a}=n;if(a.has(e))throw new Error("Recursion detected: "+Array.from(a).join("->")+"->"+e);a.add(e);let l=t(o,r||i);return a.delete(e),ns(e,l)&&(l=is(s._scopes,s,e,l)),l}function gu(e,t,n,i){const{_proxy:s,_context:o,_subProxy:r,_descriptors:a}=n;if(typeof o.index<"u"&&i(e))return t[o.index%t.length];if(z(t[0])){const l=t,c=s._scopes.filter(h=>h!==l);t=[];for(const h of l){const u=is(c,s,e,h);t.push(De(u,o,r&&r[e],a))}}return t}function ra(e,t,n){return Xt(e)?e(t,n):e}const mu=(e,t)=>e===!0?t:typeof e=="string"?Oe(t,e):void 0;function bu(e,t,n,i,s){for(const o of t){const r=mu(n,o);if(r){e.add(r);const a=ra(r._fallback,n,s);if(typeof a<"u"&&a!==n&&a!==i)return a}else if(r===!1&&typeof i<"u"&&n!==i)return null}return!1}function is(e,t,n,i){const s=t._rootScopes,o=ra(t._fallback,n,i),r=[...e,...s],a=new Set;a.add(i);let l=Qs(a,r,n,o||n,i);return l===null||typeof o<"u"&&o!==n&&(l=Qs(a,r,o,l,i),l===null)?!1:es(Array.from(a),[""],s,o,()=>xu(t,n,i))}function Qs(e,t,n,i,s){for(;n;)n=bu(e,t,n,i,s);return n}function xu(e,t,n){const i=e._getTarget();t in i||(i[t]={});const s=i[t];return J(s)&&z(n)?n:s||{}}function yu(e,t,n,i){let s;for(const o of t)if(s=aa(du(o,e),n),typeof s<"u")return ns(e,s)?is(n,i,e,s):s}function aa(e,t){for(const n of t){if(!n)continue;const i=n[e];if(typeof i<"u")return i}}function to(e){let t=e._keys;return t||(t=e._keys=vu(e._scopes)),t}function vu(e){const t=new Set;for(const n of e)for(const i of Object.keys(n).filter(s=>!s.startsWith("_")))t.add(i);return Array.from(t)}const _u=Number.EPSILON||1e-14,Ae=(e,t)=>t<e.length&&!e[t].skip&&e[t],la=e=>e==="x"?"y":"x";function wu(e,t,n,i){const s=e.skip?t:e,o=t,r=n.skip?t:n,a=Ci(o,s),l=Ci(r,o);let c=a/(a+l),h=l/(a+l);c=isNaN(c)?0:c,h=isNaN(h)?0:h;const u=i*c,d=i*h;return{previous:{x:o.x-u*(r.x-s.x),y:o.y-u*(r.y-s.y)},next:{x:o.x+d*(r.x-s.x),y:o.y+d*(r.y-s.y)}}}function Su(e,t,n){const i=e.length;let s,o,r,a,l,c=Ae(e,0);for(let h=0;h<i-1;++h)if(l=c,c=Ae(e,h+1),!(!l||!c)){if(Xe(t[h],0,_u)){n[h]=n[h+1]=0;continue}s=n[h]/t[h],o=n[h+1]/t[h],a=Math.pow(s,2)+Math.pow(o,2),!(a<=9)&&(r=3/Math.sqrt(a),n[h]=s*r*t[h],n[h+1]=o*r*t[h])}}function ku(e,t,n="x"){const i=la(n),s=e.length;let o,r,a,l=Ae(e,0);for(let c=0;c<s;++c){if(r=a,a=l,l=Ae(e,c+1),!a)continue;const h=a[n],u=a[i];r&&(o=(h-r[n])/3,a[`cp1${n}`]=h-o,a[`cp1${i}`]=u-o*t[c]),l&&(o=(l[n]-h)/3,a[`cp2${n}`]=h+o,a[`cp2${i}`]=u+o*t[c])}}function Mu(e,t="x"){const n=la(t),i=e.length,s=Array(i).fill(0),o=Array(i);let r,a,l,c=Ae(e,0);for(r=0;r<i;++r)if(a=l,l=c,c=Ae(e,r+1),!!l){if(c){const h=c[t]-l[t];s[r]=h!==0?(c[n]-l[n])/h:0}o[r]=a?c?Dt(s[r-1])!==Dt(s[r])?0:(s[r-1]+s[r])/2:s[r-1]:s[r]}Su(e,s,o),ku(e,o,t)}function vn(e,t,n){return Math.max(Math.min(e,n),t)}function Cu(e,t){let n,i,s,o,r,a=nn(e[0],t);for(n=0,i=e.length;n<i;++n)r=o,o=a,a=n<i-1&&nn(e[n+1],t),o&&(s=e[n],r&&(s.cp1x=vn(s.cp1x,t.left,t.right),s.cp1y=vn(s.cp1y,t.top,t.bottom)),a&&(s.cp2x=vn(s.cp2x,t.left,t.right),s.cp2y=vn(s.cp2y,t.top,t.bottom)))}function Pu(e,t,n,i,s){let o,r,a,l;if(t.spanGaps&&(e=e.filter(c=>!c.skip)),t.cubicInterpolationMode==="monotone")Mu(e,s);else{let c=i?e[e.length-1]:e[0];for(o=0,r=e.length;o<r;++o)a=e[o],l=wu(c,a,e[Math.min(o+1,r-(i?0:1))%r],t.tension),a.cp1x=l.previous.x,a.cp1y=l.previous.y,a.cp2x=l.next.x,a.cp2y=l.next.y,c=a}t.capBezierPoints&&Cu(e,n)}function ss(){return typeof window<"u"&&typeof document<"u"}function os(e){let t=e.parentNode;return t&&t.toString()==="[object ShadowRoot]"&&(t=t.host),t}function Nn(e,t,n){let i;return typeof e=="string"?(i=parseInt(e,10),e.indexOf("%")!==-1&&(i=i/100*t.parentNode[n])):i=e,i}const Kn=e=>e.ownerDocument.defaultView.getComputedStyle(e,null);function Ou(e,t){return Kn(e).getPropertyValue(t)}const Du=["top","right","bottom","left"];function he(e,t,n){const i={};n=n?"-"+n:"";for(let s=0;s<4;s++){const o=Du[s];i[o]=parseFloat(e[t+"-"+o+n])||0}return i.width=i.left+i.right,i.height=i.top+i.bottom,i}const Au=(e,t,n)=>(e>0||t>0)&&(!n||!n.shadowRoot);function Eu(e,t){const n=e.touches,i=n&&n.length?n[0]:e,{offsetX:s,offsetY:o}=i;let r=!1,a,l;if(Au(s,o,e.target))a=s,l=o;else{const c=t.getBoundingClientRect();a=i.clientX-c.left,l=i.clientY-c.top,r=!0}return{x:a,y:l,box:r}}function oe(e,t){if("native"in e)return e;const{canvas:n,currentDevicePixelRatio:i}=t,s=Kn(n),o=s.boxSizing==="border-box",r=he(s,"padding"),a=he(s,"border","width"),{x:l,y:c,box:h}=Eu(e,n),u=r.left+(h&&a.left),d=r.top+(h&&a.top);let{width:f,height:g}=t;return o&&(f-=r.width+a.width,g-=r.height+a.height),{x:Math.round((l-u)/f*n.width/i),y:Math.round((c-d)/g*n.height/i)}}function Tu(e,t,n){let i,s;if(t===void 0||n===void 0){const o=e&&os(e);if(!o)t=e.clientWidth,n=e.clientHeight;else{const r=o.getBoundingClientRect(),a=Kn(o),l=he(a,"border","width"),c=he(a,"padding");t=r.width-c.width-l.width,n=r.height-c.height-l.height,i=Nn(a.maxWidth,o,"clientWidth"),s=Nn(a.maxHeight,o,"clientHeight")}}return{width:t,height:n,maxWidth:i||$n,maxHeight:s||$n}}const _n=e=>Math.round(e*10)/10;function Ru(e,t,n,i){const s=Kn(e),o=he(s,"margin"),r=Nn(s.maxWidth,e,"clientWidth")||$n,a=Nn(s.maxHeight,e,"clientHeight")||$n,l=Tu(e,t,n);let{width:c,height:h}=l;if(s.boxSizing==="content-box"){const d=he(s,"border","width"),f=he(s,"padding");c-=f.width+d.width,h-=f.height+d.height}return c=Math.max(0,c-o.width),h=Math.max(0,i?c/i:h-o.height),c=_n(Math.min(c,r,l.maxWidth)),h=_n(Math.min(h,a,l.maxHeight)),c&&!h&&(h=_n(c/2)),(t!==void 0||n!==void 0)&&i&&l.height&&h>l.height&&(h=l.height,c=_n(Math.floor(h*i))),{width:c,height:h}}function eo(e,t,n){const i=t||1,s=Math.floor(e.height*i),o=Math.floor(e.width*i);e.height=Math.floor(e.height),e.width=Math.floor(e.width);const r=e.canvas;return r.style&&(n||!r.style.height&&!r.style.width)&&(r.style.height=`${e.height}px`,r.style.width=`${e.width}px`),e.currentDevicePixelRatio!==i||r.height!==s||r.width!==o?(e.currentDevicePixelRatio=i,r.height=s,r.width=o,e.ctx.setTransform(i,0,0,i,0,0),!0):!1}const Lu=function(){let e=!1;try{const t={get passive(){return e=!0,!1}};ss()&&(window.addEventListener("test",null,t),window.removeEventListener("test",null,t))}catch{}return e}();function no(e,t){const n=Ou(e,t),i=n&&n.match(/^(\d+)(\.\d+)?px$/);return i?+i[1]:void 0}function re(e,t,n,i){return{x:e.x+n*(t.x-e.x),y:e.y+n*(t.y-e.y)}}function Fu(e,t,n,i){return{x:e.x+n*(t.x-e.x),y:i==="middle"?n<.5?e.y:t.y:i==="after"?n<1?e.y:t.y:n>0?t.y:e.y}}function Iu(e,t,n,i){const s={x:e.cp2x,y:e.cp2y},o={x:t.cp1x,y:t.cp1y},r=re(e,s,n),a=re(s,o,n),l=re(o,t,n),c=re(r,a,n),h=re(a,l,n);return re(c,h,n)}const ju=function(e,t){return{x(n){return e+e+t-n},setWidth(n){t=n},textAlign(n){return n==="center"?n:n==="right"?"left":"right"},xPlus(n,i){return n-i},leftForLtr(n,i){return n-i}}},$u=function(){return{x(e){return e},setWidth(e){},textAlign(e){return e},xPlus(e,t){return e+t},leftForLtr(e,t){return e}}};function we(e,t,n){return e?ju(t,n):$u()}function ca(e,t){let n,i;(t==="ltr"||t==="rtl")&&(n=e.canvas.style,i=[n.getPropertyValue("direction"),n.getPropertyPriority("direction")],n.setProperty("direction",t,"important"),e.prevTextDirection=i)}function ha(e,t){t!==void 0&&(delete e.prevTextDirection,e.canvas.style.setProperty("direction",t[0],t[1]))}function ua(e){return e==="angle"?{between:qi,compare:$h,normalize:zt}:{between:Bt,compare:(t,n)=>t-n,normalize:t=>t}}function io({start:e,end:t,count:n,loop:i,style:s}){return{start:e%n,end:t%n,loop:i&&(t-e+1)%n===0,style:s}}function zu(e,t,n){const{property:i,start:s,end:o}=n,{between:r,normalize:a}=ua(i),l=t.length;let{start:c,end:h,loop:u}=e,d,f;if(u){for(c+=l,h+=l,d=0,f=l;d<f&&r(a(t[c%l][i]),s,o);++d)c--,h--;c%=l,h%=l}return h<c&&(h+=l),{start:c,end:h,loop:u,style:e.style}}function Nu(e,t,n){if(!n)return[e];const{property:i,start:s,end:o}=n,r=t.length,{compare:a,between:l,normalize:c}=ua(i),{start:h,end:u,loop:d,style:f}=zu(e,t,n),g=[];let m=!1,p=null,b,x,v;const _=()=>l(s,v,b)&&a(s,v)!==0,y=()=>a(o,b)===0||l(o,v,b),w=()=>m||_(),k=()=>!m||y();for(let S=h,C=h;S<=u;++S)x=t[S%r],!x.skip&&(b=c(x[i]),b!==v&&(m=l(b,s,o),p===null&&w()&&(p=a(b,s)===0?S:C),p!==null&&k()&&(g.push(io({start:p,end:S,loop:d,count:r,style:f})),p=null),C=S,v=b));return p!==null&&g.push(io({start:p,end:u,loop:d,count:r,style:f})),g}function Bu(e,t){const n=[],i=e.segments;for(let s=0;s<i.length;s++){const o=Nu(i[s],e.points,t);o.length&&n.push(...o)}return n}function Hu(e,t,n,i){let s=0,o=t-1;if(n&&!i)for(;s<t&&!e[s].skip;)s++;for(;s<t&&e[s].skip;)s++;for(s%=t,n&&(o+=s);o>s&&e[o%t].skip;)o--;return o%=t,{start:s,end:o}}function Wu(e,t,n,i){const s=e.length,o=[];let r=t,a=e[t],l;for(l=t+1;l<=n;++l){const c=e[l%s];c.skip||c.stop?a.skip||(i=!1,o.push({start:t%s,end:(l-1)%s,loop:i}),t=r=c.stop?l:null):(r=l,a.skip&&(t=l)),a=c}return r!==null&&o.push({start:t%s,end:r%s,loop:i}),o}function Vu(e,t){const n=e.points,i=e.options.spanGaps,s=n.length;if(!s)return[];const o=!!e._loop,{start:r,end:a}=Hu(n,s,o,i);if(i===!0)return so(e,[{start:r,end:a,loop:o}],n,t);const l=a<r?a+s:a,c=!!e._fullLoop&&r===0&&a===s-1;return so(e,Wu(n,r,l,c),n,t)}function so(e,t,n,i){return!i||!i.setContext||!n?t:Yu(e,t,n,i)}function Yu(e,t,n,i){const s=e._chart.getContext(),o=oo(e.options),{_datasetIndex:r,options:{spanGaps:a}}=e,l=n.length,c=[];let h=o,u=t[0].start,d=u;function f(g,m,p,b){const x=a?-1:1;if(g!==m){for(g+=l;n[g%l].skip;)g-=x;for(;n[m%l].skip;)m+=x;g%l!==m%l&&(c.push({start:g%l,end:m%l,loop:p,style:b}),h=b,u=m%l)}}for(const g of t){u=a?u:g.start;let m=n[u%l],p;for(d=u+1;d<=g.end;d++){const b=n[d%l];p=oo(i.setContext(pe(s,{type:"segment",p0:m,p1:b,p0DataIndex:(d-1)%l,p1DataIndex:d%l,datasetIndex:r}))),Uu(p,h)&&f(u,d-1,g.loop,h),m=b,h=p}u<d-1&&f(u,d-1,g.loop,h)}return c}function oo(e){return{backgroundColor:e.backgroundColor,borderCapStyle:e.borderCapStyle,borderDash:e.borderDash,borderDashOffset:e.borderDashOffset,borderJoinStyle:e.borderJoinStyle,borderWidth:e.borderWidth,borderColor:e.borderColor}}function Uu(e,t){if(!t)return!1;const n=[],i=function(s,o){return Ji(o)?(n.includes(o)||n.push(o),n.indexOf(o)):o};return JSON.stringify(e,i)!==JSON.stringify(t,i)}/*! * Chart.js v4.4.8 * https://www.chartjs.org * (c) 2025 Chart.js Contributors * Released under the MIT License - */class Uu{constructor(){this._request=null,this._charts=new Map,this._running=!1,this._lastDate=void 0}_notify(t,n,i,s){const o=n.listeners[s],r=n.duration;o.forEach(a=>a({chart:t,initial:n.initial,numSteps:r,currentStep:Math.min(i-n.start,r)}))}_refresh(){this._request||(this._running=!0,this._request=Gr.call(window,()=>{this._update(),this._request=null,this._running&&this._refresh()}))}_update(t=Date.now()){let n=0;this._charts.forEach((i,s)=>{if(!i.running||!i.items.length)return;const o=i.items;let r=o.length-1,a=!1,l;for(;r>=0;--r)l=o[r],l._active?(l._total>i.duration&&(i.duration=l._total),l.tick(t),a=!0):(o[r]=o[o.length-1],o.pop());a&&(s.draw(),this._notify(s,i,t,"progress")),o.length||(i.running=!1,this._notify(s,i,t,"complete"),i.initial=!1),n+=o.length}),this._lastDate=t,n===0&&(this._running=!1)}_getAnims(t){const n=this._charts;let i=n.get(t);return i||(i={running:!1,initial:!0,items:[],listeners:{complete:[],progress:[]}},n.set(t,i)),i}listen(t,n,i){this._getAnims(t).listeners[n].push(i)}add(t,n){!n||!n.length||this._getAnims(t).items.push(...n)}has(t){return this._getAnims(t).items.length>0}start(t){const n=this._charts.get(t);n&&(n.running=!0,n.start=Date.now(),n.duration=n.items.reduce((i,s)=>Math.max(i,s._duration),0),this._refresh())}running(t){if(!this._running)return!1;const n=this._charts.get(t);return!(!n||!n.running||!n.items.length)}stop(t){const n=this._charts.get(t);if(!n||!n.items.length)return;const i=n.items;let s=i.length-1;for(;s>=0;--s)i[s].cancel();n.items=[],this._notify(t,n,Date.now(),"complete")}remove(t){return this._charts.delete(t)}}var Tt=new Uu;const oo="transparent",Xu={boolean(e,t,n){return n>.5?t:e},color(e,t,n){const i=qs(e||oo),s=i.valid&&qs(t||oo);return s&&s.valid?s.mix(i,n).hexString():t},number(e,t,n){return e+(t-e)*n}};class qu{constructor(t,n,i,s){const o=n[i];s=yn([t.to,s,o,t.from]);const r=yn([t.from,o,s]);this._active=!0,this._fn=t.fn||Xu[t.type||typeof r],this._easing=qe[t.easing]||qe.linear,this._start=Math.floor(Date.now()+(t.delay||0)),this._duration=this._total=Math.floor(t.duration),this._loop=!!t.loop,this._target=n,this._prop=i,this._from=r,this._to=s,this._promises=void 0}active(){return this._active}update(t,n,i){if(this._active){this._notify(!1);const s=this._target[this._prop],o=i-this._start,r=this._duration-o;this._start=i,this._duration=Math.floor(Math.max(r,t.duration)),this._total+=o,this._loop=!!t.loop,this._to=yn([t.to,n,s,t.from]),this._from=yn([t.from,s,n])}}cancel(){this._active&&(this.tick(Date.now()),this._active=!1,this._notify(!1))}tick(t){const n=t-this._start,i=this._duration,s=this._prop,o=this._from,r=this._loop,a=this._to;let l;if(this._active=o!==a&&(r||n<i),!this._active){this._target[s]=a,this._notify(!0);return}if(n<0){this._target[s]=o;return}l=n/i%2,l=r&&l>1?2-l:l,l=this._easing(Math.min(1,Math.max(0,l))),this._target[s]=this._fn(o,a,l)}wait(){const t=this._promises||(this._promises=[]);return new Promise((n,i)=>{t.push({res:n,rej:i})})}_notify(t){const n=t?"res":"rej",i=this._promises||[];for(let s=0;s<i.length;s++)i[s][n]()}}class ua{constructor(t,n){this._chart=t,this._properties=new Map,this.configure(n)}configure(t){if(!z(t))return;const n=Object.keys(q.animation),i=this._properties;Object.getOwnPropertyNames(t).forEach(s=>{const o=t[s];if(!z(o))return;const r={};for(const a of n)r[a]=o[a];(J(o.properties)&&o.properties||[s]).forEach(a=>{(a===s||!i.has(a))&&i.set(a,r)})})}_animateOptions(t,n){const i=n.options,s=Gu(t,i);if(!s)return[];const o=this._createAnimations(s,i);return i.$shared&&Ku(t.options.$animations,i).then(()=>{t.options=i},()=>{}),o}_createAnimations(t,n){const i=this._properties,s=[],o=t.$animations||(t.$animations={}),r=Object.keys(n),a=Date.now();let l;for(l=r.length-1;l>=0;--l){const c=r[l];if(c.charAt(0)==="$")continue;if(c==="options"){s.push(...this._animateOptions(t,n));continue}const h=n[c];let u=o[c];const d=i.get(c);if(u)if(d&&u.active()){u.update(d,h,a);continue}else u.cancel();if(!d||!d.duration){t[c]=h;continue}o[c]=u=new qu(d,t,c,h),s.push(u)}return s}update(t,n){if(this._properties.size===0){Object.assign(t,n);return}const i=this._createAnimations(t,n);if(i.length)return Tt.add(this._chart,i),!0}}function Ku(e,t){const n=[],i=Object.keys(t);for(let s=0;s<i.length;s++){const o=e[i[s]];o&&o.active()&&n.push(o.wait())}return Promise.all(n)}function Gu(e,t){if(!t)return;let n=e.options;if(!n){e.options=t;return}return n.$shared&&(e.options=n=Object.assign({},n,{$shared:!1,$animations:{}})),n}function ro(e,t){const n=e&&e.options||{},i=n.reverse,s=n.min===void 0?t:0,o=n.max===void 0?t:0;return{start:i?o:s,end:i?s:o}}function Ju(e,t,n){if(n===!1)return!1;const i=ro(e,n),s=ro(t,n);return{top:s.end,right:i.end,bottom:s.start,left:i.start}}function Zu(e){let t,n,i,s;return z(e)?(t=e.top,n=e.right,i=e.bottom,s=e.left):t=n=i=s=e,{top:t,right:n,bottom:i,left:s,disabled:e===!1}}function da(e,t){const n=[],i=e._getSortedDatasetMetas(t);let s,o;for(s=0,o=i.length;s<o;++s)n.push(i[s].index);return n}function ao(e,t,n,i={}){const s=e.keys,o=i.mode==="single";let r,a,l,c;if(t===null)return;let h=!1;for(r=0,a=s.length;r<a;++r){if(l=+s[r],l===n){if(h=!0,i.all)continue;break}c=e.values[l],vt(c)&&(o||t===0||Dt(t)===Dt(c))&&(t+=c)}return!h&&!i.all?0:t}function Qu(e,t){const{iScale:n,vScale:i}=t,s=n.axis==="x"?"x":"y",o=i.axis==="x"?"x":"y",r=Object.keys(e),a=new Array(r.length);let l,c,h;for(l=0,c=r.length;l<c;++l)h=r[l],a[l]={[s]:h,[o]:e[h]};return a}function ri(e,t){const n=e&&e.options.stacked;return n||n===void 0&&t.stack!==void 0}function td(e,t,n){return`${e.id}.${t.id}.${n.stack||n.type}`}function ed(e){const{min:t,max:n,minDefined:i,maxDefined:s}=e.getUserBounds();return{min:i?t:Number.NEGATIVE_INFINITY,max:s?n:Number.POSITIVE_INFINITY}}function nd(e,t,n){const i=e[t]||(e[t]={});return i[n]||(i[n]={})}function lo(e,t,n,i){for(const s of t.getMatchingVisibleMetas(i).reverse()){const o=e[s.index];if(n&&o>0||!n&&o<0)return s.index}return null}function co(e,t){const{chart:n,_cachedMeta:i}=e,s=n._stacks||(n._stacks={}),{iScale:o,vScale:r,index:a}=i,l=o.axis,c=r.axis,h=td(o,r,i),u=t.length;let d;for(let f=0;f<u;++f){const g=t[f],{[l]:m,[c]:p}=g,b=g._stacks||(g._stacks={});d=b[c]=nd(s,h,m),d[a]=p,d._top=lo(d,r,!0,i.type),d._bottom=lo(d,r,!1,i.type);const x=d._visualValues||(d._visualValues={});x[a]=p}}function ai(e,t){const n=e.scales;return Object.keys(n).filter(i=>n[i].axis===t).shift()}function id(e,t){return pe(e,{active:!1,dataset:void 0,datasetIndex:t,index:t,mode:"default",type:"dataset"})}function sd(e,t,n){return pe(e,{active:!1,dataIndex:t,parsed:void 0,raw:void 0,element:n,index:t,mode:"default",type:"data"})}function Fe(e,t){const n=e.controller.index,i=e.vScale&&e.vScale.axis;if(i){t=t||e._parsed;for(const s of t){const o=s._stacks;if(!o||o[i]===void 0||o[i][n]===void 0)return;delete o[i][n],o[i]._visualValues!==void 0&&o[i]._visualValues[n]!==void 0&&delete o[i]._visualValues[n]}}}const li=e=>e==="reset"||e==="none",ho=(e,t)=>t?e:Object.assign({},e),od=(e,t,n)=>e&&!t.hidden&&t._stacked&&{keys:da(n,!0),values:null};class Se{constructor(t,n){this.chart=t,this._ctx=t.ctx,this.index=n,this._cachedDataOpts={},this._cachedMeta=this.getMeta(),this._type=this._cachedMeta.type,this.options=void 0,this._parsing=!1,this._data=void 0,this._objectData=void 0,this._sharedOptions=void 0,this._drawStart=void 0,this._drawCount=void 0,this.enableOptionSharing=!1,this.supportsDecimation=!1,this.$context=void 0,this._syncList=[],this.datasetElementType=new.target.datasetElementType,this.dataElementType=new.target.dataElementType,this.initialize()}initialize(){const t=this._cachedMeta;this.configure(),this.linkScales(),t._stacked=ri(t.vScale,t),this.addElements(),this.options.fill&&!this.chart.isPluginEnabled("filler")&&console.warn("Tried to use the 'fill' option without the 'Filler' plugin enabled. Please import and register the 'Filler' plugin and make sure it is not disabled in the options")}updateIndex(t){this.index!==t&&Fe(this._cachedMeta),this.index=t}linkScales(){const t=this.chart,n=this._cachedMeta,i=this.getDataset(),s=(u,d,f,g)=>u==="x"?d:u==="r"?g:f,o=n.xAxisID=j(i.xAxisID,ai(t,"x")),r=n.yAxisID=j(i.yAxisID,ai(t,"y")),a=n.rAxisID=j(i.rAxisID,ai(t,"r")),l=n.indexAxis,c=n.iAxisID=s(l,o,r,a),h=n.vAxisID=s(l,r,o,a);n.xScale=this.getScaleForId(o),n.yScale=this.getScaleForId(r),n.rScale=this.getScaleForId(a),n.iScale=this.getScaleForId(c),n.vScale=this.getScaleForId(h)}getDataset(){return this.chart.data.datasets[this.index]}getMeta(){return this.chart.getDatasetMeta(this.index)}getScaleForId(t){return this.chart.scales[t]}_getOtherScale(t){const n=this._cachedMeta;return t===n.iScale?n.vScale:n.iScale}reset(){this._update("reset")}_destroy(){const t=this._cachedMeta;this._data&&Ys(this._data,this),t._stacked&&Fe(t)}_dataCheck(){const t=this.getDataset(),n=t.data||(t.data=[]),i=this._data;if(z(n)){const s=this._cachedMeta;this._data=Qu(n,s)}else if(i!==n){if(i){Ys(i,this);const s=this._cachedMeta;Fe(s),s._parsed=[]}n&&Object.isExtensible(n)&&Bh(n,this),this._syncList=[],this._data=n}}addElements(){const t=this._cachedMeta;this._dataCheck(),this.datasetElementType&&(t.dataset=new this.datasetElementType)}buildOrUpdateElements(t){const n=this._cachedMeta,i=this.getDataset();let s=!1;this._dataCheck();const o=n._stacked;n._stacked=ri(n.vScale,n),n.stack!==i.stack&&(s=!0,Fe(n),n.stack=i.stack),this._resyncElements(t),(s||o!==n._stacked)&&(co(this,n._parsed),n._stacked=ri(n.vScale,n))}configure(){const t=this.chart.config,n=t.datasetScopeKeys(this._type),i=t.getOptionScopes(this.getDataset(),n,!0);this.options=t.createResolver(i,this.getContext()),this._parsing=this.options.parsing,this._cachedDataOpts={}}parse(t,n){const{_cachedMeta:i,_data:s}=this,{iScale:o,_stacked:r}=i,a=o.axis;let l=t===0&&n===s.length?!0:i._sorted,c=t>0&&i._parsed[t-1],h,u,d;if(this._parsing===!1)i._parsed=s,i._sorted=!0,d=s;else{J(s[t])?d=this.parseArrayData(i,s,t,n):z(s[t])?d=this.parseObjectData(i,s,t,n):d=this.parsePrimitiveData(i,s,t,n);const f=()=>u[a]===null||c&&u[a]<c[a];for(h=0;h<n;++h)i._parsed[h+t]=u=d[h],l&&(f()&&(l=!1),c=u);i._sorted=l}r&&co(this,d)}parsePrimitiveData(t,n,i,s){const{iScale:o,vScale:r}=t,a=o.axis,l=r.axis,c=o.getLabels(),h=o===r,u=new Array(s);let d,f,g;for(d=0,f=s;d<f;++d)g=d+i,u[d]={[a]:h||o.parse(c[g],g),[l]:r.parse(n[g],g)};return u}parseArrayData(t,n,i,s){const{xScale:o,yScale:r}=t,a=new Array(s);let l,c,h,u;for(l=0,c=s;l<c;++l)h=l+i,u=n[h],a[l]={x:o.parse(u[0],h),y:r.parse(u[1],h)};return a}parseObjectData(t,n,i,s){const{xScale:o,yScale:r}=t,{xAxisKey:a="x",yAxisKey:l="y"}=this._parsing,c=new Array(s);let h,u,d,f;for(h=0,u=s;h<u;++h)d=h+i,f=n[d],c[h]={x:o.parse(Oe(f,a),d),y:r.parse(Oe(f,l),d)};return c}getParsed(t){return this._cachedMeta._parsed[t]}getDataElement(t){return this._cachedMeta.data[t]}applyStack(t,n,i){const s=this.chart,o=this._cachedMeta,r=n[t.axis],a={keys:da(s,!0),values:n._stacks[t.axis]._visualValues};return ao(a,r,o.index,{mode:i})}updateRangeFromParsed(t,n,i,s){const o=i[n.axis];let r=o===null?NaN:o;const a=s&&i._stacks[n.axis];s&&a&&(s.values=a,r=ao(s,o,this._cachedMeta.index)),t.min=Math.min(t.min,r),t.max=Math.max(t.max,r)}getMinMax(t,n){const i=this._cachedMeta,s=i._parsed,o=i._sorted&&t===i.iScale,r=s.length,a=this._getOtherScale(t),l=od(n,i,this.chart),c={min:Number.POSITIVE_INFINITY,max:Number.NEGATIVE_INFINITY},{min:h,max:u}=ed(a);let d,f;function g(){f=s[d];const m=f[a.axis];return!vt(f[t.axis])||h>m||u<m}for(d=0;d<r&&!(!g()&&(this.updateRangeFromParsed(c,t,f,l),o));++d);if(o){for(d=r-1;d>=0;--d)if(!g()){this.updateRangeFromParsed(c,t,f,l);break}}return c}getAllParsedValues(t){const n=this._cachedMeta._parsed,i=[];let s,o,r;for(s=0,o=n.length;s<o;++s)r=n[s][t.axis],vt(r)&&i.push(r);return i}getMaxOverflow(){return!1}getLabelAndValue(t){const n=this._cachedMeta,i=n.iScale,s=n.vScale,o=this.getParsed(t);return{label:i?""+i.getLabelForValue(o[i.axis]):"",value:s?""+s.getLabelForValue(o[s.axis]):""}}_update(t){const n=this._cachedMeta;this.update(t||"default"),n._clip=Zu(j(this.options.clip,Ju(n.xScale,n.yScale,this.getMaxOverflow())))}update(t){}draw(){const t=this._ctx,n=this.chart,i=this._cachedMeta,s=i.data||[],o=n.chartArea,r=[],a=this._drawStart||0,l=this._drawCount||s.length-a,c=this.options.drawActiveElementsOnTop;let h;for(i.dataset&&i.dataset.draw(t,o,a,l),h=a;h<a+l;++h){const u=s[h];u.hidden||(u.active&&c?r.push(u):u.draw(t,o))}for(h=0;h<r.length;++h)r[h].draw(t,o)}getStyle(t,n){const i=n?"active":"default";return t===void 0&&this._cachedMeta.dataset?this.resolveDatasetElementOptions(i):this.resolveDataElementOptions(t||0,i)}getContext(t,n,i){const s=this.getDataset();let o;if(t>=0&&t<this._cachedMeta.data.length){const r=this._cachedMeta.data[t];o=r.$context||(r.$context=sd(this.getContext(),t,r)),o.parsed=this.getParsed(t),o.raw=s.data[t],o.index=o.dataIndex=t}else o=this.$context||(this.$context=id(this.chart.getContext(),this.index)),o.dataset=s,o.index=o.datasetIndex=this.index;return o.active=!!n,o.mode=i,o}resolveDatasetElementOptions(t){return this._resolveElementOptions(this.datasetElementType.id,t)}resolveDataElementOptions(t,n){return this._resolveElementOptions(this.dataElementType.id,n,t)}_resolveElementOptions(t,n="default",i){const s=n==="active",o=this._cachedDataOpts,r=t+"-"+n,a=o[r],l=this.enableOptionSharing&&tn(i);if(a)return ho(a,l);const c=this.chart.config,h=c.datasetElementScopeKeys(this._type,t),u=s?[`${t}Hover`,"hover",t,""]:[t,""],d=c.getOptionScopes(this.getDataset(),h),f=Object.keys(q.elements[t]),g=()=>this.getContext(i,s,n),m=c.resolveNamedOptions(d,f,g,u);return m.$shared&&(m.$shared=l,o[r]=Object.freeze(ho(m,l))),m}_resolveAnimations(t,n,i){const s=this.chart,o=this._cachedDataOpts,r=`animation-${n}`,a=o[r];if(a)return a;let l;if(s.options.animation!==!1){const h=this.chart.config,u=h.datasetAnimationScopeKeys(this._type,n),d=h.getOptionScopes(this.getDataset(),u);l=h.createResolver(d,this.getContext(t,i,n))}const c=new ua(s,l&&l.animations);return l&&l._cacheable&&(o[r]=Object.freeze(c)),c}getSharedOptions(t){if(t.$shared)return this._sharedOptions||(this._sharedOptions=Object.assign({},t))}includeOptions(t,n){return!n||li(t)||this.chart._animationsDisabled}_getSharedOptions(t,n){const i=this.resolveDataElementOptions(t,n),s=this._sharedOptions,o=this.getSharedOptions(i),r=this.includeOptions(n,o)||o!==s;return this.updateSharedOptions(o,n,i),{sharedOptions:o,includeOptions:r}}updateElement(t,n,i,s){li(s)?Object.assign(t,i):this._resolveAnimations(n,s).update(t,i)}updateSharedOptions(t,n,i){t&&!li(n)&&this._resolveAnimations(void 0,n).update(t,i)}_setStyle(t,n,i,s){t.active=s;const o=this.getStyle(n,s);this._resolveAnimations(n,i,s).update(t,{options:!s&&this.getSharedOptions(o)||o})}removeHoverStyle(t,n,i){this._setStyle(t,i,"active",!1)}setHoverStyle(t,n,i){this._setStyle(t,i,"active",!0)}_removeDatasetHoverStyle(){const t=this._cachedMeta.dataset;t&&this._setStyle(t,void 0,"active",!1)}_setDatasetHoverStyle(){const t=this._cachedMeta.dataset;t&&this._setStyle(t,void 0,"active",!0)}_resyncElements(t){const n=this._data,i=this._cachedMeta.data;for(const[a,l,c]of this._syncList)this[a](l,c);this._syncList=[];const s=i.length,o=n.length,r=Math.min(o,s);r&&this.parse(0,r),o>s?this._insertElements(s,o-s,t):o<s&&this._removeElements(o,s-o)}_insertElements(t,n,i=!0){const s=this._cachedMeta,o=s.data,r=t+n;let a;const l=c=>{for(c.length+=n,a=c.length-1;a>=r;a--)c[a]=c[a-n]};for(l(o),a=t;a<r;++a)o[a]=new this.dataElementType;this._parsing&&l(s._parsed),this.parse(t,n),i&&this.updateElements(o,t,n,"reset")}updateElements(t,n,i,s){}_removeElements(t,n){const i=this._cachedMeta;if(this._parsing){const s=i._parsed.splice(t,n);i._stacked&&Fe(i,s)}i.data.splice(t,n)}_sync(t){if(this._parsing)this._syncList.push(t);else{const[n,i,s]=t;this[n](i,s)}this.chart._dataChanges.push([this.index,...t])}_onDataPush(){const t=arguments.length;this._sync(["_insertElements",this.getDataset().data.length-t,t])}_onDataPop(){this._sync(["_removeElements",this._cachedMeta.data.length-1,1])}_onDataShift(){this._sync(["_removeElements",0,1])}_onDataSplice(t,n){n&&this._sync(["_removeElements",t,n]);const i=arguments.length-2;i&&this._sync(["_insertElements",t,i])}_onDataUnshift(){this._sync(["_insertElements",0,arguments.length])}}R(Se,"defaults",{}),R(Se,"datasetElementType",null),R(Se,"dataElementType",null);function rd(e,t){if(!e._cache.$bar){const n=e.getMatchingVisibleMetas(t);let i=[];for(let s=0,o=n.length;s<o;s++)i=i.concat(n[s].controller.getAllParsedValues(e));e._cache.$bar=Kr(i.sort((s,o)=>s-o))}return e._cache.$bar}function ad(e){const t=e.iScale,n=rd(t,e.type);let i=t._length,s,o,r,a;const l=()=>{r===32767||r===-32768||(tn(a)&&(i=Math.min(i,Math.abs(r-a)||i)),a=r)};for(s=0,o=n.length;s<o;++s)r=t.getPixelForValue(n[s]),l();for(a=void 0,s=0,o=t.ticks.length;s<o;++s)r=t.getPixelForTick(s),l();return i}function ld(e,t,n,i){const s=n.barThickness;let o,r;return B(s)?(o=t.min*n.categoryPercentage,r=n.barPercentage):(o=s*i,r=1),{chunk:o/i,ratio:r,start:t.pixels[e]-o/2}}function cd(e,t,n,i){const s=t.pixels,o=s[e];let r=e>0?s[e-1]:null,a=e<s.length-1?s[e+1]:null;const l=n.categoryPercentage;r===null&&(r=o-(a===null?t.end-t.start:a-o)),a===null&&(a=o+o-r);const c=o-(o-Math.min(r,a))/2*l;return{chunk:Math.abs(a-r)/2*l/i,ratio:n.barPercentage,start:c}}function hd(e,t,n,i){const s=n.parse(e[0],i),o=n.parse(e[1],i),r=Math.min(s,o),a=Math.max(s,o);let l=r,c=a;Math.abs(r)>Math.abs(a)&&(l=a,c=r),t[n.axis]=c,t._custom={barStart:l,barEnd:c,start:s,end:o,min:r,max:a}}function fa(e,t,n,i){return J(e)?hd(e,t,n,i):t[n.axis]=n.parse(e,i),t}function uo(e,t,n,i){const s=e.iScale,o=e.vScale,r=s.getLabels(),a=s===o,l=[];let c,h,u,d;for(c=n,h=n+i;c<h;++c)d=t[c],u={},u[s.axis]=a||s.parse(r[c],c),l.push(fa(d,u,o,c));return l}function ci(e){return e&&e.barStart!==void 0&&e.barEnd!==void 0}function ud(e,t,n){return e!==0?Dt(e):(t.isHorizontal()?1:-1)*(t.min>=n?1:-1)}function dd(e){let t,n,i,s,o;return e.horizontal?(t=e.base>e.x,n="left",i="right"):(t=e.base<e.y,n="bottom",i="top"),t?(s="end",o="start"):(s="start",o="end"),{start:n,end:i,reverse:t,top:s,bottom:o}}function fd(e,t,n,i){let s=t.borderSkipped;const o={};if(!s){e.borderSkipped=o;return}if(s===!0){e.borderSkipped={top:!0,right:!0,bottom:!0,left:!0};return}const{start:r,end:a,reverse:l,top:c,bottom:h}=dd(e);s==="middle"&&n&&(e.enableBorderRadius=!0,(n._top||0)===i?s=c:(n._bottom||0)===i?s=h:(o[fo(h,r,a,l)]=!0,s=c)),o[fo(s,r,a,l)]=!0,e.borderSkipped=o}function fo(e,t,n,i){return i?(e=pd(e,t,n),e=po(e,n,t)):e=po(e,t,n),e}function pd(e,t,n){return e===t?n:e===n?t:e}function po(e,t,n){return e==="start"?t:e==="end"?n:e}function gd(e,{inflateAmount:t},n){e.inflateAmount=t==="auto"?n===1?.33:0:t}class hi extends Se{parsePrimitiveData(t,n,i,s){return uo(t,n,i,s)}parseArrayData(t,n,i,s){return uo(t,n,i,s)}parseObjectData(t,n,i,s){const{iScale:o,vScale:r}=t,{xAxisKey:a="x",yAxisKey:l="y"}=this._parsing,c=o.axis==="x"?a:l,h=r.axis==="x"?a:l,u=[];let d,f,g,m;for(d=i,f=i+s;d<f;++d)m=n[d],g={},g[o.axis]=o.parse(Oe(m,c),d),u.push(fa(Oe(m,h),g,r,d));return u}updateRangeFromParsed(t,n,i,s){super.updateRangeFromParsed(t,n,i,s);const o=i._custom;o&&n===this._cachedMeta.vScale&&(t.min=Math.min(t.min,o.min),t.max=Math.max(t.max,o.max))}getMaxOverflow(){return 0}getLabelAndValue(t){const n=this._cachedMeta,{iScale:i,vScale:s}=n,o=this.getParsed(t),r=o._custom,a=ci(r)?"["+r.start+", "+r.end+"]":""+s.getLabelForValue(o[s.axis]);return{label:""+i.getLabelForValue(o[i.axis]),value:a}}initialize(){this.enableOptionSharing=!0,super.initialize();const t=this._cachedMeta;t.stack=this.getDataset().stack}update(t){const n=this._cachedMeta;this.updateElements(n.data,0,n.data.length,t)}updateElements(t,n,i,s){const o=s==="reset",{index:r,_cachedMeta:{vScale:a}}=this,l=a.getBasePixel(),c=a.isHorizontal(),h=this._getRuler(),{sharedOptions:u,includeOptions:d}=this._getSharedOptions(n,s);for(let f=n;f<n+i;f++){const g=this.getParsed(f),m=o||B(g[a.axis])?{base:l,head:l}:this._calculateBarValuePixels(f),p=this._calculateBarIndexPixels(f,h),b=(g._stacks||{})[a.axis],x={horizontal:c,base:m.base,enableBorderRadius:!b||ci(g._custom)||r===b._top||r===b._bottom,x:c?m.head:p.center,y:c?p.center:m.head,height:c?p.size:Math.abs(m.size),width:c?Math.abs(m.size):p.size};d&&(x.options=u||this.resolveDataElementOptions(f,t[f].active?"active":s));const v=x.options||t[f].options;fd(x,v,b,r),gd(x,v,h.ratio),this.updateElement(t[f],f,x,s)}}_getStacks(t,n){const{iScale:i}=this._cachedMeta,s=i.getMatchingVisibleMetas(this._type).filter(h=>h.controller.options.grouped),o=i.options.stacked,r=[],a=this._cachedMeta.controller.getParsed(n),l=a&&a[i.axis],c=h=>{const u=h._parsed.find(f=>f[i.axis]===l),d=u&&u[h.vScale.axis];if(B(d)||isNaN(d))return!0};for(const h of s)if(!(n!==void 0&&c(h))&&((o===!1||r.indexOf(h.stack)===-1||o===void 0&&h.stack===void 0)&&r.push(h.stack),h.index===t))break;return r.length||r.push(void 0),r}_getStackCount(t){return this._getStacks(void 0,t).length}_getStackIndex(t,n,i){const s=this._getStacks(t,i),o=n!==void 0?s.indexOf(n):-1;return o===-1?s.length-1:o}_getRuler(){const t=this.options,n=this._cachedMeta,i=n.iScale,s=[];let o,r;for(o=0,r=n.data.length;o<r;++o)s.push(i.getPixelForValue(this.getParsed(o)[i.axis],o));const a=t.barThickness;return{min:a||ad(n),pixels:s,start:i._startPixel,end:i._endPixel,stackCount:this._getStackCount(),scale:i,grouped:t.grouped,ratio:a?1:t.categoryPercentage*t.barPercentage}}_calculateBarValuePixels(t){const{_cachedMeta:{vScale:n,_stacked:i,index:s},options:{base:o,minBarLength:r}}=this,a=o||0,l=this.getParsed(t),c=l._custom,h=ci(c);let u=l[n.axis],d=0,f=i?this.applyStack(n,l,i):u,g,m;f!==u&&(d=f-u,f=u),h&&(u=c.barStart,f=c.barEnd-c.barStart,u!==0&&Dt(u)!==Dt(c.barEnd)&&(d=0),d+=u);const p=!B(o)&&!h?o:d;let b=n.getPixelForValue(p);if(this.chart.getDataVisibility(t)?g=n.getPixelForValue(d+f):g=b,m=g-b,Math.abs(m)<r){m=ud(m,n,a)*r,u===a&&(b-=m/2);const x=n.getPixelForDecimal(0),v=n.getPixelForDecimal(1),_=Math.min(x,v),y=Math.max(x,v);b=Math.max(Math.min(b,y),_),g=b+m,i&&!h&&(l._stacks[n.axis]._visualValues[s]=n.getValueForPixel(g)-n.getValueForPixel(b))}if(b===n.getPixelForValue(a)){const x=Dt(m)*n.getLineWidthForValue(a)/2;b+=x,m-=x}return{size:m,base:b,head:g,center:g+m/2}}_calculateBarIndexPixels(t,n){const i=n.scale,s=this.options,o=s.skipNull,r=j(s.maxBarThickness,1/0);let a,l;if(n.grouped){const c=o?this._getStackCount(t):n.stackCount,h=s.barThickness==="flex"?cd(t,n,s,c):ld(t,n,s,c),u=this._getStackIndex(this.index,this._cachedMeta.stack,o?t:void 0);a=h.start+h.chunk*u+h.chunk/2,l=Math.min(r,h.chunk*h.ratio)}else a=i.getPixelForValue(this.getParsed(t)[i.axis],t),l=Math.min(r,n.min*n.ratio);return{base:a-l/2,head:a+l/2,center:a,size:l}}draw(){const t=this._cachedMeta,n=t.vScale,i=t.data,s=i.length;let o=0;for(;o<s;++o)this.getParsed(o)[n.axis]!==null&&!i[o].hidden&&i[o].draw(this._ctx)}}R(hi,"id","bar"),R(hi,"defaults",{datasetElementType:!1,dataElementType:"bar",categoryPercentage:.8,barPercentage:.9,grouped:!0,animations:{numbers:{type:"number",properties:["x","y","base","width","height"]}}}),R(hi,"overrides",{scales:{_index_:{type:"category",offset:!0,grid:{offset:!0}},_value_:{type:"linear",beginAtZero:!0}}});class ui extends Se{initialize(){this.enableOptionSharing=!0,this.supportsDecimation=!0,super.initialize()}update(t){const n=this._cachedMeta,{dataset:i,data:s=[],_dataset:o}=n,r=this.chart._animationsDisabled;let{start:a,count:l}=Vh(n,s,r);this._drawStart=a,this._drawCount=l,Yh(n)&&(a=0,l=s.length),i._chart=this.chart,i._datasetIndex=this.index,i._decimated=!!o._decimated,i.points=s;const c=this.resolveDatasetElementOptions(t);this.options.showLine||(c.borderWidth=0),c.segment=this.options.segment,this.updateElement(i,void 0,{animated:!r,options:c},t),this.updateElements(s,a,l,t)}updateElements(t,n,i,s){const o=s==="reset",{iScale:r,vScale:a,_stacked:l,_dataset:c}=this._cachedMeta,{sharedOptions:h,includeOptions:u}=this._getSharedOptions(n,s),d=r.axis,f=a.axis,{spanGaps:g,segment:m}=this.options,p=en(g)?g:Number.POSITIVE_INFINITY,b=this.chart._animationsDisabled||o||s==="none",x=n+i,v=t.length;let _=n>0&&this.getParsed(n-1);for(let y=0;y<v;++y){const w=t[y],k=b?w:{};if(y<n||y>=x){k.skip=!0;continue}const S=this.getParsed(y),C=B(S[f]),D=k[d]=r.getPixelForValue(S[d],y),P=k[f]=o||C?a.getBasePixel():a.getPixelForValue(l?this.applyStack(a,S,l):S[f],y);k.skip=isNaN(D)||isNaN(P)||C,k.stop=y>0&&Math.abs(S[d]-_[d])>p,m&&(k.parsed=S,k.raw=c.data[y]),u&&(k.options=h||this.resolveDataElementOptions(y,w.active?"active":s)),b||this.updateElement(w,y,k,s),_=S}}getMaxOverflow(){const t=this._cachedMeta,n=t.dataset,i=n.options&&n.options.borderWidth||0,s=t.data||[];if(!s.length)return i;const o=s[0].size(this.resolveDataElementOptions(0)),r=s[s.length-1].size(this.resolveDataElementOptions(s.length-1));return Math.max(i,o,r)/2}draw(){const t=this._cachedMeta;t.dataset.updateControlPoints(this.chart.chartArea,t.iScale.axis),super.draw()}}R(ui,"id","line"),R(ui,"defaults",{datasetElementType:"line",dataElementType:"point",showLine:!0,spanGaps:!1}),R(ui,"overrides",{scales:{_index_:{type:"category"},_value_:{type:"linear"}}});function ne(){throw new Error("This method is not implemented: Check that a complete date adapter is provided.")}class os{constructor(t){R(this,"options");this.options=t||{}}static override(t){Object.assign(os.prototype,t)}init(){}formats(){return ne()}parse(){return ne()}format(){return ne()}add(){return ne()}diff(){return ne()}startOf(){return ne()}endOf(){return ne()}}var md={_date:os};function bd(e,t,n,i){const{controller:s,data:o,_sorted:r}=e,a=s._cachedMeta.iScale,l=e.dataset&&e.dataset.options?e.dataset.options.spanGaps:null;if(a&&t===a.axis&&t!=="r"&&r&&o.length){const c=a._reversePixels?zh:le;if(i){if(s._sharedOptions){const h=o[0],u=typeof h.getRange=="function"&&h.getRange(t);if(u){const d=c(o,t,n-u),f=c(o,t,n+u);return{lo:d.lo,hi:f.hi}}}}else{const h=c(o,t,n);if(l){const{vScale:u}=s._cachedMeta,{_parsed:d}=e,f=d.slice(0,h.lo+1).reverse().findIndex(m=>!B(m[u.axis]));h.lo-=Math.max(0,f);const g=d.slice(h.hi).findIndex(m=>!B(m[u.axis]));h.hi+=Math.max(0,g)}return h}}return{lo:0,hi:o.length-1}}function un(e,t,n,i,s){const o=e.getSortedVisibleDatasetMetas(),r=n[t];for(let a=0,l=o.length;a<l;++a){const{index:c,data:h}=o[a],{lo:u,hi:d}=bd(o[a],t,r,s);for(let f=u;f<=d;++f){const g=h[f];g.skip||i(g,c,f)}}}function xd(e){const t=e.indexOf("x")!==-1,n=e.indexOf("y")!==-1;return function(i,s){const o=t?Math.abs(i.x-s.x):0,r=n?Math.abs(i.y-s.y):0;return Math.sqrt(Math.pow(o,2)+Math.pow(r,2))}}function di(e,t,n,i,s){const o=[];return!s&&!e.isPointInArea(t)||un(e,n,t,function(a,l,c){!s&&!nn(a,e.chartArea,0)||a.inRange(t.x,t.y,i)&&o.push({element:a,datasetIndex:l,index:c})},!0),o}function yd(e,t,n,i){let s=[];function o(r,a,l){const{startAngle:c,endAngle:h}=r.getProps(["startAngle","endAngle"],i),{angle:u}=Xr(r,{x:t.x,y:t.y});Xi(u,c,h)&&s.push({element:r,datasetIndex:a,index:l})}return un(e,n,t,o),s}function vd(e,t,n,i,s,o){let r=[];const a=xd(n);let l=Number.POSITIVE_INFINITY;function c(h,u,d){const f=h.inRange(t.x,t.y,s);if(i&&!f)return;const g=h.getCenterPoint(s);if(!(!!o||e.isPointInArea(g))&&!f)return;const p=a(t,g);p<l?(r=[{element:h,datasetIndex:u,index:d}],l=p):p===l&&r.push({element:h,datasetIndex:u,index:d})}return un(e,n,t,c),r}function fi(e,t,n,i,s,o){return!o&&!e.isPointInArea(t)?[]:n==="r"&&!i?yd(e,t,n,s):vd(e,t,n,i,s,o)}function go(e,t,n,i,s){const o=[],r=n==="x"?"inXRange":"inYRange";let a=!1;return un(e,n,t,(l,c,h)=>{l[r]&&l[r](t[n],s)&&(o.push({element:l,datasetIndex:c,index:h}),a=a||l.inRange(t.x,t.y,s))}),i&&!a?[]:o}var _d={evaluateInteractionItems:un,modes:{index(e,t,n,i){const s=oe(t,e),o=n.axis||"x",r=n.includeInvisible||!1,a=n.intersect?di(e,s,o,i,r):fi(e,s,o,!1,i,r),l=[];return a.length?(e.getSortedVisibleDatasetMetas().forEach(c=>{const h=a[0].index,u=c.data[h];u&&!u.skip&&l.push({element:u,datasetIndex:c.index,index:h})}),l):[]},dataset(e,t,n,i){const s=oe(t,e),o=n.axis||"xy",r=n.includeInvisible||!1;let a=n.intersect?di(e,s,o,i,r):fi(e,s,o,!1,i,r);if(a.length>0){const l=a[0].datasetIndex,c=e.getDatasetMeta(l).data;a=[];for(let h=0;h<c.length;++h)a.push({element:c[h],datasetIndex:l,index:h})}return a},point(e,t,n,i){const s=oe(t,e),o=n.axis||"xy",r=n.includeInvisible||!1;return di(e,s,o,i,r)},nearest(e,t,n,i){const s=oe(t,e),o=n.axis||"xy",r=n.includeInvisible||!1;return fi(e,s,o,n.intersect,i,r)},x(e,t,n,i){const s=oe(t,e);return go(e,s,"x",n.intersect,i)},y(e,t,n,i){const s=oe(t,e);return go(e,s,"y",n.intersect,i)}}};const pa=["left","top","right","bottom"];function Ie(e,t){return e.filter(n=>n.pos===t)}function mo(e,t){return e.filter(n=>pa.indexOf(n.pos)===-1&&n.box.axis===t)}function je(e,t){return e.sort((n,i)=>{const s=t?i:n,o=t?n:i;return s.weight===o.weight?s.index-o.index:s.weight-o.weight})}function wd(e){const t=[];let n,i,s,o,r,a;for(n=0,i=(e||[]).length;n<i;++n)s=e[n],{position:o,options:{stack:r,stackWeight:a=1}}=s,t.push({index:n,box:s,pos:o,horizontal:s.isHorizontal(),weight:s.weight,stack:r&&o+r,stackWeight:a});return t}function Sd(e){const t={};for(const n of e){const{stack:i,pos:s,stackWeight:o}=n;if(!i||!pa.includes(s))continue;const r=t[i]||(t[i]={count:0,placed:0,weight:0,size:0});r.count++,r.weight+=o}return t}function kd(e,t){const n=Sd(e),{vBoxMaxWidth:i,hBoxMaxHeight:s}=t;let o,r,a;for(o=0,r=e.length;o<r;++o){a=e[o];const{fullSize:l}=a.box,c=n[a.stack],h=c&&a.stackWeight/c.weight;a.horizontal?(a.width=h?h*i:l&&t.availableWidth,a.height=s):(a.width=i,a.height=h?h*s:l&&t.availableHeight)}return n}function Md(e){const t=wd(e),n=je(t.filter(c=>c.box.fullSize),!0),i=je(Ie(t,"left"),!0),s=je(Ie(t,"right")),o=je(Ie(t,"top"),!0),r=je(Ie(t,"bottom")),a=mo(t,"x"),l=mo(t,"y");return{fullSize:n,leftAndTop:i.concat(o),rightAndBottom:s.concat(l).concat(r).concat(a),chartArea:Ie(t,"chartArea"),vertical:i.concat(s).concat(l),horizontal:o.concat(r).concat(a)}}function bo(e,t,n,i){return Math.max(e[n],t[n])+Math.max(e[i],t[i])}function ga(e,t){e.top=Math.max(e.top,t.top),e.left=Math.max(e.left,t.left),e.bottom=Math.max(e.bottom,t.bottom),e.right=Math.max(e.right,t.right)}function Cd(e,t,n,i){const{pos:s,box:o}=n,r=e.maxPadding;if(!z(s)){n.size&&(e[s]-=n.size);const u=i[n.stack]||{size:0,count:1};u.size=Math.max(u.size,n.horizontal?o.height:o.width),n.size=u.size/u.count,e[s]+=n.size}o.getPadding&&ga(r,o.getPadding());const a=Math.max(0,t.outerWidth-bo(r,e,"left","right")),l=Math.max(0,t.outerHeight-bo(r,e,"top","bottom")),c=a!==e.w,h=l!==e.h;return e.w=a,e.h=l,n.horizontal?{same:c,other:h}:{same:h,other:c}}function Pd(e){const t=e.maxPadding;function n(i){const s=Math.max(t[i]-e[i],0);return e[i]+=s,s}e.y+=n("top"),e.x+=n("left"),n("right"),n("bottom")}function Od(e,t){const n=t.maxPadding;function i(s){const o={left:0,top:0,right:0,bottom:0};return s.forEach(r=>{o[r]=Math.max(t[r],n[r])}),o}return i(e?["left","right"]:["top","bottom"])}function Be(e,t,n,i){const s=[];let o,r,a,l,c,h;for(o=0,r=e.length,c=0;o<r;++o){a=e[o],l=a.box,l.update(a.width||t.w,a.height||t.h,Od(a.horizontal,t));const{same:u,other:d}=Cd(t,n,a,i);c|=u&&s.length,h=h||d,l.fullSize||s.push(a)}return c&&Be(s,t,n,i)||h}function wn(e,t,n,i,s){e.top=n,e.left=t,e.right=t+i,e.bottom=n+s,e.width=i,e.height=s}function xo(e,t,n,i){const s=n.padding;let{x:o,y:r}=t;for(const a of e){const l=a.box,c=i[a.stack]||{count:1,placed:0,weight:1},h=a.stackWeight/c.weight||1;if(a.horizontal){const u=t.w*h,d=c.size||l.height;tn(c.start)&&(r=c.start),l.fullSize?wn(l,s.left,r,n.outerWidth-s.right-s.left,d):wn(l,t.left+c.placed,r,u,d),c.start=r,c.placed+=u,r=l.bottom}else{const u=t.h*h,d=c.size||l.width;tn(c.start)&&(o=c.start),l.fullSize?wn(l,o,s.top,d,n.outerHeight-s.bottom-s.top):wn(l,o,t.top+c.placed,d,u),c.start=o,c.placed+=u,o=l.right}}t.x=o,t.y=r}var bt={addBox(e,t){e.boxes||(e.boxes=[]),t.fullSize=t.fullSize||!1,t.position=t.position||"top",t.weight=t.weight||0,t._layers=t._layers||function(){return[{z:0,draw(n){t.draw(n)}}]},e.boxes.push(t)},removeBox(e,t){const n=e.boxes?e.boxes.indexOf(t):-1;n!==-1&&e.boxes.splice(n,1)},configure(e,t,n){t.fullSize=n.fullSize,t.position=n.position,t.weight=n.weight},update(e,t,n,i){if(!e)return;const s=_t(e.options.layout.padding),o=Math.max(t-s.width,0),r=Math.max(n-s.height,0),a=Md(e.boxes),l=a.vertical,c=a.horizontal;V(e.boxes,m=>{typeof m.beforeLayout=="function"&&m.beforeLayout()});const h=l.reduce((m,p)=>p.box.options&&p.box.options.display===!1?m:m+1,0)||1,u=Object.freeze({outerWidth:t,outerHeight:n,padding:s,availableWidth:o,availableHeight:r,vBoxMaxWidth:o/2/h,hBoxMaxHeight:r/2}),d=Object.assign({},s);ga(d,_t(i));const f=Object.assign({maxPadding:d,w:o,h:r,x:s.left,y:s.top},s),g=kd(l.concat(c),u);Be(a.fullSize,f,u,g),Be(l,f,u,g),Be(c,f,u,g)&&Be(l,f,u,g),Pd(f),xo(a.leftAndTop,f,u,g),f.x+=f.w,f.y+=f.h,xo(a.rightAndBottom,f,u,g),e.chartArea={left:f.left,top:f.top,right:f.left+f.w,bottom:f.top+f.h,height:f.h,width:f.w},V(a.chartArea,m=>{const p=m.box;Object.assign(p,e.chartArea),p.update(f.w,f.h,{left:0,top:0,right:0,bottom:0})})}};class ma{acquireContext(t,n){}releaseContext(t){return!1}addEventListener(t,n,i){}removeEventListener(t,n,i){}getDevicePixelRatio(){return 1}getMaximumSize(t,n,i,s){return n=Math.max(0,n||t.width),i=i||t.height,{width:n,height:Math.max(0,s?Math.floor(n/s):i)}}isAttached(t){return!0}updateConfig(t){}}class Dd extends ma{acquireContext(t){return t&&t.getContext&&t.getContext("2d")||null}updateConfig(t){t.options.animation=!1}}const Rn="$chartjs",Ed={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"},yo=e=>e===null||e==="";function Ad(e,t){const n=e.style,i=e.getAttribute("height"),s=e.getAttribute("width");if(e[Rn]={initial:{height:i,width:s,style:{display:n.display,height:n.height,width:n.width}}},n.display=n.display||"block",n.boxSizing=n.boxSizing||"border-box",yo(s)){const o=eo(e,"width");o!==void 0&&(e.width=o)}if(yo(i))if(e.style.height==="")e.height=e.width/(t||2);else{const o=eo(e,"height");o!==void 0&&(e.height=o)}return e}const ba=Ru?{passive:!0}:!1;function Td(e,t,n){e&&e.addEventListener(t,n,ba)}function Rd(e,t,n){e&&e.canvas&&e.canvas.removeEventListener(t,n,ba)}function Ld(e,t){const n=Ed[e.type]||e.type,{x:i,y:s}=oe(e,t);return{type:n,chart:t,native:e,x:i!==void 0?i:null,y:s!==void 0?s:null}}function Bn(e,t){for(const n of e)if(n===t||n.contains(t))return!0}function Fd(e,t,n){const i=e.canvas,s=new MutationObserver(o=>{let r=!1;for(const a of o)r=r||Bn(a.addedNodes,i),r=r&&!Bn(a.removedNodes,i);r&&n()});return s.observe(document,{childList:!0,subtree:!0}),s}function Id(e,t,n){const i=e.canvas,s=new MutationObserver(o=>{let r=!1;for(const a of o)r=r||Bn(a.removedNodes,i),r=r&&!Bn(a.addedNodes,i);r&&n()});return s.observe(document,{childList:!0,subtree:!0}),s}const on=new Map;let vo=0;function xa(){const e=window.devicePixelRatio;e!==vo&&(vo=e,on.forEach((t,n)=>{n.currentDevicePixelRatio!==e&&t()}))}function jd(e,t){on.size||window.addEventListener("resize",xa),on.set(e,t)}function $d(e){on.delete(e),on.size||window.removeEventListener("resize",xa)}function zd(e,t,n){const i=e.canvas,s=i&&ss(i);if(!s)return;const o=Jr((a,l)=>{const c=s.clientWidth;n(a,l),c<s.clientWidth&&n()},window),r=new ResizeObserver(a=>{const l=a[0],c=l.contentRect.width,h=l.contentRect.height;c===0&&h===0||o(c,h)});return r.observe(s),jd(e,o),r}function pi(e,t,n){n&&n.disconnect(),t==="resize"&&$d(e)}function Nd(e,t,n){const i=e.canvas,s=Jr(o=>{e.ctx!==null&&n(Ld(o,e))},e);return Td(i,t,s),s}class Bd extends ma{acquireContext(t,n){const i=t&&t.getContext&&t.getContext("2d");return i&&i.canvas===t?(Ad(t,n),i):null}releaseContext(t){const n=t.canvas;if(!n[Rn])return!1;const i=n[Rn].initial;["height","width"].forEach(o=>{const r=i[o];B(r)?n.removeAttribute(o):n.setAttribute(o,r)});const s=i.style||{};return Object.keys(s).forEach(o=>{n.style[o]=s[o]}),n.width=n.width,delete n[Rn],!0}addEventListener(t,n,i){this.removeEventListener(t,n);const s=t.$proxies||(t.$proxies={}),r={attach:Fd,detach:Id,resize:zd}[n]||Nd;s[n]=r(t,n,i)}removeEventListener(t,n){const i=t.$proxies||(t.$proxies={}),s=i[n];if(!s)return;({attach:pi,detach:pi,resize:pi}[n]||Rd)(t,n,s),i[n]=void 0}getDevicePixelRatio(){return window.devicePixelRatio}getMaximumSize(t,n,i,s){return Tu(t,n,i,s)}isAttached(t){const n=t&&ss(t);return!!(n&&n.isConnected)}}function Hd(e){return!is()||typeof OffscreenCanvas<"u"&&e instanceof OffscreenCanvas?Dd:Bd}var An;let jt=(An=class{constructor(){R(this,"x");R(this,"y");R(this,"active",!1);R(this,"options");R(this,"$animations")}tooltipPosition(t){const{x:n,y:i}=this.getProps(["x","y"],t);return{x:n,y:i}}hasValue(){return en(this.x)&&en(this.y)}getProps(t,n){const i=this.$animations;if(!n||!i)return this;const s={};return t.forEach(o=>{s[o]=i[o]&&i[o].active()?i[o]._to:this[o]}),s}},R(An,"defaults",{}),R(An,"defaultRoutes"),An);function Wd(e,t){const n=e.options.ticks,i=Vd(e),s=Math.min(n.maxTicksLimit||i,i),o=n.major.enabled?Ud(t):[],r=o.length,a=o[0],l=o[r-1],c=[];if(r>s)return Xd(t,c,o,r/s),c;const h=Yd(o,t,s);if(r>0){let u,d;const f=r>1?Math.round((l-a)/(r-1)):null;for(Sn(t,c,h,B(f)?0:a-f,a),u=0,d=r-1;u<d;u++)Sn(t,c,h,o[u],o[u+1]);return Sn(t,c,h,l,B(f)?t.length:l+f),c}return Sn(t,c,h),c}function Vd(e){const t=e.options.offset,n=e._tickSize(),i=e._length/n+(t?0:1),s=e._maxLength/n;return Math.floor(Math.min(i,s))}function Yd(e,t,n){const i=qd(e),s=t.length/n;if(!i)return Math.max(s,1);const o=Th(i);for(let r=0,a=o.length-1;r<a;r++){const l=o[r];if(l>s)return l}return Math.max(s,1)}function Ud(e){const t=[];let n,i;for(n=0,i=e.length;n<i;n++)e[n].major&&t.push(n);return t}function Xd(e,t,n,i){let s=0,o=n[0],r;for(i=Math.ceil(i),r=0;r<e.length;r++)r===o&&(t.push(e[r]),s++,o=n[s*i])}function Sn(e,t,n,i,s){const o=j(i,0),r=Math.min(j(s,e.length),e.length);let a=0,l,c,h;for(n=Math.ceil(n),s&&(l=s-i,n=l/Math.floor(l/n)),h=o;h<0;)a++,h=Math.round(o+a*n);for(c=Math.max(o,0);c<r;c++)c===h&&(t.push(e[c]),a++,h=Math.round(o+a*n))}function qd(e){const t=e.length;let n,i;if(t<2)return!1;for(i=e[0],n=1;n<t;++n)if(e[n]-e[n-1]!==i)return!1;return i}const Kd=e=>e==="left"?"right":e==="right"?"left":e,_o=(e,t,n)=>t==="top"||t==="left"?e[t]+n:e[t]-n,wo=(e,t)=>Math.min(t||e,e);function So(e,t){const n=[],i=e.length/t,s=e.length;let o=0;for(;o<s;o+=i)n.push(e[Math.floor(o)]);return n}function Gd(e,t,n){const i=e.ticks.length,s=Math.min(t,i-1),o=e._startPixel,r=e._endPixel,a=1e-6;let l=e.getPixelForTick(s),c;if(!(n&&(i===1?c=Math.max(l-o,r-l):t===0?c=(e.getPixelForTick(1)-l)/2:c=(l-e.getPixelForTick(s-1))/2,l+=s<t?c:-c,l<o-a||l>r+a)))return l}function Jd(e,t){V(e,n=>{const i=n.gc,s=i.length/2;let o;if(s>t){for(o=0;o<s;++o)delete n.data[i[o]];i.splice(0,s)}})}function $e(e){return e.drawTicks?e.tickLength:0}function ko(e,t){if(!e.display)return 0;const n=at(e.font,t),i=_t(e.padding);return(J(e.text)?e.text.length:1)*n.lineHeight+i.height}function Zd(e,t){return pe(e,{scale:t,type:"scale"})}function Qd(e,t,n){return pe(e,{tick:n,index:t,type:"tick"})}function tf(e,t,n){let i=Ki(e);return(n&&t!=="right"||!n&&t==="right")&&(i=Kd(i)),i}function ef(e,t,n,i){const{top:s,left:o,bottom:r,right:a,chart:l}=e,{chartArea:c,scales:h}=l;let u=0,d,f,g;const m=r-s,p=a-o;if(e.isHorizontal()){if(f=ot(i,o,a),z(n)){const b=Object.keys(n)[0],x=n[b];g=h[b].getPixelForValue(x)+m-t}else n==="center"?g=(c.bottom+c.top)/2+m-t:g=_o(e,n,t);d=a-o}else{if(z(n)){const b=Object.keys(n)[0],x=n[b];f=h[b].getPixelForValue(x)-p+t}else n==="center"?f=(c.left+c.right)/2-p+t:f=_o(e,n,t);g=ot(i,r,s),u=n==="left"?-it:it}return{titleX:f,titleY:g,maxWidth:d,rotation:u}}class Ae extends jt{constructor(t){super(),this.id=t.id,this.type=t.type,this.options=void 0,this.ctx=t.ctx,this.chart=t.chart,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.width=void 0,this.height=void 0,this._margins={left:0,right:0,top:0,bottom:0},this.maxWidth=void 0,this.maxHeight=void 0,this.paddingTop=void 0,this.paddingBottom=void 0,this.paddingLeft=void 0,this.paddingRight=void 0,this.axis=void 0,this.labelRotation=void 0,this.min=void 0,this.max=void 0,this._range=void 0,this.ticks=[],this._gridLineItems=null,this._labelItems=null,this._labelSizes=null,this._length=0,this._maxLength=0,this._longestTextCache={},this._startPixel=void 0,this._endPixel=void 0,this._reversePixels=!1,this._userMax=void 0,this._userMin=void 0,this._suggestedMax=void 0,this._suggestedMin=void 0,this._ticksLength=0,this._borderValue=0,this._cache={},this._dataLimitsCached=!1,this.$context=void 0}init(t){this.options=t.setContext(this.getContext()),this.axis=t.axis,this._userMin=this.parse(t.min),this._userMax=this.parse(t.max),this._suggestedMin=this.parse(t.suggestedMin),this._suggestedMax=this.parse(t.suggestedMax)}parse(t,n){return t}getUserBounds(){let{_userMin:t,_userMax:n,_suggestedMin:i,_suggestedMax:s}=this;return t=St(t,Number.POSITIVE_INFINITY),n=St(n,Number.NEGATIVE_INFINITY),i=St(i,Number.POSITIVE_INFINITY),s=St(s,Number.NEGATIVE_INFINITY),{min:St(t,i),max:St(n,s),minDefined:vt(t),maxDefined:vt(n)}}getMinMax(t){let{min:n,max:i,minDefined:s,maxDefined:o}=this.getUserBounds(),r;if(s&&o)return{min:n,max:i};const a=this.getMatchingVisibleMetas();for(let l=0,c=a.length;l<c;++l)r=a[l].controller.getMinMax(this,t),s||(n=Math.min(n,r.min)),o||(i=Math.max(i,r.max));return n=o&&n>i?i:n,i=s&&n>i?n:i,{min:St(n,St(i,n)),max:St(i,St(n,i))}}getPadding(){return{left:this.paddingLeft||0,top:this.paddingTop||0,right:this.paddingRight||0,bottom:this.paddingBottom||0}}getTicks(){return this.ticks}getLabels(){const t=this.chart.data;return this.options.labels||(this.isHorizontal()?t.xLabels:t.yLabels)||t.labels||[]}getLabelItems(t=this.chart.chartArea){return this._labelItems||(this._labelItems=this._computeLabelItems(t))}beforeLayout(){this._cache={},this._dataLimitsCached=!1}beforeUpdate(){Y(this.options.beforeUpdate,[this])}update(t,n,i){const{beginAtZero:s,grace:o,ticks:r}=this.options,a=r.sampleSize;this.beforeUpdate(),this.maxWidth=t,this.maxHeight=n,this._margins=i=Object.assign({left:0,right:0,top:0,bottom:0},i),this.ticks=null,this._labelSizes=null,this._gridLineItems=null,this._labelItems=null,this.beforeSetDimensions(),this.setDimensions(),this.afterSetDimensions(),this._maxLength=this.isHorizontal()?this.width+i.left+i.right:this.height+i.top+i.bottom,this._dataLimitsCached||(this.beforeDataLimits(),this.determineDataLimits(),this.afterDataLimits(),this._range=hu(this,o,s),this._dataLimitsCached=!0),this.beforeBuildTicks(),this.ticks=this.buildTicks()||[],this.afterBuildTicks();const l=a<this.ticks.length;this._convertTicksToLabels(l?So(this.ticks,a):this.ticks),this.configure(),this.beforeCalculateLabelRotation(),this.calculateLabelRotation(),this.afterCalculateLabelRotation(),r.display&&(r.autoSkip||r.source==="auto")&&(this.ticks=Wd(this,this.ticks),this._labelSizes=null,this.afterAutoSkip()),l&&this._convertTicksToLabels(this.ticks),this.beforeFit(),this.fit(),this.afterFit(),this.afterUpdate()}configure(){let t=this.options.reverse,n,i;this.isHorizontal()?(n=this.left,i=this.right):(n=this.top,i=this.bottom,t=!t),this._startPixel=n,this._endPixel=i,this._reversePixels=t,this._length=i-n,this._alignToPixels=this.options.alignToPixels}afterUpdate(){Y(this.options.afterUpdate,[this])}beforeSetDimensions(){Y(this.options.beforeSetDimensions,[this])}setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.left=0,this.right=this.width):(this.height=this.maxHeight,this.top=0,this.bottom=this.height),this.paddingLeft=0,this.paddingTop=0,this.paddingRight=0,this.paddingBottom=0}afterSetDimensions(){Y(this.options.afterSetDimensions,[this])}_callHooks(t){this.chart.notifyPlugins(t,this.getContext()),Y(this.options[t],[this])}beforeDataLimits(){this._callHooks("beforeDataLimits")}determineDataLimits(){}afterDataLimits(){this._callHooks("afterDataLimits")}beforeBuildTicks(){this._callHooks("beforeBuildTicks")}buildTicks(){return[]}afterBuildTicks(){this._callHooks("afterBuildTicks")}beforeTickToLabelConversion(){Y(this.options.beforeTickToLabelConversion,[this])}generateTickLabels(t){const n=this.options.ticks;let i,s,o;for(i=0,s=t.length;i<s;i++)o=t[i],o.label=Y(n.callback,[o.value,i,t],this)}afterTickToLabelConversion(){Y(this.options.afterTickToLabelConversion,[this])}beforeCalculateLabelRotation(){Y(this.options.beforeCalculateLabelRotation,[this])}calculateLabelRotation(){const t=this.options,n=t.ticks,i=wo(this.ticks.length,t.ticks.maxTicksLimit),s=n.minRotation||0,o=n.maxRotation;let r=s,a,l,c;if(!this._isVisible()||!n.display||s>=o||i<=1||!this.isHorizontal()){this.labelRotation=s;return}const h=this._getLabelSizes(),u=h.widest.width,d=h.highest.height,f=rt(this.chart.width-u,0,this.maxWidth);a=t.offset?this.maxWidth/i:f/(i-1),u+6>a&&(a=f/(i-(t.offset?.5:1)),l=this.maxHeight-$e(t.grid)-n.padding-ko(t.title,this.chart.options.font),c=Math.sqrt(u*u+d*d),r=Ih(Math.min(Math.asin(rt((h.highest.height+6)/a,-1,1)),Math.asin(rt(l/c,-1,1))-Math.asin(rt(d/c,-1,1)))),r=Math.max(s,Math.min(o,r))),this.labelRotation=r}afterCalculateLabelRotation(){Y(this.options.afterCalculateLabelRotation,[this])}afterAutoSkip(){}beforeFit(){Y(this.options.beforeFit,[this])}fit(){const t={width:0,height:0},{chart:n,options:{ticks:i,title:s,grid:o}}=this,r=this._isVisible(),a=this.isHorizontal();if(r){const l=ko(s,n.options.font);if(a?(t.width=this.maxWidth,t.height=$e(o)+l):(t.height=this.maxHeight,t.width=$e(o)+l),i.display&&this.ticks.length){const{first:c,last:h,widest:u,highest:d}=this._getLabelSizes(),f=i.padding*2,g=ae(this.labelRotation),m=Math.cos(g),p=Math.sin(g);if(a){const b=i.mirror?0:p*u.width+m*d.height;t.height=Math.min(this.maxHeight,t.height+b+f)}else{const b=i.mirror?0:m*u.width+p*d.height;t.width=Math.min(this.maxWidth,t.width+b+f)}this._calculatePadding(c,h,p,m)}}this._handleMargins(),a?(this.width=this._length=n.width-this._margins.left-this._margins.right,this.height=t.height):(this.width=t.width,this.height=this._length=n.height-this._margins.top-this._margins.bottom)}_calculatePadding(t,n,i,s){const{ticks:{align:o,padding:r},position:a}=this.options,l=this.labelRotation!==0,c=a!=="top"&&this.axis==="x";if(this.isHorizontal()){const h=this.getPixelForTick(0)-this.left,u=this.right-this.getPixelForTick(this.ticks.length-1);let d=0,f=0;l?c?(d=s*t.width,f=i*n.height):(d=i*t.height,f=s*n.width):o==="start"?f=n.width:o==="end"?d=t.width:o!=="inner"&&(d=t.width/2,f=n.width/2),this.paddingLeft=Math.max((d-h+r)*this.width/(this.width-h),0),this.paddingRight=Math.max((f-u+r)*this.width/(this.width-u),0)}else{let h=n.height/2,u=t.height/2;o==="start"?(h=0,u=t.height):o==="end"&&(h=n.height,u=0),this.paddingTop=h+r,this.paddingBottom=u+r}}_handleMargins(){this._margins&&(this._margins.left=Math.max(this.paddingLeft,this._margins.left),this._margins.top=Math.max(this.paddingTop,this._margins.top),this._margins.right=Math.max(this.paddingRight,this._margins.right),this._margins.bottom=Math.max(this.paddingBottom,this._margins.bottom))}afterFit(){Y(this.options.afterFit,[this])}isHorizontal(){const{axis:t,position:n}=this.options;return n==="top"||n==="bottom"||t==="x"}isFullSize(){return this.options.fullSize}_convertTicksToLabels(t){this.beforeTickToLabelConversion(),this.generateTickLabels(t);let n,i;for(n=0,i=t.length;n<i;n++)B(t[n].label)&&(t.splice(n,1),i--,n--);this.afterTickToLabelConversion()}_getLabelSizes(){let t=this._labelSizes;if(!t){const n=this.options.ticks.sampleSize;let i=this.ticks;n<i.length&&(i=So(i,n)),this._labelSizes=t=this._computeLabelSizes(i,i.length,this.options.ticks.maxTicksLimit)}return t}_computeLabelSizes(t,n,i){const{ctx:s,_longestTextCache:o}=this,r=[],a=[],l=Math.floor(n/wo(n,i));let c=0,h=0,u,d,f,g,m,p,b,x,v,_,y;for(u=0;u<n;u+=l){if(g=t[u].label,m=this._resolveTickFontOptions(u),s.font=p=m.string,b=o[p]=o[p]||{data:{},gc:[]},x=m.lineHeight,v=_=0,!B(g)&&!J(g))v=Gs(s,b.data,b.gc,v,g),_=x;else if(J(g))for(d=0,f=g.length;d<f;++d)y=g[d],!B(y)&&!J(y)&&(v=Gs(s,b.data,b.gc,v,y),_+=x);r.push(v),a.push(_),c=Math.max(v,c),h=Math.max(_,h)}Jd(o,n);const w=r.indexOf(c),k=a.indexOf(h),S=C=>({width:r[C]||0,height:a[C]||0});return{first:S(0),last:S(n-1),widest:S(w),highest:S(k),widths:r,heights:a}}getLabelForValue(t){return t}getPixelForValue(t,n){return NaN}getValueForPixel(t){}getPixelForTick(t){const n=this.ticks;return t<0||t>n.length-1?null:this.getPixelForValue(n[t].value)}getPixelForDecimal(t){this._reversePixels&&(t=1-t);const n=this._startPixel+t*this._length;return $h(this._alignToPixels?ee(this.chart,n,0):n)}getDecimalForPixel(t){const n=(t-this._startPixel)/this._length;return this._reversePixels?1-n:n}getBasePixel(){return this.getPixelForValue(this.getBaseValue())}getBaseValue(){const{min:t,max:n}=this;return t<0&&n<0?n:t>0&&n>0?t:0}getContext(t){const n=this.ticks||[];if(t>=0&&t<n.length){const i=n[t];return i.$context||(i.$context=Qd(this.getContext(),t,i))}return this.$context||(this.$context=Zd(this.chart.getContext(),this))}_tickSize(){const t=this.options.ticks,n=ae(this.labelRotation),i=Math.abs(Math.cos(n)),s=Math.abs(Math.sin(n)),o=this._getLabelSizes(),r=t.autoSkipPadding||0,a=o?o.widest.width+r:0,l=o?o.highest.height+r:0;return this.isHorizontal()?l*i>a*s?a/i:l/s:l*s<a*i?l/i:a/s}_isVisible(){const t=this.options.display;return t!=="auto"?!!t:this.getMatchingVisibleMetas().length>0}_computeGridLineItems(t){const n=this.axis,i=this.chart,s=this.options,{grid:o,position:r,border:a}=s,l=o.offset,c=this.isHorizontal(),u=this.ticks.length+(l?1:0),d=$e(o),f=[],g=a.setContext(this.getContext()),m=g.display?g.width:0,p=m/2,b=function(L){return ee(i,L,m)};let x,v,_,y,w,k,S,C,D,P,O,A;if(r==="top")x=b(this.bottom),k=this.bottom-d,C=x-p,P=b(t.top)+p,A=t.bottom;else if(r==="bottom")x=b(this.top),P=t.top,A=b(t.bottom)-p,k=x+p,C=this.top+d;else if(r==="left")x=b(this.right),w=this.right-d,S=x-p,D=b(t.left)+p,O=t.right;else if(r==="right")x=b(this.left),D=t.left,O=b(t.right)-p,w=x+p,S=this.left+d;else if(n==="x"){if(r==="center")x=b((t.top+t.bottom)/2+.5);else if(z(r)){const L=Object.keys(r)[0],F=r[L];x=b(this.chart.scales[L].getPixelForValue(F))}P=t.top,A=t.bottom,k=x+p,C=k+d}else if(n==="y"){if(r==="center")x=b((t.left+t.right)/2);else if(z(r)){const L=Object.keys(r)[0],F=r[L];x=b(this.chart.scales[L].getPixelForValue(F))}w=x-p,S=w-d,D=t.left,O=t.right}const I=j(s.ticks.maxTicksLimit,u),T=Math.max(1,Math.ceil(u/I));for(v=0;v<u;v+=T){const L=this.getContext(v),F=o.setContext(L),H=a.setContext(L),$=F.lineWidth,N=F.color,tt=H.dash||[],Q=H.dashOffset,nt=F.tickWidth,U=F.tickColor,X=F.tickBorderDash||[],K=F.tickBorderDashOffset;_=Gd(this,v,l),_!==void 0&&(y=ee(i,_,$),c?w=S=D=O=y:k=C=P=A=y,f.push({tx1:w,ty1:k,tx2:S,ty2:C,x1:D,y1:P,x2:O,y2:A,width:$,color:N,borderDash:tt,borderDashOffset:Q,tickWidth:nt,tickColor:U,tickBorderDash:X,tickBorderDashOffset:K}))}return this._ticksLength=u,this._borderValue=x,f}_computeLabelItems(t){const n=this.axis,i=this.options,{position:s,ticks:o}=i,r=this.isHorizontal(),a=this.ticks,{align:l,crossAlign:c,padding:h,mirror:u}=o,d=$e(i.grid),f=d+h,g=u?-h:f,m=-ae(this.labelRotation),p=[];let b,x,v,_,y,w,k,S,C,D,P,O,A="middle";if(s==="top")w=this.bottom-g,k=this._getXAxisLabelAlignment();else if(s==="bottom")w=this.top+g,k=this._getXAxisLabelAlignment();else if(s==="left"){const T=this._getYAxisLabelAlignment(d);k=T.textAlign,y=T.x}else if(s==="right"){const T=this._getYAxisLabelAlignment(d);k=T.textAlign,y=T.x}else if(n==="x"){if(s==="center")w=(t.top+t.bottom)/2+f;else if(z(s)){const T=Object.keys(s)[0],L=s[T];w=this.chart.scales[T].getPixelForValue(L)+f}k=this._getXAxisLabelAlignment()}else if(n==="y"){if(s==="center")y=(t.left+t.right)/2-f;else if(z(s)){const T=Object.keys(s)[0],L=s[T];y=this.chart.scales[T].getPixelForValue(L)}k=this._getYAxisLabelAlignment(d).textAlign}n==="y"&&(l==="start"?A="top":l==="end"&&(A="bottom"));const I=this._getLabelSizes();for(b=0,x=a.length;b<x;++b){v=a[b],_=v.label;const T=o.setContext(this.getContext(b));S=this.getPixelForTick(b)+o.labelOffset,C=this._resolveTickFontOptions(b),D=C.lineHeight,P=J(_)?_.length:1;const L=P/2,F=T.color,H=T.textStrokeColor,$=T.textStrokeWidth;let N=k;r?(y=S,k==="inner"&&(b===x-1?N=this.options.reverse?"left":"right":b===0?N=this.options.reverse?"right":"left":N="center"),s==="top"?c==="near"||m!==0?O=-P*D+D/2:c==="center"?O=-I.highest.height/2-L*D+D:O=-I.highest.height+D/2:c==="near"||m!==0?O=D/2:c==="center"?O=I.highest.height/2-L*D:O=I.highest.height-P*D,u&&(O*=-1),m!==0&&!T.showLabelBackdrop&&(y+=D/2*Math.sin(m))):(w=S,O=(1-P)*D/2);let tt;if(T.showLabelBackdrop){const Q=_t(T.backdropPadding),nt=I.heights[b],U=I.widths[b];let X=O-Q.top,K=0-Q.left;switch(A){case"middle":X-=nt/2;break;case"bottom":X-=nt;break}switch(k){case"center":K-=U/2;break;case"right":K-=U;break;case"inner":b===x-1?K-=U:b>0&&(K-=U/2);break}tt={left:K,top:X,width:U+Q.width,height:nt+Q.height,color:T.backdropColor}}p.push({label:_,font:C,textOffset:O,options:{rotation:m,color:F,strokeColor:H,strokeWidth:$,textAlign:N,textBaseline:A,translation:[y,w],backdrop:tt}})}return p}_getXAxisLabelAlignment(){const{position:t,ticks:n}=this.options;if(-ae(this.labelRotation))return t==="top"?"left":"right";let s="center";return n.align==="start"?s="left":n.align==="end"?s="right":n.align==="inner"&&(s="inner"),s}_getYAxisLabelAlignment(t){const{position:n,ticks:{crossAlign:i,mirror:s,padding:o}}=this.options,r=this._getLabelSizes(),a=t+o,l=r.widest.width;let c,h;return n==="left"?s?(h=this.right+o,i==="near"?c="left":i==="center"?(c="center",h+=l/2):(c="right",h+=l)):(h=this.right-a,i==="near"?c="right":i==="center"?(c="center",h-=l/2):(c="left",h=this.left)):n==="right"?s?(h=this.left+o,i==="near"?c="right":i==="center"?(c="center",h-=l/2):(c="left",h-=l)):(h=this.left+a,i==="near"?c="left":i==="center"?(c="center",h+=l/2):(c="right",h=this.right)):c="right",{textAlign:c,x:h}}_computeLabelArea(){if(this.options.ticks.mirror)return;const t=this.chart,n=this.options.position;if(n==="left"||n==="right")return{top:0,left:this.left,bottom:t.height,right:this.right};if(n==="top"||n==="bottom")return{top:this.top,left:0,bottom:this.bottom,right:t.width}}drawBackground(){const{ctx:t,options:{backgroundColor:n},left:i,top:s,width:o,height:r}=this;n&&(t.save(),t.fillStyle=n,t.fillRect(i,s,o,r),t.restore())}getLineWidthForValue(t){const n=this.options.grid;if(!this._isVisible()||!n.display)return 0;const s=this.ticks.findIndex(o=>o.value===t);return s>=0?n.setContext(this.getContext(s)).lineWidth:0}drawGrid(t){const n=this.options.grid,i=this.ctx,s=this._gridLineItems||(this._gridLineItems=this._computeGridLineItems(t));let o,r;const a=(l,c,h)=>{!h.width||!h.color||(i.save(),i.lineWidth=h.width,i.strokeStyle=h.color,i.setLineDash(h.borderDash||[]),i.lineDashOffset=h.borderDashOffset,i.beginPath(),i.moveTo(l.x,l.y),i.lineTo(c.x,c.y),i.stroke(),i.restore())};if(n.display)for(o=0,r=s.length;o<r;++o){const l=s[o];n.drawOnChartArea&&a({x:l.x1,y:l.y1},{x:l.x2,y:l.y2},l),n.drawTicks&&a({x:l.tx1,y:l.ty1},{x:l.tx2,y:l.ty2},{color:l.tickColor,width:l.tickWidth,borderDash:l.tickBorderDash,borderDashOffset:l.tickBorderDashOffset})}}drawBorder(){const{chart:t,ctx:n,options:{border:i,grid:s}}=this,o=i.setContext(this.getContext()),r=i.display?o.width:0;if(!r)return;const a=s.setContext(this.getContext(0)).lineWidth,l=this._borderValue;let c,h,u,d;this.isHorizontal()?(c=ee(t,this.left,r)-r/2,h=ee(t,this.right,a)+a/2,u=d=l):(u=ee(t,this.top,r)-r/2,d=ee(t,this.bottom,a)+a/2,c=h=l),n.save(),n.lineWidth=o.width,n.strokeStyle=o.color,n.beginPath(),n.moveTo(c,u),n.lineTo(h,d),n.stroke(),n.restore()}drawLabels(t){if(!this.options.ticks.display)return;const i=this.ctx,s=this._computeLabelArea();s&&Ji(i,s);const o=this.getLabelItems(t);for(const r of o){const a=r.options,l=r.font,c=r.label,h=r.textOffset;sn(i,c,0,h,l,a)}s&&Zi(i)}drawTitle(){const{ctx:t,options:{position:n,title:i,reverse:s}}=this;if(!i.display)return;const o=at(i.font),r=_t(i.padding),a=i.align;let l=o.lineHeight/2;n==="bottom"||n==="center"||z(n)?(l+=r.bottom,J(i.text)&&(l+=o.lineHeight*(i.text.length-1))):l+=r.top;const{titleX:c,titleY:h,maxWidth:u,rotation:d}=ef(this,l,n,a);sn(t,i.text,0,0,o,{color:i.color,maxWidth:u,rotation:d,textAlign:tf(a,n,s),textBaseline:"middle",translation:[c,h]})}draw(t){this._isVisible()&&(this.drawBackground(),this.drawGrid(t),this.drawBorder(),this.drawTitle(),this.drawLabels(t))}_layers(){const t=this.options,n=t.ticks&&t.ticks.z||0,i=j(t.grid&&t.grid.z,-1),s=j(t.border&&t.border.z,0);return!this._isVisible()||this.draw!==Ae.prototype.draw?[{z:n,draw:o=>{this.draw(o)}}]:[{z:i,draw:o=>{this.drawBackground(),this.drawGrid(o),this.drawTitle()}},{z:s,draw:()=>{this.drawBorder()}},{z:n,draw:o=>{this.drawLabels(o)}}]}getMatchingVisibleMetas(t){const n=this.chart.getSortedVisibleDatasetMetas(),i=this.axis+"AxisID",s=[];let o,r;for(o=0,r=n.length;o<r;++o){const a=n[o];a[i]===this.id&&(!t||a.type===t)&&s.push(a)}return s}_resolveTickFontOptions(t){const n=this.options.ticks.setContext(this.getContext(t));return at(n.font)}_maxDigits(){const t=this._resolveTickFontOptions(0).lineHeight;return(this.isHorizontal()?this.width:this.height)/t}}class kn{constructor(t,n,i){this.type=t,this.scope=n,this.override=i,this.items=Object.create(null)}isForType(t){return Object.prototype.isPrototypeOf.call(this.type.prototype,t.prototype)}register(t){const n=Object.getPrototypeOf(t);let i;of(n)&&(i=this.register(n));const s=this.items,o=t.id,r=this.scope+"."+o;if(!o)throw new Error("class does not have id: "+t);return o in s||(s[o]=t,nf(t,r,i),this.override&&q.override(t.id,t.overrides)),r}get(t){return this.items[t]}unregister(t){const n=this.items,i=t.id,s=this.scope;i in n&&delete n[i],s&&i in q[s]&&(delete q[s][i],this.override&&delete fe[i])}}function nf(e,t,n){const i=Qe(Object.create(null),[n?q.get(n):{},q.get(t),e.defaults]);q.set(t,i),e.defaultRoutes&&sf(t,e.defaultRoutes),e.descriptors&&q.describe(t,e.descriptors)}function sf(e,t){Object.keys(t).forEach(n=>{const i=n.split("."),s=i.pop(),o=[e].concat(i).join("."),r=t[n].split("."),a=r.pop(),l=r.join(".");q.route(o,s,l,a)})}function of(e){return"id"in e&&"defaults"in e}class rf{constructor(){this.controllers=new kn(Se,"datasets",!0),this.elements=new kn(jt,"elements"),this.plugins=new kn(Object,"plugins"),this.scales=new kn(Ae,"scales"),this._typedRegistries=[this.controllers,this.scales,this.elements]}add(...t){this._each("register",t)}remove(...t){this._each("unregister",t)}addControllers(...t){this._each("register",t,this.controllers)}addElements(...t){this._each("register",t,this.elements)}addPlugins(...t){this._each("register",t,this.plugins)}addScales(...t){this._each("register",t,this.scales)}getController(t){return this._get(t,this.controllers,"controller")}getElement(t){return this._get(t,this.elements,"element")}getPlugin(t){return this._get(t,this.plugins,"plugin")}getScale(t){return this._get(t,this.scales,"scale")}removeControllers(...t){this._each("unregister",t,this.controllers)}removeElements(...t){this._each("unregister",t,this.elements)}removePlugins(...t){this._each("unregister",t,this.plugins)}removeScales(...t){this._each("unregister",t,this.scales)}_each(t,n,i){[...n].forEach(s=>{const o=i||this._getRegistryForType(s);i||o.isForType(s)||o===this.plugins&&s.id?this._exec(t,o,s):V(s,r=>{const a=i||this._getRegistryForType(r);this._exec(t,a,r)})})}_exec(t,n,i){const s=Ui(t);Y(i["before"+s],[],i),n[t](i),Y(i["after"+s],[],i)}_getRegistryForType(t){for(let n=0;n<this._typedRegistries.length;n++){const i=this._typedRegistries[n];if(i.isForType(t))return i}return this.plugins}_get(t,n,i){const s=n.get(t);if(s===void 0)throw new Error('"'+t+'" is not a registered '+i+".");return s}}var Mt=new rf;class af{constructor(){this._init=[]}notify(t,n,i,s){n==="beforeInit"&&(this._init=this._createDescriptors(t,!0),this._notify(this._init,t,"install"));const o=s?this._descriptors(t).filter(s):this._descriptors(t),r=this._notify(o,t,n,i);return n==="afterDestroy"&&(this._notify(o,t,"stop"),this._notify(this._init,t,"uninstall")),r}_notify(t,n,i,s){s=s||{};for(const o of t){const r=o.plugin,a=r[i],l=[n,s,o.options];if(Y(a,l,r)===!1&&s.cancelable)return!1}return!0}invalidate(){B(this._cache)||(this._oldCache=this._cache,this._cache=void 0)}_descriptors(t){if(this._cache)return this._cache;const n=this._cache=this._createDescriptors(t);return this._notifyStateChanges(t),n}_createDescriptors(t,n){const i=t&&t.config,s=j(i.options&&i.options.plugins,{}),o=lf(i);return s===!1&&!n?[]:hf(t,o,s,n)}_notifyStateChanges(t){const n=this._oldCache||[],i=this._cache,s=(o,r)=>o.filter(a=>!r.some(l=>a.plugin.id===l.plugin.id));this._notify(s(n,i),t,"stop"),this._notify(s(i,n),t,"start")}}function lf(e){const t={},n=[],i=Object.keys(Mt.plugins.items);for(let o=0;o<i.length;o++)n.push(Mt.getPlugin(i[o]));const s=e.plugins||[];for(let o=0;o<s.length;o++){const r=s[o];n.indexOf(r)===-1&&(n.push(r),t[r.id]=!0)}return{plugins:n,localIds:t}}function cf(e,t){return!t&&e===!1?null:e===!0?{}:e}function hf(e,{plugins:t,localIds:n},i,s){const o=[],r=e.getContext();for(const a of t){const l=a.id,c=cf(i[l],s);c!==null&&o.push({plugin:a,options:uf(e.config,{plugin:a,local:n[l]},c,r)})}return o}function uf(e,{plugin:t,local:n},i,s){const o=e.pluginScopeKeys(t),r=e.getOptionScopes(i,o);return n&&t.defaults&&r.push(t.defaults),e.createResolver(r,s,[""],{scriptable:!1,indexable:!1,allKeys:!0})}function Oi(e,t){const n=q.datasets[e]||{};return((t.datasets||{})[e]||{}).indexAxis||t.indexAxis||n.indexAxis||"x"}function df(e,t){let n=e;return e==="_index_"?n=t:e==="_value_"&&(n=t==="x"?"y":"x"),n}function ff(e,t){return e===t?"_index_":"_value_"}function Mo(e){if(e==="x"||e==="y"||e==="r")return e}function pf(e){if(e==="top"||e==="bottom")return"x";if(e==="left"||e==="right")return"y"}function Di(e,...t){if(Mo(e))return e;for(const n of t){const i=n.axis||pf(n.position)||e.length>1&&Mo(e[0].toLowerCase());if(i)return i}throw new Error(`Cannot determine type of '${e}' axis. Please provide 'axis' or 'position' option.`)}function Co(e,t,n){if(n[t+"AxisID"]===e)return{axis:t}}function gf(e,t){if(t.data&&t.data.datasets){const n=t.data.datasets.filter(i=>i.xAxisID===e||i.yAxisID===e);if(n.length)return Co(e,"x",n[0])||Co(e,"y",n[0])}return{}}function mf(e,t){const n=fe[e.type]||{scales:{}},i=t.scales||{},s=Oi(e.type,t),o=Object.create(null);return Object.keys(i).forEach(r=>{const a=i[r];if(!z(a))return console.error(`Invalid scale configuration for scale: ${r}`);if(a._proxy)return console.warn(`Ignoring resolver passed as options for scale: ${r}`);const l=Di(r,a,gf(r,e),q.scales[a.type]),c=ff(l,s),h=n.scales||{};o[r]=Ue(Object.create(null),[{axis:l},a,h[l],h[c]])}),e.data.datasets.forEach(r=>{const a=r.type||e.type,l=r.indexAxis||Oi(a,t),h=(fe[a]||{}).scales||{};Object.keys(h).forEach(u=>{const d=df(u,l),f=r[d+"AxisID"]||d;o[f]=o[f]||Object.create(null),Ue(o[f],[{axis:d},i[f],h[u]])})}),Object.keys(o).forEach(r=>{const a=o[r];Ue(a,[q.scales[a.type],q.scale])}),o}function ya(e){const t=e.options||(e.options={});t.plugins=j(t.plugins,{}),t.scales=mf(e,t)}function va(e){return e=e||{},e.datasets=e.datasets||[],e.labels=e.labels||[],e}function bf(e){return e=e||{},e.data=va(e.data),ya(e),e}const Po=new Map,_a=new Set;function Mn(e,t){let n=Po.get(e);return n||(n=t(),Po.set(e,n),_a.add(n)),n}const ze=(e,t,n)=>{const i=Oe(t,n);i!==void 0&&e.add(i)};class xf{constructor(t){this._config=bf(t),this._scopeCache=new Map,this._resolverCache=new Map}get platform(){return this._config.platform}get type(){return this._config.type}set type(t){this._config.type=t}get data(){return this._config.data}set data(t){this._config.data=va(t)}get options(){return this._config.options}set options(t){this._config.options=t}get plugins(){return this._config.plugins}update(){const t=this._config;this.clearCache(),ya(t)}clearCache(){this._scopeCache.clear(),this._resolverCache.clear()}datasetScopeKeys(t){return Mn(t,()=>[[`datasets.${t}`,""]])}datasetAnimationScopeKeys(t,n){return Mn(`${t}.transition.${n}`,()=>[[`datasets.${t}.transitions.${n}`,`transitions.${n}`],[`datasets.${t}`,""]])}datasetElementScopeKeys(t,n){return Mn(`${t}-${n}`,()=>[[`datasets.${t}.elements.${n}`,`datasets.${t}`,`elements.${n}`,""]])}pluginScopeKeys(t){const n=t.id,i=this.type;return Mn(`${i}-plugin-${n}`,()=>[[`plugins.${n}`,...t.additionalOptionScopes||[]]])}_cachedScopes(t,n){const i=this._scopeCache;let s=i.get(t);return(!s||n)&&(s=new Map,i.set(t,s)),s}getOptionScopes(t,n,i){const{options:s,type:o}=this,r=this._cachedScopes(t,i),a=r.get(n);if(a)return a;const l=new Set;n.forEach(h=>{t&&(l.add(t),h.forEach(u=>ze(l,t,u))),h.forEach(u=>ze(l,s,u)),h.forEach(u=>ze(l,fe[o]||{},u)),h.forEach(u=>ze(l,q,u)),h.forEach(u=>ze(l,Ci,u))});const c=Array.from(l);return c.length===0&&c.push(Object.create(null)),_a.has(n)&&r.set(n,c),c}chartOptionScopes(){const{options:t,type:n}=this;return[t,fe[n]||{},q.datasets[n]||{},{type:n},q,Ci]}resolveNamedOptions(t,n,i,s=[""]){const o={$shared:!0},{resolver:r,subPrefixes:a}=Oo(this._resolverCache,t,s);let l=r;if(vf(r,n)){o.$shared=!1,i=Xt(i)?i():i;const c=this.createResolver(t,i,a);l=De(r,i,c)}for(const c of n)o[c]=l[c];return o}createResolver(t,n,i=[""],s){const{resolver:o}=Oo(this._resolverCache,t,i);return z(n)?De(o,n,void 0,s):o}}function Oo(e,t,n){let i=e.get(t);i||(i=new Map,e.set(t,i));const s=n.join();let o=i.get(s);return o||(o={resolver:ts(t,n),subPrefixes:n.filter(a=>!a.toLowerCase().includes("hover"))},i.set(s,o)),o}const yf=e=>z(e)&&Object.getOwnPropertyNames(e).some(t=>Xt(e[t]));function vf(e,t){const{isScriptable:n,isIndexable:i}=ia(e);for(const s of t){const o=n(s),r=i(s),a=(r||o)&&e[s];if(o&&(Xt(a)||yf(a))||r&&J(a))return!0}return!1}var _f="4.4.8";const wf=["top","bottom","left","right","chartArea"];function Do(e,t){return e==="top"||e==="bottom"||wf.indexOf(e)===-1&&t==="x"}function Eo(e,t){return function(n,i){return n[e]===i[e]?n[t]-i[t]:n[e]-i[e]}}function Ao(e){const t=e.chart,n=t.options.animation;t.notifyPlugins("afterRender"),Y(n&&n.onComplete,[e],t)}function Sf(e){const t=e.chart,n=t.options.animation;Y(n&&n.onProgress,[e],t)}function wa(e){return is()&&typeof e=="string"?e=document.getElementById(e):e&&e.length&&(e=e[0]),e&&e.canvas&&(e=e.canvas),e}const Ln={},To=e=>{const t=wa(e);return Object.values(Ln).filter(n=>n.canvas===t).pop()};function kf(e,t,n){const i=Object.keys(e);for(const s of i){const o=+s;if(o>=t){const r=e[s];delete e[s],(n>0||o>t)&&(e[o+n]=r)}}}function Mf(e,t,n,i){return!n||e.type==="mouseout"?null:i?t:e}function Cn(e,t,n){return e.options.clip?e[n]:t[n]}function Cf(e,t){const{xScale:n,yScale:i}=e;return n&&i?{left:Cn(n,t,"left"),right:Cn(n,t,"right"),top:Cn(i,t,"top"),bottom:Cn(i,t,"bottom")}:t}class Ct{static register(...t){Mt.add(...t),Ro()}static unregister(...t){Mt.remove(...t),Ro()}constructor(t,n){const i=this.config=new xf(n),s=wa(t),o=To(s);if(o)throw new Error("Canvas is already in use. Chart with ID '"+o.id+"' must be destroyed before the canvas with ID '"+o.canvas.id+"' can be reused.");const r=i.createResolver(i.chartOptionScopes(),this.getContext());this.platform=new(i.platform||Hd(s)),this.platform.updateConfig(i);const a=this.platform.acquireContext(s,r.aspectRatio),l=a&&a.canvas,c=l&&l.height,h=l&&l.width;if(this.id=Sh(),this.ctx=a,this.canvas=l,this.width=h,this.height=c,this._options=r,this._aspectRatio=this.aspectRatio,this._layers=[],this._metasets=[],this._stacks=void 0,this.boxes=[],this.currentDevicePixelRatio=void 0,this.chartArea=void 0,this._active=[],this._lastEvent=void 0,this._listeners={},this._responsiveListeners=void 0,this._sortedMetasets=[],this.scales={},this._plugins=new af,this.$proxies={},this._hiddenIndices={},this.attached=!1,this._animationsDisabled=void 0,this.$context=void 0,this._doResize=Hh(u=>this.update(u),r.resizeDelay||0),this._dataChanges=[],Ln[this.id]=this,!a||!l){console.error("Failed to create chart: can't acquire context from the given item");return}Tt.listen(this,"complete",Ao),Tt.listen(this,"progress",Sf),this._initialize(),this.attached&&this.update()}get aspectRatio(){const{options:{aspectRatio:t,maintainAspectRatio:n},width:i,height:s,_aspectRatio:o}=this;return B(t)?n&&o?o:s?i/s:null:t}get data(){return this.config.data}set data(t){this.config.data=t}get options(){return this._options}set options(t){this.config.options=t}get registry(){return Mt}_initialize(){return this.notifyPlugins("beforeInit"),this.options.responsive?this.resize():to(this,this.options.devicePixelRatio),this.bindEvents(),this.notifyPlugins("afterInit"),this}clear(){return Js(this.canvas,this.ctx),this}stop(){return Tt.stop(this),this}resize(t,n){Tt.running(this)?this._resizeBeforeDraw={width:t,height:n}:this._resize(t,n)}_resize(t,n){const i=this.options,s=this.canvas,o=i.maintainAspectRatio&&this.aspectRatio,r=this.platform.getMaximumSize(s,t,n,o),a=i.devicePixelRatio||this.platform.getDevicePixelRatio(),l=this.width?"resize":"attach";this.width=r.width,this.height=r.height,this._aspectRatio=this.aspectRatio,to(this,a,!0)&&(this.notifyPlugins("resize",{size:r}),Y(i.onResize,[this,r],this),this.attached&&this._doResize(l)&&this.render())}ensureScalesHaveIDs(){const n=this.options.scales||{};V(n,(i,s)=>{i.id=s})}buildOrUpdateScales(){const t=this.options,n=t.scales,i=this.scales,s=Object.keys(i).reduce((r,a)=>(r[a]=!1,r),{});let o=[];n&&(o=o.concat(Object.keys(n).map(r=>{const a=n[r],l=Di(r,a),c=l==="r",h=l==="x";return{options:a,dposition:c?"chartArea":h?"bottom":"left",dtype:c?"radialLinear":h?"category":"linear"}}))),V(o,r=>{const a=r.options,l=a.id,c=Di(l,a),h=j(a.type,r.dtype);(a.position===void 0||Do(a.position,c)!==Do(r.dposition))&&(a.position=r.dposition),s[l]=!0;let u=null;if(l in i&&i[l].type===h)u=i[l];else{const d=Mt.getScale(h);u=new d({id:l,type:h,ctx:this.ctx,chart:this}),i[u.id]=u}u.init(a,t)}),V(s,(r,a)=>{r||delete i[a]}),V(i,r=>{bt.configure(this,r,r.options),bt.addBox(this,r)})}_updateMetasets(){const t=this._metasets,n=this.data.datasets.length,i=t.length;if(t.sort((s,o)=>s.index-o.index),i>n){for(let s=n;s<i;++s)this._destroyDatasetMeta(s);t.splice(n,i-n)}this._sortedMetasets=t.slice(0).sort(Eo("order","index"))}_removeUnreferencedMetasets(){const{_metasets:t,data:{datasets:n}}=this;t.length>n.length&&delete this._stacks,t.forEach((i,s)=>{n.filter(o=>o===i._dataset).length===0&&this._destroyDatasetMeta(s)})}buildOrUpdateControllers(){const t=[],n=this.data.datasets;let i,s;for(this._removeUnreferencedMetasets(),i=0,s=n.length;i<s;i++){const o=n[i];let r=this.getDatasetMeta(i);const a=o.type||this.config.type;if(r.type&&r.type!==a&&(this._destroyDatasetMeta(i),r=this.getDatasetMeta(i)),r.type=a,r.indexAxis=o.indexAxis||Oi(a,this.options),r.order=o.order||0,r.index=i,r.label=""+o.label,r.visible=this.isDatasetVisible(i),r.controller)r.controller.updateIndex(i),r.controller.linkScales();else{const l=Mt.getController(a),{datasetElementType:c,dataElementType:h}=q.datasets[a];Object.assign(l,{dataElementType:Mt.getElement(h),datasetElementType:c&&Mt.getElement(c)}),r.controller=new l(this,i),t.push(r.controller)}}return this._updateMetasets(),t}_resetElements(){V(this.data.datasets,(t,n)=>{this.getDatasetMeta(n).controller.reset()},this)}reset(){this._resetElements(),this.notifyPlugins("reset")}update(t){const n=this.config;n.update();const i=this._options=n.createResolver(n.chartOptionScopes(),this.getContext()),s=this._animationsDisabled=!i.animation;if(this._updateScales(),this._checkEventBindings(),this._updateHiddenIndices(),this._plugins.invalidate(),this.notifyPlugins("beforeUpdate",{mode:t,cancelable:!0})===!1)return;const o=this.buildOrUpdateControllers();this.notifyPlugins("beforeElementsUpdate");let r=0;for(let c=0,h=this.data.datasets.length;c<h;c++){const{controller:u}=this.getDatasetMeta(c),d=!s&&o.indexOf(u)===-1;u.buildOrUpdateElements(d),r=Math.max(+u.getMaxOverflow(),r)}r=this._minPadding=i.layout.autoPadding?r:0,this._updateLayout(r),s||V(o,c=>{c.reset()}),this._updateDatasets(t),this.notifyPlugins("afterUpdate",{mode:t}),this._layers.sort(Eo("z","_idx"));const{_active:a,_lastEvent:l}=this;l?this._eventHandler(l,!0):a.length&&this._updateHoverStyles(a,a,!0),this.render()}_updateScales(){V(this.scales,t=>{bt.removeBox(this,t)}),this.ensureScalesHaveIDs(),this.buildOrUpdateScales()}_checkEventBindings(){const t=this.options,n=new Set(Object.keys(this._listeners)),i=new Set(t.events);(!Bs(n,i)||!!this._responsiveListeners!==t.responsive)&&(this.unbindEvents(),this.bindEvents())}_updateHiddenIndices(){const{_hiddenIndices:t}=this,n=this._getUniformDataChanges()||[];for(const{method:i,start:s,count:o}of n){const r=i==="_removeElements"?-o:o;kf(t,s,r)}}_getUniformDataChanges(){const t=this._dataChanges;if(!t||!t.length)return;this._dataChanges=[];const n=this.data.datasets.length,i=o=>new Set(t.filter(r=>r[0]===o).map((r,a)=>a+","+r.splice(1).join(","))),s=i(0);for(let o=1;o<n;o++)if(!Bs(s,i(o)))return;return Array.from(s).map(o=>o.split(",")).map(o=>({method:o[1],start:+o[2],count:+o[3]}))}_updateLayout(t){if(this.notifyPlugins("beforeLayout",{cancelable:!0})===!1)return;bt.update(this,this.width,this.height,t);const n=this.chartArea,i=n.width<=0||n.height<=0;this._layers=[],V(this.boxes,s=>{i&&s.position==="chartArea"||(s.configure&&s.configure(),this._layers.push(...s._layers()))},this),this._layers.forEach((s,o)=>{s._idx=o}),this.notifyPlugins("afterLayout")}_updateDatasets(t){if(this.notifyPlugins("beforeDatasetsUpdate",{mode:t,cancelable:!0})!==!1){for(let n=0,i=this.data.datasets.length;n<i;++n)this.getDatasetMeta(n).controller.configure();for(let n=0,i=this.data.datasets.length;n<i;++n)this._updateDataset(n,Xt(t)?t({datasetIndex:n}):t);this.notifyPlugins("afterDatasetsUpdate",{mode:t})}}_updateDataset(t,n){const i=this.getDatasetMeta(t),s={meta:i,index:t,mode:n,cancelable:!0};this.notifyPlugins("beforeDatasetUpdate",s)!==!1&&(i.controller._update(n),s.cancelable=!1,this.notifyPlugins("afterDatasetUpdate",s))}render(){this.notifyPlugins("beforeRender",{cancelable:!0})!==!1&&(Tt.has(this)?this.attached&&!Tt.running(this)&&Tt.start(this):(this.draw(),Ao({chart:this})))}draw(){let t;if(this._resizeBeforeDraw){const{width:i,height:s}=this._resizeBeforeDraw;this._resizeBeforeDraw=null,this._resize(i,s)}if(this.clear(),this.width<=0||this.height<=0||this.notifyPlugins("beforeDraw",{cancelable:!0})===!1)return;const n=this._layers;for(t=0;t<n.length&&n[t].z<=0;++t)n[t].draw(this.chartArea);for(this._drawDatasets();t<n.length;++t)n[t].draw(this.chartArea);this.notifyPlugins("afterDraw")}_getSortedDatasetMetas(t){const n=this._sortedMetasets,i=[];let s,o;for(s=0,o=n.length;s<o;++s){const r=n[s];(!t||r.visible)&&i.push(r)}return i}getSortedVisibleDatasetMetas(){return this._getSortedDatasetMetas(!0)}_drawDatasets(){if(this.notifyPlugins("beforeDatasetsDraw",{cancelable:!0})===!1)return;const t=this.getSortedVisibleDatasetMetas();for(let n=t.length-1;n>=0;--n)this._drawDataset(t[n]);this.notifyPlugins("afterDatasetsDraw")}_drawDataset(t){const n=this.ctx,i=t._clip,s=!i.disabled,o=Cf(t,this.chartArea),r={meta:t,index:t.index,cancelable:!0};this.notifyPlugins("beforeDatasetDraw",r)!==!1&&(s&&Ji(n,{left:i.left===!1?0:o.left-i.left,right:i.right===!1?this.width:o.right+i.right,top:i.top===!1?0:o.top-i.top,bottom:i.bottom===!1?this.height:o.bottom+i.bottom}),t.controller.draw(),s&&Zi(n),r.cancelable=!1,this.notifyPlugins("afterDatasetDraw",r))}isPointInArea(t){return nn(t,this.chartArea,this._minPadding)}getElementsAtEventForMode(t,n,i,s){const o=_d.modes[n];return typeof o=="function"?o(this,t,i,s):[]}getDatasetMeta(t){const n=this.data.datasets[t],i=this._metasets;let s=i.filter(o=>o&&o._dataset===n).pop();return s||(s={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null,order:n&&n.order||0,index:t,_dataset:n,_parsed:[],_sorted:!1},i.push(s)),s}getContext(){return this.$context||(this.$context=pe(null,{chart:this,type:"chart"}))}getVisibleDatasetCount(){return this.getSortedVisibleDatasetMetas().length}isDatasetVisible(t){const n=this.data.datasets[t];if(!n)return!1;const i=this.getDatasetMeta(t);return typeof i.hidden=="boolean"?!i.hidden:!n.hidden}setDatasetVisibility(t,n){const i=this.getDatasetMeta(t);i.hidden=!n}toggleDataVisibility(t){this._hiddenIndices[t]=!this._hiddenIndices[t]}getDataVisibility(t){return!this._hiddenIndices[t]}_updateVisibility(t,n,i){const s=i?"show":"hide",o=this.getDatasetMeta(t),r=o.controller._resolveAnimations(void 0,s);tn(n)?(o.data[n].hidden=!i,this.update()):(this.setDatasetVisibility(t,i),r.update(o,{visible:i}),this.update(a=>a.datasetIndex===t?s:void 0))}hide(t,n){this._updateVisibility(t,n,!1)}show(t,n){this._updateVisibility(t,n,!0)}_destroyDatasetMeta(t){const n=this._metasets[t];n&&n.controller&&n.controller._destroy(),delete this._metasets[t]}_stop(){let t,n;for(this.stop(),Tt.remove(this),t=0,n=this.data.datasets.length;t<n;++t)this._destroyDatasetMeta(t)}destroy(){this.notifyPlugins("beforeDestroy");const{canvas:t,ctx:n}=this;this._stop(),this.config.clearCache(),t&&(this.unbindEvents(),Js(t,n),this.platform.releaseContext(n),this.canvas=null,this.ctx=null),delete Ln[this.id],this.notifyPlugins("afterDestroy")}toBase64Image(...t){return this.canvas.toDataURL(...t)}bindEvents(){this.bindUserEvents(),this.options.responsive?this.bindResponsiveEvents():this.attached=!0}bindUserEvents(){const t=this._listeners,n=this.platform,i=(o,r)=>{n.addEventListener(this,o,r),t[o]=r},s=(o,r,a)=>{o.offsetX=r,o.offsetY=a,this._eventHandler(o)};V(this.options.events,o=>i(o,s))}bindResponsiveEvents(){this._responsiveListeners||(this._responsiveListeners={});const t=this._responsiveListeners,n=this.platform,i=(l,c)=>{n.addEventListener(this,l,c),t[l]=c},s=(l,c)=>{t[l]&&(n.removeEventListener(this,l,c),delete t[l])},o=(l,c)=>{this.canvas&&this.resize(l,c)};let r;const a=()=>{s("attach",a),this.attached=!0,this.resize(),i("resize",o),i("detach",r)};r=()=>{this.attached=!1,s("resize",o),this._stop(),this._resize(0,0),i("attach",a)},n.isAttached(this.canvas)?a():r()}unbindEvents(){V(this._listeners,(t,n)=>{this.platform.removeEventListener(this,n,t)}),this._listeners={},V(this._responsiveListeners,(t,n)=>{this.platform.removeEventListener(this,n,t)}),this._responsiveListeners=void 0}updateHoverStyle(t,n,i){const s=i?"set":"remove";let o,r,a,l;for(n==="dataset"&&(o=this.getDatasetMeta(t[0].datasetIndex),o.controller["_"+s+"DatasetHoverStyle"]()),a=0,l=t.length;a<l;++a){r=t[a];const c=r&&this.getDatasetMeta(r.datasetIndex).controller;c&&c[s+"HoverStyle"](r.element,r.datasetIndex,r.index)}}getActiveElements(){return this._active||[]}setActiveElements(t){const n=this._active||[],i=t.map(({datasetIndex:o,index:r})=>{const a=this.getDatasetMeta(o);if(!a)throw new Error("No dataset found at index "+o);return{datasetIndex:o,element:a.data[r],index:r}});!In(i,n)&&(this._active=i,this._lastEvent=null,this._updateHoverStyles(i,n))}notifyPlugins(t,n,i){return this._plugins.notify(this,t,n,i)}isPluginEnabled(t){return this._plugins._cache.filter(n=>n.plugin.id===t).length===1}_updateHoverStyles(t,n,i){const s=this.options.hover,o=(l,c)=>l.filter(h=>!c.some(u=>h.datasetIndex===u.datasetIndex&&h.index===u.index)),r=o(n,t),a=i?t:o(t,n);r.length&&this.updateHoverStyle(r,s.mode,!1),a.length&&s.mode&&this.updateHoverStyle(a,s.mode,!0)}_eventHandler(t,n){const i={event:t,replay:n,cancelable:!0,inChartArea:this.isPointInArea(t)},s=r=>(r.options.events||this.options.events).includes(t.native.type);if(this.notifyPlugins("beforeEvent",i,s)===!1)return;const o=this._handleEvent(t,n,i.inChartArea);return i.cancelable=!1,this.notifyPlugins("afterEvent",i,s),(o||i.changed)&&this.render(),this}_handleEvent(t,n,i){const{_active:s=[],options:o}=this,r=n,a=this._getActiveElements(t,s,i,r),l=Dh(t),c=Mf(t,this._lastEvent,i,l);i&&(this._lastEvent=null,Y(o.onHover,[t,a,this],this),l&&Y(o.onClick,[t,a,this],this));const h=!In(a,s);return(h||n)&&(this._active=a,this._updateHoverStyles(a,s,n)),this._lastEvent=c,h}_getActiveElements(t,n,i,s){if(t.type==="mouseout")return[];if(!i)return n;const o=this.options.hover;return this.getElementsAtEventForMode(t,o.mode,o,s)}}R(Ct,"defaults",q),R(Ct,"instances",Ln),R(Ct,"overrides",fe),R(Ct,"registry",Mt),R(Ct,"version",_f),R(Ct,"getChart",To);function Ro(){return V(Ct.instances,e=>e._plugins.invalidate())}function Pf(e,t,n){const{startAngle:i,pixelMargin:s,x:o,y:r,outerRadius:a,innerRadius:l}=t;let c=s/a;e.beginPath(),e.arc(o,r,a,i-c,n+c),l>s?(c=s/l,e.arc(o,r,l,n+c,i-c,!0)):e.arc(o,r,s,n+it,i-it),e.closePath(),e.clip()}function Of(e){return Qi(e,["outerStart","outerEnd","innerStart","innerEnd"])}function Df(e,t,n,i){const s=Of(e.options.borderRadius),o=(n-t)/2,r=Math.min(o,i*t/2),a=l=>{const c=(n-Math.min(o,l))*i/2;return rt(l,0,Math.min(o,c))};return{outerStart:a(s.outerStart),outerEnd:a(s.outerEnd),innerStart:rt(s.innerStart,0,r),innerEnd:rt(s.innerEnd,0,r)}}function be(e,t,n,i){return{x:n+e*Math.cos(t),y:i+e*Math.sin(t)}}function Hn(e,t,n,i,s,o){const{x:r,y:a,startAngle:l,pixelMargin:c,innerRadius:h}=t,u=Math.max(t.outerRadius+i+n-c,0),d=h>0?h+i+n+c:0;let f=0;const g=s-l;if(i){const T=h>0?h-i:0,L=u>0?u-i:0,F=(T+L)/2,H=F!==0?g*F/(F+i):g;f=(g-H)/2}const m=Math.max(.001,g*u-n/Z)/u,p=(g-m)/2,b=l+p+f,x=s-p-f,{outerStart:v,outerEnd:_,innerStart:y,innerEnd:w}=Df(t,d,u,x-b),k=u-v,S=u-_,C=b+v/k,D=x-_/S,P=d+y,O=d+w,A=b+y/P,I=x-w/O;if(e.beginPath(),o){const T=(C+D)/2;if(e.arc(r,a,u,C,T),e.arc(r,a,u,T,D),_>0){const $=be(S,D,r,a);e.arc($.x,$.y,_,D,x+it)}const L=be(O,x,r,a);if(e.lineTo(L.x,L.y),w>0){const $=be(O,I,r,a);e.arc($.x,$.y,w,x+it,I+Math.PI)}const F=(x-w/d+(b+y/d))/2;if(e.arc(r,a,d,x-w/d,F,!0),e.arc(r,a,d,F,b+y/d,!0),y>0){const $=be(P,A,r,a);e.arc($.x,$.y,y,A+Math.PI,b-it)}const H=be(k,b,r,a);if(e.lineTo(H.x,H.y),v>0){const $=be(k,C,r,a);e.arc($.x,$.y,v,b-it,C)}}else{e.moveTo(r,a);const T=Math.cos(C)*u+r,L=Math.sin(C)*u+a;e.lineTo(T,L);const F=Math.cos(D)*u+r,H=Math.sin(D)*u+a;e.lineTo(F,H)}e.closePath()}function Ef(e,t,n,i,s){const{fullCircles:o,startAngle:r,circumference:a}=t;let l=t.endAngle;if(o){Hn(e,t,n,i,l,s);for(let c=0;c<o;++c)e.fill();isNaN(a)||(l=r+(a%st||st))}return Hn(e,t,n,i,l,s),e.fill(),l}function Af(e,t,n,i,s){const{fullCircles:o,startAngle:r,circumference:a,options:l}=t,{borderWidth:c,borderJoinStyle:h,borderDash:u,borderDashOffset:d}=l,f=l.borderAlign==="inner";if(!c)return;e.setLineDash(u||[]),e.lineDashOffset=d,f?(e.lineWidth=c*2,e.lineJoin=h||"round"):(e.lineWidth=c,e.lineJoin=h||"bevel");let g=t.endAngle;if(o){Hn(e,t,n,i,g,s);for(let m=0;m<o;++m)e.stroke();isNaN(a)||(g=r+(a%st||st))}f&&Pf(e,t,g),o||(Hn(e,t,n,i,g,s),e.stroke())}class Pn extends jt{constructor(n){super();R(this,"circumference");R(this,"endAngle");R(this,"fullCircles");R(this,"innerRadius");R(this,"outerRadius");R(this,"pixelMargin");R(this,"startAngle");this.options=void 0,this.circumference=void 0,this.startAngle=void 0,this.endAngle=void 0,this.innerRadius=void 0,this.outerRadius=void 0,this.pixelMargin=0,this.fullCircles=0,n&&Object.assign(this,n)}inRange(n,i,s){const o=this.getProps(["x","y"],s),{angle:r,distance:a}=Xr(o,{x:n,y:i}),{startAngle:l,endAngle:c,innerRadius:h,outerRadius:u,circumference:d}=this.getProps(["startAngle","endAngle","innerRadius","outerRadius","circumference"],s),f=(this.options.spacing+this.options.borderWidth)/2,g=j(d,c-l),m=Xi(r,l,c)&&l!==c,p=g>=st||m,b=Bt(a,h+f,u+f);return p&&b}getCenterPoint(n){const{x:i,y:s,startAngle:o,endAngle:r,innerRadius:a,outerRadius:l}=this.getProps(["x","y","startAngle","endAngle","innerRadius","outerRadius"],n),{offset:c,spacing:h}=this.options,u=(o+r)/2,d=(a+l+h+c)/2;return{x:i+Math.cos(u)*d,y:s+Math.sin(u)*d}}tooltipPosition(n){return this.getCenterPoint(n)}draw(n){const{options:i,circumference:s}=this,o=(i.offset||0)/4,r=(i.spacing||0)/2,a=i.circular;if(this.pixelMargin=i.borderAlign==="inner"?.33:0,this.fullCircles=s>st?Math.floor(s/st):0,s===0||this.innerRadius<0||this.outerRadius<0)return;n.save();const l=(this.startAngle+this.endAngle)/2;n.translate(Math.cos(l)*o,Math.sin(l)*o);const c=1-Math.sin(Math.min(Z,s||0)),h=o*c;n.fillStyle=i.backgroundColor,n.strokeStyle=i.borderColor,Ef(n,this,h,r,a),Af(n,this,h,r,a),n.restore()}}R(Pn,"id","arc"),R(Pn,"defaults",{borderAlign:"center",borderColor:"#fff",borderDash:[],borderDashOffset:0,borderJoinStyle:void 0,borderRadius:0,borderWidth:2,offset:0,spacing:0,angle:void 0,circular:!0}),R(Pn,"defaultRoutes",{backgroundColor:"backgroundColor"}),R(Pn,"descriptors",{_scriptable:!0,_indexable:n=>n!=="borderDash"});function Sa(e,t,n=t){e.lineCap=j(n.borderCapStyle,t.borderCapStyle),e.setLineDash(j(n.borderDash,t.borderDash)),e.lineDashOffset=j(n.borderDashOffset,t.borderDashOffset),e.lineJoin=j(n.borderJoinStyle,t.borderJoinStyle),e.lineWidth=j(n.borderWidth,t.borderWidth),e.strokeStyle=j(n.borderColor,t.borderColor)}function Tf(e,t,n){e.lineTo(n.x,n.y)}function Rf(e){return e.stepped?eu:e.tension||e.cubicInterpolationMode==="monotone"?nu:Tf}function ka(e,t,n={}){const i=e.length,{start:s=0,end:o=i-1}=n,{start:r,end:a}=t,l=Math.max(s,r),c=Math.min(o,a),h=s<r&&o<r||s>a&&o>a;return{count:i,start:l,loop:t.loop,ilen:c<l&&!h?i+c-l:c-l}}function Lf(e,t,n,i){const{points:s,options:o}=t,{count:r,start:a,loop:l,ilen:c}=ka(s,n,i),h=Rf(o);let{move:u=!0,reverse:d}=i||{},f,g,m;for(f=0;f<=c;++f)g=s[(a+(d?c-f:f))%r],!g.skip&&(u?(e.moveTo(g.x,g.y),u=!1):h(e,m,g,d,o.stepped),m=g);return l&&(g=s[(a+(d?c:0))%r],h(e,m,g,d,o.stepped)),!!l}function Ff(e,t,n,i){const s=t.points,{count:o,start:r,ilen:a}=ka(s,n,i),{move:l=!0,reverse:c}=i||{};let h=0,u=0,d,f,g,m,p,b;const x=_=>(r+(c?a-_:_))%o,v=()=>{m!==p&&(e.lineTo(h,p),e.lineTo(h,m),e.lineTo(h,b))};for(l&&(f=s[x(0)],e.moveTo(f.x,f.y)),d=0;d<=a;++d){if(f=s[x(d)],f.skip)continue;const _=f.x,y=f.y,w=_|0;w===g?(y<m?m=y:y>p&&(p=y),h=(u*h+_)/++u):(v(),e.lineTo(_,y),g=w,u=0,m=p=y),b=y}v()}function Ei(e){const t=e.options,n=t.borderDash&&t.borderDash.length;return!e._decimated&&!e._loop&&!t.tension&&t.cubicInterpolationMode!=="monotone"&&!t.stepped&&!n?Ff:Lf}function If(e){return e.stepped?Lu:e.tension||e.cubicInterpolationMode==="monotone"?Fu:re}function jf(e,t,n,i){let s=t._path;s||(s=t._path=new Path2D,t.path(s,n,i)&&s.closePath()),Sa(e,t.options),e.stroke(s)}function $f(e,t,n,i){const{segments:s,options:o}=t,r=Ei(t);for(const a of s)Sa(e,o,a.style),e.beginPath(),r(e,t,a,{start:n,end:n+i-1})&&e.closePath(),e.stroke()}const zf=typeof Path2D=="function";function Nf(e,t,n,i){zf&&!t.options.segment?jf(e,t,n,i):$f(e,t,n,i)}class On extends jt{constructor(t){super(),this.animated=!0,this.options=void 0,this._chart=void 0,this._loop=void 0,this._fullLoop=void 0,this._path=void 0,this._points=void 0,this._segments=void 0,this._decimated=!1,this._pointsUpdated=!1,this._datasetIndex=void 0,t&&Object.assign(this,t)}updateControlPoints(t,n){const i=this.options;if((i.tension||i.cubicInterpolationMode==="monotone")&&!i.stepped&&!this._pointsUpdated){const s=i.spanGaps?this._loop:this._fullLoop;Cu(this._points,i,t,s,n),this._pointsUpdated=!0}}set points(t){this._points=t,delete this._segments,delete this._path,this._pointsUpdated=!1}get points(){return this._points}get segments(){return this._segments||(this._segments=Wu(this,this.options.segment))}first(){const t=this.segments,n=this.points;return t.length&&n[t[0].start]}last(){const t=this.segments,n=this.points,i=t.length;return i&&n[t[i-1].end]}interpolate(t,n){const i=this.options,s=t[n],o=this.points,r=Nu(this,{property:n,start:s,end:s});if(!r.length)return;const a=[],l=If(i);let c,h;for(c=0,h=r.length;c<h;++c){const{start:u,end:d}=r[c],f=o[u],g=o[d];if(f===g){a.push(f);continue}const m=Math.abs((s-f[n])/(g[n]-f[n])),p=l(f,g,m,i.stepped);p[n]=t[n],a.push(p)}return a.length===1?a[0]:a}pathSegment(t,n,i){return Ei(this)(t,this,n,i)}path(t,n,i){const s=this.segments,o=Ei(this);let r=this._loop;n=n||0,i=i||this.points.length-n;for(const a of s)r&=o(t,this,a,{start:n,end:n+i-1});return!!r}draw(t,n,i,s){const o=this.options||{};(this.points||[]).length&&o.borderWidth&&(t.save(),Nf(t,this,i,s),t.restore()),this.animated&&(this._pointsUpdated=!1,this._path=void 0)}}R(On,"id","line"),R(On,"defaults",{borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderWidth:3,capBezierPoints:!0,cubicInterpolationMode:"default",fill:!1,spanGaps:!1,stepped:!1,tension:0}),R(On,"defaultRoutes",{backgroundColor:"backgroundColor",borderColor:"borderColor"}),R(On,"descriptors",{_scriptable:!0,_indexable:t=>t!=="borderDash"&&t!=="fill"});function Lo(e,t,n,i){const s=e.options,{[n]:o}=e.getProps([n],i);return Math.abs(t-o)<s.radius+s.hitRadius}class gi extends jt{constructor(n){super();R(this,"parsed");R(this,"skip");R(this,"stop");this.options=void 0,this.parsed=void 0,this.skip=void 0,this.stop=void 0,n&&Object.assign(this,n)}inRange(n,i,s){const o=this.options,{x:r,y:a}=this.getProps(["x","y"],s);return Math.pow(n-r,2)+Math.pow(i-a,2)<Math.pow(o.hitRadius+o.radius,2)}inXRange(n,i){return Lo(this,n,"x",i)}inYRange(n,i){return Lo(this,n,"y",i)}getCenterPoint(n){const{x:i,y:s}=this.getProps(["x","y"],n);return{x:i,y:s}}size(n){n=n||this.options||{};let i=n.radius||0;i=Math.max(i,i&&n.hoverRadius||0);const s=i&&n.borderWidth||0;return(i+s)*2}draw(n,i){const s=this.options;this.skip||s.radius<.1||!nn(this,i,this.size(s)/2)||(n.strokeStyle=s.borderColor,n.lineWidth=s.borderWidth,n.fillStyle=s.backgroundColor,Pi(n,s,this.x,this.y))}getRange(){const n=this.options||{};return n.radius+n.hitRadius}}R(gi,"id","point"),R(gi,"defaults",{borderWidth:1,hitRadius:1,hoverBorderWidth:1,hoverRadius:4,pointStyle:"circle",radius:3,rotation:0}),R(gi,"defaultRoutes",{backgroundColor:"backgroundColor",borderColor:"borderColor"});function Ma(e,t){const{x:n,y:i,base:s,width:o,height:r}=e.getProps(["x","y","base","width","height"],t);let a,l,c,h,u;return e.horizontal?(u=r/2,a=Math.min(n,s),l=Math.max(n,s),c=i-u,h=i+u):(u=o/2,a=n-u,l=n+u,c=Math.min(i,s),h=Math.max(i,s)),{left:a,top:c,right:l,bottom:h}}function Ht(e,t,n,i){return e?0:rt(t,n,i)}function Bf(e,t,n){const i=e.options.borderWidth,s=e.borderSkipped,o=na(i);return{t:Ht(s.top,o.top,0,n),r:Ht(s.right,o.right,0,t),b:Ht(s.bottom,o.bottom,0,n),l:Ht(s.left,o.left,0,t)}}function Hf(e,t,n){const{enableBorderRadius:i}=e.getProps(["enableBorderRadius"]),s=e.options.borderRadius,o=_e(s),r=Math.min(t,n),a=e.borderSkipped,l=i||z(s);return{topLeft:Ht(!l||a.top||a.left,o.topLeft,0,r),topRight:Ht(!l||a.top||a.right,o.topRight,0,r),bottomLeft:Ht(!l||a.bottom||a.left,o.bottomLeft,0,r),bottomRight:Ht(!l||a.bottom||a.right,o.bottomRight,0,r)}}function Wf(e){const t=Ma(e),n=t.right-t.left,i=t.bottom-t.top,s=Bf(e,n/2,i/2),o=Hf(e,n/2,i/2);return{outer:{x:t.left,y:t.top,w:n,h:i,radius:o},inner:{x:t.left+s.l,y:t.top+s.t,w:n-s.l-s.r,h:i-s.t-s.b,radius:{topLeft:Math.max(0,o.topLeft-Math.max(s.t,s.l)),topRight:Math.max(0,o.topRight-Math.max(s.t,s.r)),bottomLeft:Math.max(0,o.bottomLeft-Math.max(s.b,s.l)),bottomRight:Math.max(0,o.bottomRight-Math.max(s.b,s.r))}}}}function mi(e,t,n,i){const s=t===null,o=n===null,a=e&&!(s&&o)&&Ma(e,i);return a&&(s||Bt(t,a.left,a.right))&&(o||Bt(n,a.top,a.bottom))}function Vf(e){return e.topLeft||e.topRight||e.bottomLeft||e.bottomRight}function Yf(e,t){e.rect(t.x,t.y,t.w,t.h)}function bi(e,t,n={}){const i=e.x!==n.x?-t:0,s=e.y!==n.y?-t:0,o=(e.x+e.w!==n.x+n.w?t:0)-i,r=(e.y+e.h!==n.y+n.h?t:0)-s;return{x:e.x+i,y:e.y+s,w:e.w+o,h:e.h+r,radius:e.radius}}class xi extends jt{constructor(t){super(),this.options=void 0,this.horizontal=void 0,this.base=void 0,this.width=void 0,this.height=void 0,this.inflateAmount=void 0,t&&Object.assign(this,t)}draw(t){const{inflateAmount:n,options:{borderColor:i,backgroundColor:s}}=this,{inner:o,outer:r}=Wf(this),a=Vf(r.radius)?zn:Yf;t.save(),(r.w!==o.w||r.h!==o.h)&&(t.beginPath(),a(t,bi(r,n,o)),t.clip(),a(t,bi(o,-n,r)),t.fillStyle=i,t.fill("evenodd")),t.beginPath(),a(t,bi(o,n)),t.fillStyle=s,t.fill(),t.restore()}inRange(t,n,i){return mi(this,t,n,i)}inXRange(t,n){return mi(this,t,null,n)}inYRange(t,n){return mi(this,null,t,n)}getCenterPoint(t){const{x:n,y:i,base:s,horizontal:o}=this.getProps(["x","y","base","horizontal"],t);return{x:o?(n+s)/2:n,y:o?i:(i+s)/2}}getRange(t){return t==="x"?this.width/2:this.height/2}}R(xi,"id","bar"),R(xi,"defaults",{borderSkipped:"start",borderWidth:0,borderRadius:0,inflateAmount:"auto",pointStyle:void 0}),R(xi,"defaultRoutes",{backgroundColor:"backgroundColor",borderColor:"borderColor"});const Fo=(e,t)=>{let{boxHeight:n=t,boxWidth:i=t}=e;return e.usePointStyle&&(n=Math.min(n,t),i=e.pointStyleWidth||Math.min(i,t)),{boxWidth:i,boxHeight:n,itemHeight:Math.max(t,n)}},Uf=(e,t)=>e!==null&&t!==null&&e.datasetIndex===t.datasetIndex&&e.index===t.index;class Io extends jt{constructor(t){super(),this._added=!1,this.legendHitBoxes=[],this._hoveredItem=null,this.doughnutMode=!1,this.chart=t.chart,this.options=t.options,this.ctx=t.ctx,this.legendItems=void 0,this.columnSizes=void 0,this.lineWidths=void 0,this.maxHeight=void 0,this.maxWidth=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.height=void 0,this.width=void 0,this._margins=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(t,n,i){this.maxWidth=t,this.maxHeight=n,this._margins=i,this.setDimensions(),this.buildLabels(),this.fit()}setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.left=this._margins.left,this.right=this.width):(this.height=this.maxHeight,this.top=this._margins.top,this.bottom=this.height)}buildLabels(){const t=this.options.labels||{};let n=Y(t.generateLabels,[this.chart],this)||[];t.filter&&(n=n.filter(i=>t.filter(i,this.chart.data))),t.sort&&(n=n.sort((i,s)=>t.sort(i,s,this.chart.data))),this.options.reverse&&n.reverse(),this.legendItems=n}fit(){const{options:t,ctx:n}=this;if(!t.display){this.width=this.height=0;return}const i=t.labels,s=at(i.font),o=s.size,r=this._computeTitleHeight(),{boxWidth:a,itemHeight:l}=Fo(i,o);let c,h;n.font=s.string,this.isHorizontal()?(c=this.maxWidth,h=this._fitRows(r,o,a,l)+10):(h=this.maxHeight,c=this._fitCols(r,s,a,l)+10),this.width=Math.min(c,t.maxWidth||this.maxWidth),this.height=Math.min(h,t.maxHeight||this.maxHeight)}_fitRows(t,n,i,s){const{ctx:o,maxWidth:r,options:{labels:{padding:a}}}=this,l=this.legendHitBoxes=[],c=this.lineWidths=[0],h=s+a;let u=t;o.textAlign="left",o.textBaseline="middle";let d=-1,f=-h;return this.legendItems.forEach((g,m)=>{const p=i+n/2+o.measureText(g.text).width;(m===0||c[c.length-1]+p+2*a>r)&&(u+=h,c[c.length-(m>0?0:1)]=0,f+=h,d++),l[m]={left:0,top:f,row:d,width:p,height:s},c[c.length-1]+=p+a}),u}_fitCols(t,n,i,s){const{ctx:o,maxHeight:r,options:{labels:{padding:a}}}=this,l=this.legendHitBoxes=[],c=this.columnSizes=[],h=r-t;let u=a,d=0,f=0,g=0,m=0;return this.legendItems.forEach((p,b)=>{const{itemWidth:x,itemHeight:v}=Xf(i,n,o,p,s);b>0&&f+v+2*a>h&&(u+=d+a,c.push({width:d,height:f}),g+=d+a,m++,d=f=0),l[b]={left:g,top:f,col:m,width:x,height:v},d=Math.max(d,x),f+=v+a}),u+=d,c.push({width:d,height:f}),u}adjustHitBoxes(){if(!this.options.display)return;const t=this._computeTitleHeight(),{legendHitBoxes:n,options:{align:i,labels:{padding:s},rtl:o}}=this,r=we(o,this.left,this.width);if(this.isHorizontal()){let a=0,l=ot(i,this.left+s,this.right-this.lineWidths[a]);for(const c of n)a!==c.row&&(a=c.row,l=ot(i,this.left+s,this.right-this.lineWidths[a])),c.top+=this.top+t+s,c.left=r.leftForLtr(r.x(l),c.width),l+=c.width+s}else{let a=0,l=ot(i,this.top+t+s,this.bottom-this.columnSizes[a].height);for(const c of n)c.col!==a&&(a=c.col,l=ot(i,this.top+t+s,this.bottom-this.columnSizes[a].height)),c.top=l,c.left+=this.left+s,c.left=r.leftForLtr(r.x(c.left),c.width),l+=c.height+s}}isHorizontal(){return this.options.position==="top"||this.options.position==="bottom"}draw(){if(this.options.display){const t=this.ctx;Ji(t,this),this._draw(),Zi(t)}}_draw(){const{options:t,columnSizes:n,lineWidths:i,ctx:s}=this,{align:o,labels:r}=t,a=q.color,l=we(t.rtl,this.left,this.width),c=at(r.font),{padding:h}=r,u=c.size,d=u/2;let f;this.drawTitle(),s.textAlign=l.textAlign("left"),s.textBaseline="middle",s.lineWidth=.5,s.font=c.string;const{boxWidth:g,boxHeight:m,itemHeight:p}=Fo(r,u),b=function(w,k,S){if(isNaN(g)||g<=0||isNaN(m)||m<0)return;s.save();const C=j(S.lineWidth,1);if(s.fillStyle=j(S.fillStyle,a),s.lineCap=j(S.lineCap,"butt"),s.lineDashOffset=j(S.lineDashOffset,0),s.lineJoin=j(S.lineJoin,"miter"),s.lineWidth=C,s.strokeStyle=j(S.strokeStyle,a),s.setLineDash(j(S.lineDash,[])),r.usePointStyle){const D={radius:m*Math.SQRT2/2,pointStyle:S.pointStyle,rotation:S.rotation,borderWidth:C},P=l.xPlus(w,g/2),O=k+d;ea(s,D,P,O,r.pointStyleWidth&&g)}else{const D=k+Math.max((u-m)/2,0),P=l.leftForLtr(w,g),O=_e(S.borderRadius);s.beginPath(),Object.values(O).some(A=>A!==0)?zn(s,{x:P,y:D,w:g,h:m,radius:O}):s.rect(P,D,g,m),s.fill(),C!==0&&s.stroke()}s.restore()},x=function(w,k,S){sn(s,S.text,w,k+p/2,c,{strikethrough:S.hidden,textAlign:l.textAlign(S.textAlign)})},v=this.isHorizontal(),_=this._computeTitleHeight();v?f={x:ot(o,this.left+h,this.right-i[0]),y:this.top+h+_,line:0}:f={x:this.left+h,y:ot(o,this.top+_+h,this.bottom-n[0].height),line:0},la(this.ctx,t.textDirection);const y=p+h;this.legendItems.forEach((w,k)=>{s.strokeStyle=w.fontColor,s.fillStyle=w.fontColor;const S=s.measureText(w.text).width,C=l.textAlign(w.textAlign||(w.textAlign=r.textAlign)),D=g+d+S;let P=f.x,O=f.y;l.setWidth(this.width),v?k>0&&P+D+h>this.right&&(O=f.y+=y,f.line++,P=f.x=ot(o,this.left+h,this.right-i[f.line])):k>0&&O+y>this.bottom&&(P=f.x=P+n[f.line].width+h,f.line++,O=f.y=ot(o,this.top+_+h,this.bottom-n[f.line].height));const A=l.x(P);if(b(A,O,w),P=Wh(C,P+g+d,v?P+D:this.right,t.rtl),x(l.x(P),O,w),v)f.x+=D+h;else if(typeof w.text!="string"){const I=c.lineHeight;f.y+=Ca(w,I)+h}else f.y+=y}),ca(this.ctx,t.textDirection)}drawTitle(){const t=this.options,n=t.title,i=at(n.font),s=_t(n.padding);if(!n.display)return;const o=we(t.rtl,this.left,this.width),r=this.ctx,a=n.position,l=i.size/2,c=s.top+l;let h,u=this.left,d=this.width;if(this.isHorizontal())d=Math.max(...this.lineWidths),h=this.top+c,u=ot(t.align,u,this.right-d);else{const g=this.columnSizes.reduce((m,p)=>Math.max(m,p.height),0);h=c+ot(t.align,this.top,this.bottom-g-t.labels.padding-this._computeTitleHeight())}const f=ot(a,u,u+d);r.textAlign=o.textAlign(Ki(a)),r.textBaseline="middle",r.strokeStyle=n.color,r.fillStyle=n.color,r.font=i.string,sn(r,n.text,f,h,i)}_computeTitleHeight(){const t=this.options.title,n=at(t.font),i=_t(t.padding);return t.display?n.lineHeight+i.height:0}_getLegendItemAt(t,n){let i,s,o;if(Bt(t,this.left,this.right)&&Bt(n,this.top,this.bottom)){for(o=this.legendHitBoxes,i=0;i<o.length;++i)if(s=o[i],Bt(t,s.left,s.left+s.width)&&Bt(n,s.top,s.top+s.height))return this.legendItems[i]}return null}handleEvent(t){const n=this.options;if(!Gf(t.type,n))return;const i=this._getLegendItemAt(t.x,t.y);if(t.type==="mousemove"||t.type==="mouseout"){const s=this._hoveredItem,o=Uf(s,i);s&&!o&&Y(n.onLeave,[t,s,this],this),this._hoveredItem=i,i&&!o&&Y(n.onHover,[t,i,this],this)}else i&&Y(n.onClick,[t,i,this],this)}}function Xf(e,t,n,i,s){const o=qf(i,e,t,n),r=Kf(s,i,t.lineHeight);return{itemWidth:o,itemHeight:r}}function qf(e,t,n,i){let s=e.text;return s&&typeof s!="string"&&(s=s.reduce((o,r)=>o.length>r.length?o:r)),t+n.size/2+i.measureText(s).width}function Kf(e,t,n){let i=e;return typeof t.text!="string"&&(i=Ca(t,n)),i}function Ca(e,t){const n=e.text?e.text.length:0;return t*n}function Gf(e,t){return!!((e==="mousemove"||e==="mouseout")&&(t.onHover||t.onLeave)||t.onClick&&(e==="click"||e==="mouseup"))}var Dg={id:"legend",_element:Io,start(e,t,n){const i=e.legend=new Io({ctx:e.ctx,options:n,chart:e});bt.configure(e,i,n),bt.addBox(e,i)},stop(e){bt.removeBox(e,e.legend),delete e.legend},beforeUpdate(e,t,n){const i=e.legend;bt.configure(e,i,n),i.options=n},afterUpdate(e){const t=e.legend;t.buildLabels(),t.adjustHitBoxes()},afterEvent(e,t){t.replay||e.legend.handleEvent(t.event)},defaults:{display:!0,position:"top",align:"center",fullSize:!0,reverse:!1,weight:1e3,onClick(e,t,n){const i=t.datasetIndex,s=n.chart;s.isDatasetVisible(i)?(s.hide(i),t.hidden=!0):(s.show(i),t.hidden=!1)},onHover:null,onLeave:null,labels:{color:e=>e.chart.options.color,boxWidth:40,padding:10,generateLabels(e){const t=e.data.datasets,{labels:{usePointStyle:n,pointStyle:i,textAlign:s,color:o,useBorderRadius:r,borderRadius:a}}=e.legend.options;return e._getSortedDatasetMetas().map(l=>{const c=l.controller.getStyle(n?0:void 0),h=_t(c.borderWidth);return{text:t[l.index].label,fillStyle:c.backgroundColor,fontColor:o,hidden:!l.visible,lineCap:c.borderCapStyle,lineDash:c.borderDash,lineDashOffset:c.borderDashOffset,lineJoin:c.borderJoinStyle,lineWidth:(h.width+h.height)/4,strokeStyle:c.borderColor,pointStyle:i||c.pointStyle,rotation:c.rotation,textAlign:s||c.textAlign,borderRadius:r&&(a||c.borderRadius),datasetIndex:l.index}},this)}},title:{color:e=>e.chart.options.color,display:!1,position:"center",text:""}},descriptors:{_scriptable:e=>!e.startsWith("on"),labels:{_scriptable:e=>!["generateLabels","filter","sort"].includes(e)}}};class Pa extends jt{constructor(t){super(),this.chart=t.chart,this.options=t.options,this.ctx=t.ctx,this._padding=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.width=void 0,this.height=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(t,n){const i=this.options;if(this.left=0,this.top=0,!i.display){this.width=this.height=this.right=this.bottom=0;return}this.width=this.right=t,this.height=this.bottom=n;const s=J(i.text)?i.text.length:1;this._padding=_t(i.padding);const o=s*at(i.font).lineHeight+this._padding.height;this.isHorizontal()?this.height=o:this.width=o}isHorizontal(){const t=this.options.position;return t==="top"||t==="bottom"}_drawArgs(t){const{top:n,left:i,bottom:s,right:o,options:r}=this,a=r.align;let l=0,c,h,u;return this.isHorizontal()?(h=ot(a,i,o),u=n+t,c=o-i):(r.position==="left"?(h=i+t,u=ot(a,s,n),l=Z*-.5):(h=o-t,u=ot(a,n,s),l=Z*.5),c=s-n),{titleX:h,titleY:u,maxWidth:c,rotation:l}}draw(){const t=this.ctx,n=this.options;if(!n.display)return;const i=at(n.font),o=i.lineHeight/2+this._padding.top,{titleX:r,titleY:a,maxWidth:l,rotation:c}=this._drawArgs(o);sn(t,n.text,0,0,i,{color:n.color,maxWidth:l,rotation:c,textAlign:Ki(n.align),textBaseline:"middle",translation:[r,a]})}}function Jf(e,t){const n=new Pa({ctx:e.ctx,options:t,chart:e});bt.configure(e,n,t),bt.addBox(e,n),e.titleBlock=n}var Eg={id:"title",_element:Pa,start(e,t,n){Jf(e,n)},stop(e){const t=e.titleBlock;bt.removeBox(e,t),delete e.titleBlock},beforeUpdate(e,t,n){const i=e.titleBlock;bt.configure(e,i,n),i.options=n},defaults:{align:"center",display:!1,font:{weight:"bold"},fullSize:!0,padding:10,position:"top",text:"",weight:2e3},defaultRoutes:{color:"color"},descriptors:{_scriptable:!0,_indexable:!1}};const He={average(e){if(!e.length)return!1;let t,n,i=new Set,s=0,o=0;for(t=0,n=e.length;t<n;++t){const a=e[t].element;if(a&&a.hasValue()){const l=a.tooltipPosition();i.add(l.x),s+=l.y,++o}}return o===0||i.size===0?!1:{x:[...i].reduce((a,l)=>a+l)/i.size,y:s/o}},nearest(e,t){if(!e.length)return!1;let n=t.x,i=t.y,s=Number.POSITIVE_INFINITY,o,r,a;for(o=0,r=e.length;o<r;++o){const l=e[o].element;if(l&&l.hasValue()){const c=l.getCenterPoint(),h=Mi(t,c);h<s&&(s=h,a=l)}}if(a){const l=a.tooltipPosition();n=l.x,i=l.y}return{x:n,y:i}}};function kt(e,t){return t&&(J(t)?Array.prototype.push.apply(e,t):e.push(t)),e}function Rt(e){return(typeof e=="string"||e instanceof String)&&e.indexOf(` + */class Xu{constructor(){this._request=null,this._charts=new Map,this._running=!1,this._lastDate=void 0}_notify(t,n,i,s){const o=n.listeners[s],r=n.duration;o.forEach(a=>a({chart:t,initial:n.initial,numSteps:r,currentStep:Math.min(i-n.start,r)}))}_refresh(){this._request||(this._running=!0,this._request=Jr.call(window,()=>{this._update(),this._request=null,this._running&&this._refresh()}))}_update(t=Date.now()){let n=0;this._charts.forEach((i,s)=>{if(!i.running||!i.items.length)return;const o=i.items;let r=o.length-1,a=!1,l;for(;r>=0;--r)l=o[r],l._active?(l._total>i.duration&&(i.duration=l._total),l.tick(t),a=!0):(o[r]=o[o.length-1],o.pop());a&&(s.draw(),this._notify(s,i,t,"progress")),o.length||(i.running=!1,this._notify(s,i,t,"complete"),i.initial=!1),n+=o.length}),this._lastDate=t,n===0&&(this._running=!1)}_getAnims(t){const n=this._charts;let i=n.get(t);return i||(i={running:!1,initial:!0,items:[],listeners:{complete:[],progress:[]}},n.set(t,i)),i}listen(t,n,i){this._getAnims(t).listeners[n].push(i)}add(t,n){!n||!n.length||this._getAnims(t).items.push(...n)}has(t){return this._getAnims(t).items.length>0}start(t){const n=this._charts.get(t);n&&(n.running=!0,n.start=Date.now(),n.duration=n.items.reduce((i,s)=>Math.max(i,s._duration),0),this._refresh())}running(t){if(!this._running)return!1;const n=this._charts.get(t);return!(!n||!n.running||!n.items.length)}stop(t){const n=this._charts.get(t);if(!n||!n.items.length)return;const i=n.items;let s=i.length-1;for(;s>=0;--s)i[s].cancel();n.items=[],this._notify(t,n,Date.now(),"complete")}remove(t){return this._charts.delete(t)}}var Tt=new Xu;const ro="transparent",qu={boolean(e,t,n){return n>.5?t:e},color(e,t,n){const i=Ks(e||ro),s=i.valid&&Ks(t||ro);return s&&s.valid?s.mix(i,n).hexString():t},number(e,t,n){return e+(t-e)*n}};class Ku{constructor(t,n,i,s){const o=n[i];s=yn([t.to,s,o,t.from]);const r=yn([t.from,o,s]);this._active=!0,this._fn=t.fn||qu[t.type||typeof r],this._easing=qe[t.easing]||qe.linear,this._start=Math.floor(Date.now()+(t.delay||0)),this._duration=this._total=Math.floor(t.duration),this._loop=!!t.loop,this._target=n,this._prop=i,this._from=r,this._to=s,this._promises=void 0}active(){return this._active}update(t,n,i){if(this._active){this._notify(!1);const s=this._target[this._prop],o=i-this._start,r=this._duration-o;this._start=i,this._duration=Math.floor(Math.max(r,t.duration)),this._total+=o,this._loop=!!t.loop,this._to=yn([t.to,n,s,t.from]),this._from=yn([t.from,s,n])}}cancel(){this._active&&(this.tick(Date.now()),this._active=!1,this._notify(!1))}tick(t){const n=t-this._start,i=this._duration,s=this._prop,o=this._from,r=this._loop,a=this._to;let l;if(this._active=o!==a&&(r||n<i),!this._active){this._target[s]=a,this._notify(!0);return}if(n<0){this._target[s]=o;return}l=n/i%2,l=r&&l>1?2-l:l,l=this._easing(Math.min(1,Math.max(0,l))),this._target[s]=this._fn(o,a,l)}wait(){const t=this._promises||(this._promises=[]);return new Promise((n,i)=>{t.push({res:n,rej:i})})}_notify(t){const n=t?"res":"rej",i=this._promises||[];for(let s=0;s<i.length;s++)i[s][n]()}}class da{constructor(t,n){this._chart=t,this._properties=new Map,this.configure(n)}configure(t){if(!z(t))return;const n=Object.keys(q.animation),i=this._properties;Object.getOwnPropertyNames(t).forEach(s=>{const o=t[s];if(!z(o))return;const r={};for(const a of n)r[a]=o[a];(J(o.properties)&&o.properties||[s]).forEach(a=>{(a===s||!i.has(a))&&i.set(a,r)})})}_animateOptions(t,n){const i=n.options,s=Ju(t,i);if(!s)return[];const o=this._createAnimations(s,i);return i.$shared&&Gu(t.options.$animations,i).then(()=>{t.options=i},()=>{}),o}_createAnimations(t,n){const i=this._properties,s=[],o=t.$animations||(t.$animations={}),r=Object.keys(n),a=Date.now();let l;for(l=r.length-1;l>=0;--l){const c=r[l];if(c.charAt(0)==="$")continue;if(c==="options"){s.push(...this._animateOptions(t,n));continue}const h=n[c];let u=o[c];const d=i.get(c);if(u)if(d&&u.active()){u.update(d,h,a);continue}else u.cancel();if(!d||!d.duration){t[c]=h;continue}o[c]=u=new Ku(d,t,c,h),s.push(u)}return s}update(t,n){if(this._properties.size===0){Object.assign(t,n);return}const i=this._createAnimations(t,n);if(i.length)return Tt.add(this._chart,i),!0}}function Gu(e,t){const n=[],i=Object.keys(t);for(let s=0;s<i.length;s++){const o=e[i[s]];o&&o.active()&&n.push(o.wait())}return Promise.all(n)}function Ju(e,t){if(!t)return;let n=e.options;if(!n){e.options=t;return}return n.$shared&&(e.options=n=Object.assign({},n,{$shared:!1,$animations:{}})),n}function ao(e,t){const n=e&&e.options||{},i=n.reverse,s=n.min===void 0?t:0,o=n.max===void 0?t:0;return{start:i?o:s,end:i?s:o}}function Zu(e,t,n){if(n===!1)return!1;const i=ao(e,n),s=ao(t,n);return{top:s.end,right:i.end,bottom:s.start,left:i.start}}function Qu(e){let t,n,i,s;return z(e)?(t=e.top,n=e.right,i=e.bottom,s=e.left):t=n=i=s=e,{top:t,right:n,bottom:i,left:s,disabled:e===!1}}function fa(e,t){const n=[],i=e._getSortedDatasetMetas(t);let s,o;for(s=0,o=i.length;s<o;++s)n.push(i[s].index);return n}function lo(e,t,n,i={}){const s=e.keys,o=i.mode==="single";let r,a,l,c;if(t===null)return;let h=!1;for(r=0,a=s.length;r<a;++r){if(l=+s[r],l===n){if(h=!0,i.all)continue;break}c=e.values[l],vt(c)&&(o||t===0||Dt(t)===Dt(c))&&(t+=c)}return!h&&!i.all?0:t}function td(e,t){const{iScale:n,vScale:i}=t,s=n.axis==="x"?"x":"y",o=i.axis==="x"?"x":"y",r=Object.keys(e),a=new Array(r.length);let l,c,h;for(l=0,c=r.length;l<c;++l)h=r[l],a[l]={[s]:h,[o]:e[h]};return a}function ai(e,t){const n=e&&e.options.stacked;return n||n===void 0&&t.stack!==void 0}function ed(e,t,n){return`${e.id}.${t.id}.${n.stack||n.type}`}function nd(e){const{min:t,max:n,minDefined:i,maxDefined:s}=e.getUserBounds();return{min:i?t:Number.NEGATIVE_INFINITY,max:s?n:Number.POSITIVE_INFINITY}}function id(e,t,n){const i=e[t]||(e[t]={});return i[n]||(i[n]={})}function co(e,t,n,i){for(const s of t.getMatchingVisibleMetas(i).reverse()){const o=e[s.index];if(n&&o>0||!n&&o<0)return s.index}return null}function ho(e,t){const{chart:n,_cachedMeta:i}=e,s=n._stacks||(n._stacks={}),{iScale:o,vScale:r,index:a}=i,l=o.axis,c=r.axis,h=ed(o,r,i),u=t.length;let d;for(let f=0;f<u;++f){const g=t[f],{[l]:m,[c]:p}=g,b=g._stacks||(g._stacks={});d=b[c]=id(s,h,m),d[a]=p,d._top=co(d,r,!0,i.type),d._bottom=co(d,r,!1,i.type);const x=d._visualValues||(d._visualValues={});x[a]=p}}function li(e,t){const n=e.scales;return Object.keys(n).filter(i=>n[i].axis===t).shift()}function sd(e,t){return pe(e,{active:!1,dataset:void 0,datasetIndex:t,index:t,mode:"default",type:"dataset"})}function od(e,t,n){return pe(e,{active:!1,dataIndex:t,parsed:void 0,raw:void 0,element:n,index:t,mode:"default",type:"data"})}function Fe(e,t){const n=e.controller.index,i=e.vScale&&e.vScale.axis;if(i){t=t||e._parsed;for(const s of t){const o=s._stacks;if(!o||o[i]===void 0||o[i][n]===void 0)return;delete o[i][n],o[i]._visualValues!==void 0&&o[i]._visualValues[n]!==void 0&&delete o[i]._visualValues[n]}}}const ci=e=>e==="reset"||e==="none",uo=(e,t)=>t?e:Object.assign({},e),rd=(e,t,n)=>e&&!t.hidden&&t._stacked&&{keys:fa(n,!0),values:null};class Se{constructor(t,n){this.chart=t,this._ctx=t.ctx,this.index=n,this._cachedDataOpts={},this._cachedMeta=this.getMeta(),this._type=this._cachedMeta.type,this.options=void 0,this._parsing=!1,this._data=void 0,this._objectData=void 0,this._sharedOptions=void 0,this._drawStart=void 0,this._drawCount=void 0,this.enableOptionSharing=!1,this.supportsDecimation=!1,this.$context=void 0,this._syncList=[],this.datasetElementType=new.target.datasetElementType,this.dataElementType=new.target.dataElementType,this.initialize()}initialize(){const t=this._cachedMeta;this.configure(),this.linkScales(),t._stacked=ai(t.vScale,t),this.addElements(),this.options.fill&&!this.chart.isPluginEnabled("filler")&&console.warn("Tried to use the 'fill' option without the 'Filler' plugin enabled. Please import and register the 'Filler' plugin and make sure it is not disabled in the options")}updateIndex(t){this.index!==t&&Fe(this._cachedMeta),this.index=t}linkScales(){const t=this.chart,n=this._cachedMeta,i=this.getDataset(),s=(u,d,f,g)=>u==="x"?d:u==="r"?g:f,o=n.xAxisID=j(i.xAxisID,li(t,"x")),r=n.yAxisID=j(i.yAxisID,li(t,"y")),a=n.rAxisID=j(i.rAxisID,li(t,"r")),l=n.indexAxis,c=n.iAxisID=s(l,o,r,a),h=n.vAxisID=s(l,r,o,a);n.xScale=this.getScaleForId(o),n.yScale=this.getScaleForId(r),n.rScale=this.getScaleForId(a),n.iScale=this.getScaleForId(c),n.vScale=this.getScaleForId(h)}getDataset(){return this.chart.data.datasets[this.index]}getMeta(){return this.chart.getDatasetMeta(this.index)}getScaleForId(t){return this.chart.scales[t]}_getOtherScale(t){const n=this._cachedMeta;return t===n.iScale?n.vScale:n.iScale}reset(){this._update("reset")}_destroy(){const t=this._cachedMeta;this._data&&Us(this._data,this),t._stacked&&Fe(t)}_dataCheck(){const t=this.getDataset(),n=t.data||(t.data=[]),i=this._data;if(z(n)){const s=this._cachedMeta;this._data=td(n,s)}else if(i!==n){if(i){Us(i,this);const s=this._cachedMeta;Fe(s),s._parsed=[]}n&&Object.isExtensible(n)&&Hh(n,this),this._syncList=[],this._data=n}}addElements(){const t=this._cachedMeta;this._dataCheck(),this.datasetElementType&&(t.dataset=new this.datasetElementType)}buildOrUpdateElements(t){const n=this._cachedMeta,i=this.getDataset();let s=!1;this._dataCheck();const o=n._stacked;n._stacked=ai(n.vScale,n),n.stack!==i.stack&&(s=!0,Fe(n),n.stack=i.stack),this._resyncElements(t),(s||o!==n._stacked)&&(ho(this,n._parsed),n._stacked=ai(n.vScale,n))}configure(){const t=this.chart.config,n=t.datasetScopeKeys(this._type),i=t.getOptionScopes(this.getDataset(),n,!0);this.options=t.createResolver(i,this.getContext()),this._parsing=this.options.parsing,this._cachedDataOpts={}}parse(t,n){const{_cachedMeta:i,_data:s}=this,{iScale:o,_stacked:r}=i,a=o.axis;let l=t===0&&n===s.length?!0:i._sorted,c=t>0&&i._parsed[t-1],h,u,d;if(this._parsing===!1)i._parsed=s,i._sorted=!0,d=s;else{J(s[t])?d=this.parseArrayData(i,s,t,n):z(s[t])?d=this.parseObjectData(i,s,t,n):d=this.parsePrimitiveData(i,s,t,n);const f=()=>u[a]===null||c&&u[a]<c[a];for(h=0;h<n;++h)i._parsed[h+t]=u=d[h],l&&(f()&&(l=!1),c=u);i._sorted=l}r&&ho(this,d)}parsePrimitiveData(t,n,i,s){const{iScale:o,vScale:r}=t,a=o.axis,l=r.axis,c=o.getLabels(),h=o===r,u=new Array(s);let d,f,g;for(d=0,f=s;d<f;++d)g=d+i,u[d]={[a]:h||o.parse(c[g],g),[l]:r.parse(n[g],g)};return u}parseArrayData(t,n,i,s){const{xScale:o,yScale:r}=t,a=new Array(s);let l,c,h,u;for(l=0,c=s;l<c;++l)h=l+i,u=n[h],a[l]={x:o.parse(u[0],h),y:r.parse(u[1],h)};return a}parseObjectData(t,n,i,s){const{xScale:o,yScale:r}=t,{xAxisKey:a="x",yAxisKey:l="y"}=this._parsing,c=new Array(s);let h,u,d,f;for(h=0,u=s;h<u;++h)d=h+i,f=n[d],c[h]={x:o.parse(Oe(f,a),d),y:r.parse(Oe(f,l),d)};return c}getParsed(t){return this._cachedMeta._parsed[t]}getDataElement(t){return this._cachedMeta.data[t]}applyStack(t,n,i){const s=this.chart,o=this._cachedMeta,r=n[t.axis],a={keys:fa(s,!0),values:n._stacks[t.axis]._visualValues};return lo(a,r,o.index,{mode:i})}updateRangeFromParsed(t,n,i,s){const o=i[n.axis];let r=o===null?NaN:o;const a=s&&i._stacks[n.axis];s&&a&&(s.values=a,r=lo(s,o,this._cachedMeta.index)),t.min=Math.min(t.min,r),t.max=Math.max(t.max,r)}getMinMax(t,n){const i=this._cachedMeta,s=i._parsed,o=i._sorted&&t===i.iScale,r=s.length,a=this._getOtherScale(t),l=rd(n,i,this.chart),c={min:Number.POSITIVE_INFINITY,max:Number.NEGATIVE_INFINITY},{min:h,max:u}=nd(a);let d,f;function g(){f=s[d];const m=f[a.axis];return!vt(f[t.axis])||h>m||u<m}for(d=0;d<r&&!(!g()&&(this.updateRangeFromParsed(c,t,f,l),o));++d);if(o){for(d=r-1;d>=0;--d)if(!g()){this.updateRangeFromParsed(c,t,f,l);break}}return c}getAllParsedValues(t){const n=this._cachedMeta._parsed,i=[];let s,o,r;for(s=0,o=n.length;s<o;++s)r=n[s][t.axis],vt(r)&&i.push(r);return i}getMaxOverflow(){return!1}getLabelAndValue(t){const n=this._cachedMeta,i=n.iScale,s=n.vScale,o=this.getParsed(t);return{label:i?""+i.getLabelForValue(o[i.axis]):"",value:s?""+s.getLabelForValue(o[s.axis]):""}}_update(t){const n=this._cachedMeta;this.update(t||"default"),n._clip=Qu(j(this.options.clip,Zu(n.xScale,n.yScale,this.getMaxOverflow())))}update(t){}draw(){const t=this._ctx,n=this.chart,i=this._cachedMeta,s=i.data||[],o=n.chartArea,r=[],a=this._drawStart||0,l=this._drawCount||s.length-a,c=this.options.drawActiveElementsOnTop;let h;for(i.dataset&&i.dataset.draw(t,o,a,l),h=a;h<a+l;++h){const u=s[h];u.hidden||(u.active&&c?r.push(u):u.draw(t,o))}for(h=0;h<r.length;++h)r[h].draw(t,o)}getStyle(t,n){const i=n?"active":"default";return t===void 0&&this._cachedMeta.dataset?this.resolveDatasetElementOptions(i):this.resolveDataElementOptions(t||0,i)}getContext(t,n,i){const s=this.getDataset();let o;if(t>=0&&t<this._cachedMeta.data.length){const r=this._cachedMeta.data[t];o=r.$context||(r.$context=od(this.getContext(),t,r)),o.parsed=this.getParsed(t),o.raw=s.data[t],o.index=o.dataIndex=t}else o=this.$context||(this.$context=sd(this.chart.getContext(),this.index)),o.dataset=s,o.index=o.datasetIndex=this.index;return o.active=!!n,o.mode=i,o}resolveDatasetElementOptions(t){return this._resolveElementOptions(this.datasetElementType.id,t)}resolveDataElementOptions(t,n){return this._resolveElementOptions(this.dataElementType.id,n,t)}_resolveElementOptions(t,n="default",i){const s=n==="active",o=this._cachedDataOpts,r=t+"-"+n,a=o[r],l=this.enableOptionSharing&&tn(i);if(a)return uo(a,l);const c=this.chart.config,h=c.datasetElementScopeKeys(this._type,t),u=s?[`${t}Hover`,"hover",t,""]:[t,""],d=c.getOptionScopes(this.getDataset(),h),f=Object.keys(q.elements[t]),g=()=>this.getContext(i,s,n),m=c.resolveNamedOptions(d,f,g,u);return m.$shared&&(m.$shared=l,o[r]=Object.freeze(uo(m,l))),m}_resolveAnimations(t,n,i){const s=this.chart,o=this._cachedDataOpts,r=`animation-${n}`,a=o[r];if(a)return a;let l;if(s.options.animation!==!1){const h=this.chart.config,u=h.datasetAnimationScopeKeys(this._type,n),d=h.getOptionScopes(this.getDataset(),u);l=h.createResolver(d,this.getContext(t,i,n))}const c=new da(s,l&&l.animations);return l&&l._cacheable&&(o[r]=Object.freeze(c)),c}getSharedOptions(t){if(t.$shared)return this._sharedOptions||(this._sharedOptions=Object.assign({},t))}includeOptions(t,n){return!n||ci(t)||this.chart._animationsDisabled}_getSharedOptions(t,n){const i=this.resolveDataElementOptions(t,n),s=this._sharedOptions,o=this.getSharedOptions(i),r=this.includeOptions(n,o)||o!==s;return this.updateSharedOptions(o,n,i),{sharedOptions:o,includeOptions:r}}updateElement(t,n,i,s){ci(s)?Object.assign(t,i):this._resolveAnimations(n,s).update(t,i)}updateSharedOptions(t,n,i){t&&!ci(n)&&this._resolveAnimations(void 0,n).update(t,i)}_setStyle(t,n,i,s){t.active=s;const o=this.getStyle(n,s);this._resolveAnimations(n,i,s).update(t,{options:!s&&this.getSharedOptions(o)||o})}removeHoverStyle(t,n,i){this._setStyle(t,i,"active",!1)}setHoverStyle(t,n,i){this._setStyle(t,i,"active",!0)}_removeDatasetHoverStyle(){const t=this._cachedMeta.dataset;t&&this._setStyle(t,void 0,"active",!1)}_setDatasetHoverStyle(){const t=this._cachedMeta.dataset;t&&this._setStyle(t,void 0,"active",!0)}_resyncElements(t){const n=this._data,i=this._cachedMeta.data;for(const[a,l,c]of this._syncList)this[a](l,c);this._syncList=[];const s=i.length,o=n.length,r=Math.min(o,s);r&&this.parse(0,r),o>s?this._insertElements(s,o-s,t):o<s&&this._removeElements(o,s-o)}_insertElements(t,n,i=!0){const s=this._cachedMeta,o=s.data,r=t+n;let a;const l=c=>{for(c.length+=n,a=c.length-1;a>=r;a--)c[a]=c[a-n]};for(l(o),a=t;a<r;++a)o[a]=new this.dataElementType;this._parsing&&l(s._parsed),this.parse(t,n),i&&this.updateElements(o,t,n,"reset")}updateElements(t,n,i,s){}_removeElements(t,n){const i=this._cachedMeta;if(this._parsing){const s=i._parsed.splice(t,n);i._stacked&&Fe(i,s)}i.data.splice(t,n)}_sync(t){if(this._parsing)this._syncList.push(t);else{const[n,i,s]=t;this[n](i,s)}this.chart._dataChanges.push([this.index,...t])}_onDataPush(){const t=arguments.length;this._sync(["_insertElements",this.getDataset().data.length-t,t])}_onDataPop(){this._sync(["_removeElements",this._cachedMeta.data.length-1,1])}_onDataShift(){this._sync(["_removeElements",0,1])}_onDataSplice(t,n){n&&this._sync(["_removeElements",t,n]);const i=arguments.length-2;i&&this._sync(["_insertElements",t,i])}_onDataUnshift(){this._sync(["_insertElements",0,arguments.length])}}R(Se,"defaults",{}),R(Se,"datasetElementType",null),R(Se,"dataElementType",null);function ad(e,t){if(!e._cache.$bar){const n=e.getMatchingVisibleMetas(t);let i=[];for(let s=0,o=n.length;s<o;s++)i=i.concat(n[s].controller.getAllParsedValues(e));e._cache.$bar=Gr(i.sort((s,o)=>s-o))}return e._cache.$bar}function ld(e){const t=e.iScale,n=ad(t,e.type);let i=t._length,s,o,r,a;const l=()=>{r===32767||r===-32768||(tn(a)&&(i=Math.min(i,Math.abs(r-a)||i)),a=r)};for(s=0,o=n.length;s<o;++s)r=t.getPixelForValue(n[s]),l();for(a=void 0,s=0,o=t.ticks.length;s<o;++s)r=t.getPixelForTick(s),l();return i}function cd(e,t,n,i){const s=n.barThickness;let o,r;return B(s)?(o=t.min*n.categoryPercentage,r=n.barPercentage):(o=s*i,r=1),{chunk:o/i,ratio:r,start:t.pixels[e]-o/2}}function hd(e,t,n,i){const s=t.pixels,o=s[e];let r=e>0?s[e-1]:null,a=e<s.length-1?s[e+1]:null;const l=n.categoryPercentage;r===null&&(r=o-(a===null?t.end-t.start:a-o)),a===null&&(a=o+o-r);const c=o-(o-Math.min(r,a))/2*l;return{chunk:Math.abs(a-r)/2*l/i,ratio:n.barPercentage,start:c}}function ud(e,t,n,i){const s=n.parse(e[0],i),o=n.parse(e[1],i),r=Math.min(s,o),a=Math.max(s,o);let l=r,c=a;Math.abs(r)>Math.abs(a)&&(l=a,c=r),t[n.axis]=c,t._custom={barStart:l,barEnd:c,start:s,end:o,min:r,max:a}}function pa(e,t,n,i){return J(e)?ud(e,t,n,i):t[n.axis]=n.parse(e,i),t}function fo(e,t,n,i){const s=e.iScale,o=e.vScale,r=s.getLabels(),a=s===o,l=[];let c,h,u,d;for(c=n,h=n+i;c<h;++c)d=t[c],u={},u[s.axis]=a||s.parse(r[c],c),l.push(pa(d,u,o,c));return l}function hi(e){return e&&e.barStart!==void 0&&e.barEnd!==void 0}function dd(e,t,n){return e!==0?Dt(e):(t.isHorizontal()?1:-1)*(t.min>=n?1:-1)}function fd(e){let t,n,i,s,o;return e.horizontal?(t=e.base>e.x,n="left",i="right"):(t=e.base<e.y,n="bottom",i="top"),t?(s="end",o="start"):(s="start",o="end"),{start:n,end:i,reverse:t,top:s,bottom:o}}function pd(e,t,n,i){let s=t.borderSkipped;const o={};if(!s){e.borderSkipped=o;return}if(s===!0){e.borderSkipped={top:!0,right:!0,bottom:!0,left:!0};return}const{start:r,end:a,reverse:l,top:c,bottom:h}=fd(e);s==="middle"&&n&&(e.enableBorderRadius=!0,(n._top||0)===i?s=c:(n._bottom||0)===i?s=h:(o[po(h,r,a,l)]=!0,s=c)),o[po(s,r,a,l)]=!0,e.borderSkipped=o}function po(e,t,n,i){return i?(e=gd(e,t,n),e=go(e,n,t)):e=go(e,t,n),e}function gd(e,t,n){return e===t?n:e===n?t:e}function go(e,t,n){return e==="start"?t:e==="end"?n:e}function md(e,{inflateAmount:t},n){e.inflateAmount=t==="auto"?n===1?.33:0:t}class ui extends Se{parsePrimitiveData(t,n,i,s){return fo(t,n,i,s)}parseArrayData(t,n,i,s){return fo(t,n,i,s)}parseObjectData(t,n,i,s){const{iScale:o,vScale:r}=t,{xAxisKey:a="x",yAxisKey:l="y"}=this._parsing,c=o.axis==="x"?a:l,h=r.axis==="x"?a:l,u=[];let d,f,g,m;for(d=i,f=i+s;d<f;++d)m=n[d],g={},g[o.axis]=o.parse(Oe(m,c),d),u.push(pa(Oe(m,h),g,r,d));return u}updateRangeFromParsed(t,n,i,s){super.updateRangeFromParsed(t,n,i,s);const o=i._custom;o&&n===this._cachedMeta.vScale&&(t.min=Math.min(t.min,o.min),t.max=Math.max(t.max,o.max))}getMaxOverflow(){return 0}getLabelAndValue(t){const n=this._cachedMeta,{iScale:i,vScale:s}=n,o=this.getParsed(t),r=o._custom,a=hi(r)?"["+r.start+", "+r.end+"]":""+s.getLabelForValue(o[s.axis]);return{label:""+i.getLabelForValue(o[i.axis]),value:a}}initialize(){this.enableOptionSharing=!0,super.initialize();const t=this._cachedMeta;t.stack=this.getDataset().stack}update(t){const n=this._cachedMeta;this.updateElements(n.data,0,n.data.length,t)}updateElements(t,n,i,s){const o=s==="reset",{index:r,_cachedMeta:{vScale:a}}=this,l=a.getBasePixel(),c=a.isHorizontal(),h=this._getRuler(),{sharedOptions:u,includeOptions:d}=this._getSharedOptions(n,s);for(let f=n;f<n+i;f++){const g=this.getParsed(f),m=o||B(g[a.axis])?{base:l,head:l}:this._calculateBarValuePixels(f),p=this._calculateBarIndexPixels(f,h),b=(g._stacks||{})[a.axis],x={horizontal:c,base:m.base,enableBorderRadius:!b||hi(g._custom)||r===b._top||r===b._bottom,x:c?m.head:p.center,y:c?p.center:m.head,height:c?p.size:Math.abs(m.size),width:c?Math.abs(m.size):p.size};d&&(x.options=u||this.resolveDataElementOptions(f,t[f].active?"active":s));const v=x.options||t[f].options;pd(x,v,b,r),md(x,v,h.ratio),this.updateElement(t[f],f,x,s)}}_getStacks(t,n){const{iScale:i}=this._cachedMeta,s=i.getMatchingVisibleMetas(this._type).filter(h=>h.controller.options.grouped),o=i.options.stacked,r=[],a=this._cachedMeta.controller.getParsed(n),l=a&&a[i.axis],c=h=>{const u=h._parsed.find(f=>f[i.axis]===l),d=u&&u[h.vScale.axis];if(B(d)||isNaN(d))return!0};for(const h of s)if(!(n!==void 0&&c(h))&&((o===!1||r.indexOf(h.stack)===-1||o===void 0&&h.stack===void 0)&&r.push(h.stack),h.index===t))break;return r.length||r.push(void 0),r}_getStackCount(t){return this._getStacks(void 0,t).length}_getStackIndex(t,n,i){const s=this._getStacks(t,i),o=n!==void 0?s.indexOf(n):-1;return o===-1?s.length-1:o}_getRuler(){const t=this.options,n=this._cachedMeta,i=n.iScale,s=[];let o,r;for(o=0,r=n.data.length;o<r;++o)s.push(i.getPixelForValue(this.getParsed(o)[i.axis],o));const a=t.barThickness;return{min:a||ld(n),pixels:s,start:i._startPixel,end:i._endPixel,stackCount:this._getStackCount(),scale:i,grouped:t.grouped,ratio:a?1:t.categoryPercentage*t.barPercentage}}_calculateBarValuePixels(t){const{_cachedMeta:{vScale:n,_stacked:i,index:s},options:{base:o,minBarLength:r}}=this,a=o||0,l=this.getParsed(t),c=l._custom,h=hi(c);let u=l[n.axis],d=0,f=i?this.applyStack(n,l,i):u,g,m;f!==u&&(d=f-u,f=u),h&&(u=c.barStart,f=c.barEnd-c.barStart,u!==0&&Dt(u)!==Dt(c.barEnd)&&(d=0),d+=u);const p=!B(o)&&!h?o:d;let b=n.getPixelForValue(p);if(this.chart.getDataVisibility(t)?g=n.getPixelForValue(d+f):g=b,m=g-b,Math.abs(m)<r){m=dd(m,n,a)*r,u===a&&(b-=m/2);const x=n.getPixelForDecimal(0),v=n.getPixelForDecimal(1),_=Math.min(x,v),y=Math.max(x,v);b=Math.max(Math.min(b,y),_),g=b+m,i&&!h&&(l._stacks[n.axis]._visualValues[s]=n.getValueForPixel(g)-n.getValueForPixel(b))}if(b===n.getPixelForValue(a)){const x=Dt(m)*n.getLineWidthForValue(a)/2;b+=x,m-=x}return{size:m,base:b,head:g,center:g+m/2}}_calculateBarIndexPixels(t,n){const i=n.scale,s=this.options,o=s.skipNull,r=j(s.maxBarThickness,1/0);let a,l;if(n.grouped){const c=o?this._getStackCount(t):n.stackCount,h=s.barThickness==="flex"?hd(t,n,s,c):cd(t,n,s,c),u=this._getStackIndex(this.index,this._cachedMeta.stack,o?t:void 0);a=h.start+h.chunk*u+h.chunk/2,l=Math.min(r,h.chunk*h.ratio)}else a=i.getPixelForValue(this.getParsed(t)[i.axis],t),l=Math.min(r,n.min*n.ratio);return{base:a-l/2,head:a+l/2,center:a,size:l}}draw(){const t=this._cachedMeta,n=t.vScale,i=t.data,s=i.length;let o=0;for(;o<s;++o)this.getParsed(o)[n.axis]!==null&&!i[o].hidden&&i[o].draw(this._ctx)}}R(ui,"id","bar"),R(ui,"defaults",{datasetElementType:!1,dataElementType:"bar",categoryPercentage:.8,barPercentage:.9,grouped:!0,animations:{numbers:{type:"number",properties:["x","y","base","width","height"]}}}),R(ui,"overrides",{scales:{_index_:{type:"category",offset:!0,grid:{offset:!0}},_value_:{type:"linear",beginAtZero:!0}}});class di extends Se{initialize(){this.enableOptionSharing=!0,this.supportsDecimation=!0,super.initialize()}update(t){const n=this._cachedMeta,{dataset:i,data:s=[],_dataset:o}=n,r=this.chart._animationsDisabled;let{start:a,count:l}=Yh(n,s,r);this._drawStart=a,this._drawCount=l,Uh(n)&&(a=0,l=s.length),i._chart=this.chart,i._datasetIndex=this.index,i._decimated=!!o._decimated,i.points=s;const c=this.resolveDatasetElementOptions(t);this.options.showLine||(c.borderWidth=0),c.segment=this.options.segment,this.updateElement(i,void 0,{animated:!r,options:c},t),this.updateElements(s,a,l,t)}updateElements(t,n,i,s){const o=s==="reset",{iScale:r,vScale:a,_stacked:l,_dataset:c}=this._cachedMeta,{sharedOptions:h,includeOptions:u}=this._getSharedOptions(n,s),d=r.axis,f=a.axis,{spanGaps:g,segment:m}=this.options,p=en(g)?g:Number.POSITIVE_INFINITY,b=this.chart._animationsDisabled||o||s==="none",x=n+i,v=t.length;let _=n>0&&this.getParsed(n-1);for(let y=0;y<v;++y){const w=t[y],k=b?w:{};if(y<n||y>=x){k.skip=!0;continue}const S=this.getParsed(y),C=B(S[f]),D=k[d]=r.getPixelForValue(S[d],y),P=k[f]=o||C?a.getBasePixel():a.getPixelForValue(l?this.applyStack(a,S,l):S[f],y);k.skip=isNaN(D)||isNaN(P)||C,k.stop=y>0&&Math.abs(S[d]-_[d])>p,m&&(k.parsed=S,k.raw=c.data[y]),u&&(k.options=h||this.resolveDataElementOptions(y,w.active?"active":s)),b||this.updateElement(w,y,k,s),_=S}}getMaxOverflow(){const t=this._cachedMeta,n=t.dataset,i=n.options&&n.options.borderWidth||0,s=t.data||[];if(!s.length)return i;const o=s[0].size(this.resolveDataElementOptions(0)),r=s[s.length-1].size(this.resolveDataElementOptions(s.length-1));return Math.max(i,o,r)/2}draw(){const t=this._cachedMeta;t.dataset.updateControlPoints(this.chart.chartArea,t.iScale.axis),super.draw()}}R(di,"id","line"),R(di,"defaults",{datasetElementType:"line",dataElementType:"point",showLine:!0,spanGaps:!1}),R(di,"overrides",{scales:{_index_:{type:"category"},_value_:{type:"linear"}}});function ne(){throw new Error("This method is not implemented: Check that a complete date adapter is provided.")}class rs{constructor(t){R(this,"options");this.options=t||{}}static override(t){Object.assign(rs.prototype,t)}init(){}formats(){return ne()}parse(){return ne()}format(){return ne()}add(){return ne()}diff(){return ne()}startOf(){return ne()}endOf(){return ne()}}var bd={_date:rs};function xd(e,t,n,i){const{controller:s,data:o,_sorted:r}=e,a=s._cachedMeta.iScale,l=e.dataset&&e.dataset.options?e.dataset.options.spanGaps:null;if(a&&t===a.axis&&t!=="r"&&r&&o.length){const c=a._reversePixels?Nh:le;if(i){if(s._sharedOptions){const h=o[0],u=typeof h.getRange=="function"&&h.getRange(t);if(u){const d=c(o,t,n-u),f=c(o,t,n+u);return{lo:d.lo,hi:f.hi}}}}else{const h=c(o,t,n);if(l){const{vScale:u}=s._cachedMeta,{_parsed:d}=e,f=d.slice(0,h.lo+1).reverse().findIndex(m=>!B(m[u.axis]));h.lo-=Math.max(0,f);const g=d.slice(h.hi).findIndex(m=>!B(m[u.axis]));h.hi+=Math.max(0,g)}return h}}return{lo:0,hi:o.length-1}}function un(e,t,n,i,s){const o=e.getSortedVisibleDatasetMetas(),r=n[t];for(let a=0,l=o.length;a<l;++a){const{index:c,data:h}=o[a],{lo:u,hi:d}=xd(o[a],t,r,s);for(let f=u;f<=d;++f){const g=h[f];g.skip||i(g,c,f)}}}function yd(e){const t=e.indexOf("x")!==-1,n=e.indexOf("y")!==-1;return function(i,s){const o=t?Math.abs(i.x-s.x):0,r=n?Math.abs(i.y-s.y):0;return Math.sqrt(Math.pow(o,2)+Math.pow(r,2))}}function fi(e,t,n,i,s){const o=[];return!s&&!e.isPointInArea(t)||un(e,n,t,function(a,l,c){!s&&!nn(a,e.chartArea,0)||a.inRange(t.x,t.y,i)&&o.push({element:a,datasetIndex:l,index:c})},!0),o}function vd(e,t,n,i){let s=[];function o(r,a,l){const{startAngle:c,endAngle:h}=r.getProps(["startAngle","endAngle"],i),{angle:u}=qr(r,{x:t.x,y:t.y});qi(u,c,h)&&s.push({element:r,datasetIndex:a,index:l})}return un(e,n,t,o),s}function _d(e,t,n,i,s,o){let r=[];const a=yd(n);let l=Number.POSITIVE_INFINITY;function c(h,u,d){const f=h.inRange(t.x,t.y,s);if(i&&!f)return;const g=h.getCenterPoint(s);if(!(!!o||e.isPointInArea(g))&&!f)return;const p=a(t,g);p<l?(r=[{element:h,datasetIndex:u,index:d}],l=p):p===l&&r.push({element:h,datasetIndex:u,index:d})}return un(e,n,t,c),r}function pi(e,t,n,i,s,o){return!o&&!e.isPointInArea(t)?[]:n==="r"&&!i?vd(e,t,n,s):_d(e,t,n,i,s,o)}function mo(e,t,n,i,s){const o=[],r=n==="x"?"inXRange":"inYRange";let a=!1;return un(e,n,t,(l,c,h)=>{l[r]&&l[r](t[n],s)&&(o.push({element:l,datasetIndex:c,index:h}),a=a||l.inRange(t.x,t.y,s))}),i&&!a?[]:o}var wd={evaluateInteractionItems:un,modes:{index(e,t,n,i){const s=oe(t,e),o=n.axis||"x",r=n.includeInvisible||!1,a=n.intersect?fi(e,s,o,i,r):pi(e,s,o,!1,i,r),l=[];return a.length?(e.getSortedVisibleDatasetMetas().forEach(c=>{const h=a[0].index,u=c.data[h];u&&!u.skip&&l.push({element:u,datasetIndex:c.index,index:h})}),l):[]},dataset(e,t,n,i){const s=oe(t,e),o=n.axis||"xy",r=n.includeInvisible||!1;let a=n.intersect?fi(e,s,o,i,r):pi(e,s,o,!1,i,r);if(a.length>0){const l=a[0].datasetIndex,c=e.getDatasetMeta(l).data;a=[];for(let h=0;h<c.length;++h)a.push({element:c[h],datasetIndex:l,index:h})}return a},point(e,t,n,i){const s=oe(t,e),o=n.axis||"xy",r=n.includeInvisible||!1;return fi(e,s,o,i,r)},nearest(e,t,n,i){const s=oe(t,e),o=n.axis||"xy",r=n.includeInvisible||!1;return pi(e,s,o,n.intersect,i,r)},x(e,t,n,i){const s=oe(t,e);return mo(e,s,"x",n.intersect,i)},y(e,t,n,i){const s=oe(t,e);return mo(e,s,"y",n.intersect,i)}}};const ga=["left","top","right","bottom"];function Ie(e,t){return e.filter(n=>n.pos===t)}function bo(e,t){return e.filter(n=>ga.indexOf(n.pos)===-1&&n.box.axis===t)}function je(e,t){return e.sort((n,i)=>{const s=t?i:n,o=t?n:i;return s.weight===o.weight?s.index-o.index:s.weight-o.weight})}function Sd(e){const t=[];let n,i,s,o,r,a;for(n=0,i=(e||[]).length;n<i;++n)s=e[n],{position:o,options:{stack:r,stackWeight:a=1}}=s,t.push({index:n,box:s,pos:o,horizontal:s.isHorizontal(),weight:s.weight,stack:r&&o+r,stackWeight:a});return t}function kd(e){const t={};for(const n of e){const{stack:i,pos:s,stackWeight:o}=n;if(!i||!ga.includes(s))continue;const r=t[i]||(t[i]={count:0,placed:0,weight:0,size:0});r.count++,r.weight+=o}return t}function Md(e,t){const n=kd(e),{vBoxMaxWidth:i,hBoxMaxHeight:s}=t;let o,r,a;for(o=0,r=e.length;o<r;++o){a=e[o];const{fullSize:l}=a.box,c=n[a.stack],h=c&&a.stackWeight/c.weight;a.horizontal?(a.width=h?h*i:l&&t.availableWidth,a.height=s):(a.width=i,a.height=h?h*s:l&&t.availableHeight)}return n}function Cd(e){const t=Sd(e),n=je(t.filter(c=>c.box.fullSize),!0),i=je(Ie(t,"left"),!0),s=je(Ie(t,"right")),o=je(Ie(t,"top"),!0),r=je(Ie(t,"bottom")),a=bo(t,"x"),l=bo(t,"y");return{fullSize:n,leftAndTop:i.concat(o),rightAndBottom:s.concat(l).concat(r).concat(a),chartArea:Ie(t,"chartArea"),vertical:i.concat(s).concat(l),horizontal:o.concat(r).concat(a)}}function xo(e,t,n,i){return Math.max(e[n],t[n])+Math.max(e[i],t[i])}function ma(e,t){e.top=Math.max(e.top,t.top),e.left=Math.max(e.left,t.left),e.bottom=Math.max(e.bottom,t.bottom),e.right=Math.max(e.right,t.right)}function Pd(e,t,n,i){const{pos:s,box:o}=n,r=e.maxPadding;if(!z(s)){n.size&&(e[s]-=n.size);const u=i[n.stack]||{size:0,count:1};u.size=Math.max(u.size,n.horizontal?o.height:o.width),n.size=u.size/u.count,e[s]+=n.size}o.getPadding&&ma(r,o.getPadding());const a=Math.max(0,t.outerWidth-xo(r,e,"left","right")),l=Math.max(0,t.outerHeight-xo(r,e,"top","bottom")),c=a!==e.w,h=l!==e.h;return e.w=a,e.h=l,n.horizontal?{same:c,other:h}:{same:h,other:c}}function Od(e){const t=e.maxPadding;function n(i){const s=Math.max(t[i]-e[i],0);return e[i]+=s,s}e.y+=n("top"),e.x+=n("left"),n("right"),n("bottom")}function Dd(e,t){const n=t.maxPadding;function i(s){const o={left:0,top:0,right:0,bottom:0};return s.forEach(r=>{o[r]=Math.max(t[r],n[r])}),o}return i(e?["left","right"]:["top","bottom"])}function Be(e,t,n,i){const s=[];let o,r,a,l,c,h;for(o=0,r=e.length,c=0;o<r;++o){a=e[o],l=a.box,l.update(a.width||t.w,a.height||t.h,Dd(a.horizontal,t));const{same:u,other:d}=Pd(t,n,a,i);c|=u&&s.length,h=h||d,l.fullSize||s.push(a)}return c&&Be(s,t,n,i)||h}function wn(e,t,n,i,s){e.top=n,e.left=t,e.right=t+i,e.bottom=n+s,e.width=i,e.height=s}function yo(e,t,n,i){const s=n.padding;let{x:o,y:r}=t;for(const a of e){const l=a.box,c=i[a.stack]||{count:1,placed:0,weight:1},h=a.stackWeight/c.weight||1;if(a.horizontal){const u=t.w*h,d=c.size||l.height;tn(c.start)&&(r=c.start),l.fullSize?wn(l,s.left,r,n.outerWidth-s.right-s.left,d):wn(l,t.left+c.placed,r,u,d),c.start=r,c.placed+=u,r=l.bottom}else{const u=t.h*h,d=c.size||l.width;tn(c.start)&&(o=c.start),l.fullSize?wn(l,o,s.top,d,n.outerHeight-s.bottom-s.top):wn(l,o,t.top+c.placed,d,u),c.start=o,c.placed+=u,o=l.right}}t.x=o,t.y=r}var bt={addBox(e,t){e.boxes||(e.boxes=[]),t.fullSize=t.fullSize||!1,t.position=t.position||"top",t.weight=t.weight||0,t._layers=t._layers||function(){return[{z:0,draw(n){t.draw(n)}}]},e.boxes.push(t)},removeBox(e,t){const n=e.boxes?e.boxes.indexOf(t):-1;n!==-1&&e.boxes.splice(n,1)},configure(e,t,n){t.fullSize=n.fullSize,t.position=n.position,t.weight=n.weight},update(e,t,n,i){if(!e)return;const s=_t(e.options.layout.padding),o=Math.max(t-s.width,0),r=Math.max(n-s.height,0),a=Cd(e.boxes),l=a.vertical,c=a.horizontal;V(e.boxes,m=>{typeof m.beforeLayout=="function"&&m.beforeLayout()});const h=l.reduce((m,p)=>p.box.options&&p.box.options.display===!1?m:m+1,0)||1,u=Object.freeze({outerWidth:t,outerHeight:n,padding:s,availableWidth:o,availableHeight:r,vBoxMaxWidth:o/2/h,hBoxMaxHeight:r/2}),d=Object.assign({},s);ma(d,_t(i));const f=Object.assign({maxPadding:d,w:o,h:r,x:s.left,y:s.top},s),g=Md(l.concat(c),u);Be(a.fullSize,f,u,g),Be(l,f,u,g),Be(c,f,u,g)&&Be(l,f,u,g),Od(f),yo(a.leftAndTop,f,u,g),f.x+=f.w,f.y+=f.h,yo(a.rightAndBottom,f,u,g),e.chartArea={left:f.left,top:f.top,right:f.left+f.w,bottom:f.top+f.h,height:f.h,width:f.w},V(a.chartArea,m=>{const p=m.box;Object.assign(p,e.chartArea),p.update(f.w,f.h,{left:0,top:0,right:0,bottom:0})})}};class ba{acquireContext(t,n){}releaseContext(t){return!1}addEventListener(t,n,i){}removeEventListener(t,n,i){}getDevicePixelRatio(){return 1}getMaximumSize(t,n,i,s){return n=Math.max(0,n||t.width),i=i||t.height,{width:n,height:Math.max(0,s?Math.floor(n/s):i)}}isAttached(t){return!0}updateConfig(t){}}class Ad extends ba{acquireContext(t){return t&&t.getContext&&t.getContext("2d")||null}updateConfig(t){t.options.animation=!1}}const Rn="$chartjs",Ed={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"},vo=e=>e===null||e==="";function Td(e,t){const n=e.style,i=e.getAttribute("height"),s=e.getAttribute("width");if(e[Rn]={initial:{height:i,width:s,style:{display:n.display,height:n.height,width:n.width}}},n.display=n.display||"block",n.boxSizing=n.boxSizing||"border-box",vo(s)){const o=no(e,"width");o!==void 0&&(e.width=o)}if(vo(i))if(e.style.height==="")e.height=e.width/(t||2);else{const o=no(e,"height");o!==void 0&&(e.height=o)}return e}const xa=Lu?{passive:!0}:!1;function Rd(e,t,n){e&&e.addEventListener(t,n,xa)}function Ld(e,t,n){e&&e.canvas&&e.canvas.removeEventListener(t,n,xa)}function Fd(e,t){const n=Ed[e.type]||e.type,{x:i,y:s}=oe(e,t);return{type:n,chart:t,native:e,x:i!==void 0?i:null,y:s!==void 0?s:null}}function Bn(e,t){for(const n of e)if(n===t||n.contains(t))return!0}function Id(e,t,n){const i=e.canvas,s=new MutationObserver(o=>{let r=!1;for(const a of o)r=r||Bn(a.addedNodes,i),r=r&&!Bn(a.removedNodes,i);r&&n()});return s.observe(document,{childList:!0,subtree:!0}),s}function jd(e,t,n){const i=e.canvas,s=new MutationObserver(o=>{let r=!1;for(const a of o)r=r||Bn(a.removedNodes,i),r=r&&!Bn(a.addedNodes,i);r&&n()});return s.observe(document,{childList:!0,subtree:!0}),s}const on=new Map;let _o=0;function ya(){const e=window.devicePixelRatio;e!==_o&&(_o=e,on.forEach((t,n)=>{n.currentDevicePixelRatio!==e&&t()}))}function $d(e,t){on.size||window.addEventListener("resize",ya),on.set(e,t)}function zd(e){on.delete(e),on.size||window.removeEventListener("resize",ya)}function Nd(e,t,n){const i=e.canvas,s=i&&os(i);if(!s)return;const o=Zr((a,l)=>{const c=s.clientWidth;n(a,l),c<s.clientWidth&&n()},window),r=new ResizeObserver(a=>{const l=a[0],c=l.contentRect.width,h=l.contentRect.height;c===0&&h===0||o(c,h)});return r.observe(s),$d(e,o),r}function gi(e,t,n){n&&n.disconnect(),t==="resize"&&zd(e)}function Bd(e,t,n){const i=e.canvas,s=Zr(o=>{e.ctx!==null&&n(Fd(o,e))},e);return Rd(i,t,s),s}class Hd extends ba{acquireContext(t,n){const i=t&&t.getContext&&t.getContext("2d");return i&&i.canvas===t?(Td(t,n),i):null}releaseContext(t){const n=t.canvas;if(!n[Rn])return!1;const i=n[Rn].initial;["height","width"].forEach(o=>{const r=i[o];B(r)?n.removeAttribute(o):n.setAttribute(o,r)});const s=i.style||{};return Object.keys(s).forEach(o=>{n.style[o]=s[o]}),n.width=n.width,delete n[Rn],!0}addEventListener(t,n,i){this.removeEventListener(t,n);const s=t.$proxies||(t.$proxies={}),r={attach:Id,detach:jd,resize:Nd}[n]||Bd;s[n]=r(t,n,i)}removeEventListener(t,n){const i=t.$proxies||(t.$proxies={}),s=i[n];if(!s)return;({attach:gi,detach:gi,resize:gi}[n]||Ld)(t,n,s),i[n]=void 0}getDevicePixelRatio(){return window.devicePixelRatio}getMaximumSize(t,n,i,s){return Ru(t,n,i,s)}isAttached(t){const n=t&&os(t);return!!(n&&n.isConnected)}}function Wd(e){return!ss()||typeof OffscreenCanvas<"u"&&e instanceof OffscreenCanvas?Ad:Hd}var En;let jt=(En=class{constructor(){R(this,"x");R(this,"y");R(this,"active",!1);R(this,"options");R(this,"$animations")}tooltipPosition(t){const{x:n,y:i}=this.getProps(["x","y"],t);return{x:n,y:i}}hasValue(){return en(this.x)&&en(this.y)}getProps(t,n){const i=this.$animations;if(!n||!i)return this;const s={};return t.forEach(o=>{s[o]=i[o]&&i[o].active()?i[o]._to:this[o]}),s}},R(En,"defaults",{}),R(En,"defaultRoutes"),En);function Vd(e,t){const n=e.options.ticks,i=Yd(e),s=Math.min(n.maxTicksLimit||i,i),o=n.major.enabled?Xd(t):[],r=o.length,a=o[0],l=o[r-1],c=[];if(r>s)return qd(t,c,o,r/s),c;const h=Ud(o,t,s);if(r>0){let u,d;const f=r>1?Math.round((l-a)/(r-1)):null;for(Sn(t,c,h,B(f)?0:a-f,a),u=0,d=r-1;u<d;u++)Sn(t,c,h,o[u],o[u+1]);return Sn(t,c,h,l,B(f)?t.length:l+f),c}return Sn(t,c,h),c}function Yd(e){const t=e.options.offset,n=e._tickSize(),i=e._length/n+(t?0:1),s=e._maxLength/n;return Math.floor(Math.min(i,s))}function Ud(e,t,n){const i=Kd(e),s=t.length/n;if(!i)return Math.max(s,1);const o=Rh(i);for(let r=0,a=o.length-1;r<a;r++){const l=o[r];if(l>s)return l}return Math.max(s,1)}function Xd(e){const t=[];let n,i;for(n=0,i=e.length;n<i;n++)e[n].major&&t.push(n);return t}function qd(e,t,n,i){let s=0,o=n[0],r;for(i=Math.ceil(i),r=0;r<e.length;r++)r===o&&(t.push(e[r]),s++,o=n[s*i])}function Sn(e,t,n,i,s){const o=j(i,0),r=Math.min(j(s,e.length),e.length);let a=0,l,c,h;for(n=Math.ceil(n),s&&(l=s-i,n=l/Math.floor(l/n)),h=o;h<0;)a++,h=Math.round(o+a*n);for(c=Math.max(o,0);c<r;c++)c===h&&(t.push(e[c]),a++,h=Math.round(o+a*n))}function Kd(e){const t=e.length;let n,i;if(t<2)return!1;for(i=e[0],n=1;n<t;++n)if(e[n]-e[n-1]!==i)return!1;return i}const Gd=e=>e==="left"?"right":e==="right"?"left":e,wo=(e,t,n)=>t==="top"||t==="left"?e[t]+n:e[t]-n,So=(e,t)=>Math.min(t||e,e);function ko(e,t){const n=[],i=e.length/t,s=e.length;let o=0;for(;o<s;o+=i)n.push(e[Math.floor(o)]);return n}function Jd(e,t,n){const i=e.ticks.length,s=Math.min(t,i-1),o=e._startPixel,r=e._endPixel,a=1e-6;let l=e.getPixelForTick(s),c;if(!(n&&(i===1?c=Math.max(l-o,r-l):t===0?c=(e.getPixelForTick(1)-l)/2:c=(l-e.getPixelForTick(s-1))/2,l+=s<t?c:-c,l<o-a||l>r+a)))return l}function Zd(e,t){V(e,n=>{const i=n.gc,s=i.length/2;let o;if(s>t){for(o=0;o<s;++o)delete n.data[i[o]];i.splice(0,s)}})}function $e(e){return e.drawTicks?e.tickLength:0}function Mo(e,t){if(!e.display)return 0;const n=at(e.font,t),i=_t(e.padding);return(J(e.text)?e.text.length:1)*n.lineHeight+i.height}function Qd(e,t){return pe(e,{scale:t,type:"scale"})}function tf(e,t,n){return pe(e,{tick:n,index:t,type:"tick"})}function ef(e,t,n){let i=Gi(e);return(n&&t!=="right"||!n&&t==="right")&&(i=Gd(i)),i}function nf(e,t,n,i){const{top:s,left:o,bottom:r,right:a,chart:l}=e,{chartArea:c,scales:h}=l;let u=0,d,f,g;const m=r-s,p=a-o;if(e.isHorizontal()){if(f=ot(i,o,a),z(n)){const b=Object.keys(n)[0],x=n[b];g=h[b].getPixelForValue(x)+m-t}else n==="center"?g=(c.bottom+c.top)/2+m-t:g=wo(e,n,t);d=a-o}else{if(z(n)){const b=Object.keys(n)[0],x=n[b];f=h[b].getPixelForValue(x)-p+t}else n==="center"?f=(c.left+c.right)/2-p+t:f=wo(e,n,t);g=ot(i,r,s),u=n==="left"?-it:it}return{titleX:f,titleY:g,maxWidth:d,rotation:u}}class Ee extends jt{constructor(t){super(),this.id=t.id,this.type=t.type,this.options=void 0,this.ctx=t.ctx,this.chart=t.chart,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.width=void 0,this.height=void 0,this._margins={left:0,right:0,top:0,bottom:0},this.maxWidth=void 0,this.maxHeight=void 0,this.paddingTop=void 0,this.paddingBottom=void 0,this.paddingLeft=void 0,this.paddingRight=void 0,this.axis=void 0,this.labelRotation=void 0,this.min=void 0,this.max=void 0,this._range=void 0,this.ticks=[],this._gridLineItems=null,this._labelItems=null,this._labelSizes=null,this._length=0,this._maxLength=0,this._longestTextCache={},this._startPixel=void 0,this._endPixel=void 0,this._reversePixels=!1,this._userMax=void 0,this._userMin=void 0,this._suggestedMax=void 0,this._suggestedMin=void 0,this._ticksLength=0,this._borderValue=0,this._cache={},this._dataLimitsCached=!1,this.$context=void 0}init(t){this.options=t.setContext(this.getContext()),this.axis=t.axis,this._userMin=this.parse(t.min),this._userMax=this.parse(t.max),this._suggestedMin=this.parse(t.suggestedMin),this._suggestedMax=this.parse(t.suggestedMax)}parse(t,n){return t}getUserBounds(){let{_userMin:t,_userMax:n,_suggestedMin:i,_suggestedMax:s}=this;return t=St(t,Number.POSITIVE_INFINITY),n=St(n,Number.NEGATIVE_INFINITY),i=St(i,Number.POSITIVE_INFINITY),s=St(s,Number.NEGATIVE_INFINITY),{min:St(t,i),max:St(n,s),minDefined:vt(t),maxDefined:vt(n)}}getMinMax(t){let{min:n,max:i,minDefined:s,maxDefined:o}=this.getUserBounds(),r;if(s&&o)return{min:n,max:i};const a=this.getMatchingVisibleMetas();for(let l=0,c=a.length;l<c;++l)r=a[l].controller.getMinMax(this,t),s||(n=Math.min(n,r.min)),o||(i=Math.max(i,r.max));return n=o&&n>i?i:n,i=s&&n>i?n:i,{min:St(n,St(i,n)),max:St(i,St(n,i))}}getPadding(){return{left:this.paddingLeft||0,top:this.paddingTop||0,right:this.paddingRight||0,bottom:this.paddingBottom||0}}getTicks(){return this.ticks}getLabels(){const t=this.chart.data;return this.options.labels||(this.isHorizontal()?t.xLabels:t.yLabels)||t.labels||[]}getLabelItems(t=this.chart.chartArea){return this._labelItems||(this._labelItems=this._computeLabelItems(t))}beforeLayout(){this._cache={},this._dataLimitsCached=!1}beforeUpdate(){Y(this.options.beforeUpdate,[this])}update(t,n,i){const{beginAtZero:s,grace:o,ticks:r}=this.options,a=r.sampleSize;this.beforeUpdate(),this.maxWidth=t,this.maxHeight=n,this._margins=i=Object.assign({left:0,right:0,top:0,bottom:0},i),this.ticks=null,this._labelSizes=null,this._gridLineItems=null,this._labelItems=null,this.beforeSetDimensions(),this.setDimensions(),this.afterSetDimensions(),this._maxLength=this.isHorizontal()?this.width+i.left+i.right:this.height+i.top+i.bottom,this._dataLimitsCached||(this.beforeDataLimits(),this.determineDataLimits(),this.afterDataLimits(),this._range=uu(this,o,s),this._dataLimitsCached=!0),this.beforeBuildTicks(),this.ticks=this.buildTicks()||[],this.afterBuildTicks();const l=a<this.ticks.length;this._convertTicksToLabels(l?ko(this.ticks,a):this.ticks),this.configure(),this.beforeCalculateLabelRotation(),this.calculateLabelRotation(),this.afterCalculateLabelRotation(),r.display&&(r.autoSkip||r.source==="auto")&&(this.ticks=Vd(this,this.ticks),this._labelSizes=null,this.afterAutoSkip()),l&&this._convertTicksToLabels(this.ticks),this.beforeFit(),this.fit(),this.afterFit(),this.afterUpdate()}configure(){let t=this.options.reverse,n,i;this.isHorizontal()?(n=this.left,i=this.right):(n=this.top,i=this.bottom,t=!t),this._startPixel=n,this._endPixel=i,this._reversePixels=t,this._length=i-n,this._alignToPixels=this.options.alignToPixels}afterUpdate(){Y(this.options.afterUpdate,[this])}beforeSetDimensions(){Y(this.options.beforeSetDimensions,[this])}setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.left=0,this.right=this.width):(this.height=this.maxHeight,this.top=0,this.bottom=this.height),this.paddingLeft=0,this.paddingTop=0,this.paddingRight=0,this.paddingBottom=0}afterSetDimensions(){Y(this.options.afterSetDimensions,[this])}_callHooks(t){this.chart.notifyPlugins(t,this.getContext()),Y(this.options[t],[this])}beforeDataLimits(){this._callHooks("beforeDataLimits")}determineDataLimits(){}afterDataLimits(){this._callHooks("afterDataLimits")}beforeBuildTicks(){this._callHooks("beforeBuildTicks")}buildTicks(){return[]}afterBuildTicks(){this._callHooks("afterBuildTicks")}beforeTickToLabelConversion(){Y(this.options.beforeTickToLabelConversion,[this])}generateTickLabels(t){const n=this.options.ticks;let i,s,o;for(i=0,s=t.length;i<s;i++)o=t[i],o.label=Y(n.callback,[o.value,i,t],this)}afterTickToLabelConversion(){Y(this.options.afterTickToLabelConversion,[this])}beforeCalculateLabelRotation(){Y(this.options.beforeCalculateLabelRotation,[this])}calculateLabelRotation(){const t=this.options,n=t.ticks,i=So(this.ticks.length,t.ticks.maxTicksLimit),s=n.minRotation||0,o=n.maxRotation;let r=s,a,l,c;if(!this._isVisible()||!n.display||s>=o||i<=1||!this.isHorizontal()){this.labelRotation=s;return}const h=this._getLabelSizes(),u=h.widest.width,d=h.highest.height,f=rt(this.chart.width-u,0,this.maxWidth);a=t.offset?this.maxWidth/i:f/(i-1),u+6>a&&(a=f/(i-(t.offset?.5:1)),l=this.maxHeight-$e(t.grid)-n.padding-Mo(t.title,this.chart.options.font),c=Math.sqrt(u*u+d*d),r=jh(Math.min(Math.asin(rt((h.highest.height+6)/a,-1,1)),Math.asin(rt(l/c,-1,1))-Math.asin(rt(d/c,-1,1)))),r=Math.max(s,Math.min(o,r))),this.labelRotation=r}afterCalculateLabelRotation(){Y(this.options.afterCalculateLabelRotation,[this])}afterAutoSkip(){}beforeFit(){Y(this.options.beforeFit,[this])}fit(){const t={width:0,height:0},{chart:n,options:{ticks:i,title:s,grid:o}}=this,r=this._isVisible(),a=this.isHorizontal();if(r){const l=Mo(s,n.options.font);if(a?(t.width=this.maxWidth,t.height=$e(o)+l):(t.height=this.maxHeight,t.width=$e(o)+l),i.display&&this.ticks.length){const{first:c,last:h,widest:u,highest:d}=this._getLabelSizes(),f=i.padding*2,g=ae(this.labelRotation),m=Math.cos(g),p=Math.sin(g);if(a){const b=i.mirror?0:p*u.width+m*d.height;t.height=Math.min(this.maxHeight,t.height+b+f)}else{const b=i.mirror?0:m*u.width+p*d.height;t.width=Math.min(this.maxWidth,t.width+b+f)}this._calculatePadding(c,h,p,m)}}this._handleMargins(),a?(this.width=this._length=n.width-this._margins.left-this._margins.right,this.height=t.height):(this.width=t.width,this.height=this._length=n.height-this._margins.top-this._margins.bottom)}_calculatePadding(t,n,i,s){const{ticks:{align:o,padding:r},position:a}=this.options,l=this.labelRotation!==0,c=a!=="top"&&this.axis==="x";if(this.isHorizontal()){const h=this.getPixelForTick(0)-this.left,u=this.right-this.getPixelForTick(this.ticks.length-1);let d=0,f=0;l?c?(d=s*t.width,f=i*n.height):(d=i*t.height,f=s*n.width):o==="start"?f=n.width:o==="end"?d=t.width:o!=="inner"&&(d=t.width/2,f=n.width/2),this.paddingLeft=Math.max((d-h+r)*this.width/(this.width-h),0),this.paddingRight=Math.max((f-u+r)*this.width/(this.width-u),0)}else{let h=n.height/2,u=t.height/2;o==="start"?(h=0,u=t.height):o==="end"&&(h=n.height,u=0),this.paddingTop=h+r,this.paddingBottom=u+r}}_handleMargins(){this._margins&&(this._margins.left=Math.max(this.paddingLeft,this._margins.left),this._margins.top=Math.max(this.paddingTop,this._margins.top),this._margins.right=Math.max(this.paddingRight,this._margins.right),this._margins.bottom=Math.max(this.paddingBottom,this._margins.bottom))}afterFit(){Y(this.options.afterFit,[this])}isHorizontal(){const{axis:t,position:n}=this.options;return n==="top"||n==="bottom"||t==="x"}isFullSize(){return this.options.fullSize}_convertTicksToLabels(t){this.beforeTickToLabelConversion(),this.generateTickLabels(t);let n,i;for(n=0,i=t.length;n<i;n++)B(t[n].label)&&(t.splice(n,1),i--,n--);this.afterTickToLabelConversion()}_getLabelSizes(){let t=this._labelSizes;if(!t){const n=this.options.ticks.sampleSize;let i=this.ticks;n<i.length&&(i=ko(i,n)),this._labelSizes=t=this._computeLabelSizes(i,i.length,this.options.ticks.maxTicksLimit)}return t}_computeLabelSizes(t,n,i){const{ctx:s,_longestTextCache:o}=this,r=[],a=[],l=Math.floor(n/So(n,i));let c=0,h=0,u,d,f,g,m,p,b,x,v,_,y;for(u=0;u<n;u+=l){if(g=t[u].label,m=this._resolveTickFontOptions(u),s.font=p=m.string,b=o[p]=o[p]||{data:{},gc:[]},x=m.lineHeight,v=_=0,!B(g)&&!J(g))v=Js(s,b.data,b.gc,v,g),_=x;else if(J(g))for(d=0,f=g.length;d<f;++d)y=g[d],!B(y)&&!J(y)&&(v=Js(s,b.data,b.gc,v,y),_+=x);r.push(v),a.push(_),c=Math.max(v,c),h=Math.max(_,h)}Zd(o,n);const w=r.indexOf(c),k=a.indexOf(h),S=C=>({width:r[C]||0,height:a[C]||0});return{first:S(0),last:S(n-1),widest:S(w),highest:S(k),widths:r,heights:a}}getLabelForValue(t){return t}getPixelForValue(t,n){return NaN}getValueForPixel(t){}getPixelForTick(t){const n=this.ticks;return t<0||t>n.length-1?null:this.getPixelForValue(n[t].value)}getPixelForDecimal(t){this._reversePixels&&(t=1-t);const n=this._startPixel+t*this._length;return zh(this._alignToPixels?ee(this.chart,n,0):n)}getDecimalForPixel(t){const n=(t-this._startPixel)/this._length;return this._reversePixels?1-n:n}getBasePixel(){return this.getPixelForValue(this.getBaseValue())}getBaseValue(){const{min:t,max:n}=this;return t<0&&n<0?n:t>0&&n>0?t:0}getContext(t){const n=this.ticks||[];if(t>=0&&t<n.length){const i=n[t];return i.$context||(i.$context=tf(this.getContext(),t,i))}return this.$context||(this.$context=Qd(this.chart.getContext(),this))}_tickSize(){const t=this.options.ticks,n=ae(this.labelRotation),i=Math.abs(Math.cos(n)),s=Math.abs(Math.sin(n)),o=this._getLabelSizes(),r=t.autoSkipPadding||0,a=o?o.widest.width+r:0,l=o?o.highest.height+r:0;return this.isHorizontal()?l*i>a*s?a/i:l/s:l*s<a*i?l/i:a/s}_isVisible(){const t=this.options.display;return t!=="auto"?!!t:this.getMatchingVisibleMetas().length>0}_computeGridLineItems(t){const n=this.axis,i=this.chart,s=this.options,{grid:o,position:r,border:a}=s,l=o.offset,c=this.isHorizontal(),u=this.ticks.length+(l?1:0),d=$e(o),f=[],g=a.setContext(this.getContext()),m=g.display?g.width:0,p=m/2,b=function(L){return ee(i,L,m)};let x,v,_,y,w,k,S,C,D,P,O,E;if(r==="top")x=b(this.bottom),k=this.bottom-d,C=x-p,P=b(t.top)+p,E=t.bottom;else if(r==="bottom")x=b(this.top),P=t.top,E=b(t.bottom)-p,k=x+p,C=this.top+d;else if(r==="left")x=b(this.right),w=this.right-d,S=x-p,D=b(t.left)+p,O=t.right;else if(r==="right")x=b(this.left),D=t.left,O=b(t.right)-p,w=x+p,S=this.left+d;else if(n==="x"){if(r==="center")x=b((t.top+t.bottom)/2+.5);else if(z(r)){const L=Object.keys(r)[0],F=r[L];x=b(this.chart.scales[L].getPixelForValue(F))}P=t.top,E=t.bottom,k=x+p,C=k+d}else if(n==="y"){if(r==="center")x=b((t.left+t.right)/2);else if(z(r)){const L=Object.keys(r)[0],F=r[L];x=b(this.chart.scales[L].getPixelForValue(F))}w=x-p,S=w-d,D=t.left,O=t.right}const I=j(s.ticks.maxTicksLimit,u),T=Math.max(1,Math.ceil(u/I));for(v=0;v<u;v+=T){const L=this.getContext(v),F=o.setContext(L),H=a.setContext(L),$=F.lineWidth,N=F.color,tt=H.dash||[],Q=H.dashOffset,nt=F.tickWidth,U=F.tickColor,X=F.tickBorderDash||[],K=F.tickBorderDashOffset;_=Jd(this,v,l),_!==void 0&&(y=ee(i,_,$),c?w=S=D=O=y:k=C=P=E=y,f.push({tx1:w,ty1:k,tx2:S,ty2:C,x1:D,y1:P,x2:O,y2:E,width:$,color:N,borderDash:tt,borderDashOffset:Q,tickWidth:nt,tickColor:U,tickBorderDash:X,tickBorderDashOffset:K}))}return this._ticksLength=u,this._borderValue=x,f}_computeLabelItems(t){const n=this.axis,i=this.options,{position:s,ticks:o}=i,r=this.isHorizontal(),a=this.ticks,{align:l,crossAlign:c,padding:h,mirror:u}=o,d=$e(i.grid),f=d+h,g=u?-h:f,m=-ae(this.labelRotation),p=[];let b,x,v,_,y,w,k,S,C,D,P,O,E="middle";if(s==="top")w=this.bottom-g,k=this._getXAxisLabelAlignment();else if(s==="bottom")w=this.top+g,k=this._getXAxisLabelAlignment();else if(s==="left"){const T=this._getYAxisLabelAlignment(d);k=T.textAlign,y=T.x}else if(s==="right"){const T=this._getYAxisLabelAlignment(d);k=T.textAlign,y=T.x}else if(n==="x"){if(s==="center")w=(t.top+t.bottom)/2+f;else if(z(s)){const T=Object.keys(s)[0],L=s[T];w=this.chart.scales[T].getPixelForValue(L)+f}k=this._getXAxisLabelAlignment()}else if(n==="y"){if(s==="center")y=(t.left+t.right)/2-f;else if(z(s)){const T=Object.keys(s)[0],L=s[T];y=this.chart.scales[T].getPixelForValue(L)}k=this._getYAxisLabelAlignment(d).textAlign}n==="y"&&(l==="start"?E="top":l==="end"&&(E="bottom"));const I=this._getLabelSizes();for(b=0,x=a.length;b<x;++b){v=a[b],_=v.label;const T=o.setContext(this.getContext(b));S=this.getPixelForTick(b)+o.labelOffset,C=this._resolveTickFontOptions(b),D=C.lineHeight,P=J(_)?_.length:1;const L=P/2,F=T.color,H=T.textStrokeColor,$=T.textStrokeWidth;let N=k;r?(y=S,k==="inner"&&(b===x-1?N=this.options.reverse?"left":"right":b===0?N=this.options.reverse?"right":"left":N="center"),s==="top"?c==="near"||m!==0?O=-P*D+D/2:c==="center"?O=-I.highest.height/2-L*D+D:O=-I.highest.height+D/2:c==="near"||m!==0?O=D/2:c==="center"?O=I.highest.height/2-L*D:O=I.highest.height-P*D,u&&(O*=-1),m!==0&&!T.showLabelBackdrop&&(y+=D/2*Math.sin(m))):(w=S,O=(1-P)*D/2);let tt;if(T.showLabelBackdrop){const Q=_t(T.backdropPadding),nt=I.heights[b],U=I.widths[b];let X=O-Q.top,K=0-Q.left;switch(E){case"middle":X-=nt/2;break;case"bottom":X-=nt;break}switch(k){case"center":K-=U/2;break;case"right":K-=U;break;case"inner":b===x-1?K-=U:b>0&&(K-=U/2);break}tt={left:K,top:X,width:U+Q.width,height:nt+Q.height,color:T.backdropColor}}p.push({label:_,font:C,textOffset:O,options:{rotation:m,color:F,strokeColor:H,strokeWidth:$,textAlign:N,textBaseline:E,translation:[y,w],backdrop:tt}})}return p}_getXAxisLabelAlignment(){const{position:t,ticks:n}=this.options;if(-ae(this.labelRotation))return t==="top"?"left":"right";let s="center";return n.align==="start"?s="left":n.align==="end"?s="right":n.align==="inner"&&(s="inner"),s}_getYAxisLabelAlignment(t){const{position:n,ticks:{crossAlign:i,mirror:s,padding:o}}=this.options,r=this._getLabelSizes(),a=t+o,l=r.widest.width;let c,h;return n==="left"?s?(h=this.right+o,i==="near"?c="left":i==="center"?(c="center",h+=l/2):(c="right",h+=l)):(h=this.right-a,i==="near"?c="right":i==="center"?(c="center",h-=l/2):(c="left",h=this.left)):n==="right"?s?(h=this.left+o,i==="near"?c="right":i==="center"?(c="center",h-=l/2):(c="left",h-=l)):(h=this.left+a,i==="near"?c="left":i==="center"?(c="center",h+=l/2):(c="right",h=this.right)):c="right",{textAlign:c,x:h}}_computeLabelArea(){if(this.options.ticks.mirror)return;const t=this.chart,n=this.options.position;if(n==="left"||n==="right")return{top:0,left:this.left,bottom:t.height,right:this.right};if(n==="top"||n==="bottom")return{top:this.top,left:0,bottom:this.bottom,right:t.width}}drawBackground(){const{ctx:t,options:{backgroundColor:n},left:i,top:s,width:o,height:r}=this;n&&(t.save(),t.fillStyle=n,t.fillRect(i,s,o,r),t.restore())}getLineWidthForValue(t){const n=this.options.grid;if(!this._isVisible()||!n.display)return 0;const s=this.ticks.findIndex(o=>o.value===t);return s>=0?n.setContext(this.getContext(s)).lineWidth:0}drawGrid(t){const n=this.options.grid,i=this.ctx,s=this._gridLineItems||(this._gridLineItems=this._computeGridLineItems(t));let o,r;const a=(l,c,h)=>{!h.width||!h.color||(i.save(),i.lineWidth=h.width,i.strokeStyle=h.color,i.setLineDash(h.borderDash||[]),i.lineDashOffset=h.borderDashOffset,i.beginPath(),i.moveTo(l.x,l.y),i.lineTo(c.x,c.y),i.stroke(),i.restore())};if(n.display)for(o=0,r=s.length;o<r;++o){const l=s[o];n.drawOnChartArea&&a({x:l.x1,y:l.y1},{x:l.x2,y:l.y2},l),n.drawTicks&&a({x:l.tx1,y:l.ty1},{x:l.tx2,y:l.ty2},{color:l.tickColor,width:l.tickWidth,borderDash:l.tickBorderDash,borderDashOffset:l.tickBorderDashOffset})}}drawBorder(){const{chart:t,ctx:n,options:{border:i,grid:s}}=this,o=i.setContext(this.getContext()),r=i.display?o.width:0;if(!r)return;const a=s.setContext(this.getContext(0)).lineWidth,l=this._borderValue;let c,h,u,d;this.isHorizontal()?(c=ee(t,this.left,r)-r/2,h=ee(t,this.right,a)+a/2,u=d=l):(u=ee(t,this.top,r)-r/2,d=ee(t,this.bottom,a)+a/2,c=h=l),n.save(),n.lineWidth=o.width,n.strokeStyle=o.color,n.beginPath(),n.moveTo(c,u),n.lineTo(h,d),n.stroke(),n.restore()}drawLabels(t){if(!this.options.ticks.display)return;const i=this.ctx,s=this._computeLabelArea();s&&Zi(i,s);const o=this.getLabelItems(t);for(const r of o){const a=r.options,l=r.font,c=r.label,h=r.textOffset;sn(i,c,0,h,l,a)}s&&Qi(i)}drawTitle(){const{ctx:t,options:{position:n,title:i,reverse:s}}=this;if(!i.display)return;const o=at(i.font),r=_t(i.padding),a=i.align;let l=o.lineHeight/2;n==="bottom"||n==="center"||z(n)?(l+=r.bottom,J(i.text)&&(l+=o.lineHeight*(i.text.length-1))):l+=r.top;const{titleX:c,titleY:h,maxWidth:u,rotation:d}=nf(this,l,n,a);sn(t,i.text,0,0,o,{color:i.color,maxWidth:u,rotation:d,textAlign:ef(a,n,s),textBaseline:"middle",translation:[c,h]})}draw(t){this._isVisible()&&(this.drawBackground(),this.drawGrid(t),this.drawBorder(),this.drawTitle(),this.drawLabels(t))}_layers(){const t=this.options,n=t.ticks&&t.ticks.z||0,i=j(t.grid&&t.grid.z,-1),s=j(t.border&&t.border.z,0);return!this._isVisible()||this.draw!==Ee.prototype.draw?[{z:n,draw:o=>{this.draw(o)}}]:[{z:i,draw:o=>{this.drawBackground(),this.drawGrid(o),this.drawTitle()}},{z:s,draw:()=>{this.drawBorder()}},{z:n,draw:o=>{this.drawLabels(o)}}]}getMatchingVisibleMetas(t){const n=this.chart.getSortedVisibleDatasetMetas(),i=this.axis+"AxisID",s=[];let o,r;for(o=0,r=n.length;o<r;++o){const a=n[o];a[i]===this.id&&(!t||a.type===t)&&s.push(a)}return s}_resolveTickFontOptions(t){const n=this.options.ticks.setContext(this.getContext(t));return at(n.font)}_maxDigits(){const t=this._resolveTickFontOptions(0).lineHeight;return(this.isHorizontal()?this.width:this.height)/t}}class kn{constructor(t,n,i){this.type=t,this.scope=n,this.override=i,this.items=Object.create(null)}isForType(t){return Object.prototype.isPrototypeOf.call(this.type.prototype,t.prototype)}register(t){const n=Object.getPrototypeOf(t);let i;rf(n)&&(i=this.register(n));const s=this.items,o=t.id,r=this.scope+"."+o;if(!o)throw new Error("class does not have id: "+t);return o in s||(s[o]=t,sf(t,r,i),this.override&&q.override(t.id,t.overrides)),r}get(t){return this.items[t]}unregister(t){const n=this.items,i=t.id,s=this.scope;i in n&&delete n[i],s&&i in q[s]&&(delete q[s][i],this.override&&delete fe[i])}}function sf(e,t,n){const i=Qe(Object.create(null),[n?q.get(n):{},q.get(t),e.defaults]);q.set(t,i),e.defaultRoutes&&of(t,e.defaultRoutes),e.descriptors&&q.describe(t,e.descriptors)}function of(e,t){Object.keys(t).forEach(n=>{const i=n.split("."),s=i.pop(),o=[e].concat(i).join("."),r=t[n].split("."),a=r.pop(),l=r.join(".");q.route(o,s,l,a)})}function rf(e){return"id"in e&&"defaults"in e}class af{constructor(){this.controllers=new kn(Se,"datasets",!0),this.elements=new kn(jt,"elements"),this.plugins=new kn(Object,"plugins"),this.scales=new kn(Ee,"scales"),this._typedRegistries=[this.controllers,this.scales,this.elements]}add(...t){this._each("register",t)}remove(...t){this._each("unregister",t)}addControllers(...t){this._each("register",t,this.controllers)}addElements(...t){this._each("register",t,this.elements)}addPlugins(...t){this._each("register",t,this.plugins)}addScales(...t){this._each("register",t,this.scales)}getController(t){return this._get(t,this.controllers,"controller")}getElement(t){return this._get(t,this.elements,"element")}getPlugin(t){return this._get(t,this.plugins,"plugin")}getScale(t){return this._get(t,this.scales,"scale")}removeControllers(...t){this._each("unregister",t,this.controllers)}removeElements(...t){this._each("unregister",t,this.elements)}removePlugins(...t){this._each("unregister",t,this.plugins)}removeScales(...t){this._each("unregister",t,this.scales)}_each(t,n,i){[...n].forEach(s=>{const o=i||this._getRegistryForType(s);i||o.isForType(s)||o===this.plugins&&s.id?this._exec(t,o,s):V(s,r=>{const a=i||this._getRegistryForType(r);this._exec(t,a,r)})})}_exec(t,n,i){const s=Xi(t);Y(i["before"+s],[],i),n[t](i),Y(i["after"+s],[],i)}_getRegistryForType(t){for(let n=0;n<this._typedRegistries.length;n++){const i=this._typedRegistries[n];if(i.isForType(t))return i}return this.plugins}_get(t,n,i){const s=n.get(t);if(s===void 0)throw new Error('"'+t+'" is not a registered '+i+".");return s}}var Mt=new af;class lf{constructor(){this._init=[]}notify(t,n,i,s){n==="beforeInit"&&(this._init=this._createDescriptors(t,!0),this._notify(this._init,t,"install"));const o=s?this._descriptors(t).filter(s):this._descriptors(t),r=this._notify(o,t,n,i);return n==="afterDestroy"&&(this._notify(o,t,"stop"),this._notify(this._init,t,"uninstall")),r}_notify(t,n,i,s){s=s||{};for(const o of t){const r=o.plugin,a=r[i],l=[n,s,o.options];if(Y(a,l,r)===!1&&s.cancelable)return!1}return!0}invalidate(){B(this._cache)||(this._oldCache=this._cache,this._cache=void 0)}_descriptors(t){if(this._cache)return this._cache;const n=this._cache=this._createDescriptors(t);return this._notifyStateChanges(t),n}_createDescriptors(t,n){const i=t&&t.config,s=j(i.options&&i.options.plugins,{}),o=cf(i);return s===!1&&!n?[]:uf(t,o,s,n)}_notifyStateChanges(t){const n=this._oldCache||[],i=this._cache,s=(o,r)=>o.filter(a=>!r.some(l=>a.plugin.id===l.plugin.id));this._notify(s(n,i),t,"stop"),this._notify(s(i,n),t,"start")}}function cf(e){const t={},n=[],i=Object.keys(Mt.plugins.items);for(let o=0;o<i.length;o++)n.push(Mt.getPlugin(i[o]));const s=e.plugins||[];for(let o=0;o<s.length;o++){const r=s[o];n.indexOf(r)===-1&&(n.push(r),t[r.id]=!0)}return{plugins:n,localIds:t}}function hf(e,t){return!t&&e===!1?null:e===!0?{}:e}function uf(e,{plugins:t,localIds:n},i,s){const o=[],r=e.getContext();for(const a of t){const l=a.id,c=hf(i[l],s);c!==null&&o.push({plugin:a,options:df(e.config,{plugin:a,local:n[l]},c,r)})}return o}function df(e,{plugin:t,local:n},i,s){const o=e.pluginScopeKeys(t),r=e.getOptionScopes(i,o);return n&&t.defaults&&r.push(t.defaults),e.createResolver(r,s,[""],{scriptable:!1,indexable:!1,allKeys:!0})}function Di(e,t){const n=q.datasets[e]||{};return((t.datasets||{})[e]||{}).indexAxis||t.indexAxis||n.indexAxis||"x"}function ff(e,t){let n=e;return e==="_index_"?n=t:e==="_value_"&&(n=t==="x"?"y":"x"),n}function pf(e,t){return e===t?"_index_":"_value_"}function Co(e){if(e==="x"||e==="y"||e==="r")return e}function gf(e){if(e==="top"||e==="bottom")return"x";if(e==="left"||e==="right")return"y"}function Ai(e,...t){if(Co(e))return e;for(const n of t){const i=n.axis||gf(n.position)||e.length>1&&Co(e[0].toLowerCase());if(i)return i}throw new Error(`Cannot determine type of '${e}' axis. Please provide 'axis' or 'position' option.`)}function Po(e,t,n){if(n[t+"AxisID"]===e)return{axis:t}}function mf(e,t){if(t.data&&t.data.datasets){const n=t.data.datasets.filter(i=>i.xAxisID===e||i.yAxisID===e);if(n.length)return Po(e,"x",n[0])||Po(e,"y",n[0])}return{}}function bf(e,t){const n=fe[e.type]||{scales:{}},i=t.scales||{},s=Di(e.type,t),o=Object.create(null);return Object.keys(i).forEach(r=>{const a=i[r];if(!z(a))return console.error(`Invalid scale configuration for scale: ${r}`);if(a._proxy)return console.warn(`Ignoring resolver passed as options for scale: ${r}`);const l=Ai(r,a,mf(r,e),q.scales[a.type]),c=pf(l,s),h=n.scales||{};o[r]=Ue(Object.create(null),[{axis:l},a,h[l],h[c]])}),e.data.datasets.forEach(r=>{const a=r.type||e.type,l=r.indexAxis||Di(a,t),h=(fe[a]||{}).scales||{};Object.keys(h).forEach(u=>{const d=ff(u,l),f=r[d+"AxisID"]||d;o[f]=o[f]||Object.create(null),Ue(o[f],[{axis:d},i[f],h[u]])})}),Object.keys(o).forEach(r=>{const a=o[r];Ue(a,[q.scales[a.type],q.scale])}),o}function va(e){const t=e.options||(e.options={});t.plugins=j(t.plugins,{}),t.scales=bf(e,t)}function _a(e){return e=e||{},e.datasets=e.datasets||[],e.labels=e.labels||[],e}function xf(e){return e=e||{},e.data=_a(e.data),va(e),e}const Oo=new Map,wa=new Set;function Mn(e,t){let n=Oo.get(e);return n||(n=t(),Oo.set(e,n),wa.add(n)),n}const ze=(e,t,n)=>{const i=Oe(t,n);i!==void 0&&e.add(i)};class yf{constructor(t){this._config=xf(t),this._scopeCache=new Map,this._resolverCache=new Map}get platform(){return this._config.platform}get type(){return this._config.type}set type(t){this._config.type=t}get data(){return this._config.data}set data(t){this._config.data=_a(t)}get options(){return this._config.options}set options(t){this._config.options=t}get plugins(){return this._config.plugins}update(){const t=this._config;this.clearCache(),va(t)}clearCache(){this._scopeCache.clear(),this._resolverCache.clear()}datasetScopeKeys(t){return Mn(t,()=>[[`datasets.${t}`,""]])}datasetAnimationScopeKeys(t,n){return Mn(`${t}.transition.${n}`,()=>[[`datasets.${t}.transitions.${n}`,`transitions.${n}`],[`datasets.${t}`,""]])}datasetElementScopeKeys(t,n){return Mn(`${t}-${n}`,()=>[[`datasets.${t}.elements.${n}`,`datasets.${t}`,`elements.${n}`,""]])}pluginScopeKeys(t){const n=t.id,i=this.type;return Mn(`${i}-plugin-${n}`,()=>[[`plugins.${n}`,...t.additionalOptionScopes||[]]])}_cachedScopes(t,n){const i=this._scopeCache;let s=i.get(t);return(!s||n)&&(s=new Map,i.set(t,s)),s}getOptionScopes(t,n,i){const{options:s,type:o}=this,r=this._cachedScopes(t,i),a=r.get(n);if(a)return a;const l=new Set;n.forEach(h=>{t&&(l.add(t),h.forEach(u=>ze(l,t,u))),h.forEach(u=>ze(l,s,u)),h.forEach(u=>ze(l,fe[o]||{},u)),h.forEach(u=>ze(l,q,u)),h.forEach(u=>ze(l,Pi,u))});const c=Array.from(l);return c.length===0&&c.push(Object.create(null)),wa.has(n)&&r.set(n,c),c}chartOptionScopes(){const{options:t,type:n}=this;return[t,fe[n]||{},q.datasets[n]||{},{type:n},q,Pi]}resolveNamedOptions(t,n,i,s=[""]){const o={$shared:!0},{resolver:r,subPrefixes:a}=Do(this._resolverCache,t,s);let l=r;if(_f(r,n)){o.$shared=!1,i=Xt(i)?i():i;const c=this.createResolver(t,i,a);l=De(r,i,c)}for(const c of n)o[c]=l[c];return o}createResolver(t,n,i=[""],s){const{resolver:o}=Do(this._resolverCache,t,i);return z(n)?De(o,n,void 0,s):o}}function Do(e,t,n){let i=e.get(t);i||(i=new Map,e.set(t,i));const s=n.join();let o=i.get(s);return o||(o={resolver:es(t,n),subPrefixes:n.filter(a=>!a.toLowerCase().includes("hover"))},i.set(s,o)),o}const vf=e=>z(e)&&Object.getOwnPropertyNames(e).some(t=>Xt(e[t]));function _f(e,t){const{isScriptable:n,isIndexable:i}=sa(e);for(const s of t){const o=n(s),r=i(s),a=(r||o)&&e[s];if(o&&(Xt(a)||vf(a))||r&&J(a))return!0}return!1}var wf="4.4.8";const Sf=["top","bottom","left","right","chartArea"];function Ao(e,t){return e==="top"||e==="bottom"||Sf.indexOf(e)===-1&&t==="x"}function Eo(e,t){return function(n,i){return n[e]===i[e]?n[t]-i[t]:n[e]-i[e]}}function To(e){const t=e.chart,n=t.options.animation;t.notifyPlugins("afterRender"),Y(n&&n.onComplete,[e],t)}function kf(e){const t=e.chart,n=t.options.animation;Y(n&&n.onProgress,[e],t)}function Sa(e){return ss()&&typeof e=="string"?e=document.getElementById(e):e&&e.length&&(e=e[0]),e&&e.canvas&&(e=e.canvas),e}const Ln={},Ro=e=>{const t=Sa(e);return Object.values(Ln).filter(n=>n.canvas===t).pop()};function Mf(e,t,n){const i=Object.keys(e);for(const s of i){const o=+s;if(o>=t){const r=e[s];delete e[s],(n>0||o>t)&&(e[o+n]=r)}}}function Cf(e,t,n,i){return!n||e.type==="mouseout"?null:i?t:e}function Cn(e,t,n){return e.options.clip?e[n]:t[n]}function Pf(e,t){const{xScale:n,yScale:i}=e;return n&&i?{left:Cn(n,t,"left"),right:Cn(n,t,"right"),top:Cn(i,t,"top"),bottom:Cn(i,t,"bottom")}:t}class Ct{static register(...t){Mt.add(...t),Lo()}static unregister(...t){Mt.remove(...t),Lo()}constructor(t,n){const i=this.config=new yf(n),s=Sa(t),o=Ro(s);if(o)throw new Error("Canvas is already in use. Chart with ID '"+o.id+"' must be destroyed before the canvas with ID '"+o.canvas.id+"' can be reused.");const r=i.createResolver(i.chartOptionScopes(),this.getContext());this.platform=new(i.platform||Wd(s)),this.platform.updateConfig(i);const a=this.platform.acquireContext(s,r.aspectRatio),l=a&&a.canvas,c=l&&l.height,h=l&&l.width;if(this.id=kh(),this.ctx=a,this.canvas=l,this.width=h,this.height=c,this._options=r,this._aspectRatio=this.aspectRatio,this._layers=[],this._metasets=[],this._stacks=void 0,this.boxes=[],this.currentDevicePixelRatio=void 0,this.chartArea=void 0,this._active=[],this._lastEvent=void 0,this._listeners={},this._responsiveListeners=void 0,this._sortedMetasets=[],this.scales={},this._plugins=new lf,this.$proxies={},this._hiddenIndices={},this.attached=!1,this._animationsDisabled=void 0,this.$context=void 0,this._doResize=Wh(u=>this.update(u),r.resizeDelay||0),this._dataChanges=[],Ln[this.id]=this,!a||!l){console.error("Failed to create chart: can't acquire context from the given item");return}Tt.listen(this,"complete",To),Tt.listen(this,"progress",kf),this._initialize(),this.attached&&this.update()}get aspectRatio(){const{options:{aspectRatio:t,maintainAspectRatio:n},width:i,height:s,_aspectRatio:o}=this;return B(t)?n&&o?o:s?i/s:null:t}get data(){return this.config.data}set data(t){this.config.data=t}get options(){return this._options}set options(t){this.config.options=t}get registry(){return Mt}_initialize(){return this.notifyPlugins("beforeInit"),this.options.responsive?this.resize():eo(this,this.options.devicePixelRatio),this.bindEvents(),this.notifyPlugins("afterInit"),this}clear(){return Zs(this.canvas,this.ctx),this}stop(){return Tt.stop(this),this}resize(t,n){Tt.running(this)?this._resizeBeforeDraw={width:t,height:n}:this._resize(t,n)}_resize(t,n){const i=this.options,s=this.canvas,o=i.maintainAspectRatio&&this.aspectRatio,r=this.platform.getMaximumSize(s,t,n,o),a=i.devicePixelRatio||this.platform.getDevicePixelRatio(),l=this.width?"resize":"attach";this.width=r.width,this.height=r.height,this._aspectRatio=this.aspectRatio,eo(this,a,!0)&&(this.notifyPlugins("resize",{size:r}),Y(i.onResize,[this,r],this),this.attached&&this._doResize(l)&&this.render())}ensureScalesHaveIDs(){const n=this.options.scales||{};V(n,(i,s)=>{i.id=s})}buildOrUpdateScales(){const t=this.options,n=t.scales,i=this.scales,s=Object.keys(i).reduce((r,a)=>(r[a]=!1,r),{});let o=[];n&&(o=o.concat(Object.keys(n).map(r=>{const a=n[r],l=Ai(r,a),c=l==="r",h=l==="x";return{options:a,dposition:c?"chartArea":h?"bottom":"left",dtype:c?"radialLinear":h?"category":"linear"}}))),V(o,r=>{const a=r.options,l=a.id,c=Ai(l,a),h=j(a.type,r.dtype);(a.position===void 0||Ao(a.position,c)!==Ao(r.dposition))&&(a.position=r.dposition),s[l]=!0;let u=null;if(l in i&&i[l].type===h)u=i[l];else{const d=Mt.getScale(h);u=new d({id:l,type:h,ctx:this.ctx,chart:this}),i[u.id]=u}u.init(a,t)}),V(s,(r,a)=>{r||delete i[a]}),V(i,r=>{bt.configure(this,r,r.options),bt.addBox(this,r)})}_updateMetasets(){const t=this._metasets,n=this.data.datasets.length,i=t.length;if(t.sort((s,o)=>s.index-o.index),i>n){for(let s=n;s<i;++s)this._destroyDatasetMeta(s);t.splice(n,i-n)}this._sortedMetasets=t.slice(0).sort(Eo("order","index"))}_removeUnreferencedMetasets(){const{_metasets:t,data:{datasets:n}}=this;t.length>n.length&&delete this._stacks,t.forEach((i,s)=>{n.filter(o=>o===i._dataset).length===0&&this._destroyDatasetMeta(s)})}buildOrUpdateControllers(){const t=[],n=this.data.datasets;let i,s;for(this._removeUnreferencedMetasets(),i=0,s=n.length;i<s;i++){const o=n[i];let r=this.getDatasetMeta(i);const a=o.type||this.config.type;if(r.type&&r.type!==a&&(this._destroyDatasetMeta(i),r=this.getDatasetMeta(i)),r.type=a,r.indexAxis=o.indexAxis||Di(a,this.options),r.order=o.order||0,r.index=i,r.label=""+o.label,r.visible=this.isDatasetVisible(i),r.controller)r.controller.updateIndex(i),r.controller.linkScales();else{const l=Mt.getController(a),{datasetElementType:c,dataElementType:h}=q.datasets[a];Object.assign(l,{dataElementType:Mt.getElement(h),datasetElementType:c&&Mt.getElement(c)}),r.controller=new l(this,i),t.push(r.controller)}}return this._updateMetasets(),t}_resetElements(){V(this.data.datasets,(t,n)=>{this.getDatasetMeta(n).controller.reset()},this)}reset(){this._resetElements(),this.notifyPlugins("reset")}update(t){const n=this.config;n.update();const i=this._options=n.createResolver(n.chartOptionScopes(),this.getContext()),s=this._animationsDisabled=!i.animation;if(this._updateScales(),this._checkEventBindings(),this._updateHiddenIndices(),this._plugins.invalidate(),this.notifyPlugins("beforeUpdate",{mode:t,cancelable:!0})===!1)return;const o=this.buildOrUpdateControllers();this.notifyPlugins("beforeElementsUpdate");let r=0;for(let c=0,h=this.data.datasets.length;c<h;c++){const{controller:u}=this.getDatasetMeta(c),d=!s&&o.indexOf(u)===-1;u.buildOrUpdateElements(d),r=Math.max(+u.getMaxOverflow(),r)}r=this._minPadding=i.layout.autoPadding?r:0,this._updateLayout(r),s||V(o,c=>{c.reset()}),this._updateDatasets(t),this.notifyPlugins("afterUpdate",{mode:t}),this._layers.sort(Eo("z","_idx"));const{_active:a,_lastEvent:l}=this;l?this._eventHandler(l,!0):a.length&&this._updateHoverStyles(a,a,!0),this.render()}_updateScales(){V(this.scales,t=>{bt.removeBox(this,t)}),this.ensureScalesHaveIDs(),this.buildOrUpdateScales()}_checkEventBindings(){const t=this.options,n=new Set(Object.keys(this._listeners)),i=new Set(t.events);(!Hs(n,i)||!!this._responsiveListeners!==t.responsive)&&(this.unbindEvents(),this.bindEvents())}_updateHiddenIndices(){const{_hiddenIndices:t}=this,n=this._getUniformDataChanges()||[];for(const{method:i,start:s,count:o}of n){const r=i==="_removeElements"?-o:o;Mf(t,s,r)}}_getUniformDataChanges(){const t=this._dataChanges;if(!t||!t.length)return;this._dataChanges=[];const n=this.data.datasets.length,i=o=>new Set(t.filter(r=>r[0]===o).map((r,a)=>a+","+r.splice(1).join(","))),s=i(0);for(let o=1;o<n;o++)if(!Hs(s,i(o)))return;return Array.from(s).map(o=>o.split(",")).map(o=>({method:o[1],start:+o[2],count:+o[3]}))}_updateLayout(t){if(this.notifyPlugins("beforeLayout",{cancelable:!0})===!1)return;bt.update(this,this.width,this.height,t);const n=this.chartArea,i=n.width<=0||n.height<=0;this._layers=[],V(this.boxes,s=>{i&&s.position==="chartArea"||(s.configure&&s.configure(),this._layers.push(...s._layers()))},this),this._layers.forEach((s,o)=>{s._idx=o}),this.notifyPlugins("afterLayout")}_updateDatasets(t){if(this.notifyPlugins("beforeDatasetsUpdate",{mode:t,cancelable:!0})!==!1){for(let n=0,i=this.data.datasets.length;n<i;++n)this.getDatasetMeta(n).controller.configure();for(let n=0,i=this.data.datasets.length;n<i;++n)this._updateDataset(n,Xt(t)?t({datasetIndex:n}):t);this.notifyPlugins("afterDatasetsUpdate",{mode:t})}}_updateDataset(t,n){const i=this.getDatasetMeta(t),s={meta:i,index:t,mode:n,cancelable:!0};this.notifyPlugins("beforeDatasetUpdate",s)!==!1&&(i.controller._update(n),s.cancelable=!1,this.notifyPlugins("afterDatasetUpdate",s))}render(){this.notifyPlugins("beforeRender",{cancelable:!0})!==!1&&(Tt.has(this)?this.attached&&!Tt.running(this)&&Tt.start(this):(this.draw(),To({chart:this})))}draw(){let t;if(this._resizeBeforeDraw){const{width:i,height:s}=this._resizeBeforeDraw;this._resizeBeforeDraw=null,this._resize(i,s)}if(this.clear(),this.width<=0||this.height<=0||this.notifyPlugins("beforeDraw",{cancelable:!0})===!1)return;const n=this._layers;for(t=0;t<n.length&&n[t].z<=0;++t)n[t].draw(this.chartArea);for(this._drawDatasets();t<n.length;++t)n[t].draw(this.chartArea);this.notifyPlugins("afterDraw")}_getSortedDatasetMetas(t){const n=this._sortedMetasets,i=[];let s,o;for(s=0,o=n.length;s<o;++s){const r=n[s];(!t||r.visible)&&i.push(r)}return i}getSortedVisibleDatasetMetas(){return this._getSortedDatasetMetas(!0)}_drawDatasets(){if(this.notifyPlugins("beforeDatasetsDraw",{cancelable:!0})===!1)return;const t=this.getSortedVisibleDatasetMetas();for(let n=t.length-1;n>=0;--n)this._drawDataset(t[n]);this.notifyPlugins("afterDatasetsDraw")}_drawDataset(t){const n=this.ctx,i=t._clip,s=!i.disabled,o=Pf(t,this.chartArea),r={meta:t,index:t.index,cancelable:!0};this.notifyPlugins("beforeDatasetDraw",r)!==!1&&(s&&Zi(n,{left:i.left===!1?0:o.left-i.left,right:i.right===!1?this.width:o.right+i.right,top:i.top===!1?0:o.top-i.top,bottom:i.bottom===!1?this.height:o.bottom+i.bottom}),t.controller.draw(),s&&Qi(n),r.cancelable=!1,this.notifyPlugins("afterDatasetDraw",r))}isPointInArea(t){return nn(t,this.chartArea,this._minPadding)}getElementsAtEventForMode(t,n,i,s){const o=wd.modes[n];return typeof o=="function"?o(this,t,i,s):[]}getDatasetMeta(t){const n=this.data.datasets[t],i=this._metasets;let s=i.filter(o=>o&&o._dataset===n).pop();return s||(s={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null,order:n&&n.order||0,index:t,_dataset:n,_parsed:[],_sorted:!1},i.push(s)),s}getContext(){return this.$context||(this.$context=pe(null,{chart:this,type:"chart"}))}getVisibleDatasetCount(){return this.getSortedVisibleDatasetMetas().length}isDatasetVisible(t){const n=this.data.datasets[t];if(!n)return!1;const i=this.getDatasetMeta(t);return typeof i.hidden=="boolean"?!i.hidden:!n.hidden}setDatasetVisibility(t,n){const i=this.getDatasetMeta(t);i.hidden=!n}toggleDataVisibility(t){this._hiddenIndices[t]=!this._hiddenIndices[t]}getDataVisibility(t){return!this._hiddenIndices[t]}_updateVisibility(t,n,i){const s=i?"show":"hide",o=this.getDatasetMeta(t),r=o.controller._resolveAnimations(void 0,s);tn(n)?(o.data[n].hidden=!i,this.update()):(this.setDatasetVisibility(t,i),r.update(o,{visible:i}),this.update(a=>a.datasetIndex===t?s:void 0))}hide(t,n){this._updateVisibility(t,n,!1)}show(t,n){this._updateVisibility(t,n,!0)}_destroyDatasetMeta(t){const n=this._metasets[t];n&&n.controller&&n.controller._destroy(),delete this._metasets[t]}_stop(){let t,n;for(this.stop(),Tt.remove(this),t=0,n=this.data.datasets.length;t<n;++t)this._destroyDatasetMeta(t)}destroy(){this.notifyPlugins("beforeDestroy");const{canvas:t,ctx:n}=this;this._stop(),this.config.clearCache(),t&&(this.unbindEvents(),Zs(t,n),this.platform.releaseContext(n),this.canvas=null,this.ctx=null),delete Ln[this.id],this.notifyPlugins("afterDestroy")}toBase64Image(...t){return this.canvas.toDataURL(...t)}bindEvents(){this.bindUserEvents(),this.options.responsive?this.bindResponsiveEvents():this.attached=!0}bindUserEvents(){const t=this._listeners,n=this.platform,i=(o,r)=>{n.addEventListener(this,o,r),t[o]=r},s=(o,r,a)=>{o.offsetX=r,o.offsetY=a,this._eventHandler(o)};V(this.options.events,o=>i(o,s))}bindResponsiveEvents(){this._responsiveListeners||(this._responsiveListeners={});const t=this._responsiveListeners,n=this.platform,i=(l,c)=>{n.addEventListener(this,l,c),t[l]=c},s=(l,c)=>{t[l]&&(n.removeEventListener(this,l,c),delete t[l])},o=(l,c)=>{this.canvas&&this.resize(l,c)};let r;const a=()=>{s("attach",a),this.attached=!0,this.resize(),i("resize",o),i("detach",r)};r=()=>{this.attached=!1,s("resize",o),this._stop(),this._resize(0,0),i("attach",a)},n.isAttached(this.canvas)?a():r()}unbindEvents(){V(this._listeners,(t,n)=>{this.platform.removeEventListener(this,n,t)}),this._listeners={},V(this._responsiveListeners,(t,n)=>{this.platform.removeEventListener(this,n,t)}),this._responsiveListeners=void 0}updateHoverStyle(t,n,i){const s=i?"set":"remove";let o,r,a,l;for(n==="dataset"&&(o=this.getDatasetMeta(t[0].datasetIndex),o.controller["_"+s+"DatasetHoverStyle"]()),a=0,l=t.length;a<l;++a){r=t[a];const c=r&&this.getDatasetMeta(r.datasetIndex).controller;c&&c[s+"HoverStyle"](r.element,r.datasetIndex,r.index)}}getActiveElements(){return this._active||[]}setActiveElements(t){const n=this._active||[],i=t.map(({datasetIndex:o,index:r})=>{const a=this.getDatasetMeta(o);if(!a)throw new Error("No dataset found at index "+o);return{datasetIndex:o,element:a.data[r],index:r}});!In(i,n)&&(this._active=i,this._lastEvent=null,this._updateHoverStyles(i,n))}notifyPlugins(t,n,i){return this._plugins.notify(this,t,n,i)}isPluginEnabled(t){return this._plugins._cache.filter(n=>n.plugin.id===t).length===1}_updateHoverStyles(t,n,i){const s=this.options.hover,o=(l,c)=>l.filter(h=>!c.some(u=>h.datasetIndex===u.datasetIndex&&h.index===u.index)),r=o(n,t),a=i?t:o(t,n);r.length&&this.updateHoverStyle(r,s.mode,!1),a.length&&s.mode&&this.updateHoverStyle(a,s.mode,!0)}_eventHandler(t,n){const i={event:t,replay:n,cancelable:!0,inChartArea:this.isPointInArea(t)},s=r=>(r.options.events||this.options.events).includes(t.native.type);if(this.notifyPlugins("beforeEvent",i,s)===!1)return;const o=this._handleEvent(t,n,i.inChartArea);return i.cancelable=!1,this.notifyPlugins("afterEvent",i,s),(o||i.changed)&&this.render(),this}_handleEvent(t,n,i){const{_active:s=[],options:o}=this,r=n,a=this._getActiveElements(t,s,i,r),l=Ah(t),c=Cf(t,this._lastEvent,i,l);i&&(this._lastEvent=null,Y(o.onHover,[t,a,this],this),l&&Y(o.onClick,[t,a,this],this));const h=!In(a,s);return(h||n)&&(this._active=a,this._updateHoverStyles(a,s,n)),this._lastEvent=c,h}_getActiveElements(t,n,i,s){if(t.type==="mouseout")return[];if(!i)return n;const o=this.options.hover;return this.getElementsAtEventForMode(t,o.mode,o,s)}}R(Ct,"defaults",q),R(Ct,"instances",Ln),R(Ct,"overrides",fe),R(Ct,"registry",Mt),R(Ct,"version",wf),R(Ct,"getChart",Ro);function Lo(){return V(Ct.instances,e=>e._plugins.invalidate())}function Of(e,t,n){const{startAngle:i,pixelMargin:s,x:o,y:r,outerRadius:a,innerRadius:l}=t;let c=s/a;e.beginPath(),e.arc(o,r,a,i-c,n+c),l>s?(c=s/l,e.arc(o,r,l,n+c,i-c,!0)):e.arc(o,r,s,n+it,i-it),e.closePath(),e.clip()}function Df(e){return ts(e,["outerStart","outerEnd","innerStart","innerEnd"])}function Af(e,t,n,i){const s=Df(e.options.borderRadius),o=(n-t)/2,r=Math.min(o,i*t/2),a=l=>{const c=(n-Math.min(o,l))*i/2;return rt(l,0,Math.min(o,c))};return{outerStart:a(s.outerStart),outerEnd:a(s.outerEnd),innerStart:rt(s.innerStart,0,r),innerEnd:rt(s.innerEnd,0,r)}}function be(e,t,n,i){return{x:n+e*Math.cos(t),y:i+e*Math.sin(t)}}function Hn(e,t,n,i,s,o){const{x:r,y:a,startAngle:l,pixelMargin:c,innerRadius:h}=t,u=Math.max(t.outerRadius+i+n-c,0),d=h>0?h+i+n+c:0;let f=0;const g=s-l;if(i){const T=h>0?h-i:0,L=u>0?u-i:0,F=(T+L)/2,H=F!==0?g*F/(F+i):g;f=(g-H)/2}const m=Math.max(.001,g*u-n/Z)/u,p=(g-m)/2,b=l+p+f,x=s-p-f,{outerStart:v,outerEnd:_,innerStart:y,innerEnd:w}=Af(t,d,u,x-b),k=u-v,S=u-_,C=b+v/k,D=x-_/S,P=d+y,O=d+w,E=b+y/P,I=x-w/O;if(e.beginPath(),o){const T=(C+D)/2;if(e.arc(r,a,u,C,T),e.arc(r,a,u,T,D),_>0){const $=be(S,D,r,a);e.arc($.x,$.y,_,D,x+it)}const L=be(O,x,r,a);if(e.lineTo(L.x,L.y),w>0){const $=be(O,I,r,a);e.arc($.x,$.y,w,x+it,I+Math.PI)}const F=(x-w/d+(b+y/d))/2;if(e.arc(r,a,d,x-w/d,F,!0),e.arc(r,a,d,F,b+y/d,!0),y>0){const $=be(P,E,r,a);e.arc($.x,$.y,y,E+Math.PI,b-it)}const H=be(k,b,r,a);if(e.lineTo(H.x,H.y),v>0){const $=be(k,C,r,a);e.arc($.x,$.y,v,b-it,C)}}else{e.moveTo(r,a);const T=Math.cos(C)*u+r,L=Math.sin(C)*u+a;e.lineTo(T,L);const F=Math.cos(D)*u+r,H=Math.sin(D)*u+a;e.lineTo(F,H)}e.closePath()}function Ef(e,t,n,i,s){const{fullCircles:o,startAngle:r,circumference:a}=t;let l=t.endAngle;if(o){Hn(e,t,n,i,l,s);for(let c=0;c<o;++c)e.fill();isNaN(a)||(l=r+(a%st||st))}return Hn(e,t,n,i,l,s),e.fill(),l}function Tf(e,t,n,i,s){const{fullCircles:o,startAngle:r,circumference:a,options:l}=t,{borderWidth:c,borderJoinStyle:h,borderDash:u,borderDashOffset:d}=l,f=l.borderAlign==="inner";if(!c)return;e.setLineDash(u||[]),e.lineDashOffset=d,f?(e.lineWidth=c*2,e.lineJoin=h||"round"):(e.lineWidth=c,e.lineJoin=h||"bevel");let g=t.endAngle;if(o){Hn(e,t,n,i,g,s);for(let m=0;m<o;++m)e.stroke();isNaN(a)||(g=r+(a%st||st))}f&&Of(e,t,g),o||(Hn(e,t,n,i,g,s),e.stroke())}class Pn extends jt{constructor(n){super();R(this,"circumference");R(this,"endAngle");R(this,"fullCircles");R(this,"innerRadius");R(this,"outerRadius");R(this,"pixelMargin");R(this,"startAngle");this.options=void 0,this.circumference=void 0,this.startAngle=void 0,this.endAngle=void 0,this.innerRadius=void 0,this.outerRadius=void 0,this.pixelMargin=0,this.fullCircles=0,n&&Object.assign(this,n)}inRange(n,i,s){const o=this.getProps(["x","y"],s),{angle:r,distance:a}=qr(o,{x:n,y:i}),{startAngle:l,endAngle:c,innerRadius:h,outerRadius:u,circumference:d}=this.getProps(["startAngle","endAngle","innerRadius","outerRadius","circumference"],s),f=(this.options.spacing+this.options.borderWidth)/2,g=j(d,c-l),m=qi(r,l,c)&&l!==c,p=g>=st||m,b=Bt(a,h+f,u+f);return p&&b}getCenterPoint(n){const{x:i,y:s,startAngle:o,endAngle:r,innerRadius:a,outerRadius:l}=this.getProps(["x","y","startAngle","endAngle","innerRadius","outerRadius"],n),{offset:c,spacing:h}=this.options,u=(o+r)/2,d=(a+l+h+c)/2;return{x:i+Math.cos(u)*d,y:s+Math.sin(u)*d}}tooltipPosition(n){return this.getCenterPoint(n)}draw(n){const{options:i,circumference:s}=this,o=(i.offset||0)/4,r=(i.spacing||0)/2,a=i.circular;if(this.pixelMargin=i.borderAlign==="inner"?.33:0,this.fullCircles=s>st?Math.floor(s/st):0,s===0||this.innerRadius<0||this.outerRadius<0)return;n.save();const l=(this.startAngle+this.endAngle)/2;n.translate(Math.cos(l)*o,Math.sin(l)*o);const c=1-Math.sin(Math.min(Z,s||0)),h=o*c;n.fillStyle=i.backgroundColor,n.strokeStyle=i.borderColor,Ef(n,this,h,r,a),Tf(n,this,h,r,a),n.restore()}}R(Pn,"id","arc"),R(Pn,"defaults",{borderAlign:"center",borderColor:"#fff",borderDash:[],borderDashOffset:0,borderJoinStyle:void 0,borderRadius:0,borderWidth:2,offset:0,spacing:0,angle:void 0,circular:!0}),R(Pn,"defaultRoutes",{backgroundColor:"backgroundColor"}),R(Pn,"descriptors",{_scriptable:!0,_indexable:n=>n!=="borderDash"});function ka(e,t,n=t){e.lineCap=j(n.borderCapStyle,t.borderCapStyle),e.setLineDash(j(n.borderDash,t.borderDash)),e.lineDashOffset=j(n.borderDashOffset,t.borderDashOffset),e.lineJoin=j(n.borderJoinStyle,t.borderJoinStyle),e.lineWidth=j(n.borderWidth,t.borderWidth),e.strokeStyle=j(n.borderColor,t.borderColor)}function Rf(e,t,n){e.lineTo(n.x,n.y)}function Lf(e){return e.stepped?nu:e.tension||e.cubicInterpolationMode==="monotone"?iu:Rf}function Ma(e,t,n={}){const i=e.length,{start:s=0,end:o=i-1}=n,{start:r,end:a}=t,l=Math.max(s,r),c=Math.min(o,a),h=s<r&&o<r||s>a&&o>a;return{count:i,start:l,loop:t.loop,ilen:c<l&&!h?i+c-l:c-l}}function Ff(e,t,n,i){const{points:s,options:o}=t,{count:r,start:a,loop:l,ilen:c}=Ma(s,n,i),h=Lf(o);let{move:u=!0,reverse:d}=i||{},f,g,m;for(f=0;f<=c;++f)g=s[(a+(d?c-f:f))%r],!g.skip&&(u?(e.moveTo(g.x,g.y),u=!1):h(e,m,g,d,o.stepped),m=g);return l&&(g=s[(a+(d?c:0))%r],h(e,m,g,d,o.stepped)),!!l}function If(e,t,n,i){const s=t.points,{count:o,start:r,ilen:a}=Ma(s,n,i),{move:l=!0,reverse:c}=i||{};let h=0,u=0,d,f,g,m,p,b;const x=_=>(r+(c?a-_:_))%o,v=()=>{m!==p&&(e.lineTo(h,p),e.lineTo(h,m),e.lineTo(h,b))};for(l&&(f=s[x(0)],e.moveTo(f.x,f.y)),d=0;d<=a;++d){if(f=s[x(d)],f.skip)continue;const _=f.x,y=f.y,w=_|0;w===g?(y<m?m=y:y>p&&(p=y),h=(u*h+_)/++u):(v(),e.lineTo(_,y),g=w,u=0,m=p=y),b=y}v()}function Ei(e){const t=e.options,n=t.borderDash&&t.borderDash.length;return!e._decimated&&!e._loop&&!t.tension&&t.cubicInterpolationMode!=="monotone"&&!t.stepped&&!n?If:Ff}function jf(e){return e.stepped?Fu:e.tension||e.cubicInterpolationMode==="monotone"?Iu:re}function $f(e,t,n,i){let s=t._path;s||(s=t._path=new Path2D,t.path(s,n,i)&&s.closePath()),ka(e,t.options),e.stroke(s)}function zf(e,t,n,i){const{segments:s,options:o}=t,r=Ei(t);for(const a of s)ka(e,o,a.style),e.beginPath(),r(e,t,a,{start:n,end:n+i-1})&&e.closePath(),e.stroke()}const Nf=typeof Path2D=="function";function Bf(e,t,n,i){Nf&&!t.options.segment?$f(e,t,n,i):zf(e,t,n,i)}class On extends jt{constructor(t){super(),this.animated=!0,this.options=void 0,this._chart=void 0,this._loop=void 0,this._fullLoop=void 0,this._path=void 0,this._points=void 0,this._segments=void 0,this._decimated=!1,this._pointsUpdated=!1,this._datasetIndex=void 0,t&&Object.assign(this,t)}updateControlPoints(t,n){const i=this.options;if((i.tension||i.cubicInterpolationMode==="monotone")&&!i.stepped&&!this._pointsUpdated){const s=i.spanGaps?this._loop:this._fullLoop;Pu(this._points,i,t,s,n),this._pointsUpdated=!0}}set points(t){this._points=t,delete this._segments,delete this._path,this._pointsUpdated=!1}get points(){return this._points}get segments(){return this._segments||(this._segments=Vu(this,this.options.segment))}first(){const t=this.segments,n=this.points;return t.length&&n[t[0].start]}last(){const t=this.segments,n=this.points,i=t.length;return i&&n[t[i-1].end]}interpolate(t,n){const i=this.options,s=t[n],o=this.points,r=Bu(this,{property:n,start:s,end:s});if(!r.length)return;const a=[],l=jf(i);let c,h;for(c=0,h=r.length;c<h;++c){const{start:u,end:d}=r[c],f=o[u],g=o[d];if(f===g){a.push(f);continue}const m=Math.abs((s-f[n])/(g[n]-f[n])),p=l(f,g,m,i.stepped);p[n]=t[n],a.push(p)}return a.length===1?a[0]:a}pathSegment(t,n,i){return Ei(this)(t,this,n,i)}path(t,n,i){const s=this.segments,o=Ei(this);let r=this._loop;n=n||0,i=i||this.points.length-n;for(const a of s)r&=o(t,this,a,{start:n,end:n+i-1});return!!r}draw(t,n,i,s){const o=this.options||{};(this.points||[]).length&&o.borderWidth&&(t.save(),Bf(t,this,i,s),t.restore()),this.animated&&(this._pointsUpdated=!1,this._path=void 0)}}R(On,"id","line"),R(On,"defaults",{borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderWidth:3,capBezierPoints:!0,cubicInterpolationMode:"default",fill:!1,spanGaps:!1,stepped:!1,tension:0}),R(On,"defaultRoutes",{backgroundColor:"backgroundColor",borderColor:"borderColor"}),R(On,"descriptors",{_scriptable:!0,_indexable:t=>t!=="borderDash"&&t!=="fill"});function Fo(e,t,n,i){const s=e.options,{[n]:o}=e.getProps([n],i);return Math.abs(t-o)<s.radius+s.hitRadius}class mi extends jt{constructor(n){super();R(this,"parsed");R(this,"skip");R(this,"stop");this.options=void 0,this.parsed=void 0,this.skip=void 0,this.stop=void 0,n&&Object.assign(this,n)}inRange(n,i,s){const o=this.options,{x:r,y:a}=this.getProps(["x","y"],s);return Math.pow(n-r,2)+Math.pow(i-a,2)<Math.pow(o.hitRadius+o.radius,2)}inXRange(n,i){return Fo(this,n,"x",i)}inYRange(n,i){return Fo(this,n,"y",i)}getCenterPoint(n){const{x:i,y:s}=this.getProps(["x","y"],n);return{x:i,y:s}}size(n){n=n||this.options||{};let i=n.radius||0;i=Math.max(i,i&&n.hoverRadius||0);const s=i&&n.borderWidth||0;return(i+s)*2}draw(n,i){const s=this.options;this.skip||s.radius<.1||!nn(this,i,this.size(s)/2)||(n.strokeStyle=s.borderColor,n.lineWidth=s.borderWidth,n.fillStyle=s.backgroundColor,Oi(n,s,this.x,this.y))}getRange(){const n=this.options||{};return n.radius+n.hitRadius}}R(mi,"id","point"),R(mi,"defaults",{borderWidth:1,hitRadius:1,hoverBorderWidth:1,hoverRadius:4,pointStyle:"circle",radius:3,rotation:0}),R(mi,"defaultRoutes",{backgroundColor:"backgroundColor",borderColor:"borderColor"});function Ca(e,t){const{x:n,y:i,base:s,width:o,height:r}=e.getProps(["x","y","base","width","height"],t);let a,l,c,h,u;return e.horizontal?(u=r/2,a=Math.min(n,s),l=Math.max(n,s),c=i-u,h=i+u):(u=o/2,a=n-u,l=n+u,c=Math.min(i,s),h=Math.max(i,s)),{left:a,top:c,right:l,bottom:h}}function Ht(e,t,n,i){return e?0:rt(t,n,i)}function Hf(e,t,n){const i=e.options.borderWidth,s=e.borderSkipped,o=ia(i);return{t:Ht(s.top,o.top,0,n),r:Ht(s.right,o.right,0,t),b:Ht(s.bottom,o.bottom,0,n),l:Ht(s.left,o.left,0,t)}}function Wf(e,t,n){const{enableBorderRadius:i}=e.getProps(["enableBorderRadius"]),s=e.options.borderRadius,o=_e(s),r=Math.min(t,n),a=e.borderSkipped,l=i||z(s);return{topLeft:Ht(!l||a.top||a.left,o.topLeft,0,r),topRight:Ht(!l||a.top||a.right,o.topRight,0,r),bottomLeft:Ht(!l||a.bottom||a.left,o.bottomLeft,0,r),bottomRight:Ht(!l||a.bottom||a.right,o.bottomRight,0,r)}}function Vf(e){const t=Ca(e),n=t.right-t.left,i=t.bottom-t.top,s=Hf(e,n/2,i/2),o=Wf(e,n/2,i/2);return{outer:{x:t.left,y:t.top,w:n,h:i,radius:o},inner:{x:t.left+s.l,y:t.top+s.t,w:n-s.l-s.r,h:i-s.t-s.b,radius:{topLeft:Math.max(0,o.topLeft-Math.max(s.t,s.l)),topRight:Math.max(0,o.topRight-Math.max(s.t,s.r)),bottomLeft:Math.max(0,o.bottomLeft-Math.max(s.b,s.l)),bottomRight:Math.max(0,o.bottomRight-Math.max(s.b,s.r))}}}}function bi(e,t,n,i){const s=t===null,o=n===null,a=e&&!(s&&o)&&Ca(e,i);return a&&(s||Bt(t,a.left,a.right))&&(o||Bt(n,a.top,a.bottom))}function Yf(e){return e.topLeft||e.topRight||e.bottomLeft||e.bottomRight}function Uf(e,t){e.rect(t.x,t.y,t.w,t.h)}function xi(e,t,n={}){const i=e.x!==n.x?-t:0,s=e.y!==n.y?-t:0,o=(e.x+e.w!==n.x+n.w?t:0)-i,r=(e.y+e.h!==n.y+n.h?t:0)-s;return{x:e.x+i,y:e.y+s,w:e.w+o,h:e.h+r,radius:e.radius}}class yi extends jt{constructor(t){super(),this.options=void 0,this.horizontal=void 0,this.base=void 0,this.width=void 0,this.height=void 0,this.inflateAmount=void 0,t&&Object.assign(this,t)}draw(t){const{inflateAmount:n,options:{borderColor:i,backgroundColor:s}}=this,{inner:o,outer:r}=Vf(this),a=Yf(r.radius)?zn:Uf;t.save(),(r.w!==o.w||r.h!==o.h)&&(t.beginPath(),a(t,xi(r,n,o)),t.clip(),a(t,xi(o,-n,r)),t.fillStyle=i,t.fill("evenodd")),t.beginPath(),a(t,xi(o,n)),t.fillStyle=s,t.fill(),t.restore()}inRange(t,n,i){return bi(this,t,n,i)}inXRange(t,n){return bi(this,t,null,n)}inYRange(t,n){return bi(this,null,t,n)}getCenterPoint(t){const{x:n,y:i,base:s,horizontal:o}=this.getProps(["x","y","base","horizontal"],t);return{x:o?(n+s)/2:n,y:o?i:(i+s)/2}}getRange(t){return t==="x"?this.width/2:this.height/2}}R(yi,"id","bar"),R(yi,"defaults",{borderSkipped:"start",borderWidth:0,borderRadius:0,inflateAmount:"auto",pointStyle:void 0}),R(yi,"defaultRoutes",{backgroundColor:"backgroundColor",borderColor:"borderColor"});const Io=(e,t)=>{let{boxHeight:n=t,boxWidth:i=t}=e;return e.usePointStyle&&(n=Math.min(n,t),i=e.pointStyleWidth||Math.min(i,t)),{boxWidth:i,boxHeight:n,itemHeight:Math.max(t,n)}},Xf=(e,t)=>e!==null&&t!==null&&e.datasetIndex===t.datasetIndex&&e.index===t.index;class jo extends jt{constructor(t){super(),this._added=!1,this.legendHitBoxes=[],this._hoveredItem=null,this.doughnutMode=!1,this.chart=t.chart,this.options=t.options,this.ctx=t.ctx,this.legendItems=void 0,this.columnSizes=void 0,this.lineWidths=void 0,this.maxHeight=void 0,this.maxWidth=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.height=void 0,this.width=void 0,this._margins=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(t,n,i){this.maxWidth=t,this.maxHeight=n,this._margins=i,this.setDimensions(),this.buildLabels(),this.fit()}setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.left=this._margins.left,this.right=this.width):(this.height=this.maxHeight,this.top=this._margins.top,this.bottom=this.height)}buildLabels(){const t=this.options.labels||{};let n=Y(t.generateLabels,[this.chart],this)||[];t.filter&&(n=n.filter(i=>t.filter(i,this.chart.data))),t.sort&&(n=n.sort((i,s)=>t.sort(i,s,this.chart.data))),this.options.reverse&&n.reverse(),this.legendItems=n}fit(){const{options:t,ctx:n}=this;if(!t.display){this.width=this.height=0;return}const i=t.labels,s=at(i.font),o=s.size,r=this._computeTitleHeight(),{boxWidth:a,itemHeight:l}=Io(i,o);let c,h;n.font=s.string,this.isHorizontal()?(c=this.maxWidth,h=this._fitRows(r,o,a,l)+10):(h=this.maxHeight,c=this._fitCols(r,s,a,l)+10),this.width=Math.min(c,t.maxWidth||this.maxWidth),this.height=Math.min(h,t.maxHeight||this.maxHeight)}_fitRows(t,n,i,s){const{ctx:o,maxWidth:r,options:{labels:{padding:a}}}=this,l=this.legendHitBoxes=[],c=this.lineWidths=[0],h=s+a;let u=t;o.textAlign="left",o.textBaseline="middle";let d=-1,f=-h;return this.legendItems.forEach((g,m)=>{const p=i+n/2+o.measureText(g.text).width;(m===0||c[c.length-1]+p+2*a>r)&&(u+=h,c[c.length-(m>0?0:1)]=0,f+=h,d++),l[m]={left:0,top:f,row:d,width:p,height:s},c[c.length-1]+=p+a}),u}_fitCols(t,n,i,s){const{ctx:o,maxHeight:r,options:{labels:{padding:a}}}=this,l=this.legendHitBoxes=[],c=this.columnSizes=[],h=r-t;let u=a,d=0,f=0,g=0,m=0;return this.legendItems.forEach((p,b)=>{const{itemWidth:x,itemHeight:v}=qf(i,n,o,p,s);b>0&&f+v+2*a>h&&(u+=d+a,c.push({width:d,height:f}),g+=d+a,m++,d=f=0),l[b]={left:g,top:f,col:m,width:x,height:v},d=Math.max(d,x),f+=v+a}),u+=d,c.push({width:d,height:f}),u}adjustHitBoxes(){if(!this.options.display)return;const t=this._computeTitleHeight(),{legendHitBoxes:n,options:{align:i,labels:{padding:s},rtl:o}}=this,r=we(o,this.left,this.width);if(this.isHorizontal()){let a=0,l=ot(i,this.left+s,this.right-this.lineWidths[a]);for(const c of n)a!==c.row&&(a=c.row,l=ot(i,this.left+s,this.right-this.lineWidths[a])),c.top+=this.top+t+s,c.left=r.leftForLtr(r.x(l),c.width),l+=c.width+s}else{let a=0,l=ot(i,this.top+t+s,this.bottom-this.columnSizes[a].height);for(const c of n)c.col!==a&&(a=c.col,l=ot(i,this.top+t+s,this.bottom-this.columnSizes[a].height)),c.top=l,c.left+=this.left+s,c.left=r.leftForLtr(r.x(c.left),c.width),l+=c.height+s}}isHorizontal(){return this.options.position==="top"||this.options.position==="bottom"}draw(){if(this.options.display){const t=this.ctx;Zi(t,this),this._draw(),Qi(t)}}_draw(){const{options:t,columnSizes:n,lineWidths:i,ctx:s}=this,{align:o,labels:r}=t,a=q.color,l=we(t.rtl,this.left,this.width),c=at(r.font),{padding:h}=r,u=c.size,d=u/2;let f;this.drawTitle(),s.textAlign=l.textAlign("left"),s.textBaseline="middle",s.lineWidth=.5,s.font=c.string;const{boxWidth:g,boxHeight:m,itemHeight:p}=Io(r,u),b=function(w,k,S){if(isNaN(g)||g<=0||isNaN(m)||m<0)return;s.save();const C=j(S.lineWidth,1);if(s.fillStyle=j(S.fillStyle,a),s.lineCap=j(S.lineCap,"butt"),s.lineDashOffset=j(S.lineDashOffset,0),s.lineJoin=j(S.lineJoin,"miter"),s.lineWidth=C,s.strokeStyle=j(S.strokeStyle,a),s.setLineDash(j(S.lineDash,[])),r.usePointStyle){const D={radius:m*Math.SQRT2/2,pointStyle:S.pointStyle,rotation:S.rotation,borderWidth:C},P=l.xPlus(w,g/2),O=k+d;na(s,D,P,O,r.pointStyleWidth&&g)}else{const D=k+Math.max((u-m)/2,0),P=l.leftForLtr(w,g),O=_e(S.borderRadius);s.beginPath(),Object.values(O).some(E=>E!==0)?zn(s,{x:P,y:D,w:g,h:m,radius:O}):s.rect(P,D,g,m),s.fill(),C!==0&&s.stroke()}s.restore()},x=function(w,k,S){sn(s,S.text,w,k+p/2,c,{strikethrough:S.hidden,textAlign:l.textAlign(S.textAlign)})},v=this.isHorizontal(),_=this._computeTitleHeight();v?f={x:ot(o,this.left+h,this.right-i[0]),y:this.top+h+_,line:0}:f={x:this.left+h,y:ot(o,this.top+_+h,this.bottom-n[0].height),line:0},ca(this.ctx,t.textDirection);const y=p+h;this.legendItems.forEach((w,k)=>{s.strokeStyle=w.fontColor,s.fillStyle=w.fontColor;const S=s.measureText(w.text).width,C=l.textAlign(w.textAlign||(w.textAlign=r.textAlign)),D=g+d+S;let P=f.x,O=f.y;l.setWidth(this.width),v?k>0&&P+D+h>this.right&&(O=f.y+=y,f.line++,P=f.x=ot(o,this.left+h,this.right-i[f.line])):k>0&&O+y>this.bottom&&(P=f.x=P+n[f.line].width+h,f.line++,O=f.y=ot(o,this.top+_+h,this.bottom-n[f.line].height));const E=l.x(P);if(b(E,O,w),P=Vh(C,P+g+d,v?P+D:this.right,t.rtl),x(l.x(P),O,w),v)f.x+=D+h;else if(typeof w.text!="string"){const I=c.lineHeight;f.y+=Pa(w,I)+h}else f.y+=y}),ha(this.ctx,t.textDirection)}drawTitle(){const t=this.options,n=t.title,i=at(n.font),s=_t(n.padding);if(!n.display)return;const o=we(t.rtl,this.left,this.width),r=this.ctx,a=n.position,l=i.size/2,c=s.top+l;let h,u=this.left,d=this.width;if(this.isHorizontal())d=Math.max(...this.lineWidths),h=this.top+c,u=ot(t.align,u,this.right-d);else{const g=this.columnSizes.reduce((m,p)=>Math.max(m,p.height),0);h=c+ot(t.align,this.top,this.bottom-g-t.labels.padding-this._computeTitleHeight())}const f=ot(a,u,u+d);r.textAlign=o.textAlign(Gi(a)),r.textBaseline="middle",r.strokeStyle=n.color,r.fillStyle=n.color,r.font=i.string,sn(r,n.text,f,h,i)}_computeTitleHeight(){const t=this.options.title,n=at(t.font),i=_t(t.padding);return t.display?n.lineHeight+i.height:0}_getLegendItemAt(t,n){let i,s,o;if(Bt(t,this.left,this.right)&&Bt(n,this.top,this.bottom)){for(o=this.legendHitBoxes,i=0;i<o.length;++i)if(s=o[i],Bt(t,s.left,s.left+s.width)&&Bt(n,s.top,s.top+s.height))return this.legendItems[i]}return null}handleEvent(t){const n=this.options;if(!Jf(t.type,n))return;const i=this._getLegendItemAt(t.x,t.y);if(t.type==="mousemove"||t.type==="mouseout"){const s=this._hoveredItem,o=Xf(s,i);s&&!o&&Y(n.onLeave,[t,s,this],this),this._hoveredItem=i,i&&!o&&Y(n.onHover,[t,i,this],this)}else i&&Y(n.onClick,[t,i,this],this)}}function qf(e,t,n,i,s){const o=Kf(i,e,t,n),r=Gf(s,i,t.lineHeight);return{itemWidth:o,itemHeight:r}}function Kf(e,t,n,i){let s=e.text;return s&&typeof s!="string"&&(s=s.reduce((o,r)=>o.length>r.length?o:r)),t+n.size/2+i.measureText(s).width}function Gf(e,t,n){let i=e;return typeof t.text!="string"&&(i=Pa(t,n)),i}function Pa(e,t){const n=e.text?e.text.length:0;return t*n}function Jf(e,t){return!!((e==="mousemove"||e==="mouseout")&&(t.onHover||t.onLeave)||t.onClick&&(e==="click"||e==="mouseup"))}var Ag={id:"legend",_element:jo,start(e,t,n){const i=e.legend=new jo({ctx:e.ctx,options:n,chart:e});bt.configure(e,i,n),bt.addBox(e,i)},stop(e){bt.removeBox(e,e.legend),delete e.legend},beforeUpdate(e,t,n){const i=e.legend;bt.configure(e,i,n),i.options=n},afterUpdate(e){const t=e.legend;t.buildLabels(),t.adjustHitBoxes()},afterEvent(e,t){t.replay||e.legend.handleEvent(t.event)},defaults:{display:!0,position:"top",align:"center",fullSize:!0,reverse:!1,weight:1e3,onClick(e,t,n){const i=t.datasetIndex,s=n.chart;s.isDatasetVisible(i)?(s.hide(i),t.hidden=!0):(s.show(i),t.hidden=!1)},onHover:null,onLeave:null,labels:{color:e=>e.chart.options.color,boxWidth:40,padding:10,generateLabels(e){const t=e.data.datasets,{labels:{usePointStyle:n,pointStyle:i,textAlign:s,color:o,useBorderRadius:r,borderRadius:a}}=e.legend.options;return e._getSortedDatasetMetas().map(l=>{const c=l.controller.getStyle(n?0:void 0),h=_t(c.borderWidth);return{text:t[l.index].label,fillStyle:c.backgroundColor,fontColor:o,hidden:!l.visible,lineCap:c.borderCapStyle,lineDash:c.borderDash,lineDashOffset:c.borderDashOffset,lineJoin:c.borderJoinStyle,lineWidth:(h.width+h.height)/4,strokeStyle:c.borderColor,pointStyle:i||c.pointStyle,rotation:c.rotation,textAlign:s||c.textAlign,borderRadius:r&&(a||c.borderRadius),datasetIndex:l.index}},this)}},title:{color:e=>e.chart.options.color,display:!1,position:"center",text:""}},descriptors:{_scriptable:e=>!e.startsWith("on"),labels:{_scriptable:e=>!["generateLabels","filter","sort"].includes(e)}}};class Oa extends jt{constructor(t){super(),this.chart=t.chart,this.options=t.options,this.ctx=t.ctx,this._padding=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.width=void 0,this.height=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(t,n){const i=this.options;if(this.left=0,this.top=0,!i.display){this.width=this.height=this.right=this.bottom=0;return}this.width=this.right=t,this.height=this.bottom=n;const s=J(i.text)?i.text.length:1;this._padding=_t(i.padding);const o=s*at(i.font).lineHeight+this._padding.height;this.isHorizontal()?this.height=o:this.width=o}isHorizontal(){const t=this.options.position;return t==="top"||t==="bottom"}_drawArgs(t){const{top:n,left:i,bottom:s,right:o,options:r}=this,a=r.align;let l=0,c,h,u;return this.isHorizontal()?(h=ot(a,i,o),u=n+t,c=o-i):(r.position==="left"?(h=i+t,u=ot(a,s,n),l=Z*-.5):(h=o-t,u=ot(a,n,s),l=Z*.5),c=s-n),{titleX:h,titleY:u,maxWidth:c,rotation:l}}draw(){const t=this.ctx,n=this.options;if(!n.display)return;const i=at(n.font),o=i.lineHeight/2+this._padding.top,{titleX:r,titleY:a,maxWidth:l,rotation:c}=this._drawArgs(o);sn(t,n.text,0,0,i,{color:n.color,maxWidth:l,rotation:c,textAlign:Gi(n.align),textBaseline:"middle",translation:[r,a]})}}function Zf(e,t){const n=new Oa({ctx:e.ctx,options:t,chart:e});bt.configure(e,n,t),bt.addBox(e,n),e.titleBlock=n}var Eg={id:"title",_element:Oa,start(e,t,n){Zf(e,n)},stop(e){const t=e.titleBlock;bt.removeBox(e,t),delete e.titleBlock},beforeUpdate(e,t,n){const i=e.titleBlock;bt.configure(e,i,n),i.options=n},defaults:{align:"center",display:!1,font:{weight:"bold"},fullSize:!0,padding:10,position:"top",text:"",weight:2e3},defaultRoutes:{color:"color"},descriptors:{_scriptable:!0,_indexable:!1}};const He={average(e){if(!e.length)return!1;let t,n,i=new Set,s=0,o=0;for(t=0,n=e.length;t<n;++t){const a=e[t].element;if(a&&a.hasValue()){const l=a.tooltipPosition();i.add(l.x),s+=l.y,++o}}return o===0||i.size===0?!1:{x:[...i].reduce((a,l)=>a+l)/i.size,y:s/o}},nearest(e,t){if(!e.length)return!1;let n=t.x,i=t.y,s=Number.POSITIVE_INFINITY,o,r,a;for(o=0,r=e.length;o<r;++o){const l=e[o].element;if(l&&l.hasValue()){const c=l.getCenterPoint(),h=Ci(t,c);h<s&&(s=h,a=l)}}if(a){const l=a.tooltipPosition();n=l.x,i=l.y}return{x:n,y:i}}};function kt(e,t){return t&&(J(t)?Array.prototype.push.apply(e,t):e.push(t)),e}function Rt(e){return(typeof e=="string"||e instanceof String)&&e.indexOf(` `)>-1?e.split(` -`):e}function Zf(e,t){const{element:n,datasetIndex:i,index:s}=t,o=e.getDatasetMeta(i).controller,{label:r,value:a}=o.getLabelAndValue(s);return{chart:e,label:r,parsed:o.getParsed(s),raw:e.data.datasets[i].data[s],formattedValue:a,dataset:o.getDataset(),dataIndex:s,datasetIndex:i,element:n}}function jo(e,t){const n=e.chart.ctx,{body:i,footer:s,title:o}=e,{boxWidth:r,boxHeight:a}=t,l=at(t.bodyFont),c=at(t.titleFont),h=at(t.footerFont),u=o.length,d=s.length,f=i.length,g=_t(t.padding);let m=g.height,p=0,b=i.reduce((_,y)=>_+y.before.length+y.lines.length+y.after.length,0);if(b+=e.beforeBody.length+e.afterBody.length,u&&(m+=u*c.lineHeight+(u-1)*t.titleSpacing+t.titleMarginBottom),b){const _=t.displayColors?Math.max(a,l.lineHeight):l.lineHeight;m+=f*_+(b-f)*l.lineHeight+(b-1)*t.bodySpacing}d&&(m+=t.footerMarginTop+d*h.lineHeight+(d-1)*t.footerSpacing);let x=0;const v=function(_){p=Math.max(p,n.measureText(_).width+x)};return n.save(),n.font=c.string,V(e.title,v),n.font=l.string,V(e.beforeBody.concat(e.afterBody),v),x=t.displayColors?r+2+t.boxPadding:0,V(i,_=>{V(_.before,v),V(_.lines,v),V(_.after,v)}),x=0,n.font=h.string,V(e.footer,v),n.restore(),p+=g.width,{width:p,height:m}}function Qf(e,t){const{y:n,height:i}=t;return n<i/2?"top":n>e.height-i/2?"bottom":"center"}function tp(e,t,n,i){const{x:s,width:o}=i,r=n.caretSize+n.caretPadding;if(e==="left"&&s+o+r>t.width||e==="right"&&s-o-r<0)return!0}function ep(e,t,n,i){const{x:s,width:o}=n,{width:r,chartArea:{left:a,right:l}}=e;let c="center";return i==="center"?c=s<=(a+l)/2?"left":"right":s<=o/2?c="left":s>=r-o/2&&(c="right"),tp(c,e,t,n)&&(c="center"),c}function $o(e,t,n){const i=n.yAlign||t.yAlign||Qf(e,n);return{xAlign:n.xAlign||t.xAlign||ep(e,t,n,i),yAlign:i}}function np(e,t){let{x:n,width:i}=e;return t==="right"?n-=i:t==="center"&&(n-=i/2),n}function ip(e,t,n){let{y:i,height:s}=e;return t==="top"?i+=n:t==="bottom"?i-=s+n:i-=s/2,i}function zo(e,t,n,i){const{caretSize:s,caretPadding:o,cornerRadius:r}=e,{xAlign:a,yAlign:l}=n,c=s+o,{topLeft:h,topRight:u,bottomLeft:d,bottomRight:f}=_e(r);let g=np(t,a);const m=ip(t,l,c);return l==="center"?a==="left"?g+=c:a==="right"&&(g-=c):a==="left"?g-=Math.max(h,d)+s:a==="right"&&(g+=Math.max(u,f)+s),{x:rt(g,0,i.width-t.width),y:rt(m,0,i.height-t.height)}}function Dn(e,t,n){const i=_t(n.padding);return t==="center"?e.x+e.width/2:t==="right"?e.x+e.width-i.right:e.x+i.left}function No(e){return kt([],Rt(e))}function sp(e,t,n){return pe(e,{tooltip:t,tooltipItems:n,type:"tooltip"})}function Bo(e,t){const n=t&&t.dataset&&t.dataset.tooltip&&t.dataset.tooltip.callbacks;return n?e.override(n):e}const Oa={beforeTitle:At,title(e){if(e.length>0){const t=e[0],n=t.chart.data.labels,i=n?n.length:0;if(this&&this.options&&this.options.mode==="dataset")return t.dataset.label||"";if(t.label)return t.label;if(i>0&&t.dataIndex<i)return n[t.dataIndex]}return""},afterTitle:At,beforeBody:At,beforeLabel:At,label(e){if(this&&this.options&&this.options.mode==="dataset")return e.label+": "+e.formattedValue||e.formattedValue;let t=e.dataset.label||"";t&&(t+=": ");const n=e.formattedValue;return B(n)||(t+=n),t},labelColor(e){const n=e.chart.getDatasetMeta(e.datasetIndex).controller.getStyle(e.dataIndex);return{borderColor:n.borderColor,backgroundColor:n.backgroundColor,borderWidth:n.borderWidth,borderDash:n.borderDash,borderDashOffset:n.borderDashOffset,borderRadius:0}},labelTextColor(){return this.options.bodyColor},labelPointStyle(e){const n=e.chart.getDatasetMeta(e.datasetIndex).controller.getStyle(e.dataIndex);return{pointStyle:n.pointStyle,rotation:n.rotation}},afterLabel:At,afterBody:At,beforeFooter:At,footer:At,afterFooter:At};function ct(e,t,n,i){const s=e[t].call(n,i);return typeof s>"u"?Oa[t].call(n,i):s}class Ai extends jt{constructor(t){super(),this.opacity=0,this._active=[],this._eventPosition=void 0,this._size=void 0,this._cachedAnimations=void 0,this._tooltipItems=[],this.$animations=void 0,this.$context=void 0,this.chart=t.chart,this.options=t.options,this.dataPoints=void 0,this.title=void 0,this.beforeBody=void 0,this.body=void 0,this.afterBody=void 0,this.footer=void 0,this.xAlign=void 0,this.yAlign=void 0,this.x=void 0,this.y=void 0,this.height=void 0,this.width=void 0,this.caretX=void 0,this.caretY=void 0,this.labelColors=void 0,this.labelPointStyles=void 0,this.labelTextColors=void 0}initialize(t){this.options=t,this._cachedAnimations=void 0,this.$context=void 0}_resolveAnimations(){const t=this._cachedAnimations;if(t)return t;const n=this.chart,i=this.options.setContext(this.getContext()),s=i.enabled&&n.options.animation&&i.animations,o=new ua(this.chart,s);return s._cacheable&&(this._cachedAnimations=Object.freeze(o)),o}getContext(){return this.$context||(this.$context=sp(this.chart.getContext(),this,this._tooltipItems))}getTitle(t,n){const{callbacks:i}=n,s=ct(i,"beforeTitle",this,t),o=ct(i,"title",this,t),r=ct(i,"afterTitle",this,t);let a=[];return a=kt(a,Rt(s)),a=kt(a,Rt(o)),a=kt(a,Rt(r)),a}getBeforeBody(t,n){return No(ct(n.callbacks,"beforeBody",this,t))}getBody(t,n){const{callbacks:i}=n,s=[];return V(t,o=>{const r={before:[],lines:[],after:[]},a=Bo(i,o);kt(r.before,Rt(ct(a,"beforeLabel",this,o))),kt(r.lines,ct(a,"label",this,o)),kt(r.after,Rt(ct(a,"afterLabel",this,o))),s.push(r)}),s}getAfterBody(t,n){return No(ct(n.callbacks,"afterBody",this,t))}getFooter(t,n){const{callbacks:i}=n,s=ct(i,"beforeFooter",this,t),o=ct(i,"footer",this,t),r=ct(i,"afterFooter",this,t);let a=[];return a=kt(a,Rt(s)),a=kt(a,Rt(o)),a=kt(a,Rt(r)),a}_createItems(t){const n=this._active,i=this.chart.data,s=[],o=[],r=[];let a=[],l,c;for(l=0,c=n.length;l<c;++l)a.push(Zf(this.chart,n[l]));return t.filter&&(a=a.filter((h,u,d)=>t.filter(h,u,d,i))),t.itemSort&&(a=a.sort((h,u)=>t.itemSort(h,u,i))),V(a,h=>{const u=Bo(t.callbacks,h);s.push(ct(u,"labelColor",this,h)),o.push(ct(u,"labelPointStyle",this,h)),r.push(ct(u,"labelTextColor",this,h))}),this.labelColors=s,this.labelPointStyles=o,this.labelTextColors=r,this.dataPoints=a,a}update(t,n){const i=this.options.setContext(this.getContext()),s=this._active;let o,r=[];if(!s.length)this.opacity!==0&&(o={opacity:0});else{const a=He[i.position].call(this,s,this._eventPosition);r=this._createItems(i),this.title=this.getTitle(r,i),this.beforeBody=this.getBeforeBody(r,i),this.body=this.getBody(r,i),this.afterBody=this.getAfterBody(r,i),this.footer=this.getFooter(r,i);const l=this._size=jo(this,i),c=Object.assign({},a,l),h=$o(this.chart,i,c),u=zo(i,c,h,this.chart);this.xAlign=h.xAlign,this.yAlign=h.yAlign,o={opacity:1,x:u.x,y:u.y,width:l.width,height:l.height,caretX:a.x,caretY:a.y}}this._tooltipItems=r,this.$context=void 0,o&&this._resolveAnimations().update(this,o),t&&i.external&&i.external.call(this,{chart:this.chart,tooltip:this,replay:n})}drawCaret(t,n,i,s){const o=this.getCaretPosition(t,i,s);n.lineTo(o.x1,o.y1),n.lineTo(o.x2,o.y2),n.lineTo(o.x3,o.y3)}getCaretPosition(t,n,i){const{xAlign:s,yAlign:o}=this,{caretSize:r,cornerRadius:a}=i,{topLeft:l,topRight:c,bottomLeft:h,bottomRight:u}=_e(a),{x:d,y:f}=t,{width:g,height:m}=n;let p,b,x,v,_,y;return o==="center"?(_=f+m/2,s==="left"?(p=d,b=p-r,v=_+r,y=_-r):(p=d+g,b=p+r,v=_-r,y=_+r),x=p):(s==="left"?b=d+Math.max(l,h)+r:s==="right"?b=d+g-Math.max(c,u)-r:b=this.caretX,o==="top"?(v=f,_=v-r,p=b-r,x=b+r):(v=f+m,_=v+r,p=b+r,x=b-r),y=v),{x1:p,x2:b,x3:x,y1:v,y2:_,y3:y}}drawTitle(t,n,i){const s=this.title,o=s.length;let r,a,l;if(o){const c=we(i.rtl,this.x,this.width);for(t.x=Dn(this,i.titleAlign,i),n.textAlign=c.textAlign(i.titleAlign),n.textBaseline="middle",r=at(i.titleFont),a=i.titleSpacing,n.fillStyle=i.titleColor,n.font=r.string,l=0;l<o;++l)n.fillText(s[l],c.x(t.x),t.y+r.lineHeight/2),t.y+=r.lineHeight+a,l+1===o&&(t.y+=i.titleMarginBottom-a)}}_drawColorBox(t,n,i,s,o){const r=this.labelColors[i],a=this.labelPointStyles[i],{boxHeight:l,boxWidth:c}=o,h=at(o.bodyFont),u=Dn(this,"left",o),d=s.x(u),f=l<h.lineHeight?(h.lineHeight-l)/2:0,g=n.y+f;if(o.usePointStyle){const m={radius:Math.min(c,l)/2,pointStyle:a.pointStyle,rotation:a.rotation,borderWidth:1},p=s.leftForLtr(d,c)+c/2,b=g+l/2;t.strokeStyle=o.multiKeyBackground,t.fillStyle=o.multiKeyBackground,Pi(t,m,p,b),t.strokeStyle=r.borderColor,t.fillStyle=r.backgroundColor,Pi(t,m,p,b)}else{t.lineWidth=z(r.borderWidth)?Math.max(...Object.values(r.borderWidth)):r.borderWidth||1,t.strokeStyle=r.borderColor,t.setLineDash(r.borderDash||[]),t.lineDashOffset=r.borderDashOffset||0;const m=s.leftForLtr(d,c),p=s.leftForLtr(s.xPlus(d,1),c-2),b=_e(r.borderRadius);Object.values(b).some(x=>x!==0)?(t.beginPath(),t.fillStyle=o.multiKeyBackground,zn(t,{x:m,y:g,w:c,h:l,radius:b}),t.fill(),t.stroke(),t.fillStyle=r.backgroundColor,t.beginPath(),zn(t,{x:p,y:g+1,w:c-2,h:l-2,radius:b}),t.fill()):(t.fillStyle=o.multiKeyBackground,t.fillRect(m,g,c,l),t.strokeRect(m,g,c,l),t.fillStyle=r.backgroundColor,t.fillRect(p,g+1,c-2,l-2))}t.fillStyle=this.labelTextColors[i]}drawBody(t,n,i){const{body:s}=this,{bodySpacing:o,bodyAlign:r,displayColors:a,boxHeight:l,boxWidth:c,boxPadding:h}=i,u=at(i.bodyFont);let d=u.lineHeight,f=0;const g=we(i.rtl,this.x,this.width),m=function(S){n.fillText(S,g.x(t.x+f),t.y+d/2),t.y+=d+o},p=g.textAlign(r);let b,x,v,_,y,w,k;for(n.textAlign=r,n.textBaseline="middle",n.font=u.string,t.x=Dn(this,p,i),n.fillStyle=i.bodyColor,V(this.beforeBody,m),f=a&&p!=="right"?r==="center"?c/2+h:c+2+h:0,_=0,w=s.length;_<w;++_){for(b=s[_],x=this.labelTextColors[_],n.fillStyle=x,V(b.before,m),v=b.lines,a&&v.length&&(this._drawColorBox(n,t,_,g,i),d=Math.max(u.lineHeight,l)),y=0,k=v.length;y<k;++y)m(v[y]),d=u.lineHeight;V(b.after,m)}f=0,d=u.lineHeight,V(this.afterBody,m),t.y-=o}drawFooter(t,n,i){const s=this.footer,o=s.length;let r,a;if(o){const l=we(i.rtl,this.x,this.width);for(t.x=Dn(this,i.footerAlign,i),t.y+=i.footerMarginTop,n.textAlign=l.textAlign(i.footerAlign),n.textBaseline="middle",r=at(i.footerFont),n.fillStyle=i.footerColor,n.font=r.string,a=0;a<o;++a)n.fillText(s[a],l.x(t.x),t.y+r.lineHeight/2),t.y+=r.lineHeight+i.footerSpacing}}drawBackground(t,n,i,s){const{xAlign:o,yAlign:r}=this,{x:a,y:l}=t,{width:c,height:h}=i,{topLeft:u,topRight:d,bottomLeft:f,bottomRight:g}=_e(s.cornerRadius);n.fillStyle=s.backgroundColor,n.strokeStyle=s.borderColor,n.lineWidth=s.borderWidth,n.beginPath(),n.moveTo(a+u,l),r==="top"&&this.drawCaret(t,n,i,s),n.lineTo(a+c-d,l),n.quadraticCurveTo(a+c,l,a+c,l+d),r==="center"&&o==="right"&&this.drawCaret(t,n,i,s),n.lineTo(a+c,l+h-g),n.quadraticCurveTo(a+c,l+h,a+c-g,l+h),r==="bottom"&&this.drawCaret(t,n,i,s),n.lineTo(a+f,l+h),n.quadraticCurveTo(a,l+h,a,l+h-f),r==="center"&&o==="left"&&this.drawCaret(t,n,i,s),n.lineTo(a,l+u),n.quadraticCurveTo(a,l,a+u,l),n.closePath(),n.fill(),s.borderWidth>0&&n.stroke()}_updateAnimationTarget(t){const n=this.chart,i=this.$animations,s=i&&i.x,o=i&&i.y;if(s||o){const r=He[t.position].call(this,this._active,this._eventPosition);if(!r)return;const a=this._size=jo(this,t),l=Object.assign({},r,this._size),c=$o(n,t,l),h=zo(t,l,c,n);(s._to!==h.x||o._to!==h.y)&&(this.xAlign=c.xAlign,this.yAlign=c.yAlign,this.width=a.width,this.height=a.height,this.caretX=r.x,this.caretY=r.y,this._resolveAnimations().update(this,h))}}_willRender(){return!!this.opacity}draw(t){const n=this.options.setContext(this.getContext());let i=this.opacity;if(!i)return;this._updateAnimationTarget(n);const s={width:this.width,height:this.height},o={x:this.x,y:this.y};i=Math.abs(i)<.001?0:i;const r=_t(n.padding),a=this.title.length||this.beforeBody.length||this.body.length||this.afterBody.length||this.footer.length;n.enabled&&a&&(t.save(),t.globalAlpha=i,this.drawBackground(o,t,s,n),la(t,n.textDirection),o.y+=r.top,this.drawTitle(o,t,n),this.drawBody(o,t,n),this.drawFooter(o,t,n),ca(t,n.textDirection),t.restore())}getActiveElements(){return this._active||[]}setActiveElements(t,n){const i=this._active,s=t.map(({datasetIndex:a,index:l})=>{const c=this.chart.getDatasetMeta(a);if(!c)throw new Error("Cannot find a dataset at index "+a);return{datasetIndex:a,element:c.data[l],index:l}}),o=!In(i,s),r=this._positionChanged(s,n);(o||r)&&(this._active=s,this._eventPosition=n,this._ignoreReplayEvents=!0,this.update(!0))}handleEvent(t,n,i=!0){if(n&&this._ignoreReplayEvents)return!1;this._ignoreReplayEvents=!1;const s=this.options,o=this._active||[],r=this._getActiveElements(t,o,n,i),a=this._positionChanged(r,t),l=n||!In(r,o)||a;return l&&(this._active=r,(s.enabled||s.external)&&(this._eventPosition={x:t.x,y:t.y},this.update(!0,n))),l}_getActiveElements(t,n,i,s){const o=this.options;if(t.type==="mouseout")return[];if(!s)return n.filter(a=>this.chart.data.datasets[a.datasetIndex]&&this.chart.getDatasetMeta(a.datasetIndex).controller.getParsed(a.index)!==void 0);const r=this.chart.getElementsAtEventForMode(t,o.mode,o,i);return o.reverse&&r.reverse(),r}_positionChanged(t,n){const{caretX:i,caretY:s,options:o}=this,r=He[o.position].call(this,t,n);return r!==!1&&(i!==r.x||s!==r.y)}}R(Ai,"positioners",He);var Ag={id:"tooltip",_element:Ai,positioners:He,afterInit(e,t,n){n&&(e.tooltip=new Ai({chart:e,options:n}))},beforeUpdate(e,t,n){e.tooltip&&e.tooltip.initialize(n)},reset(e,t,n){e.tooltip&&e.tooltip.initialize(n)},afterDraw(e){const t=e.tooltip;if(t&&t._willRender()){const n={tooltip:t};if(e.notifyPlugins("beforeTooltipDraw",{...n,cancelable:!0})===!1)return;t.draw(e.ctx),e.notifyPlugins("afterTooltipDraw",n)}},afterEvent(e,t){if(e.tooltip){const n=t.replay;e.tooltip.handleEvent(t.event,n,t.inChartArea)&&(t.changed=!0)}},defaults:{enabled:!0,external:null,position:"average",backgroundColor:"rgba(0,0,0,0.8)",titleColor:"#fff",titleFont:{weight:"bold"},titleSpacing:2,titleMarginBottom:6,titleAlign:"left",bodyColor:"#fff",bodySpacing:2,bodyFont:{},bodyAlign:"left",footerColor:"#fff",footerSpacing:2,footerMarginTop:6,footerFont:{weight:"bold"},footerAlign:"left",padding:6,caretPadding:2,caretSize:5,cornerRadius:6,boxHeight:(e,t)=>t.bodyFont.size,boxWidth:(e,t)=>t.bodyFont.size,multiKeyBackground:"#fff",displayColors:!0,boxPadding:0,borderColor:"rgba(0,0,0,0)",borderWidth:0,animation:{duration:400,easing:"easeOutQuart"},animations:{numbers:{type:"number",properties:["x","y","width","height","caretX","caretY"]},opacity:{easing:"linear",duration:200}},callbacks:Oa},defaultRoutes:{bodyFont:"font",footerFont:"font",titleFont:"font"},descriptors:{_scriptable:e=>e!=="filter"&&e!=="itemSort"&&e!=="external",_indexable:!1,callbacks:{_scriptable:!1,_indexable:!1},animation:{_fallback:!1},animations:{_fallback:"animation"}},additionalOptionScopes:["interaction"]};const op=(e,t,n,i)=>(typeof t=="string"?(n=e.push(t)-1,i.unshift({index:n,label:t})):isNaN(t)&&(n=null),n);function rp(e,t,n,i){const s=e.indexOf(t);if(s===-1)return op(e,t,n,i);const o=e.lastIndexOf(t);return s!==o?n:s}const ap=(e,t)=>e===null?null:rt(Math.round(e),0,t);function Ho(e){const t=this.getLabels();return e>=0&&e<t.length?t[e]:e}class Wo extends Ae{constructor(t){super(t),this._startValue=void 0,this._valueRange=0,this._addedLabels=[]}init(t){const n=this._addedLabels;if(n.length){const i=this.getLabels();for(const{index:s,label:o}of n)i[s]===o&&i.splice(s,1);this._addedLabels=[]}super.init(t)}parse(t,n){if(B(t))return null;const i=this.getLabels();return n=isFinite(n)&&i[n]===t?n:rp(i,t,j(n,t),this._addedLabels),ap(n,i.length-1)}determineDataLimits(){const{minDefined:t,maxDefined:n}=this.getUserBounds();let{min:i,max:s}=this.getMinMax(!0);this.options.bounds==="ticks"&&(t||(i=0),n||(s=this.getLabels().length-1)),this.min=i,this.max=s}buildTicks(){const t=this.min,n=this.max,i=this.options.offset,s=[];let o=this.getLabels();o=t===0&&n===o.length-1?o:o.slice(t,n+1),this._valueRange=Math.max(o.length-(i?0:1),1),this._startValue=this.min-(i?.5:0);for(let r=t;r<=n;r++)s.push({value:r});return s}getLabelForValue(t){return Ho.call(this,t)}configure(){super.configure(),this.isHorizontal()||(this._reversePixels=!this._reversePixels)}getPixelForValue(t){return typeof t!="number"&&(t=this.parse(t)),t===null?NaN:this.getPixelForDecimal((t-this._startValue)/this._valueRange)}getPixelForTick(t){const n=this.ticks;return t<0||t>n.length-1?null:this.getPixelForValue(n[t].value)}getValueForPixel(t){return Math.round(this._startValue+this.getDecimalForPixel(t)*this._valueRange)}getBasePixel(){return this.bottom}}R(Wo,"id","category"),R(Wo,"defaults",{ticks:{callback:Ho}});function lp(e,t){const n=[],{bounds:s,step:o,min:r,max:a,precision:l,count:c,maxTicks:h,maxDigits:u,includeBounds:d}=e,f=o||1,g=h-1,{min:m,max:p}=t,b=!B(r),x=!B(a),v=!B(c),_=(p-m)/(u+1);let y=Ws((p-m)/g/f)*f,w,k,S,C;if(y<1e-14&&!b&&!x)return[{value:m},{value:p}];C=Math.ceil(p/y)-Math.floor(m/y),C>g&&(y=Ws(C*y/g/f)*f),B(l)||(w=Math.pow(10,l),y=Math.ceil(y*w)/w),s==="ticks"?(k=Math.floor(m/y)*y,S=Math.ceil(p/y)*y):(k=m,S=p),b&&x&&o&&Lh((a-r)/o,y/1e3)?(C=Math.round(Math.min((a-r)/y,h)),y=(a-r)/C,k=r,S=a):v?(k=b?r:k,S=x?a:S,C=c-1,y=(S-k)/C):(C=(S-k)/y,Xe(C,Math.round(C),y/1e3)?C=Math.round(C):C=Math.ceil(C));const D=Math.max(Vs(y),Vs(k));w=Math.pow(10,B(l)?D:l),k=Math.round(k*w)/w,S=Math.round(S*w)/w;let P=0;for(b&&(d&&k!==r?(n.push({value:r}),k<r&&P++,Xe(Math.round((k+P*y)*w)/w,r,Vo(r,_,e))&&P++):k<r&&P++);P<C;++P){const O=Math.round((k+P*y)*w)/w;if(x&&O>a)break;n.push({value:O})}return x&&d&&S!==a?n.length&&Xe(n[n.length-1].value,a,Vo(a,_,e))?n[n.length-1].value=a:n.push({value:a}):(!x||S===a)&&n.push({value:S}),n}function Vo(e,t,{horizontal:n,minRotation:i}){const s=ae(i),o=(n?Math.sin(s):Math.cos(s))||.001,r=.75*t*(""+e).length;return Math.min(t/o,r)}class cp extends Ae{constructor(t){super(t),this.start=void 0,this.end=void 0,this._startValue=void 0,this._endValue=void 0,this._valueRange=0}parse(t,n){return B(t)||(typeof t=="number"||t instanceof Number)&&!isFinite(+t)?null:+t}handleTickRangeOptions(){const{beginAtZero:t}=this.options,{minDefined:n,maxDefined:i}=this.getUserBounds();let{min:s,max:o}=this;const r=l=>s=n?s:l,a=l=>o=i?o:l;if(t){const l=Dt(s),c=Dt(o);l<0&&c<0?a(0):l>0&&c>0&&r(0)}if(s===o){let l=o===0?1:Math.abs(o*.05);a(o+l),t||r(s-l)}this.min=s,this.max=o}getTickLimit(){const t=this.options.ticks;let{maxTicksLimit:n,stepSize:i}=t,s;return i?(s=Math.ceil(this.max/i)-Math.floor(this.min/i)+1,s>1e3&&(console.warn(`scales.${this.id}.ticks.stepSize: ${i} would result generating up to ${s} ticks. Limiting to 1000.`),s=1e3)):(s=this.computeTickLimit(),n=n||11),n&&(s=Math.min(n,s)),s}computeTickLimit(){return Number.POSITIVE_INFINITY}buildTicks(){const t=this.options,n=t.ticks;let i=this.getTickLimit();i=Math.max(2,i);const s={maxTicks:i,bounds:t.bounds,min:t.min,max:t.max,precision:n.precision,step:n.stepSize,count:n.count,maxDigits:this._maxDigits(),horizontal:this.isHorizontal(),minRotation:n.minRotation||0,includeBounds:n.includeBounds!==!1},o=this._range||this,r=lp(s,o);return t.bounds==="ticks"&&Fh(r,this,"value"),t.reverse?(r.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),r}configure(){const t=this.ticks;let n=this.min,i=this.max;if(super.configure(),this.options.offset&&t.length){const s=(i-n)/Math.max(t.length-1,1)/2;n-=s,i+=s}this._startValue=n,this._endValue=i,this._valueRange=i-n}getLabelForValue(t){return Zr(t,this.chart.options.locale,this.options.ticks.format)}}class Yo extends cp{determineDataLimits(){const{min:t,max:n}=this.getMinMax(!0);this.min=vt(t)?t:0,this.max=vt(n)?n:1,this.handleTickRangeOptions()}computeTickLimit(){const t=this.isHorizontal(),n=t?this.width:this.height,i=ae(this.options.ticks.minRotation),s=(t?Math.sin(i):Math.cos(i))||.001,o=this._resolveTickFontOptions(0);return Math.ceil(n/Math.min(40,o.lineHeight/s))}getPixelForValue(t){return t===null?NaN:this.getPixelForDecimal((t-this._startValue)/this._valueRange)}getValueForPixel(t){return this._startValue+this.getDecimalForPixel(t)*this._valueRange}}R(Yo,"id","linear"),R(Yo,"defaults",{ticks:{callback:ta.formatters.numeric}});const Kn={millisecond:{common:!0,size:1,steps:1e3},second:{common:!0,size:1e3,steps:60},minute:{common:!0,size:6e4,steps:60},hour:{common:!0,size:36e5,steps:24},day:{common:!0,size:864e5,steps:30},week:{common:!1,size:6048e5,steps:4},month:{common:!0,size:2628e6,steps:12},quarter:{common:!1,size:7884e6,steps:4},year:{common:!0,size:3154e7}},ht=Object.keys(Kn);function Uo(e,t){return e-t}function Xo(e,t){if(B(t))return null;const n=e._adapter,{parser:i,round:s,isoWeekday:o}=e._parseOpts;let r=t;return typeof i=="function"&&(r=i(r)),vt(r)||(r=typeof i=="string"?n.parse(r,i):n.parse(r)),r===null?null:(s&&(r=s==="week"&&(en(o)||o===!0)?n.startOf(r,"isoWeek",o):n.startOf(r,s)),+r)}function qo(e,t,n,i){const s=ht.length;for(let o=ht.indexOf(e);o<s-1;++o){const r=Kn[ht[o]],a=r.steps?r.steps:Number.MAX_SAFE_INTEGER;if(r.common&&Math.ceil((n-t)/(a*r.size))<=i)return ht[o]}return ht[s-1]}function hp(e,t,n,i,s){for(let o=ht.length-1;o>=ht.indexOf(n);o--){const r=ht[o];if(Kn[r].common&&e._adapter.diff(s,i,r)>=t-1)return r}return ht[n?ht.indexOf(n):0]}function up(e){for(let t=ht.indexOf(e)+1,n=ht.length;t<n;++t)if(Kn[ht[t]].common)return ht[t]}function Ko(e,t,n){if(!n)e[t]=!0;else if(n.length){const{lo:i,hi:s}=qi(n,t),o=n[i]>=t?n[i]:n[s];e[o]=!0}}function dp(e,t,n,i){const s=e._adapter,o=+s.startOf(t[0].value,i),r=t[t.length-1].value;let a,l;for(a=o;a<=r;a=+s.add(a,1,i))l=n[a],l>=0&&(t[l].major=!0);return t}function Go(e,t,n){const i=[],s={},o=t.length;let r,a;for(r=0;r<o;++r)a=t[r],s[a]=r,i.push({value:a,major:!1});return o===0||!n?i:dp(e,i,s,n)}class Wn extends Ae{constructor(t){super(t),this._cache={data:[],labels:[],all:[]},this._unit="day",this._majorUnit=void 0,this._offsets={},this._normalized=!1,this._parseOpts=void 0}init(t,n={}){const i=t.time||(t.time={}),s=this._adapter=new md._date(t.adapters.date);s.init(n),Ue(i.displayFormats,s.formats()),this._parseOpts={parser:i.parser,round:i.round,isoWeekday:i.isoWeekday},super.init(t),this._normalized=n.normalized}parse(t,n){return t===void 0?null:Xo(this,t)}beforeLayout(){super.beforeLayout(),this._cache={data:[],labels:[],all:[]}}determineDataLimits(){const t=this.options,n=this._adapter,i=t.time.unit||"day";let{min:s,max:o,minDefined:r,maxDefined:a}=this.getUserBounds();function l(c){!r&&!isNaN(c.min)&&(s=Math.min(s,c.min)),!a&&!isNaN(c.max)&&(o=Math.max(o,c.max))}(!r||!a)&&(l(this._getLabelBounds()),(t.bounds!=="ticks"||t.ticks.source!=="labels")&&l(this.getMinMax(!1))),s=vt(s)&&!isNaN(s)?s:+n.startOf(Date.now(),i),o=vt(o)&&!isNaN(o)?o:+n.endOf(Date.now(),i)+1,this.min=Math.min(s,o-1),this.max=Math.max(s+1,o)}_getLabelBounds(){const t=this.getLabelTimestamps();let n=Number.POSITIVE_INFINITY,i=Number.NEGATIVE_INFINITY;return t.length&&(n=t[0],i=t[t.length-1]),{min:n,max:i}}buildTicks(){const t=this.options,n=t.time,i=t.ticks,s=i.source==="labels"?this.getLabelTimestamps():this._generate();t.bounds==="ticks"&&s.length&&(this.min=this._userMin||s[0],this.max=this._userMax||s[s.length-1]);const o=this.min,r=this.max,a=Nh(s,o,r);return this._unit=n.unit||(i.autoSkip?qo(n.minUnit,this.min,this.max,this._getLabelCapacity(o)):hp(this,a.length,n.minUnit,this.min,this.max)),this._majorUnit=!i.major.enabled||this._unit==="year"?void 0:up(this._unit),this.initOffsets(s),t.reverse&&a.reverse(),Go(this,a,this._majorUnit)}afterAutoSkip(){this.options.offsetAfterAutoskip&&this.initOffsets(this.ticks.map(t=>+t.value))}initOffsets(t=[]){let n=0,i=0,s,o;this.options.offset&&t.length&&(s=this.getDecimalForValue(t[0]),t.length===1?n=1-s:n=(this.getDecimalForValue(t[1])-s)/2,o=this.getDecimalForValue(t[t.length-1]),t.length===1?i=o:i=(o-this.getDecimalForValue(t[t.length-2]))/2);const r=t.length<3?.5:.25;n=rt(n,0,r),i=rt(i,0,r),this._offsets={start:n,end:i,factor:1/(n+1+i)}}_generate(){const t=this._adapter,n=this.min,i=this.max,s=this.options,o=s.time,r=o.unit||qo(o.minUnit,n,i,this._getLabelCapacity(n)),a=j(s.ticks.stepSize,1),l=r==="week"?o.isoWeekday:!1,c=en(l)||l===!0,h={};let u=n,d,f;if(c&&(u=+t.startOf(u,"isoWeek",l)),u=+t.startOf(u,c?"day":r),t.diff(i,n,r)>1e5*a)throw new Error(n+" and "+i+" are too far apart with stepSize of "+a+" "+r);const g=s.ticks.source==="data"&&this.getDataTimestamps();for(d=u,f=0;d<i;d=+t.add(d,a,r),f++)Ko(h,d,g);return(d===i||s.bounds==="ticks"||f===1)&&Ko(h,d,g),Object.keys(h).sort(Uo).map(m=>+m)}getLabelForValue(t){const n=this._adapter,i=this.options.time;return i.tooltipFormat?n.format(t,i.tooltipFormat):n.format(t,i.displayFormats.datetime)}format(t,n){const s=this.options.time.displayFormats,o=this._unit,r=n||s[o];return this._adapter.format(t,r)}_tickFormatFunction(t,n,i,s){const o=this.options,r=o.ticks.callback;if(r)return Y(r,[t,n,i],this);const a=o.time.displayFormats,l=this._unit,c=this._majorUnit,h=l&&a[l],u=c&&a[c],d=i[n],f=c&&u&&d&&d.major;return this._adapter.format(t,s||(f?u:h))}generateTickLabels(t){let n,i,s;for(n=0,i=t.length;n<i;++n)s=t[n],s.label=this._tickFormatFunction(s.value,n,t)}getDecimalForValue(t){return t===null?NaN:(t-this.min)/(this.max-this.min)}getPixelForValue(t){const n=this._offsets,i=this.getDecimalForValue(t);return this.getPixelForDecimal((n.start+i)*n.factor)}getValueForPixel(t){const n=this._offsets,i=this.getDecimalForPixel(t)/n.factor-n.end;return this.min+i*(this.max-this.min)}_getLabelSize(t){const n=this.options.ticks,i=this.ctx.measureText(t).width,s=ae(this.isHorizontal()?n.maxRotation:n.minRotation),o=Math.cos(s),r=Math.sin(s),a=this._resolveTickFontOptions(0).size;return{w:i*o+a*r,h:i*r+a*o}}_getLabelCapacity(t){const n=this.options.time,i=n.displayFormats,s=i[n.unit]||i.millisecond,o=this._tickFormatFunction(t,0,Go(this,[t],this._majorUnit),s),r=this._getLabelSize(o),a=Math.floor(this.isHorizontal()?this.width/r.w:this.height/r.h)-1;return a>0?a:1}getDataTimestamps(){let t=this._cache.data||[],n,i;if(t.length)return t;const s=this.getMatchingVisibleMetas();if(this._normalized&&s.length)return this._cache.data=s[0].controller.getAllParsedValues(this);for(n=0,i=s.length;n<i;++n)t=t.concat(s[n].controller.getAllParsedValues(this));return this._cache.data=this.normalize(t)}getLabelTimestamps(){const t=this._cache.labels||[];let n,i;if(t.length)return t;const s=this.getLabels();for(n=0,i=s.length;n<i;++n)t.push(Xo(this,s[n]));return this._cache.labels=this._normalized?t:this.normalize(t)}normalize(t){return Kr(t.sort(Uo))}}R(Wn,"id","time"),R(Wn,"defaults",{bounds:"data",adapters:{},time:{parser:!1,unit:!1,round:!1,isoWeekday:!1,minUnit:"millisecond",displayFormats:{}},ticks:{source:"auto",callback:!1,major:{enabled:!1}}});function En(e,t,n){let i=0,s=e.length-1,o,r,a,l;n?(t>=e[i].pos&&t<=e[s].pos&&({lo:i,hi:s}=le(e,"pos",t)),{pos:o,time:a}=e[i],{pos:r,time:l}=e[s]):(t>=e[i].time&&t<=e[s].time&&({lo:i,hi:s}=le(e,"time",t)),{time:o,pos:a}=e[i],{time:r,pos:l}=e[s]);const c=r-o;return c?a+(l-a)*(t-o)/c:a}class Jo extends Wn{constructor(t){super(t),this._table=[],this._minPos=void 0,this._tableRange=void 0}initOffsets(){const t=this._getTimestampsForTable(),n=this._table=this.buildLookupTable(t);this._minPos=En(n,this.min),this._tableRange=En(n,this.max)-this._minPos,super.initOffsets(t)}buildLookupTable(t){const{min:n,max:i}=this,s=[],o=[];let r,a,l,c,h;for(r=0,a=t.length;r<a;++r)c=t[r],c>=n&&c<=i&&s.push(c);if(s.length<2)return[{time:n,pos:0},{time:i,pos:1}];for(r=0,a=s.length;r<a;++r)h=s[r+1],l=s[r-1],c=s[r],Math.round((h+l)/2)!==c&&o.push({time:c,pos:r/(a-1)});return o}_generate(){const t=this.min,n=this.max;let i=super.getDataTimestamps();return(!i.includes(t)||!i.length)&&i.splice(0,0,t),(!i.includes(n)||i.length===1)&&i.push(n),i.sort((s,o)=>s-o)}_getTimestampsForTable(){let t=this._cache.all||[];if(t.length)return t;const n=this.getDataTimestamps(),i=this.getLabelTimestamps();return n.length&&i.length?t=this.normalize(n.concat(i)):t=n.length?n:i,t=this._cache.all=t,t}getDecimalForValue(t){return(En(this._table,t)-this._minPos)/this._tableRange}getValueForPixel(t){const n=this._offsets,i=this.getDecimalForPixel(t)/n.factor-n.end;return En(this._table,i*this._tableRange+this._minPos,!0)}}R(Jo,"id","timeseries"),R(Jo,"defaults",Wn.defaults);var ie={},Zo;function fp(){if(Zo)return ie;Zo=1,Object.defineProperty(ie,"__esModule",{value:!0}),ie.cartesianProductGenerator=ie.cartesianProduct=void 0;function e(...i){if(!Array.isArray(i))throw new TypeError("Please, send an array.");const[s,o,...r]=i,a=n(s,o);return r.length?e(a,...r):a}ie.cartesianProduct=e;function*t(...i){if(!Array.isArray(i))throw new TypeError("Please, send an array.");const[s,o,...r]=i,a=n(s,o);yield a,r.length&&(yield*t(a,...r))}ie.cartesianProductGenerator=t;function n(i,s){const o=[];for(let r=0;r<i.length;r++){if(!s){o.push([i[r]]);continue}for(let a=0;a<s.length;a++)Array.isArray(i[r])?o.push([...i[r],s[a]]):o.push([i[r],s[a]])}return o}return ie}var rs=fp();const pp=function(e){let t=0;for(let i=0;i<e.length;i++)t=e.charCodeAt(i)+((t<<5)-t);let n="#";for(let i=0;i<3;i++){const o="00"+(t>>i*8&255).toString(16);n+=o.substring(o.length-2)}return n};function Tg(e,t=(n,i)=>{}){const n=new Map;for(const[i,s]of e){const o=new Map;for(const[r,a]of s){const l=new Map;for(const[c,h]of a){const u=t(r,h);if(u){l.set(c,{tooltip:u});continue}l.set(c,{})}o.set(r,l)}n.set(i,o)}return n}function Rg(e){const t=new Map;return e.forEach(n=>{const i=t.get(n.nren);(!i||i.year<n.year)&&t.set(n.nren,n)}),Array.from(t.values())}function Lg(e){return e.match(/^[a-zA-Z]+:\/\//)?e:"https://"+e}const Fg=e=>{const t={};return!e.urls&&!e.url||(e.urls&&e.urls.forEach(n=>{t[n]=n}),e.url&&(t[e.url]=e.url)),t};function Ig(e){const t=new Map;return e.forEach(n=>{let i=t.get(n.nren);i||(i=new Map);let s=i.get(n.year);s||(s=[]),s.push(n),i.set(n.year,s),t.set(n.nren,i)}),t}function Te(e){const t=new Map;return e.forEach(n=>{let i=t.get(n.nren);i||(i=new Map),i.set(n.year,n),t.set(n.nren,i)}),t}function jg(e,t){const n=new Map;return e.forEach((i,s)=>{const o=new Map;Array.from(i.keys()).sort((a,l)=>l-a).forEach(a=>{const l=i.get(a),c=o.get(a)||{};t(c,l),Object.keys(c).length>0&&o.set(a,c)}),n.set(s,o)}),n}function $g(e,t,n=!1){const i=new Map;return e.forEach(s=>{const o=a=>{let l=i.get(s.nren);l||(l=new Map);let c=l.get(a);c||(c=new Map),c.set(s.year,s),l.set(a,c),i.set(s.nren,l)};let r=s[t];typeof r=="boolean"&&(r=r?"True":"False"),n&&r==null&&(r=`${r}`),Array.isArray(r)?r.forEach(o):o(r)}),i}function zg(e,t,n,i=!0,s){const o=new Map,r=(a,l,c)=>{a.forEach(h=>{let u=l?h[l]:c;typeof u=="boolean"&&(u=u?"True":"False");const d=h.nren,f=h.year,g=o.get(d)||new Map,m=g.get(f)||new Map,p=m.get(u)||{},b=h[c];if(b==null)return;const x=i?b:c,v=p[x]||{};v[`${b}`]=b,p[x]=v,m.set(u,p),g.set(f,m),o.set(d,g)})};if(n)for(const a of t)r(e,n,a);else for(const a of t)r(e,void 0,a);return o}const Ng=e=>{function t(){const u=(f,g,m)=>"#"+[f,g,m].map(p=>{const b=p.toString(16);return b.length===1?"0"+b:b}).join(""),d=new Map;return d.set("client_institutions",u(157,40,114)),d.set("commercial",u(241,224,79)),d.set("european_funding",u(219,42,76)),d.set("gov_public_bodies",u(237,141,24)),d.set("other",u(137,166,121)),d}const n=Te(e),i=t(),s=[...new Set(e.map(u=>u.year))].sort(),o=[...new Set(e.map(u=>u.nren))].sort(),r={client_institutions:"Client Institutions",commercial:"Commercial",european_funding:"European Funding",gov_public_bodies:"Government/Public Bodies",other:"Other"},a=Object.keys(r),l=rs.cartesianProduct(Object.keys(r),s).reduce((u,[d,f])=>{const g=`${d},${f}`;return u[g]={},u},{});return n.forEach((u,d)=>{u.forEach((f,g)=>{const m=a.map(b=>f[b]||0);if(m.reduce((b,x)=>b+x,0)!==0)for(const b of a){const x=`${b},${g}`,v=a.indexOf(b);l[x][d]=m[v]}})}),{datasets:Array.from(Object.entries(l)).map(([u,d])=>{const[f,g]=u.split(",");return{backgroundColor:i.get(f)||"black",label:r[f]+" ("+g+")",data:o.map(p=>d[p]),stack:g,borderSkipped:!0,barPercentage:.8,borderWidth:.5,categoryPercentage:.8,hidden:!1,datalabels:{display:f==a[0],formatter:function(p,b){return b.dataset.stack},font:{family:'"Open Sans", sans-serif',size:16,weight:"700"},anchor:"start",align:"end",offset:function(p){return p.chart.chartArea.width}}}}),labels:o.map(u=>u.toString())}};function Bg(e,t){const n=[...new Set(e.map(r=>r.year))].sort(),i=[...new Set(e.map(r=>r.nren))].sort(),s=Te(e);return{datasets:i.map(r=>{const a=pp(r);return{backgroundColor:a,borderColor:a,data:n.map(l=>{const c=s.get(r);if(!c)return null;const h=c.get(l);return h?h[t]:null}),label:r,hidden:!1}}),labels:n.map(r=>r.toString())}}const Hg=(e,t,n)=>{let i;t?i=["Technical FTE","Non-technical FTE"]:i=["Permanent FTE","Subcontracted FTE"];const s={"Technical FTE":"technical_fte","Non-technical FTE":"non_technical_fte","Permanent FTE":"permanent_fte","Subcontracted FTE":"subcontracted_fte"},[o,r]=i,[a,l]=[s[o],s[r]];function c(p){const b=p[a],x=p[l],v=b+x,_=(b/v||0)*100,y=(x/v||0)*100,w={};return w[o]=Math.round(Math.floor(_*100))/100,w[r]=Math.round(Math.floor(y*100))/100,w}const h=Te(e),u=[n].sort(),d=[...new Set(e.map(p=>p.nren))].sort((p,b)=>p.localeCompare(b));return{datasets:rs.cartesianProduct(i,u).map(function([p,b]){let x="";return p==="Technical FTE"?x="rgba(40, 40, 250, 0.8)":p==="Permanent FTE"?x="rgba(159, 129, 235, 1)":p==="Subcontracted FTE"?x="rgba(173, 216, 229, 1)":p==="Non-technical FTE"&&(x="rgba(116, 216, 242, 0.54)"),{backgroundColor:x,label:`${p} (${b})`,data:d.map(v=>{const _=h.get(v).get(b);return _?c(_)[p]:0}),stack:b,borderRadius:10,borderSkipped:!0,barPercentage:.8,borderWidth:.5,categoryPercentage:.8,hidden:!1}}),labels:d}},Wg=(e,t)=>{const n=["Research & Education","Commodity"],i={"Research & Education":"r_and_e_percentage",Commodity:"commodity_percentage"},s=Te(e),o=[t].sort(),r=[...new Set(e.map(h=>h.nren))].sort((h,u)=>h.localeCompare(u));return{datasets:rs.cartesianProduct(n,o).map(function([h,u]){let d="";return h==="Research & Education"?d="rgba(40, 40, 250, 0.8)":h==="Commodity"&&(d="rgba(116, 216, 242, 0.54)"),{backgroundColor:d,label:`${h} (${u})`,data:r.map(f=>{const g=s.get(f).get(u);return g?g[i[h]]:0}),stack:u,borderRadius:10,borderSkipped:!0,barPercentage:.8,borderWidth:.5,categoryPercentage:.8,hidden:!1}}),labels:r}},Vg=(e,t)=>{const n=["Permanent FTE","Subcontracted FTE"],i={"Technical FTE":"technical_fte","Non-technical FTE":"non_technical_fte","Permanent FTE":"permanent_fte","Subcontracted FTE":"subcontracted_fte"},[s,o]=n,[r,a]=[i[s],i[o]],l=Te(e),c=[...new Set(e.map(f=>f.nren))].sort((f,g)=>f.localeCompare(g));function h(f,g){return{backgroundColor:"rgba(219, 42, 76, 1)",label:`Number of FTEs (${f})`,data:c.map(p=>{const b=l.get(p).get(f);return b?(b[r]??0)+(b[a]??0):0}),stack:`${f}`,borderRadius:10,borderSkipped:!0,barPercentage:.8,borderWidth:.5,categoryPercentage:.8,hidden:!1,datalabels:{display:!0,formatter:function(p,b){return b.dataset.stack},font:{family:'"Open Sans", sans-serif',size:16,weight:"700"},anchor:"start",align:"end",offset:function(p){return p.chart.chartArea.width}}}}return{datasets:t.sort().map(h),labels:c}},Yg=(e,t,n)=>{const i=Te(e),s=[...new Set(e.map(l=>l.nren))].sort((l,c)=>l.localeCompare(c)),o=[...new Set(e.map(l=>l.year))].sort();function r(l,c){return{backgroundColor:"rgba(219, 42, 76, 1)",label:`${n} (${l})`,data:s.map(u=>{const d=i.get(u).get(l);return d?d[t]??0:0}),stack:`${l}`,borderRadius:10,borderSkipped:!0,barPercentage:.8,borderWidth:.5,categoryPercentage:.8,hidden:!1,datalabels:{display:!0,formatter:function(u,d){return d.dataset.stack},font:{family:'"Open Sans", sans-serif',size:16,weight:"700"},anchor:"start",align:"end",offset:function(u){return u.chart.chartArea.width}}}}return{datasets:o.sort().map(r),labels:s}},gp=e=>{const t=wt.c(41),{activeCategory:n}=e,i=el();let s;t[0]!==n||t[1]!==i?(s=()=>i(n===G.Organisation?".":"/funding"),t[0]=n,t[1]=i,t[2]=s):s=t[2];const o=n===G.Organisation;let r;t[3]===Symbol.for("react.memo_cache_sentinel")?(r=M.jsx("span",{children:G.Organisation}),t[3]=r):r=t[3];let a;t[4]!==s||t[5]!==o?(a=M.jsx(Ft,{onClick:s,variant:"nav-box",active:o,children:r}),t[4]=s,t[5]=o,t[6]=a):a=t[6];let l;t[7]!==n||t[8]!==i?(l=()=>i(n===G.Policy?".":"/corporate-strategy"),t[7]=n,t[8]=i,t[9]=l):l=t[9];const c=n===G.Policy;let h;t[10]===Symbol.for("react.memo_cache_sentinel")?(h=M.jsx("span",{children:G.Policy}),t[10]=h):h=t[10];let u;t[11]!==l||t[12]!==c?(u=M.jsx(Ft,{onClick:l,variant:"nav-box",active:c,children:h}),t[11]=l,t[12]=c,t[13]=u):u=t[13];let d;t[14]!==n||t[15]!==i?(d=()=>i(n===G.ConnectedUsers?".":"/institutions-urls"),t[14]=n,t[15]=i,t[16]=d):d=t[16];const f=n===G.ConnectedUsers;let g;t[17]===Symbol.for("react.memo_cache_sentinel")?(g=M.jsx("span",{children:G.ConnectedUsers}),t[17]=g):g=t[17];let m;t[18]!==f||t[19]!==d?(m=M.jsx(Ft,{onClick:d,variant:"nav-box",active:f,children:g}),t[18]=f,t[19]=d,t[20]=m):m=t[20];let p;t[21]!==n||t[22]!==i?(p=()=>i(n===G.Network?".":"/dark-fibre-lease"),t[21]=n,t[22]=i,t[23]=p):p=t[23];const b=n===G.Network;let x;t[24]===Symbol.for("react.memo_cache_sentinel")?(x=M.jsx("span",{children:G.Network}),t[24]=x):x=t[24];let v;t[25]!==p||t[26]!==b?(v=M.jsx(Ft,{onClick:p,variant:"nav-box",active:b,children:x}),t[25]=p,t[26]=b,t[27]=v):v=t[27];let _;t[28]!==n||t[29]!==i?(_=()=>i(n===G.Services?".":"/network-services"),t[28]=n,t[29]=i,t[30]=_):_=t[30];const y=n===G.Services;let w;t[31]===Symbol.for("react.memo_cache_sentinel")?(w=M.jsx("span",{children:G.Services}),t[31]=w):w=t[31];let k;t[32]!==_||t[33]!==y?(k=M.jsx(Ft,{onClick:_,variant:"nav-box",active:y,children:w}),t[32]=_,t[33]=y,t[34]=k):k=t[34];let S;return t[35]!==m||t[36]!==v||t[37]!==k||t[38]!==a||t[39]!==u?(S=M.jsx(hr,{children:M.jsx(se,{children:M.jsxs(Ri,{className:"navbox-bar gap-2 m-3",children:[a,u,m,v,k]})})}),t[35]=m,t[36]=v,t[37]=k,t[38]=a,t[39]=u,t[40]=S):S=t[40],S},mp=()=>{const e=wt.c(1);let t;return e[0]===Symbol.for("react.memo_cache_sentinel")?(t=M.jsx(rn,{children:M.jsx(nl,{sidebar:!0})}),e[0]=t):t=e[0],t},bp=()=>{const e=wt.c(1);let t;return e[0]===Symbol.for("react.memo_cache_sentinel")?(t=M.jsx(rn,{children:M.jsx(il,{sidebar:!0})}),e[0]=t):t=e[0],t},xp=()=>{const e=wt.c(1);let t;return e[0]===Symbol.for("react.memo_cache_sentinel")?(t=M.jsx(rn,{children:M.jsx(sl,{sidebar:!0})}),e[0]=t):t=e[0],t},yp=()=>{const e=wt.c(1);let t;return e[0]===Symbol.for("react.memo_cache_sentinel")?(t=M.jsx(rn,{children:M.jsx(ol,{sidebar:!0})}),e[0]=t):t=e[0],t},vp=()=>{const e=wt.c(1);let t;return e[0]===Symbol.for("react.memo_cache_sentinel")?(t=M.jsx(rn,{children:M.jsx(rl,{sidebar:!0})}),e[0]=t):t=e[0],t};function _p(e,t){return e.map(n=>t.map(i=>{const s=n[i];return s===null?"":typeof s=="string"?`"${s.replace(/"/g,'""')}"`:s}).join(","))}function wp(e){if(!e.length)return"";const t=Object.keys(e[0]),n=_p(e,t);return[t.join(","),...n].join(`\r -`)}function Sp(e,t="Sheet1"){const n=Qn.json_to_sheet(e),i=Qn.book_new();Qn.book_append_sheet(i,n,t);const s=fl(i,{bookType:"xlsx",type:"binary"}),o=new ArrayBuffer(s.length),r=new Uint8Array(o);for(let a=0;a<s.length;a++)r[a]=s.charCodeAt(a)&255;return new Blob([o],{type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8"})}const Qo=({data:e,filename:t,exportType:n})=>{const i=()=>{let o,r,a;switch(n){case ve.EXCEL:{o=Sp(e),r="xlsx",a="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8";break}case ve.CSV:default:{o=wp(e),r="csv",a="text/csv;charset=UTF-8";break}}const l=new Blob([o],{type:a});t=t.endsWith(r)?t:`${t}.${r}`;const c=document.createElement("a");c.href=URL.createObjectURL(l),c.download=t,document.body.appendChild(c),c.click(),document.body.removeChild(c)};let s="downloadbutton";return n===ve.CSV?s+=" downloadcsv":n===ve.EXCEL&&(s+=" downloadexcel"),M.jsxs("button",{className:s,onClick:i,children:[n," ",M.jsx(fr,{})]})};function kp(e,t){if(e.match(/^[a-z]+:\/\//i))return e;if(e.match(/^\/\//))return window.location.protocol+e;if(e.match(/^[a-z]+:/i))return e;const n=document.implementation.createHTMLDocument(),i=n.createElement("base"),s=n.createElement("a");return n.head.appendChild(i),n.body.appendChild(s),t&&(i.href=t),s.href=e,s.href}const Mp=(()=>{let e=0;const t=()=>`0000${(Math.random()*36**4<<0).toString(36)}`.slice(-4);return()=>(e+=1,`u${t()}${e}`)})();function Yt(e){const t=[];for(let n=0,i=e.length;n<i;n++)t.push(e[n]);return t}let xe=null;function Da(e={}){return xe||(e.includeStyleProperties?(xe=e.includeStyleProperties,xe):(xe=Yt(window.getComputedStyle(document.documentElement)),xe))}function Vn(e,t){const i=(e.ownerDocument.defaultView||window).getComputedStyle(e).getPropertyValue(t);return i?parseFloat(i.replace("px","")):0}function Cp(e){const t=Vn(e,"border-left-width"),n=Vn(e,"border-right-width");return e.clientWidth+t+n}function Pp(e){const t=Vn(e,"border-top-width"),n=Vn(e,"border-bottom-width");return e.clientHeight+t+n}function Ea(e,t={}){const n=t.width||Cp(e),i=t.height||Pp(e);return{width:n,height:i}}function Op(){let e,t;try{t=process}catch{}const n=t&&t.env?t.env.devicePixelRatio:null;return n&&(e=parseInt(n,10),Number.isNaN(e)&&(e=1)),e||window.devicePixelRatio||1}const pt=16384;function Dp(e){(e.width>pt||e.height>pt)&&(e.width>pt&&e.height>pt?e.width>e.height?(e.height*=pt/e.width,e.width=pt):(e.width*=pt/e.height,e.height=pt):e.width>pt?(e.height*=pt/e.width,e.width=pt):(e.width*=pt/e.height,e.height=pt))}function Yn(e){return new Promise((t,n)=>{const i=new Image;i.onload=()=>{i.decode().then(()=>{requestAnimationFrame(()=>t(i))})},i.onerror=n,i.crossOrigin="anonymous",i.decoding="async",i.src=e})}async function Ep(e){return Promise.resolve().then(()=>new XMLSerializer().serializeToString(e)).then(encodeURIComponent).then(t=>`data:image/svg+xml;charset=utf-8,${t}`)}async function Ap(e,t,n){const i="http://www.w3.org/2000/svg",s=document.createElementNS(i,"svg"),o=document.createElementNS(i,"foreignObject");return s.setAttribute("width",`${t}`),s.setAttribute("height",`${n}`),s.setAttribute("viewBox",`0 0 ${t} ${n}`),o.setAttribute("width","100%"),o.setAttribute("height","100%"),o.setAttribute("x","0"),o.setAttribute("y","0"),o.setAttribute("externalResourcesRequired","true"),s.appendChild(o),o.appendChild(e),Ep(s)}const ft=(e,t)=>{if(e instanceof t)return!0;const n=Object.getPrototypeOf(e);return n===null?!1:n.constructor.name===t.name||ft(n,t)};function Tp(e){const t=e.getPropertyValue("content");return`${e.cssText} content: '${t.replace(/'|"/g,"")}';`}function Rp(e,t){return Da(t).map(n=>{const i=e.getPropertyValue(n),s=e.getPropertyPriority(n);return`${n}: ${i}${s?" !important":""};`}).join(" ")}function Lp(e,t,n,i){const s=`.${e}:${t}`,o=n.cssText?Tp(n):Rp(n,i);return document.createTextNode(`${s}{${o}}`)}function tr(e,t,n,i){const s=window.getComputedStyle(e,n),o=s.getPropertyValue("content");if(o===""||o==="none")return;const r=Mp();try{t.className=`${t.className} ${r}`}catch{return}const a=document.createElement("style");a.appendChild(Lp(r,n,s,i)),t.appendChild(a)}function Fp(e,t,n){tr(e,t,":before",n),tr(e,t,":after",n)}const er="application/font-woff",nr="image/jpeg",Ip={woff:er,woff2:er,ttf:"application/font-truetype",eot:"application/vnd.ms-fontobject",png:"image/png",jpg:nr,jpeg:nr,gif:"image/gif",tiff:"image/tiff",svg:"image/svg+xml",webp:"image/webp"};function jp(e){const t=/\.([^./]*?)$/g.exec(e);return t?t[1]:""}function as(e){const t=jp(e).toLowerCase();return Ip[t]||""}function $p(e){return e.split(/,/)[1]}function Ti(e){return e.search(/^(data:)/)!==-1}function zp(e,t){return`data:${t};base64,${e}`}async function Aa(e,t,n){const i=await fetch(e,t);if(i.status===404)throw new Error(`Resource "${i.url}" not found`);const s=await i.blob();return new Promise((o,r)=>{const a=new FileReader;a.onerror=r,a.onloadend=()=>{try{o(n({res:i,result:a.result}))}catch(l){r(l)}},a.readAsDataURL(s)})}const yi={};function Np(e,t,n){let i=e.replace(/\?.*/,"");return n&&(i=e),/ttf|otf|eot|woff2?/i.test(i)&&(i=i.replace(/.*\//,"")),t?`[${t}]${i}`:i}async function ls(e,t,n){const i=Np(e,t,n.includeQueryParams);if(yi[i]!=null)return yi[i];n.cacheBust&&(e+=(/\?/.test(e)?"&":"?")+new Date().getTime());let s;try{const o=await Aa(e,n.fetchRequestInit,({res:r,result:a})=>(t||(t=r.headers.get("Content-Type")||""),$p(a)));s=zp(o,t)}catch(o){s=n.imagePlaceholder||"";let r=`Failed to fetch resource: ${e}`;o&&(r=typeof o=="string"?o:o.message),r&&console.warn(r)}return yi[i]=s,s}async function Bp(e){const t=e.toDataURL();return t==="data:,"?e.cloneNode(!1):Yn(t)}async function Hp(e,t){if(e.currentSrc){const o=document.createElement("canvas"),r=o.getContext("2d");o.width=e.clientWidth,o.height=e.clientHeight,r==null||r.drawImage(e,0,0,o.width,o.height);const a=o.toDataURL();return Yn(a)}const n=e.poster,i=as(n),s=await ls(n,i,t);return Yn(s)}async function Wp(e,t){var n;try{if(!((n=e==null?void 0:e.contentDocument)===null||n===void 0)&&n.body)return await Gn(e.contentDocument.body,t,!0)}catch{}return e.cloneNode(!1)}async function Vp(e,t){return ft(e,HTMLCanvasElement)?Bp(e):ft(e,HTMLVideoElement)?Hp(e,t):ft(e,HTMLIFrameElement)?Wp(e,t):e.cloneNode(Ta(e))}const Yp=e=>e.tagName!=null&&e.tagName.toUpperCase()==="SLOT",Ta=e=>e.tagName!=null&&e.tagName.toUpperCase()==="SVG";async function Up(e,t,n){var i,s;if(Ta(t))return t;let o=[];return Yp(e)&&e.assignedNodes?o=Yt(e.assignedNodes()):ft(e,HTMLIFrameElement)&&(!((i=e.contentDocument)===null||i===void 0)&&i.body)?o=Yt(e.contentDocument.body.childNodes):o=Yt(((s=e.shadowRoot)!==null&&s!==void 0?s:e).childNodes),o.length===0||ft(e,HTMLVideoElement)||await o.reduce((r,a)=>r.then(()=>Gn(a,n)).then(l=>{l&&t.appendChild(l)}),Promise.resolve()),t}function Xp(e,t,n){const i=t.style;if(!i)return;const s=window.getComputedStyle(e);s.cssText?(i.cssText=s.cssText,i.transformOrigin=s.transformOrigin):Da(n).forEach(o=>{let r=s.getPropertyValue(o);o==="font-size"&&r.endsWith("px")&&(r=`${Math.floor(parseFloat(r.substring(0,r.length-2)))-.1}px`),ft(e,HTMLIFrameElement)&&o==="display"&&r==="inline"&&(r="block"),o==="d"&&t.getAttribute("d")&&(r=`path(${t.getAttribute("d")})`),i.setProperty(o,r,s.getPropertyPriority(o))})}function qp(e,t){ft(e,HTMLTextAreaElement)&&(t.innerHTML=e.value),ft(e,HTMLInputElement)&&t.setAttribute("value",e.value)}function Kp(e,t){if(ft(e,HTMLSelectElement)){const n=t,i=Array.from(n.children).find(s=>e.value===s.getAttribute("value"));i&&i.setAttribute("selected","")}}function Gp(e,t,n){return ft(t,Element)&&(Xp(e,t,n),Fp(e,t,n),qp(e,t),Kp(e,t)),t}async function Jp(e,t){const n=e.querySelectorAll?e.querySelectorAll("use"):[];if(n.length===0)return e;const i={};for(let o=0;o<n.length;o++){const a=n[o].getAttribute("xlink:href");if(a){const l=e.querySelector(a),c=document.querySelector(a);!l&&c&&!i[a]&&(i[a]=await Gn(c,t,!0))}}const s=Object.values(i);if(s.length){const o="http://www.w3.org/1999/xhtml",r=document.createElementNS(o,"svg");r.setAttribute("xmlns",o),r.style.position="absolute",r.style.width="0",r.style.height="0",r.style.overflow="hidden",r.style.display="none";const a=document.createElementNS(o,"defs");r.appendChild(a);for(let l=0;l<s.length;l++)a.appendChild(s[l]);e.appendChild(r)}return e}async function Gn(e,t,n){return!n&&t.filter&&!t.filter(e)?null:Promise.resolve(e).then(i=>Vp(i,t)).then(i=>Up(e,i,t)).then(i=>Gp(e,i,t)).then(i=>Jp(i,t))}const Ra=/url\((['"]?)([^'"]+?)\1\)/g,Zp=/url\([^)]+\)\s*format\((["']?)([^"']+)\1\)/g,Qp=/src:\s*(?:url\([^)]+\)\s*format\([^)]+\)[,;]\s*)+/g;function tg(e){const t=e.replace(/([.*+?^${}()|\[\]\/\\])/g,"\\$1");return new RegExp(`(url\\(['"]?)(${t})(['"]?\\))`,"g")}function eg(e){const t=[];return e.replace(Ra,(n,i,s)=>(t.push(s),n)),t.filter(n=>!Ti(n))}async function ng(e,t,n,i,s){try{const o=n?kp(t,n):t,r=as(t);let a;return s||(a=await ls(o,r,i)),e.replace(tg(t),`$1${a}$3`)}catch{}return e}function ig(e,{preferredFontFormat:t}){return t?e.replace(Qp,n=>{for(;;){const[i,,s]=Zp.exec(n)||[];if(!s)return"";if(s===t)return`src: ${i};`}}):e}function La(e){return e.search(Ra)!==-1}async function Fa(e,t,n){if(!La(e))return e;const i=ig(e,n);return eg(i).reduce((o,r)=>o.then(a=>ng(a,r,t,n)),Promise.resolve(i))}async function ye(e,t,n){var i;const s=(i=t.style)===null||i===void 0?void 0:i.getPropertyValue(e);if(s){const o=await Fa(s,null,n);return t.style.setProperty(e,o,t.style.getPropertyPriority(e)),!0}return!1}async function sg(e,t){await ye("background",e,t)||await ye("background-image",e,t),await ye("mask",e,t)||await ye("-webkit-mask",e,t)||await ye("mask-image",e,t)||await ye("-webkit-mask-image",e,t)}async function og(e,t){const n=ft(e,HTMLImageElement);if(!(n&&!Ti(e.src))&&!(ft(e,SVGImageElement)&&!Ti(e.href.baseVal)))return;const i=n?e.src:e.href.baseVal,s=await ls(i,as(i),t);await new Promise((o,r)=>{e.onload=o,e.onerror=t.onImageErrorHandler?(...l)=>{try{o(t.onImageErrorHandler(...l))}catch(c){r(c)}}:r;const a=e;a.decode&&(a.decode=o),a.loading==="lazy"&&(a.loading="eager"),n?(e.srcset="",e.src=s):e.href.baseVal=s})}async function rg(e,t){const i=Yt(e.childNodes).map(s=>Ia(s,t));await Promise.all(i).then(()=>e)}async function Ia(e,t){ft(e,Element)&&(await sg(e,t),await og(e,t),await rg(e,t))}function ag(e,t){const{style:n}=e;t.backgroundColor&&(n.backgroundColor=t.backgroundColor),t.width&&(n.width=`${t.width}px`),t.height&&(n.height=`${t.height}px`);const i=t.style;return i!=null&&Object.keys(i).forEach(s=>{n[s]=i[s]}),e}const ir={};async function sr(e){let t=ir[e];if(t!=null)return t;const i=await(await fetch(e)).text();return t={url:e,cssText:i},ir[e]=t,t}async function or(e,t){let n=e.cssText;const i=/url\(["']?([^"')]+)["']?\)/g,o=(n.match(/url\([^)]+\)/g)||[]).map(async r=>{let a=r.replace(i,"$1");return a.startsWith("https://")||(a=new URL(a,e.url).href),Aa(a,t.fetchRequestInit,({result:l})=>(n=n.replace(r,`url(${l})`),[r,l]))});return Promise.all(o).then(()=>n)}function rr(e){if(e==null)return[];const t=[],n=/(\/\*[\s\S]*?\*\/)/gi;let i=e.replace(n,"");const s=new RegExp("((@.*?keyframes [\\s\\S]*?){([\\s\\S]*?}\\s*?)})","gi");for(;;){const l=s.exec(i);if(l===null)break;t.push(l[0])}i=i.replace(s,"");const o=/@import[\s\S]*?url\([^)]*\)[\s\S]*?;/gi,r="((\\s*?(?:\\/\\*[\\s\\S]*?\\*\\/)?\\s*?@media[\\s\\S]*?){([\\s\\S]*?)}\\s*?})|(([\\s\\S]*?){([\\s\\S]*?)})",a=new RegExp(r,"gi");for(;;){let l=o.exec(i);if(l===null){if(l=a.exec(i),l===null)break;o.lastIndex=a.lastIndex}else a.lastIndex=o.lastIndex;t.push(l[0])}return t}async function lg(e,t){const n=[],i=[];return e.forEach(s=>{if("cssRules"in s)try{Yt(s.cssRules||[]).forEach((o,r)=>{if(o.type===CSSRule.IMPORT_RULE){let a=r+1;const l=o.href,c=sr(l).then(h=>or(h,t)).then(h=>rr(h).forEach(u=>{try{s.insertRule(u,u.startsWith("@import")?a+=1:s.cssRules.length)}catch(d){console.error("Error inserting rule from remote css",{rule:u,error:d})}})).catch(h=>{console.error("Error loading remote css",h.toString())});i.push(c)}})}catch(o){const r=e.find(a=>a.href==null)||document.styleSheets[0];s.href!=null&&i.push(sr(s.href).then(a=>or(a,t)).then(a=>rr(a).forEach(l=>{r.insertRule(l,r.cssRules.length)})).catch(a=>{console.error("Error loading remote stylesheet",a)})),console.error("Error inlining remote css file",o)}}),Promise.all(i).then(()=>(e.forEach(s=>{if("cssRules"in s)try{Yt(s.cssRules||[]).forEach(o=>{n.push(o)})}catch(o){console.error(`Error while reading CSS rules from ${s.href}`,o)}}),n))}function cg(e){return e.filter(t=>t.type===CSSRule.FONT_FACE_RULE).filter(t=>La(t.style.getPropertyValue("src")))}async function hg(e,t){if(e.ownerDocument==null)throw new Error("Provided element is not within a Document");const n=Yt(e.ownerDocument.styleSheets),i=await lg(n,t);return cg(i)}function ja(e){return e.trim().replace(/["']/g,"")}function ug(e){const t=new Set;function n(i){(i.style.fontFamily||getComputedStyle(i).fontFamily).split(",").forEach(o=>{t.add(ja(o))}),Array.from(i.children).forEach(o=>{o instanceof HTMLElement&&n(o)})}return n(e),t}async function dg(e,t){const n=await hg(e,t),i=ug(e);return(await Promise.all(n.filter(o=>i.has(ja(o.style.fontFamily))).map(o=>{const r=o.parentStyleSheet?o.parentStyleSheet.href:null;return Fa(o.cssText,r,t)}))).join(` -`)}async function fg(e,t){const n=t.fontEmbedCSS!=null?t.fontEmbedCSS:t.skipFonts?null:await dg(e,t);if(n){const i=document.createElement("style"),s=document.createTextNode(n);i.appendChild(s),e.firstChild?e.insertBefore(i,e.firstChild):e.appendChild(i)}}async function $a(e,t={}){const{width:n,height:i}=Ea(e,t),s=await Gn(e,t,!0);return await fg(s,t),await Ia(s,t),ag(s,t),await Ap(s,n,i)}async function za(e,t={}){const{width:n,height:i}=Ea(e,t),s=await $a(e,t),o=await Yn(s),r=document.createElement("canvas"),a=r.getContext("2d"),l=t.pixelRatio||Op(),c=t.canvasWidth||n,h=t.canvasHeight||i;return r.width=c*l,r.height=h*l,t.skipAutoScale||Dp(r),r.style.width=`${c}`,r.style.height=`${h}`,t.backgroundColor&&(a.fillStyle=t.backgroundColor,a.fillRect(0,0,r.width,r.height)),a.drawImage(o,0,0,r.width,r.height),r}async function pg(e,t={}){return(await za(e,t)).toDataURL()}async function gg(e,t={}){return(await za(e,t)).toDataURL("image/jpeg",t.quality||1)}const mg=e=>{const t=wt.c(17),{filename:n}=e,i=E.useContext(ur),[s,o]=E.useState(!1),r=E.useRef(null);let a;t[0]!==i||t[1]!==n?(a=async v=>{if(i!=null&&i.current){o(!1);const _={transform:"scale(1)","transform-origin":"top left",background:"white"};let y;t:switch(v){case ge.JPEG:{y=await gg(i.current,{quality:.95,style:_});break t}case ge.SVG:{y=await $a(i.current,{style:_});break t}case ge.PNG:default:y=await pg(i.current,{style:_})}const w=document.createElement("a");w.href=typeof y=="string"?y:URL.createObjectURL(y),w.download=`${n}.${v}`,document.body.appendChild(w),w.click(),document.body.removeChild(w)}},t[0]=i,t[1]=n,t[2]=a):a=t[2];const l=a;let c;t[3]!==s?(c=()=>{o(!s)},t[3]=s,t[4]=c):c=t[4];const h=c;let u;t[5]===Symbol.for("react.memo_cache_sentinel")?(u=v=>{r.current&&!r.current.contains(v.target)&&o(!1)},t[5]=u):u=t[5];const d=u;let f,g;t[6]===Symbol.for("react.memo_cache_sentinel")?(f=()=>(document.addEventListener("mousedown",d),()=>{document.removeEventListener("mousedown",d)}),g=[],t[6]=f,t[7]=g):(f=t[6],g=t[7]),E.useEffect(f,g);let m;t[8]===Symbol.for("react.memo_cache_sentinel")?(m=M.jsx(fr,{}),t[8]=m):m=t[8];let p;t[9]!==h?(p=M.jsxs("button",{className:"downloadbutton downloadimage",onClick:h,children:["IMAGE ",m]}),t[9]=h,t[10]=p):p=t[10];let b;t[11]!==l||t[12]!==s?(b=s&&M.jsxs("div",{className:"image-options",children:[M.jsx("div",{className:"imageoption downloadpng",onClick:()=>l(ge.PNG),children:M.jsx("span",{children:"PNG"})}),M.jsx("div",{className:"imageoption downloadjpeg",onClick:()=>l(ge.JPEG),children:M.jsx("span",{children:"JPEG"})}),M.jsx("div",{className:"imageoption downloadsvg",onClick:()=>l(ge.SVG),children:M.jsx("span",{children:"SVG"})})]}),t[11]=l,t[12]=s,t[13]=b):b=t[13];let x;return t[14]!==p||t[15]!==b?(x=M.jsxs("div",{className:"image-dropdown",ref:r,children:[p,b]}),t[14]=p,t[15]=b,t[16]=x):x=t[16],x};Ct.defaults.font.size=16;Ct.defaults.font.family="Open Sans";Ct.defaults.font.weight=700;function Ug(e){const t=wt.c(55),{title:n,description:i,filter:s,children:o,category:r,data:a,filename:l}=e,{preview:c,setPreview:h}=E.useContext(al),u=window.location.origin+window.location.pathname,{trackPageView:d}=ll();let f,g;t[0]!==n||t[1]!==d?(f=()=>{d({documentTitle:n})},g=[d,n],t[0]=n,t[1]=d,t[2]=f,t[3]=g):(f=t[2],g=t[3]),E.useEffect(f,g);let m;t[4]!==r?(m=r===G.Organisation&&M.jsx(mp,{}),t[4]=r,t[5]=m):m=t[5];let p;t[6]!==r?(p=r===G.Policy&&M.jsx(bp,{}),t[6]=r,t[7]=p):p=t[7];let b;t[8]!==r?(b=r===G.Network&&M.jsx(yp,{}),t[8]=r,t[9]=b):b=t[9];let x;t[10]!==r?(x=r===G.ConnectedUsers&&M.jsx(xp,{}),t[10]=r,t[11]=x):x=t[11];let v;t[12]!==r?(v=r===G.Services&&M.jsx(vp,{}),t[12]=r,t[13]=v):v=t[13];let _;t[14]===Symbol.for("react.memo_cache_sentinel")?(_=M.jsx(cl,{type:"data"}),t[14]=_):_=t[14];let y;t[15]!==c||t[16]!==h?(y=c&&M.jsx(se,{className:"preview-banner",children:M.jsxs("span",{children:["You are viewing a preview of the website which includes pre-published survey data. ",M.jsx(hl,{to:u,onClick:()=>h(!1),children:"Click here"})," to deactivate preview mode."]})}),t[15]=c,t[16]=h,t[17]=y):y=t[17];let w;t[18]!==r?(w=M.jsx(gp,{activeCategory:r}),t[18]=r,t[19]=w):w=t[19];let k;t[20]!==n?(k=M.jsx(se,{children:M.jsx("h3",{className:"m-1",children:n})}),t[20]=n,t[21]=k):k=t[21];let S;t[22]!==i?(S=M.jsx(se,{children:M.jsx("p",{className:"p-md-4",children:i})}),t[22]=i,t[23]=S):S=t[23];const C=`${l}.csv`;let D;t[24]!==a||t[25]!==C?(D=M.jsx(Qo,{data:a,filename:C,exportType:ve.CSV}),t[24]=a,t[25]=C,t[26]=D):D=t[26];const P=`${l}.xlsx`;let O;t[27]!==a||t[28]!==P?(O=M.jsx(Qo,{data:a,filename:P,exportType:ve.EXCEL}),t[27]=a,t[28]=P,t[29]=O):O=t[29];let A;t[30]!==l?(A=M.jsx(mg,{filename:l}),t[30]=l,t[31]=A):A=t[31];let I;t[32]!==D||t[33]!==O||t[34]!==A?(I=M.jsxs(se,{className:"downloadcontainer",children:[D,O,A]}),t[32]=D,t[33]=O,t[34]=A,t[35]=I):I=t[35];let T;t[36]!==s?(T=M.jsx(se,{children:s}),t[36]=s,t[37]=T):T=t[37];let L;t[38]!==o?(L=M.jsx(se,{children:o}),t[38]=o,t[39]=L):L=t[39];let F;t[40]!==k||t[41]!==S||t[42]!==I||t[43]!==T||t[44]!==L?(F=M.jsxs(hr,{className:"mb-5 grow",children:[k,S,I,T,L]}),t[40]=k,t[41]=S,t[42]=I,t[43]=T,t[44]=L,t[45]=F):F=t[45];let H;return t[46]!==w||t[47]!==F||t[48]!==m||t[49]!==p||t[50]!==b||t[51]!==x||t[52]!==v||t[53]!==y?(H=M.jsxs(M.Fragment,{children:[m,p,b,x,v,_,y,w,F]}),t[46]=w,t[47]=F,t[48]=m,t[49]=p,t[50]=b,t[51]=x,t[52]=v,t[53]=y,t[54]=H):H=t[54],H}function Xg(e){const t=wt.c(81),{filterOptions:n,filterSelection:i,setFilterSelection:s,max1year:o,coloredYears:r}=e,a=o===void 0?!1:o,l=r===void 0?!1:r,[c,h]=E.useState(!0),{nrens:u}=E.useContext(ul);let d,f;if(t[0]===Symbol.for("react.memo_cache_sentinel")?(d=()=>{const W=()=>h(window.innerWidth>=992);return window.addEventListener("resize",W),()=>{window.removeEventListener("resize",W)}},f=[],t[0]=d,t[1]=f):(d=t[0],f=t[1]),E.useEffect(d,f),a&&i.selectedYears.length>1){const W=Math.max(...i.selectedYears);s({selectedYears:[W],selectedNrens:[...i.selectedNrens]})}let g;t[2]!==i.selectedNrens||t[3]!==i.selectedYears||t[4]!==s?(g=W=>{i.selectedNrens.includes(W)?s({selectedYears:[...i.selectedYears],selectedNrens:i.selectedNrens.filter(et=>et!==W)}):s({selectedYears:[...i.selectedYears],selectedNrens:[...i.selectedNrens,W]})},t[2]=i.selectedNrens,t[3]=i.selectedYears,t[4]=s,t[5]=g):g=t[5];const m=g;let p;t[6]!==i.selectedNrens||t[7]!==i.selectedYears||t[8]!==a||t[9]!==s?(p=W=>{i.selectedYears.includes(W)?s({selectedYears:i.selectedYears.filter(et=>et!==W),selectedNrens:[...i.selectedNrens]}):s({selectedYears:a?[W]:[...i.selectedYears,W],selectedNrens:[...i.selectedNrens]})},t[6]=i.selectedNrens,t[7]=i.selectedYears,t[8]=a,t[9]=s,t[10]=p):p=t[10];const b=p;let x;t[11]!==n.availableNrens||t[12]!==i.selectedYears||t[13]!==s?(x=()=>{s({selectedYears:[...i.selectedYears],selectedNrens:n.availableNrens.map(yg)})},t[11]=n.availableNrens,t[12]=i.selectedYears,t[13]=s,t[14]=x):x=t[14];const v=x;let _;t[15]!==i.selectedYears||t[16]!==s?(_=()=>{s({selectedYears:[...i.selectedYears],selectedNrens:[]})},t[15]=i.selectedYears,t[16]=s,t[17]=_):_=t[17];const y=_,w=c?3:2,k=Math.ceil(u.length/w);let S,C,D,P,O,A,I,T,L,F;if(t[18]!==n.availableNrens||t[19]!==i.selectedNrens||t[20]!==m||t[21]!==w||t[22]!==k||t[23]!==u){const W=Array.from(Array(w),xg);u.sort(bg).forEach((Jt,Zt)=>{const lt=Math.floor(Zt/k);W[lt].push(Jt)});let et;t[34]!==n.availableNrens?(et=Jt=>n.availableNrens.find(lt=>lt.name===Jt.name)!==void 0,t[34]=n.availableNrens,t[35]=et):et=t[35];const Re=et;D=ys,L=3,C=ni,A="outside",I="m-3",t[36]===Symbol.for("react.memo_cache_sentinel")?(T=M.jsx(ni.Toggle,{id:"nren-dropdown-toggle",variant:"compendium",children:"Select NRENs "}),t[36]=T):T=t[36],S=ni.Menu,t[37]===Symbol.for("react.memo_cache_sentinel")?(O={borderRadius:0},t[37]=O):O=t[37],F="d-flex fit-max-content mt-4 mx-3";let $t;t[38]!==i.selectedNrens||t[39]!==m||t[40]!==Re?($t=(Jt,Zt)=>M.jsx("div",{className:"flex-fill",children:Jt.map(lt=>M.jsx("div",{className:"filter-dropdown-item flex-fill py-1 px-3",children:M.jsxs(Zn.Check,{type:"checkbox",children:[M.jsx(Zn.Check.Input,{id:lt.name,readOnly:!0,type:"checkbox",onClick:()=>m(lt.name),checked:i.selectedNrens.includes(lt.name),className:"nren-checkbox",disabled:!Re(lt)}),M.jsxs(Zn.Check.Label,{htmlFor:lt.name,className:"nren-checkbox-label",children:[lt.name," ",M.jsxs("span",{style:{fontWeight:"lighter"},children:["(",lt.country,")"]})]})]})},lt.name))},Zt),t[38]=i.selectedNrens,t[39]=m,t[40]=Re,t[41]=$t):$t=t[41],P=W.map($t),t[18]=n.availableNrens,t[19]=i.selectedNrens,t[20]=m,t[21]=w,t[22]=k,t[23]=u,t[24]=S,t[25]=C,t[26]=D,t[27]=P,t[28]=O,t[29]=A,t[30]=I,t[31]=T,t[32]=L,t[33]=F}else S=t[24],C=t[25],D=t[26],P=t[27],O=t[28],A=t[29],I=t[30],T=t[31],L=t[32],F=t[33];let H;t[42]!==P||t[43]!==F?(H=M.jsx("div",{className:F,children:P}),t[42]=P,t[43]=F,t[44]=H):H=t[44];let $;t[45]!==v?($=M.jsx(Ft,{variant:"compendium",className:"flex-fill",onClick:v,children:"Select all NRENs"}),t[45]=v,t[46]=$):$=t[46];let N;t[47]!==y?(N=M.jsx(Ft,{variant:"compendium",className:"flex-fill",onClick:y,children:"Unselect all NRENs"}),t[47]=y,t[48]=N):N=t[48];let tt;t[49]!==$||t[50]!==N?(tt=M.jsxs("div",{className:"d-flex fit-max-content gap-2 mx-4 my-3",children:[$,N]}),t[49]=$,t[50]=N,t[51]=tt):tt=t[51];let Q;t[52]!==S||t[53]!==O||t[54]!==H||t[55]!==tt?(Q=M.jsxs(S,{style:O,children:[H,tt]}),t[52]=S,t[53]=O,t[54]=H,t[55]=tt,t[56]=Q):Q=t[56];let nt;t[57]!==C||t[58]!==A||t[59]!==I||t[60]!==T||t[61]!==Q?(nt=M.jsxs(C,{autoClose:A,className:I,children:[T,Q]}),t[57]=C,t[58]=A,t[59]=I,t[60]=T,t[61]=Q,t[62]=nt):nt=t[62];let U;t[63]!==D||t[64]!==L||t[65]!==nt?(U=M.jsx(D,{xs:L,children:nt}),t[63]=D,t[64]=L,t[65]=nt,t[66]=U):U=t[66];let X;if(t[67]!==l||t[68]!==n.availableYears||t[69]!==i.selectedYears||t[70]!==b){let W;t[72]!==l||t[73]!==i.selectedYears||t[74]!==b?(W=et=>M.jsx(Ft,{variant:l?"compendium-year-"+et%9:"compendium-year",active:i.selectedYears.includes(et),onClick:()=>b(et),children:et},et),t[72]=l,t[73]=i.selectedYears,t[74]=b,t[75]=W):W=t[75],X=n.availableYears.sort().map(W),t[67]=l,t[68]=n.availableYears,t[69]=i.selectedYears,t[70]=b,t[71]=X}else X=t[71];let K;t[76]!==X?(K=M.jsx(ys,{children:M.jsx(Ri,{className:"d-flex justify-content-end gap-2 m-3",children:X})}),t[76]=X,t[77]=K):K=t[77];let Et;return t[78]!==U||t[79]!==K?(Et=M.jsxs(M.Fragment,{children:[U,K]}),t[78]=U,t[79]=K,t[80]=Et):Et=t[80],Et}function bg(e,t){return e.name.localeCompare(t.name)}function xg(){return[]}function yg(e){return e.name}const qg=e=>{const t=wt.c(3),{children:n}=e,i=E.useContext(ur);let s;return t[0]!==n||t[1]!==i?(s=M.jsx("div",{ref:i,children:n}),t[0]=n,t[1]=i,t[2]=s):s=t[2],s};function ar(e){const t=new Set,n=new Map;return e.forEach(i=>{t.add(i.year),n.set(i.nren,{name:i.nren,country:i.nren_country})}),{years:t,nrens:n}}function Kg(e,t,n){const i=wt.c(14),s=n===void 0?_g:n;let o;i[0]===Symbol.for("react.memo_cache_sentinel")?(o=[],i[0]=o):o=i[0];const[r,a]=E.useState(o),l=dl(),c=e+(l?"?preview":"");let h;i[1]!==c||i[2]!==t||i[3]!==s?(h=()=>{fetch(c).then(vg).then(b=>{const x=b.filter(s);a(x);const{years:v,nrens:_}=ar(x);t(y=>{const k=y.selectedYears.filter(D=>v.has(D)).length?y.selectedYears:[Math.max(...v)],C=y.selectedNrens.filter(D=>_.has(D)).length?y.selectedNrens:[..._.keys()];return{selectedYears:k,selectedNrens:C}})})},i[1]=c,i[2]=t,i[3]=s,i[4]=h):h=i[4];let u;i[5]!==c||i[6]!==t?(u=[c,t],i[5]=c,i[6]=t,i[7]=u):u=i[7],E.useEffect(h,u);let d,f;i[8]!==r?(f=ar(r),i[8]=r,i[9]=f):f=i[9],d=f;const{years:g,nrens:m}=d;let p;return i[10]!==r||i[11]!==m||i[12]!==g?(p={data:r,years:g,nrens:m},i[10]=r,i[11]=m,i[12]=g,i[13]=p):p=i[13],p}function vg(e){return e.json()}function _g(){return!0}export{q as A,xi as B,Ct as C,Ug as D,_t as E,Xg as F,j as G,Y as H,B as I,Pn as J,V as K,Yo as L,z as M,Wg as N,gi as P,Wo as a,On as b,Ag as c,Dg as d,Bg as e,qg as f,$g as g,Ig as h,jg as i,Ng as j,Te as k,Hg as l,Vg as m,Tg as n,Yg as o,Eg as p,Rg as q,zg as r,Fg as s,ui as t,Kg as u,hi as v,Lg as w,Qe as x,at as y,yn as z}; +`):e}function Qf(e,t){const{element:n,datasetIndex:i,index:s}=t,o=e.getDatasetMeta(i).controller,{label:r,value:a}=o.getLabelAndValue(s);return{chart:e,label:r,parsed:o.getParsed(s),raw:e.data.datasets[i].data[s],formattedValue:a,dataset:o.getDataset(),dataIndex:s,datasetIndex:i,element:n}}function $o(e,t){const n=e.chart.ctx,{body:i,footer:s,title:o}=e,{boxWidth:r,boxHeight:a}=t,l=at(t.bodyFont),c=at(t.titleFont),h=at(t.footerFont),u=o.length,d=s.length,f=i.length,g=_t(t.padding);let m=g.height,p=0,b=i.reduce((_,y)=>_+y.before.length+y.lines.length+y.after.length,0);if(b+=e.beforeBody.length+e.afterBody.length,u&&(m+=u*c.lineHeight+(u-1)*t.titleSpacing+t.titleMarginBottom),b){const _=t.displayColors?Math.max(a,l.lineHeight):l.lineHeight;m+=f*_+(b-f)*l.lineHeight+(b-1)*t.bodySpacing}d&&(m+=t.footerMarginTop+d*h.lineHeight+(d-1)*t.footerSpacing);let x=0;const v=function(_){p=Math.max(p,n.measureText(_).width+x)};return n.save(),n.font=c.string,V(e.title,v),n.font=l.string,V(e.beforeBody.concat(e.afterBody),v),x=t.displayColors?r+2+t.boxPadding:0,V(i,_=>{V(_.before,v),V(_.lines,v),V(_.after,v)}),x=0,n.font=h.string,V(e.footer,v),n.restore(),p+=g.width,{width:p,height:m}}function tp(e,t){const{y:n,height:i}=t;return n<i/2?"top":n>e.height-i/2?"bottom":"center"}function ep(e,t,n,i){const{x:s,width:o}=i,r=n.caretSize+n.caretPadding;if(e==="left"&&s+o+r>t.width||e==="right"&&s-o-r<0)return!0}function np(e,t,n,i){const{x:s,width:o}=n,{width:r,chartArea:{left:a,right:l}}=e;let c="center";return i==="center"?c=s<=(a+l)/2?"left":"right":s<=o/2?c="left":s>=r-o/2&&(c="right"),ep(c,e,t,n)&&(c="center"),c}function zo(e,t,n){const i=n.yAlign||t.yAlign||tp(e,n);return{xAlign:n.xAlign||t.xAlign||np(e,t,n,i),yAlign:i}}function ip(e,t){let{x:n,width:i}=e;return t==="right"?n-=i:t==="center"&&(n-=i/2),n}function sp(e,t,n){let{y:i,height:s}=e;return t==="top"?i+=n:t==="bottom"?i-=s+n:i-=s/2,i}function No(e,t,n,i){const{caretSize:s,caretPadding:o,cornerRadius:r}=e,{xAlign:a,yAlign:l}=n,c=s+o,{topLeft:h,topRight:u,bottomLeft:d,bottomRight:f}=_e(r);let g=ip(t,a);const m=sp(t,l,c);return l==="center"?a==="left"?g+=c:a==="right"&&(g-=c):a==="left"?g-=Math.max(h,d)+s:a==="right"&&(g+=Math.max(u,f)+s),{x:rt(g,0,i.width-t.width),y:rt(m,0,i.height-t.height)}}function Dn(e,t,n){const i=_t(n.padding);return t==="center"?e.x+e.width/2:t==="right"?e.x+e.width-i.right:e.x+i.left}function Bo(e){return kt([],Rt(e))}function op(e,t,n){return pe(e,{tooltip:t,tooltipItems:n,type:"tooltip"})}function Ho(e,t){const n=t&&t.dataset&&t.dataset.tooltip&&t.dataset.tooltip.callbacks;return n?e.override(n):e}const Da={beforeTitle:Et,title(e){if(e.length>0){const t=e[0],n=t.chart.data.labels,i=n?n.length:0;if(this&&this.options&&this.options.mode==="dataset")return t.dataset.label||"";if(t.label)return t.label;if(i>0&&t.dataIndex<i)return n[t.dataIndex]}return""},afterTitle:Et,beforeBody:Et,beforeLabel:Et,label(e){if(this&&this.options&&this.options.mode==="dataset")return e.label+": "+e.formattedValue||e.formattedValue;let t=e.dataset.label||"";t&&(t+=": ");const n=e.formattedValue;return B(n)||(t+=n),t},labelColor(e){const n=e.chart.getDatasetMeta(e.datasetIndex).controller.getStyle(e.dataIndex);return{borderColor:n.borderColor,backgroundColor:n.backgroundColor,borderWidth:n.borderWidth,borderDash:n.borderDash,borderDashOffset:n.borderDashOffset,borderRadius:0}},labelTextColor(){return this.options.bodyColor},labelPointStyle(e){const n=e.chart.getDatasetMeta(e.datasetIndex).controller.getStyle(e.dataIndex);return{pointStyle:n.pointStyle,rotation:n.rotation}},afterLabel:Et,afterBody:Et,beforeFooter:Et,footer:Et,afterFooter:Et};function ct(e,t,n,i){const s=e[t].call(n,i);return typeof s>"u"?Da[t].call(n,i):s}class Ti extends jt{constructor(t){super(),this.opacity=0,this._active=[],this._eventPosition=void 0,this._size=void 0,this._cachedAnimations=void 0,this._tooltipItems=[],this.$animations=void 0,this.$context=void 0,this.chart=t.chart,this.options=t.options,this.dataPoints=void 0,this.title=void 0,this.beforeBody=void 0,this.body=void 0,this.afterBody=void 0,this.footer=void 0,this.xAlign=void 0,this.yAlign=void 0,this.x=void 0,this.y=void 0,this.height=void 0,this.width=void 0,this.caretX=void 0,this.caretY=void 0,this.labelColors=void 0,this.labelPointStyles=void 0,this.labelTextColors=void 0}initialize(t){this.options=t,this._cachedAnimations=void 0,this.$context=void 0}_resolveAnimations(){const t=this._cachedAnimations;if(t)return t;const n=this.chart,i=this.options.setContext(this.getContext()),s=i.enabled&&n.options.animation&&i.animations,o=new da(this.chart,s);return s._cacheable&&(this._cachedAnimations=Object.freeze(o)),o}getContext(){return this.$context||(this.$context=op(this.chart.getContext(),this,this._tooltipItems))}getTitle(t,n){const{callbacks:i}=n,s=ct(i,"beforeTitle",this,t),o=ct(i,"title",this,t),r=ct(i,"afterTitle",this,t);let a=[];return a=kt(a,Rt(s)),a=kt(a,Rt(o)),a=kt(a,Rt(r)),a}getBeforeBody(t,n){return Bo(ct(n.callbacks,"beforeBody",this,t))}getBody(t,n){const{callbacks:i}=n,s=[];return V(t,o=>{const r={before:[],lines:[],after:[]},a=Ho(i,o);kt(r.before,Rt(ct(a,"beforeLabel",this,o))),kt(r.lines,ct(a,"label",this,o)),kt(r.after,Rt(ct(a,"afterLabel",this,o))),s.push(r)}),s}getAfterBody(t,n){return Bo(ct(n.callbacks,"afterBody",this,t))}getFooter(t,n){const{callbacks:i}=n,s=ct(i,"beforeFooter",this,t),o=ct(i,"footer",this,t),r=ct(i,"afterFooter",this,t);let a=[];return a=kt(a,Rt(s)),a=kt(a,Rt(o)),a=kt(a,Rt(r)),a}_createItems(t){const n=this._active,i=this.chart.data,s=[],o=[],r=[];let a=[],l,c;for(l=0,c=n.length;l<c;++l)a.push(Qf(this.chart,n[l]));return t.filter&&(a=a.filter((h,u,d)=>t.filter(h,u,d,i))),t.itemSort&&(a=a.sort((h,u)=>t.itemSort(h,u,i))),V(a,h=>{const u=Ho(t.callbacks,h);s.push(ct(u,"labelColor",this,h)),o.push(ct(u,"labelPointStyle",this,h)),r.push(ct(u,"labelTextColor",this,h))}),this.labelColors=s,this.labelPointStyles=o,this.labelTextColors=r,this.dataPoints=a,a}update(t,n){const i=this.options.setContext(this.getContext()),s=this._active;let o,r=[];if(!s.length)this.opacity!==0&&(o={opacity:0});else{const a=He[i.position].call(this,s,this._eventPosition);r=this._createItems(i),this.title=this.getTitle(r,i),this.beforeBody=this.getBeforeBody(r,i),this.body=this.getBody(r,i),this.afterBody=this.getAfterBody(r,i),this.footer=this.getFooter(r,i);const l=this._size=$o(this,i),c=Object.assign({},a,l),h=zo(this.chart,i,c),u=No(i,c,h,this.chart);this.xAlign=h.xAlign,this.yAlign=h.yAlign,o={opacity:1,x:u.x,y:u.y,width:l.width,height:l.height,caretX:a.x,caretY:a.y}}this._tooltipItems=r,this.$context=void 0,o&&this._resolveAnimations().update(this,o),t&&i.external&&i.external.call(this,{chart:this.chart,tooltip:this,replay:n})}drawCaret(t,n,i,s){const o=this.getCaretPosition(t,i,s);n.lineTo(o.x1,o.y1),n.lineTo(o.x2,o.y2),n.lineTo(o.x3,o.y3)}getCaretPosition(t,n,i){const{xAlign:s,yAlign:o}=this,{caretSize:r,cornerRadius:a}=i,{topLeft:l,topRight:c,bottomLeft:h,bottomRight:u}=_e(a),{x:d,y:f}=t,{width:g,height:m}=n;let p,b,x,v,_,y;return o==="center"?(_=f+m/2,s==="left"?(p=d,b=p-r,v=_+r,y=_-r):(p=d+g,b=p+r,v=_-r,y=_+r),x=p):(s==="left"?b=d+Math.max(l,h)+r:s==="right"?b=d+g-Math.max(c,u)-r:b=this.caretX,o==="top"?(v=f,_=v-r,p=b-r,x=b+r):(v=f+m,_=v+r,p=b+r,x=b-r),y=v),{x1:p,x2:b,x3:x,y1:v,y2:_,y3:y}}drawTitle(t,n,i){const s=this.title,o=s.length;let r,a,l;if(o){const c=we(i.rtl,this.x,this.width);for(t.x=Dn(this,i.titleAlign,i),n.textAlign=c.textAlign(i.titleAlign),n.textBaseline="middle",r=at(i.titleFont),a=i.titleSpacing,n.fillStyle=i.titleColor,n.font=r.string,l=0;l<o;++l)n.fillText(s[l],c.x(t.x),t.y+r.lineHeight/2),t.y+=r.lineHeight+a,l+1===o&&(t.y+=i.titleMarginBottom-a)}}_drawColorBox(t,n,i,s,o){const r=this.labelColors[i],a=this.labelPointStyles[i],{boxHeight:l,boxWidth:c}=o,h=at(o.bodyFont),u=Dn(this,"left",o),d=s.x(u),f=l<h.lineHeight?(h.lineHeight-l)/2:0,g=n.y+f;if(o.usePointStyle){const m={radius:Math.min(c,l)/2,pointStyle:a.pointStyle,rotation:a.rotation,borderWidth:1},p=s.leftForLtr(d,c)+c/2,b=g+l/2;t.strokeStyle=o.multiKeyBackground,t.fillStyle=o.multiKeyBackground,Oi(t,m,p,b),t.strokeStyle=r.borderColor,t.fillStyle=r.backgroundColor,Oi(t,m,p,b)}else{t.lineWidth=z(r.borderWidth)?Math.max(...Object.values(r.borderWidth)):r.borderWidth||1,t.strokeStyle=r.borderColor,t.setLineDash(r.borderDash||[]),t.lineDashOffset=r.borderDashOffset||0;const m=s.leftForLtr(d,c),p=s.leftForLtr(s.xPlus(d,1),c-2),b=_e(r.borderRadius);Object.values(b).some(x=>x!==0)?(t.beginPath(),t.fillStyle=o.multiKeyBackground,zn(t,{x:m,y:g,w:c,h:l,radius:b}),t.fill(),t.stroke(),t.fillStyle=r.backgroundColor,t.beginPath(),zn(t,{x:p,y:g+1,w:c-2,h:l-2,radius:b}),t.fill()):(t.fillStyle=o.multiKeyBackground,t.fillRect(m,g,c,l),t.strokeRect(m,g,c,l),t.fillStyle=r.backgroundColor,t.fillRect(p,g+1,c-2,l-2))}t.fillStyle=this.labelTextColors[i]}drawBody(t,n,i){const{body:s}=this,{bodySpacing:o,bodyAlign:r,displayColors:a,boxHeight:l,boxWidth:c,boxPadding:h}=i,u=at(i.bodyFont);let d=u.lineHeight,f=0;const g=we(i.rtl,this.x,this.width),m=function(S){n.fillText(S,g.x(t.x+f),t.y+d/2),t.y+=d+o},p=g.textAlign(r);let b,x,v,_,y,w,k;for(n.textAlign=r,n.textBaseline="middle",n.font=u.string,t.x=Dn(this,p,i),n.fillStyle=i.bodyColor,V(this.beforeBody,m),f=a&&p!=="right"?r==="center"?c/2+h:c+2+h:0,_=0,w=s.length;_<w;++_){for(b=s[_],x=this.labelTextColors[_],n.fillStyle=x,V(b.before,m),v=b.lines,a&&v.length&&(this._drawColorBox(n,t,_,g,i),d=Math.max(u.lineHeight,l)),y=0,k=v.length;y<k;++y)m(v[y]),d=u.lineHeight;V(b.after,m)}f=0,d=u.lineHeight,V(this.afterBody,m),t.y-=o}drawFooter(t,n,i){const s=this.footer,o=s.length;let r,a;if(o){const l=we(i.rtl,this.x,this.width);for(t.x=Dn(this,i.footerAlign,i),t.y+=i.footerMarginTop,n.textAlign=l.textAlign(i.footerAlign),n.textBaseline="middle",r=at(i.footerFont),n.fillStyle=i.footerColor,n.font=r.string,a=0;a<o;++a)n.fillText(s[a],l.x(t.x),t.y+r.lineHeight/2),t.y+=r.lineHeight+i.footerSpacing}}drawBackground(t,n,i,s){const{xAlign:o,yAlign:r}=this,{x:a,y:l}=t,{width:c,height:h}=i,{topLeft:u,topRight:d,bottomLeft:f,bottomRight:g}=_e(s.cornerRadius);n.fillStyle=s.backgroundColor,n.strokeStyle=s.borderColor,n.lineWidth=s.borderWidth,n.beginPath(),n.moveTo(a+u,l),r==="top"&&this.drawCaret(t,n,i,s),n.lineTo(a+c-d,l),n.quadraticCurveTo(a+c,l,a+c,l+d),r==="center"&&o==="right"&&this.drawCaret(t,n,i,s),n.lineTo(a+c,l+h-g),n.quadraticCurveTo(a+c,l+h,a+c-g,l+h),r==="bottom"&&this.drawCaret(t,n,i,s),n.lineTo(a+f,l+h),n.quadraticCurveTo(a,l+h,a,l+h-f),r==="center"&&o==="left"&&this.drawCaret(t,n,i,s),n.lineTo(a,l+u),n.quadraticCurveTo(a,l,a+u,l),n.closePath(),n.fill(),s.borderWidth>0&&n.stroke()}_updateAnimationTarget(t){const n=this.chart,i=this.$animations,s=i&&i.x,o=i&&i.y;if(s||o){const r=He[t.position].call(this,this._active,this._eventPosition);if(!r)return;const a=this._size=$o(this,t),l=Object.assign({},r,this._size),c=zo(n,t,l),h=No(t,l,c,n);(s._to!==h.x||o._to!==h.y)&&(this.xAlign=c.xAlign,this.yAlign=c.yAlign,this.width=a.width,this.height=a.height,this.caretX=r.x,this.caretY=r.y,this._resolveAnimations().update(this,h))}}_willRender(){return!!this.opacity}draw(t){const n=this.options.setContext(this.getContext());let i=this.opacity;if(!i)return;this._updateAnimationTarget(n);const s={width:this.width,height:this.height},o={x:this.x,y:this.y};i=Math.abs(i)<.001?0:i;const r=_t(n.padding),a=this.title.length||this.beforeBody.length||this.body.length||this.afterBody.length||this.footer.length;n.enabled&&a&&(t.save(),t.globalAlpha=i,this.drawBackground(o,t,s,n),ca(t,n.textDirection),o.y+=r.top,this.drawTitle(o,t,n),this.drawBody(o,t,n),this.drawFooter(o,t,n),ha(t,n.textDirection),t.restore())}getActiveElements(){return this._active||[]}setActiveElements(t,n){const i=this._active,s=t.map(({datasetIndex:a,index:l})=>{const c=this.chart.getDatasetMeta(a);if(!c)throw new Error("Cannot find a dataset at index "+a);return{datasetIndex:a,element:c.data[l],index:l}}),o=!In(i,s),r=this._positionChanged(s,n);(o||r)&&(this._active=s,this._eventPosition=n,this._ignoreReplayEvents=!0,this.update(!0))}handleEvent(t,n,i=!0){if(n&&this._ignoreReplayEvents)return!1;this._ignoreReplayEvents=!1;const s=this.options,o=this._active||[],r=this._getActiveElements(t,o,n,i),a=this._positionChanged(r,t),l=n||!In(r,o)||a;return l&&(this._active=r,(s.enabled||s.external)&&(this._eventPosition={x:t.x,y:t.y},this.update(!0,n))),l}_getActiveElements(t,n,i,s){const o=this.options;if(t.type==="mouseout")return[];if(!s)return n.filter(a=>this.chart.data.datasets[a.datasetIndex]&&this.chart.getDatasetMeta(a.datasetIndex).controller.getParsed(a.index)!==void 0);const r=this.chart.getElementsAtEventForMode(t,o.mode,o,i);return o.reverse&&r.reverse(),r}_positionChanged(t,n){const{caretX:i,caretY:s,options:o}=this,r=He[o.position].call(this,t,n);return r!==!1&&(i!==r.x||s!==r.y)}}R(Ti,"positioners",He);var Tg={id:"tooltip",_element:Ti,positioners:He,afterInit(e,t,n){n&&(e.tooltip=new Ti({chart:e,options:n}))},beforeUpdate(e,t,n){e.tooltip&&e.tooltip.initialize(n)},reset(e,t,n){e.tooltip&&e.tooltip.initialize(n)},afterDraw(e){const t=e.tooltip;if(t&&t._willRender()){const n={tooltip:t};if(e.notifyPlugins("beforeTooltipDraw",{...n,cancelable:!0})===!1)return;t.draw(e.ctx),e.notifyPlugins("afterTooltipDraw",n)}},afterEvent(e,t){if(e.tooltip){const n=t.replay;e.tooltip.handleEvent(t.event,n,t.inChartArea)&&(t.changed=!0)}},defaults:{enabled:!0,external:null,position:"average",backgroundColor:"rgba(0,0,0,0.8)",titleColor:"#fff",titleFont:{weight:"bold"},titleSpacing:2,titleMarginBottom:6,titleAlign:"left",bodyColor:"#fff",bodySpacing:2,bodyFont:{},bodyAlign:"left",footerColor:"#fff",footerSpacing:2,footerMarginTop:6,footerFont:{weight:"bold"},footerAlign:"left",padding:6,caretPadding:2,caretSize:5,cornerRadius:6,boxHeight:(e,t)=>t.bodyFont.size,boxWidth:(e,t)=>t.bodyFont.size,multiKeyBackground:"#fff",displayColors:!0,boxPadding:0,borderColor:"rgba(0,0,0,0)",borderWidth:0,animation:{duration:400,easing:"easeOutQuart"},animations:{numbers:{type:"number",properties:["x","y","width","height","caretX","caretY"]},opacity:{easing:"linear",duration:200}},callbacks:Da},defaultRoutes:{bodyFont:"font",footerFont:"font",titleFont:"font"},descriptors:{_scriptable:e=>e!=="filter"&&e!=="itemSort"&&e!=="external",_indexable:!1,callbacks:{_scriptable:!1,_indexable:!1},animation:{_fallback:!1},animations:{_fallback:"animation"}},additionalOptionScopes:["interaction"]};const rp=(e,t,n,i)=>(typeof t=="string"?(n=e.push(t)-1,i.unshift({index:n,label:t})):isNaN(t)&&(n=null),n);function ap(e,t,n,i){const s=e.indexOf(t);if(s===-1)return rp(e,t,n,i);const o=e.lastIndexOf(t);return s!==o?n:s}const lp=(e,t)=>e===null?null:rt(Math.round(e),0,t);function Wo(e){const t=this.getLabels();return e>=0&&e<t.length?t[e]:e}class Vo extends Ee{constructor(t){super(t),this._startValue=void 0,this._valueRange=0,this._addedLabels=[]}init(t){const n=this._addedLabels;if(n.length){const i=this.getLabels();for(const{index:s,label:o}of n)i[s]===o&&i.splice(s,1);this._addedLabels=[]}super.init(t)}parse(t,n){if(B(t))return null;const i=this.getLabels();return n=isFinite(n)&&i[n]===t?n:ap(i,t,j(n,t),this._addedLabels),lp(n,i.length-1)}determineDataLimits(){const{minDefined:t,maxDefined:n}=this.getUserBounds();let{min:i,max:s}=this.getMinMax(!0);this.options.bounds==="ticks"&&(t||(i=0),n||(s=this.getLabels().length-1)),this.min=i,this.max=s}buildTicks(){const t=this.min,n=this.max,i=this.options.offset,s=[];let o=this.getLabels();o=t===0&&n===o.length-1?o:o.slice(t,n+1),this._valueRange=Math.max(o.length-(i?0:1),1),this._startValue=this.min-(i?.5:0);for(let r=t;r<=n;r++)s.push({value:r});return s}getLabelForValue(t){return Wo.call(this,t)}configure(){super.configure(),this.isHorizontal()||(this._reversePixels=!this._reversePixels)}getPixelForValue(t){return typeof t!="number"&&(t=this.parse(t)),t===null?NaN:this.getPixelForDecimal((t-this._startValue)/this._valueRange)}getPixelForTick(t){const n=this.ticks;return t<0||t>n.length-1?null:this.getPixelForValue(n[t].value)}getValueForPixel(t){return Math.round(this._startValue+this.getDecimalForPixel(t)*this._valueRange)}getBasePixel(){return this.bottom}}R(Vo,"id","category"),R(Vo,"defaults",{ticks:{callback:Wo}});function cp(e,t){const n=[],{bounds:s,step:o,min:r,max:a,precision:l,count:c,maxTicks:h,maxDigits:u,includeBounds:d}=e,f=o||1,g=h-1,{min:m,max:p}=t,b=!B(r),x=!B(a),v=!B(c),_=(p-m)/(u+1);let y=Vs((p-m)/g/f)*f,w,k,S,C;if(y<1e-14&&!b&&!x)return[{value:m},{value:p}];C=Math.ceil(p/y)-Math.floor(m/y),C>g&&(y=Vs(C*y/g/f)*f),B(l)||(w=Math.pow(10,l),y=Math.ceil(y*w)/w),s==="ticks"?(k=Math.floor(m/y)*y,S=Math.ceil(p/y)*y):(k=m,S=p),b&&x&&o&&Fh((a-r)/o,y/1e3)?(C=Math.round(Math.min((a-r)/y,h)),y=(a-r)/C,k=r,S=a):v?(k=b?r:k,S=x?a:S,C=c-1,y=(S-k)/C):(C=(S-k)/y,Xe(C,Math.round(C),y/1e3)?C=Math.round(C):C=Math.ceil(C));const D=Math.max(Ys(y),Ys(k));w=Math.pow(10,B(l)?D:l),k=Math.round(k*w)/w,S=Math.round(S*w)/w;let P=0;for(b&&(d&&k!==r?(n.push({value:r}),k<r&&P++,Xe(Math.round((k+P*y)*w)/w,r,Yo(r,_,e))&&P++):k<r&&P++);P<C;++P){const O=Math.round((k+P*y)*w)/w;if(x&&O>a)break;n.push({value:O})}return x&&d&&S!==a?n.length&&Xe(n[n.length-1].value,a,Yo(a,_,e))?n[n.length-1].value=a:n.push({value:a}):(!x||S===a)&&n.push({value:S}),n}function Yo(e,t,{horizontal:n,minRotation:i}){const s=ae(i),o=(n?Math.sin(s):Math.cos(s))||.001,r=.75*t*(""+e).length;return Math.min(t/o,r)}class hp extends Ee{constructor(t){super(t),this.start=void 0,this.end=void 0,this._startValue=void 0,this._endValue=void 0,this._valueRange=0}parse(t,n){return B(t)||(typeof t=="number"||t instanceof Number)&&!isFinite(+t)?null:+t}handleTickRangeOptions(){const{beginAtZero:t}=this.options,{minDefined:n,maxDefined:i}=this.getUserBounds();let{min:s,max:o}=this;const r=l=>s=n?s:l,a=l=>o=i?o:l;if(t){const l=Dt(s),c=Dt(o);l<0&&c<0?a(0):l>0&&c>0&&r(0)}if(s===o){let l=o===0?1:Math.abs(o*.05);a(o+l),t||r(s-l)}this.min=s,this.max=o}getTickLimit(){const t=this.options.ticks;let{maxTicksLimit:n,stepSize:i}=t,s;return i?(s=Math.ceil(this.max/i)-Math.floor(this.min/i)+1,s>1e3&&(console.warn(`scales.${this.id}.ticks.stepSize: ${i} would result generating up to ${s} ticks. Limiting to 1000.`),s=1e3)):(s=this.computeTickLimit(),n=n||11),n&&(s=Math.min(n,s)),s}computeTickLimit(){return Number.POSITIVE_INFINITY}buildTicks(){const t=this.options,n=t.ticks;let i=this.getTickLimit();i=Math.max(2,i);const s={maxTicks:i,bounds:t.bounds,min:t.min,max:t.max,precision:n.precision,step:n.stepSize,count:n.count,maxDigits:this._maxDigits(),horizontal:this.isHorizontal(),minRotation:n.minRotation||0,includeBounds:n.includeBounds!==!1},o=this._range||this,r=cp(s,o);return t.bounds==="ticks"&&Ih(r,this,"value"),t.reverse?(r.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),r}configure(){const t=this.ticks;let n=this.min,i=this.max;if(super.configure(),this.options.offset&&t.length){const s=(i-n)/Math.max(t.length-1,1)/2;n-=s,i+=s}this._startValue=n,this._endValue=i,this._valueRange=i-n}getLabelForValue(t){return Qr(t,this.chart.options.locale,this.options.ticks.format)}}class Uo extends hp{determineDataLimits(){const{min:t,max:n}=this.getMinMax(!0);this.min=vt(t)?t:0,this.max=vt(n)?n:1,this.handleTickRangeOptions()}computeTickLimit(){const t=this.isHorizontal(),n=t?this.width:this.height,i=ae(this.options.ticks.minRotation),s=(t?Math.sin(i):Math.cos(i))||.001,o=this._resolveTickFontOptions(0);return Math.ceil(n/Math.min(40,o.lineHeight/s))}getPixelForValue(t){return t===null?NaN:this.getPixelForDecimal((t-this._startValue)/this._valueRange)}getValueForPixel(t){return this._startValue+this.getDecimalForPixel(t)*this._valueRange}}R(Uo,"id","linear"),R(Uo,"defaults",{ticks:{callback:ea.formatters.numeric}});const Gn={millisecond:{common:!0,size:1,steps:1e3},second:{common:!0,size:1e3,steps:60},minute:{common:!0,size:6e4,steps:60},hour:{common:!0,size:36e5,steps:24},day:{common:!0,size:864e5,steps:30},week:{common:!1,size:6048e5,steps:4},month:{common:!0,size:2628e6,steps:12},quarter:{common:!1,size:7884e6,steps:4},year:{common:!0,size:3154e7}},ht=Object.keys(Gn);function Xo(e,t){return e-t}function qo(e,t){if(B(t))return null;const n=e._adapter,{parser:i,round:s,isoWeekday:o}=e._parseOpts;let r=t;return typeof i=="function"&&(r=i(r)),vt(r)||(r=typeof i=="string"?n.parse(r,i):n.parse(r)),r===null?null:(s&&(r=s==="week"&&(en(o)||o===!0)?n.startOf(r,"isoWeek",o):n.startOf(r,s)),+r)}function Ko(e,t,n,i){const s=ht.length;for(let o=ht.indexOf(e);o<s-1;++o){const r=Gn[ht[o]],a=r.steps?r.steps:Number.MAX_SAFE_INTEGER;if(r.common&&Math.ceil((n-t)/(a*r.size))<=i)return ht[o]}return ht[s-1]}function up(e,t,n,i,s){for(let o=ht.length-1;o>=ht.indexOf(n);o--){const r=ht[o];if(Gn[r].common&&e._adapter.diff(s,i,r)>=t-1)return r}return ht[n?ht.indexOf(n):0]}function dp(e){for(let t=ht.indexOf(e)+1,n=ht.length;t<n;++t)if(Gn[ht[t]].common)return ht[t]}function Go(e,t,n){if(!n)e[t]=!0;else if(n.length){const{lo:i,hi:s}=Ki(n,t),o=n[i]>=t?n[i]:n[s];e[o]=!0}}function fp(e,t,n,i){const s=e._adapter,o=+s.startOf(t[0].value,i),r=t[t.length-1].value;let a,l;for(a=o;a<=r;a=+s.add(a,1,i))l=n[a],l>=0&&(t[l].major=!0);return t}function Jo(e,t,n){const i=[],s={},o=t.length;let r,a;for(r=0;r<o;++r)a=t[r],s[a]=r,i.push({value:a,major:!1});return o===0||!n?i:fp(e,i,s,n)}class Wn extends Ee{constructor(t){super(t),this._cache={data:[],labels:[],all:[]},this._unit="day",this._majorUnit=void 0,this._offsets={},this._normalized=!1,this._parseOpts=void 0}init(t,n={}){const i=t.time||(t.time={}),s=this._adapter=new bd._date(t.adapters.date);s.init(n),Ue(i.displayFormats,s.formats()),this._parseOpts={parser:i.parser,round:i.round,isoWeekday:i.isoWeekday},super.init(t),this._normalized=n.normalized}parse(t,n){return t===void 0?null:qo(this,t)}beforeLayout(){super.beforeLayout(),this._cache={data:[],labels:[],all:[]}}determineDataLimits(){const t=this.options,n=this._adapter,i=t.time.unit||"day";let{min:s,max:o,minDefined:r,maxDefined:a}=this.getUserBounds();function l(c){!r&&!isNaN(c.min)&&(s=Math.min(s,c.min)),!a&&!isNaN(c.max)&&(o=Math.max(o,c.max))}(!r||!a)&&(l(this._getLabelBounds()),(t.bounds!=="ticks"||t.ticks.source!=="labels")&&l(this.getMinMax(!1))),s=vt(s)&&!isNaN(s)?s:+n.startOf(Date.now(),i),o=vt(o)&&!isNaN(o)?o:+n.endOf(Date.now(),i)+1,this.min=Math.min(s,o-1),this.max=Math.max(s+1,o)}_getLabelBounds(){const t=this.getLabelTimestamps();let n=Number.POSITIVE_INFINITY,i=Number.NEGATIVE_INFINITY;return t.length&&(n=t[0],i=t[t.length-1]),{min:n,max:i}}buildTicks(){const t=this.options,n=t.time,i=t.ticks,s=i.source==="labels"?this.getLabelTimestamps():this._generate();t.bounds==="ticks"&&s.length&&(this.min=this._userMin||s[0],this.max=this._userMax||s[s.length-1]);const o=this.min,r=this.max,a=Bh(s,o,r);return this._unit=n.unit||(i.autoSkip?Ko(n.minUnit,this.min,this.max,this._getLabelCapacity(o)):up(this,a.length,n.minUnit,this.min,this.max)),this._majorUnit=!i.major.enabled||this._unit==="year"?void 0:dp(this._unit),this.initOffsets(s),t.reverse&&a.reverse(),Jo(this,a,this._majorUnit)}afterAutoSkip(){this.options.offsetAfterAutoskip&&this.initOffsets(this.ticks.map(t=>+t.value))}initOffsets(t=[]){let n=0,i=0,s,o;this.options.offset&&t.length&&(s=this.getDecimalForValue(t[0]),t.length===1?n=1-s:n=(this.getDecimalForValue(t[1])-s)/2,o=this.getDecimalForValue(t[t.length-1]),t.length===1?i=o:i=(o-this.getDecimalForValue(t[t.length-2]))/2);const r=t.length<3?.5:.25;n=rt(n,0,r),i=rt(i,0,r),this._offsets={start:n,end:i,factor:1/(n+1+i)}}_generate(){const t=this._adapter,n=this.min,i=this.max,s=this.options,o=s.time,r=o.unit||Ko(o.minUnit,n,i,this._getLabelCapacity(n)),a=j(s.ticks.stepSize,1),l=r==="week"?o.isoWeekday:!1,c=en(l)||l===!0,h={};let u=n,d,f;if(c&&(u=+t.startOf(u,"isoWeek",l)),u=+t.startOf(u,c?"day":r),t.diff(i,n,r)>1e5*a)throw new Error(n+" and "+i+" are too far apart with stepSize of "+a+" "+r);const g=s.ticks.source==="data"&&this.getDataTimestamps();for(d=u,f=0;d<i;d=+t.add(d,a,r),f++)Go(h,d,g);return(d===i||s.bounds==="ticks"||f===1)&&Go(h,d,g),Object.keys(h).sort(Xo).map(m=>+m)}getLabelForValue(t){const n=this._adapter,i=this.options.time;return i.tooltipFormat?n.format(t,i.tooltipFormat):n.format(t,i.displayFormats.datetime)}format(t,n){const s=this.options.time.displayFormats,o=this._unit,r=n||s[o];return this._adapter.format(t,r)}_tickFormatFunction(t,n,i,s){const o=this.options,r=o.ticks.callback;if(r)return Y(r,[t,n,i],this);const a=o.time.displayFormats,l=this._unit,c=this._majorUnit,h=l&&a[l],u=c&&a[c],d=i[n],f=c&&u&&d&&d.major;return this._adapter.format(t,s||(f?u:h))}generateTickLabels(t){let n,i,s;for(n=0,i=t.length;n<i;++n)s=t[n],s.label=this._tickFormatFunction(s.value,n,t)}getDecimalForValue(t){return t===null?NaN:(t-this.min)/(this.max-this.min)}getPixelForValue(t){const n=this._offsets,i=this.getDecimalForValue(t);return this.getPixelForDecimal((n.start+i)*n.factor)}getValueForPixel(t){const n=this._offsets,i=this.getDecimalForPixel(t)/n.factor-n.end;return this.min+i*(this.max-this.min)}_getLabelSize(t){const n=this.options.ticks,i=this.ctx.measureText(t).width,s=ae(this.isHorizontal()?n.maxRotation:n.minRotation),o=Math.cos(s),r=Math.sin(s),a=this._resolveTickFontOptions(0).size;return{w:i*o+a*r,h:i*r+a*o}}_getLabelCapacity(t){const n=this.options.time,i=n.displayFormats,s=i[n.unit]||i.millisecond,o=this._tickFormatFunction(t,0,Jo(this,[t],this._majorUnit),s),r=this._getLabelSize(o),a=Math.floor(this.isHorizontal()?this.width/r.w:this.height/r.h)-1;return a>0?a:1}getDataTimestamps(){let t=this._cache.data||[],n,i;if(t.length)return t;const s=this.getMatchingVisibleMetas();if(this._normalized&&s.length)return this._cache.data=s[0].controller.getAllParsedValues(this);for(n=0,i=s.length;n<i;++n)t=t.concat(s[n].controller.getAllParsedValues(this));return this._cache.data=this.normalize(t)}getLabelTimestamps(){const t=this._cache.labels||[];let n,i;if(t.length)return t;const s=this.getLabels();for(n=0,i=s.length;n<i;++n)t.push(qo(this,s[n]));return this._cache.labels=this._normalized?t:this.normalize(t)}normalize(t){return Gr(t.sort(Xo))}}R(Wn,"id","time"),R(Wn,"defaults",{bounds:"data",adapters:{},time:{parser:!1,unit:!1,round:!1,isoWeekday:!1,minUnit:"millisecond",displayFormats:{}},ticks:{source:"auto",callback:!1,major:{enabled:!1}}});function An(e,t,n){let i=0,s=e.length-1,o,r,a,l;n?(t>=e[i].pos&&t<=e[s].pos&&({lo:i,hi:s}=le(e,"pos",t)),{pos:o,time:a}=e[i],{pos:r,time:l}=e[s]):(t>=e[i].time&&t<=e[s].time&&({lo:i,hi:s}=le(e,"time",t)),{time:o,pos:a}=e[i],{time:r,pos:l}=e[s]);const c=r-o;return c?a+(l-a)*(t-o)/c:a}class Zo extends Wn{constructor(t){super(t),this._table=[],this._minPos=void 0,this._tableRange=void 0}initOffsets(){const t=this._getTimestampsForTable(),n=this._table=this.buildLookupTable(t);this._minPos=An(n,this.min),this._tableRange=An(n,this.max)-this._minPos,super.initOffsets(t)}buildLookupTable(t){const{min:n,max:i}=this,s=[],o=[];let r,a,l,c,h;for(r=0,a=t.length;r<a;++r)c=t[r],c>=n&&c<=i&&s.push(c);if(s.length<2)return[{time:n,pos:0},{time:i,pos:1}];for(r=0,a=s.length;r<a;++r)h=s[r+1],l=s[r-1],c=s[r],Math.round((h+l)/2)!==c&&o.push({time:c,pos:r/(a-1)});return o}_generate(){const t=this.min,n=this.max;let i=super.getDataTimestamps();return(!i.includes(t)||!i.length)&&i.splice(0,0,t),(!i.includes(n)||i.length===1)&&i.push(n),i.sort((s,o)=>s-o)}_getTimestampsForTable(){let t=this._cache.all||[];if(t.length)return t;const n=this.getDataTimestamps(),i=this.getLabelTimestamps();return n.length&&i.length?t=this.normalize(n.concat(i)):t=n.length?n:i,t=this._cache.all=t,t}getDecimalForValue(t){return(An(this._table,t)-this._minPos)/this._tableRange}getValueForPixel(t){const n=this._offsets,i=this.getDecimalForPixel(t)/n.factor-n.end;return An(this._table,i*this._tableRange+this._minPos,!0)}}R(Zo,"id","timeseries"),R(Zo,"defaults",Wn.defaults);var ie={},Qo;function pp(){if(Qo)return ie;Qo=1,Object.defineProperty(ie,"__esModule",{value:!0}),ie.cartesianProductGenerator=ie.cartesianProduct=void 0;function e(...i){if(!Array.isArray(i))throw new TypeError("Please, send an array.");const[s,o,...r]=i,a=n(s,o);return r.length?e(a,...r):a}ie.cartesianProduct=e;function*t(...i){if(!Array.isArray(i))throw new TypeError("Please, send an array.");const[s,o,...r]=i,a=n(s,o);yield a,r.length&&(yield*t(a,...r))}ie.cartesianProductGenerator=t;function n(i,s){const o=[];for(let r=0;r<i.length;r++){if(!s){o.push([i[r]]);continue}for(let a=0;a<s.length;a++)Array.isArray(i[r])?o.push([...i[r],s[a]]):o.push([i[r],s[a]])}return o}return ie}var as=pp();const gp=function(e){let t=0;for(let i=0;i<e.length;i++)t=e.charCodeAt(i)+((t<<5)-t);let n="#";for(let i=0;i<3;i++){const o="00"+(t>>i*8&255).toString(16);n+=o.substring(o.length-2)}return n};function Rg(e,t=(n,i)=>{}){const n=new Map;for(const[i,s]of e){const o=new Map;for(const[r,a]of s){const l=new Map;for(const[c,h]of a){const u=t(r,h);if(u){l.set(c,{tooltip:u});continue}l.set(c,{})}o.set(r,l)}n.set(i,o)}return n}function Lg(e){const t=new Map;return e.forEach(n=>{const i=t.get(n.nren);(!i||i.year<n.year)&&t.set(n.nren,n)}),Array.from(t.values())}function Fg(e){return e.match(/^[a-zA-Z]+:\/\//)?e:"https://"+e}const Ig=e=>{const t={};return!e.urls&&!e.url||(e.urls&&e.urls.forEach(n=>{t[n]=n}),e.url&&(t[e.url]=e.url)),t};function jg(e){const t=new Map;return e.forEach(n=>{let i=t.get(n.nren);i||(i=new Map);let s=i.get(n.year);s||(s=[]),s.push(n),i.set(n.year,s),t.set(n.nren,i)}),t}function Te(e){const t=new Map;return e.forEach(n=>{let i=t.get(n.nren);i||(i=new Map),i.set(n.year,n),t.set(n.nren,i)}),t}function $g(e,t){const n=new Map;return e.forEach((i,s)=>{const o=new Map;Array.from(i.keys()).sort((a,l)=>l-a).forEach(a=>{const l=i.get(a),c=o.get(a)||{};t(c,l),Object.keys(c).length>0&&o.set(a,c)}),n.set(s,o)}),n}function zg(e,t,n=!1){const i=new Map;return e.forEach(s=>{const o=a=>{let l=i.get(s.nren);l||(l=new Map);let c=l.get(a);c||(c=new Map),c.set(s.year,s),l.set(a,c),i.set(s.nren,l)};let r=s[t];typeof r=="boolean"&&(r=r?"True":"False"),n&&r==null&&(r=`${r}`),Array.isArray(r)?r.forEach(o):o(r)}),i}function Ng(e,t,n,i=!0,s){const o=new Map,r=(a,l,c)=>{a.forEach(h=>{let u=l?h[l]:c;typeof u=="boolean"&&(u=u?"True":"False");const d=h.nren,f=h.year,g=o.get(d)||new Map,m=g.get(f)||new Map,p=m.get(u)||{},b=h[c];if(b==null)return;const x=i?b:c,v=p[x]||{};v[`${b}`]=b,p[x]=v,m.set(u,p),g.set(f,m),o.set(d,g)})};if(n)for(const a of t)r(e,n,a);else for(const a of t)r(e,void 0,a);return o}const Bg=e=>{function t(){const u=(f,g,m)=>"#"+[f,g,m].map(p=>{const b=p.toString(16);return b.length===1?"0"+b:b}).join(""),d=new Map;return d.set("client_institutions",u(157,40,114)),d.set("commercial",u(241,224,79)),d.set("european_funding",u(219,42,76)),d.set("gov_public_bodies",u(237,141,24)),d.set("other",u(137,166,121)),d}const n=Te(e),i=t(),s=[...new Set(e.map(u=>u.year))].sort(),o=[...new Set(e.map(u=>u.nren))].sort(),r={client_institutions:"Client Institutions",commercial:"Commercial",european_funding:"European Funding",gov_public_bodies:"Government/Public Bodies",other:"Other"},a=Object.keys(r),l=as.cartesianProduct(Object.keys(r),s).reduce((u,[d,f])=>{const g=`${d},${f}`;return u[g]={},u},{});return n.forEach((u,d)=>{u.forEach((f,g)=>{const m=a.map(b=>f[b]||0);if(m.reduce((b,x)=>b+x,0)!==0)for(const b of a){const x=`${b},${g}`,v=a.indexOf(b);l[x][d]=m[v]}})}),{datasets:Array.from(Object.entries(l)).map(([u,d])=>{const[f,g]=u.split(",");return{backgroundColor:i.get(f)||"black",label:r[f]+" ("+g+")",data:o.map(p=>d[p]),stack:g,borderSkipped:!0,barPercentage:.8,borderWidth:.5,categoryPercentage:.8,hidden:!1,datalabels:{display:f==a[0],formatter:function(p,b){return b.dataset.stack},font:{family:'"Open Sans", sans-serif',size:16,weight:"700"},anchor:"start",align:"end",offset:function(p){return p.chart.chartArea.width}}}}),labels:o.map(u=>u.toString())}};function Hg(e,t){const n=[...new Set(e.map(r=>r.year))].sort(),i=[...new Set(e.map(r=>r.nren))].sort(),s=Te(e);return{datasets:i.map(r=>{const a=gp(r);return{backgroundColor:a,borderColor:a,data:n.map(l=>{const c=s.get(r);if(!c)return null;const h=c.get(l);return h?h[t]:null}),label:r,hidden:!1}}),labels:n.map(r=>r.toString())}}const Wg=(e,t,n)=>{let i;t?i=["Technical FTE","Non-technical FTE"]:i=["Permanent FTE","Subcontracted FTE"];const s={"Technical FTE":"technical_fte","Non-technical FTE":"non_technical_fte","Permanent FTE":"permanent_fte","Subcontracted FTE":"subcontracted_fte"},[o,r]=i,[a,l]=[s[o],s[r]];function c(p){const b=p[a],x=p[l],v=b+x,_=(b/v||0)*100,y=(x/v||0)*100,w={};return w[o]=Math.round(Math.floor(_*100))/100,w[r]=Math.round(Math.floor(y*100))/100,w}const h=Te(e),u=[n].sort(),d=[...new Set(e.map(p=>p.nren))].sort((p,b)=>p.localeCompare(b));return{datasets:as.cartesianProduct(i,u).map(function([p,b]){let x="";return p==="Technical FTE"?x="rgba(40, 40, 250, 0.8)":p==="Permanent FTE"?x="rgba(159, 129, 235, 1)":p==="Subcontracted FTE"?x="rgba(173, 216, 229, 1)":p==="Non-technical FTE"&&(x="rgba(116, 216, 242, 0.54)"),{backgroundColor:x,label:`${p} (${b})`,data:d.map(v=>{const _=h.get(v).get(b);return _?c(_)[p]:0}),stack:b,borderRadius:10,borderSkipped:!0,barPercentage:.8,borderWidth:.5,categoryPercentage:.8,hidden:!1}}),labels:d}},Vg=(e,t)=>{const n=["Research & Education","Commodity"],i={"Research & Education":"r_and_e_percentage",Commodity:"commodity_percentage"},s=Te(e),o=[t].sort(),r=[...new Set(e.map(h=>h.nren))].sort((h,u)=>h.localeCompare(u));return{datasets:as.cartesianProduct(n,o).map(function([h,u]){let d="";return h==="Research & Education"?d="rgba(40, 40, 250, 0.8)":h==="Commodity"&&(d="rgba(116, 216, 242, 0.54)"),{backgroundColor:d,label:`${h} (${u})`,data:r.map(f=>{const g=s.get(f).get(u);return g?g[i[h]]:0}),stack:u,borderRadius:10,borderSkipped:!0,barPercentage:.8,borderWidth:.5,categoryPercentage:.8,hidden:!1}}),labels:r}},Yg=(e,t)=>{const n=["Permanent FTE","Subcontracted FTE"],i={"Technical FTE":"technical_fte","Non-technical FTE":"non_technical_fte","Permanent FTE":"permanent_fte","Subcontracted FTE":"subcontracted_fte"},[s,o]=n,[r,a]=[i[s],i[o]],l=Te(e),c=[...new Set(e.map(f=>f.nren))].sort((f,g)=>f.localeCompare(g));function h(f,g){return{backgroundColor:"rgba(219, 42, 76, 1)",label:`Number of FTEs (${f})`,data:c.map(p=>{const b=l.get(p).get(f);return b?(b[r]??0)+(b[a]??0):0}),stack:`${f}`,borderRadius:10,borderSkipped:!0,barPercentage:.8,borderWidth:.5,categoryPercentage:.8,hidden:!1,datalabels:{display:!0,formatter:function(p,b){return b.dataset.stack},font:{family:'"Open Sans", sans-serif',size:16,weight:"700"},anchor:"start",align:"end",offset:function(p){return p.chart.chartArea.width}}}}return{datasets:t.sort().map(h),labels:c}},Ug=(e,t,n)=>{const i=Te(e),s=[...new Set(e.map(l=>l.nren))].sort((l,c)=>l.localeCompare(c)),o=[...new Set(e.map(l=>l.year))].sort();function r(l,c){return{backgroundColor:"rgba(219, 42, 76, 1)",label:`${n} (${l})`,data:s.map(u=>{const d=i.get(u).get(l);return d?d[t]??0:0}),stack:`${l}`,borderRadius:10,borderSkipped:!0,barPercentage:.8,borderWidth:.5,categoryPercentage:.8,hidden:!1,datalabels:{display:!0,formatter:function(u,d){return d.dataset.stack},font:{family:'"Open Sans", sans-serif',size:16,weight:"700"},anchor:"start",align:"end",offset:function(u){return u.chart.chartArea.width}}}}return{datasets:o.sort().map(r),labels:s}},mp=e=>{const t=wt.c(41),{activeCategory:n}=e,i=nl();let s;t[0]!==n||t[1]!==i?(s=()=>i(n===G.Organisation?".":"/funding"),t[0]=n,t[1]=i,t[2]=s):s=t[2];const o=n===G.Organisation;let r;t[3]===Symbol.for("react.memo_cache_sentinel")?(r=M.jsx("span",{children:G.Organisation}),t[3]=r):r=t[3];let a;t[4]!==s||t[5]!==o?(a=M.jsx(Ft,{onClick:s,variant:"nav-box",active:o,children:r}),t[4]=s,t[5]=o,t[6]=a):a=t[6];let l;t[7]!==n||t[8]!==i?(l=()=>i(n===G.Policy?".":"/corporate-strategy"),t[7]=n,t[8]=i,t[9]=l):l=t[9];const c=n===G.Policy;let h;t[10]===Symbol.for("react.memo_cache_sentinel")?(h=M.jsx("span",{children:G.Policy}),t[10]=h):h=t[10];let u;t[11]!==l||t[12]!==c?(u=M.jsx(Ft,{onClick:l,variant:"nav-box",active:c,children:h}),t[11]=l,t[12]=c,t[13]=u):u=t[13];let d;t[14]!==n||t[15]!==i?(d=()=>i(n===G.ConnectedUsers?".":"/institutions-urls"),t[14]=n,t[15]=i,t[16]=d):d=t[16];const f=n===G.ConnectedUsers;let g;t[17]===Symbol.for("react.memo_cache_sentinel")?(g=M.jsx("span",{children:G.ConnectedUsers}),t[17]=g):g=t[17];let m;t[18]!==f||t[19]!==d?(m=M.jsx(Ft,{onClick:d,variant:"nav-box",active:f,children:g}),t[18]=f,t[19]=d,t[20]=m):m=t[20];let p;t[21]!==n||t[22]!==i?(p=()=>i(n===G.Network?".":"/dark-fibre-lease"),t[21]=n,t[22]=i,t[23]=p):p=t[23];const b=n===G.Network;let x;t[24]===Symbol.for("react.memo_cache_sentinel")?(x=M.jsx("span",{children:G.Network}),t[24]=x):x=t[24];let v;t[25]!==p||t[26]!==b?(v=M.jsx(Ft,{onClick:p,variant:"nav-box",active:b,children:x}),t[25]=p,t[26]=b,t[27]=v):v=t[27];let _;t[28]!==n||t[29]!==i?(_=()=>i(n===G.Services?".":"/network-services"),t[28]=n,t[29]=i,t[30]=_):_=t[30];const y=n===G.Services;let w;t[31]===Symbol.for("react.memo_cache_sentinel")?(w=M.jsx("span",{children:G.Services}),t[31]=w):w=t[31];let k;t[32]!==_||t[33]!==y?(k=M.jsx(Ft,{onClick:_,variant:"nav-box",active:y,children:w}),t[32]=_,t[33]=y,t[34]=k):k=t[34];let S;return t[35]!==m||t[36]!==v||t[37]!==k||t[38]!==a||t[39]!==u?(S=M.jsx(ur,{children:M.jsx(se,{children:M.jsxs(Li,{className:"navbox-bar gap-2 m-3",children:[a,u,m,v,k]})})}),t[35]=m,t[36]=v,t[37]=k,t[38]=a,t[39]=u,t[40]=S):S=t[40],S},bp=()=>{const e=wt.c(1);let t;return e[0]===Symbol.for("react.memo_cache_sentinel")?(t=M.jsx(rn,{children:M.jsx(il,{sidebar:!0})}),e[0]=t):t=e[0],t},xp=()=>{const e=wt.c(1);let t;return e[0]===Symbol.for("react.memo_cache_sentinel")?(t=M.jsx(rn,{children:M.jsx(sl,{sidebar:!0})}),e[0]=t):t=e[0],t},yp=()=>{const e=wt.c(1);let t;return e[0]===Symbol.for("react.memo_cache_sentinel")?(t=M.jsx(rn,{children:M.jsx(ol,{sidebar:!0})}),e[0]=t):t=e[0],t},vp=()=>{const e=wt.c(1);let t;return e[0]===Symbol.for("react.memo_cache_sentinel")?(t=M.jsx(rn,{children:M.jsx(rl,{sidebar:!0})}),e[0]=t):t=e[0],t},_p=()=>{const e=wt.c(1);let t;return e[0]===Symbol.for("react.memo_cache_sentinel")?(t=M.jsx(rn,{children:M.jsx(al,{sidebar:!0})}),e[0]=t):t=e[0],t};function Vn(e){return Array.isArray(e)?e.map(Vn).join(", "):typeof e=="object"?Object.entries(e).map(([t,n])=>`${t}: ${Vn(n)}`).join(", "):e}function wp(e,t){return e.map(n=>t.map(i=>{let s=n[i];return s===null?"":(s=Vn(s),typeof s=="string"?`"${s.replace(/"/g,'""')}"`:s)}).join(","))}function Sp(e){if(!e.length)return"";const t=Object.keys(e[0]),n=wp(e,t);return[t.join(","),...n].join(`\r +`)}function kp(e,t="Sheet1"){const n=e.map(l=>{const c={};for(const h in l)c[h]=Vn(l[h]);return c}),i=ti.json_to_sheet(n),s=ti.book_new();ti.book_append_sheet(s,i,t);const o=pl(s,{bookType:"xlsx",type:"binary"}),r=new ArrayBuffer(o.length),a=new Uint8Array(r);for(let l=0;l<o.length;l++)a[l]=o.charCodeAt(l)&255;return new Blob([r],{type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8"})}const tr=({data:e,filename:t,exportType:n})=>{const i=()=>{let o,r,a;switch(n){case ve.EXCEL:{o=kp(e),r="xlsx",a="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8";break}case ve.CSV:default:{o=Sp(e),r="csv",a="text/csv;charset=UTF-8";break}}const l=new Blob([o],{type:a});t=t.endsWith(r)?t:`${t}.${r}`;const c=document.createElement("a");c.href=URL.createObjectURL(l),c.download=t,document.body.appendChild(c),c.click(),document.body.removeChild(c)};let s="downloadbutton";return n===ve.CSV?s+=" downloadcsv":n===ve.EXCEL&&(s+=" downloadexcel"),M.jsxs("button",{className:s,onClick:i,children:[n," ",M.jsx(pr,{})]})};function Mp(e,t){if(e.match(/^[a-z]+:\/\//i))return e;if(e.match(/^\/\//))return window.location.protocol+e;if(e.match(/^[a-z]+:/i))return e;const n=document.implementation.createHTMLDocument(),i=n.createElement("base"),s=n.createElement("a");return n.head.appendChild(i),n.body.appendChild(s),t&&(i.href=t),s.href=e,s.href}const Cp=(()=>{let e=0;const t=()=>`0000${(Math.random()*36**4<<0).toString(36)}`.slice(-4);return()=>(e+=1,`u${t()}${e}`)})();function Yt(e){const t=[];for(let n=0,i=e.length;n<i;n++)t.push(e[n]);return t}let xe=null;function Aa(e={}){return xe||(e.includeStyleProperties?(xe=e.includeStyleProperties,xe):(xe=Yt(window.getComputedStyle(document.documentElement)),xe))}function Yn(e,t){const i=(e.ownerDocument.defaultView||window).getComputedStyle(e).getPropertyValue(t);return i?parseFloat(i.replace("px","")):0}function Pp(e){const t=Yn(e,"border-left-width"),n=Yn(e,"border-right-width");return e.clientWidth+t+n}function Op(e){const t=Yn(e,"border-top-width"),n=Yn(e,"border-bottom-width");return e.clientHeight+t+n}function Ea(e,t={}){const n=t.width||Pp(e),i=t.height||Op(e);return{width:n,height:i}}function Dp(){let e,t;try{t=process}catch{}const n=t&&t.env?t.env.devicePixelRatio:null;return n&&(e=parseInt(n,10),Number.isNaN(e)&&(e=1)),e||window.devicePixelRatio||1}const pt=16384;function Ap(e){(e.width>pt||e.height>pt)&&(e.width>pt&&e.height>pt?e.width>e.height?(e.height*=pt/e.width,e.width=pt):(e.width*=pt/e.height,e.height=pt):e.width>pt?(e.height*=pt/e.width,e.width=pt):(e.width*=pt/e.height,e.height=pt))}function Un(e){return new Promise((t,n)=>{const i=new Image;i.onload=()=>{i.decode().then(()=>{requestAnimationFrame(()=>t(i))})},i.onerror=n,i.crossOrigin="anonymous",i.decoding="async",i.src=e})}async function Ep(e){return Promise.resolve().then(()=>new XMLSerializer().serializeToString(e)).then(encodeURIComponent).then(t=>`data:image/svg+xml;charset=utf-8,${t}`)}async function Tp(e,t,n){const i="http://www.w3.org/2000/svg",s=document.createElementNS(i,"svg"),o=document.createElementNS(i,"foreignObject");return s.setAttribute("width",`${t}`),s.setAttribute("height",`${n}`),s.setAttribute("viewBox",`0 0 ${t} ${n}`),o.setAttribute("width","100%"),o.setAttribute("height","100%"),o.setAttribute("x","0"),o.setAttribute("y","0"),o.setAttribute("externalResourcesRequired","true"),s.appendChild(o),o.appendChild(e),Ep(s)}const ft=(e,t)=>{if(e instanceof t)return!0;const n=Object.getPrototypeOf(e);return n===null?!1:n.constructor.name===t.name||ft(n,t)};function Rp(e){const t=e.getPropertyValue("content");return`${e.cssText} content: '${t.replace(/'|"/g,"")}';`}function Lp(e,t){return Aa(t).map(n=>{const i=e.getPropertyValue(n),s=e.getPropertyPriority(n);return`${n}: ${i}${s?" !important":""};`}).join(" ")}function Fp(e,t,n,i){const s=`.${e}:${t}`,o=n.cssText?Rp(n):Lp(n,i);return document.createTextNode(`${s}{${o}}`)}function er(e,t,n,i){const s=window.getComputedStyle(e,n),o=s.getPropertyValue("content");if(o===""||o==="none")return;const r=Cp();try{t.className=`${t.className} ${r}`}catch{return}const a=document.createElement("style");a.appendChild(Fp(r,n,s,i)),t.appendChild(a)}function Ip(e,t,n){er(e,t,":before",n),er(e,t,":after",n)}const nr="application/font-woff",ir="image/jpeg",jp={woff:nr,woff2:nr,ttf:"application/font-truetype",eot:"application/vnd.ms-fontobject",png:"image/png",jpg:ir,jpeg:ir,gif:"image/gif",tiff:"image/tiff",svg:"image/svg+xml",webp:"image/webp"};function $p(e){const t=/\.([^./]*?)$/g.exec(e);return t?t[1]:""}function ls(e){const t=$p(e).toLowerCase();return jp[t]||""}function zp(e){return e.split(/,/)[1]}function Ri(e){return e.search(/^(data:)/)!==-1}function Np(e,t){return`data:${t};base64,${e}`}async function Ta(e,t,n){const i=await fetch(e,t);if(i.status===404)throw new Error(`Resource "${i.url}" not found`);const s=await i.blob();return new Promise((o,r)=>{const a=new FileReader;a.onerror=r,a.onloadend=()=>{try{o(n({res:i,result:a.result}))}catch(l){r(l)}},a.readAsDataURL(s)})}const vi={};function Bp(e,t,n){let i=e.replace(/\?.*/,"");return n&&(i=e),/ttf|otf|eot|woff2?/i.test(i)&&(i=i.replace(/.*\//,"")),t?`[${t}]${i}`:i}async function cs(e,t,n){const i=Bp(e,t,n.includeQueryParams);if(vi[i]!=null)return vi[i];n.cacheBust&&(e+=(/\?/.test(e)?"&":"?")+new Date().getTime());let s;try{const o=await Ta(e,n.fetchRequestInit,({res:r,result:a})=>(t||(t=r.headers.get("Content-Type")||""),zp(a)));s=Np(o,t)}catch(o){s=n.imagePlaceholder||"";let r=`Failed to fetch resource: ${e}`;o&&(r=typeof o=="string"?o:o.message),r&&console.warn(r)}return vi[i]=s,s}async function Hp(e){const t=e.toDataURL();return t==="data:,"?e.cloneNode(!1):Un(t)}async function Wp(e,t){if(e.currentSrc){const o=document.createElement("canvas"),r=o.getContext("2d");o.width=e.clientWidth,o.height=e.clientHeight,r==null||r.drawImage(e,0,0,o.width,o.height);const a=o.toDataURL();return Un(a)}const n=e.poster,i=ls(n),s=await cs(n,i,t);return Un(s)}async function Vp(e,t){var n;try{if(!((n=e==null?void 0:e.contentDocument)===null||n===void 0)&&n.body)return await Jn(e.contentDocument.body,t,!0)}catch{}return e.cloneNode(!1)}async function Yp(e,t){return ft(e,HTMLCanvasElement)?Hp(e):ft(e,HTMLVideoElement)?Wp(e,t):ft(e,HTMLIFrameElement)?Vp(e,t):e.cloneNode(Ra(e))}const Up=e=>e.tagName!=null&&e.tagName.toUpperCase()==="SLOT",Ra=e=>e.tagName!=null&&e.tagName.toUpperCase()==="SVG";async function Xp(e,t,n){var i,s;if(Ra(t))return t;let o=[];return Up(e)&&e.assignedNodes?o=Yt(e.assignedNodes()):ft(e,HTMLIFrameElement)&&(!((i=e.contentDocument)===null||i===void 0)&&i.body)?o=Yt(e.contentDocument.body.childNodes):o=Yt(((s=e.shadowRoot)!==null&&s!==void 0?s:e).childNodes),o.length===0||ft(e,HTMLVideoElement)||await o.reduce((r,a)=>r.then(()=>Jn(a,n)).then(l=>{l&&t.appendChild(l)}),Promise.resolve()),t}function qp(e,t,n){const i=t.style;if(!i)return;const s=window.getComputedStyle(e);s.cssText?(i.cssText=s.cssText,i.transformOrigin=s.transformOrigin):Aa(n).forEach(o=>{let r=s.getPropertyValue(o);o==="font-size"&&r.endsWith("px")&&(r=`${Math.floor(parseFloat(r.substring(0,r.length-2)))-.1}px`),ft(e,HTMLIFrameElement)&&o==="display"&&r==="inline"&&(r="block"),o==="d"&&t.getAttribute("d")&&(r=`path(${t.getAttribute("d")})`),i.setProperty(o,r,s.getPropertyPriority(o))})}function Kp(e,t){ft(e,HTMLTextAreaElement)&&(t.innerHTML=e.value),ft(e,HTMLInputElement)&&t.setAttribute("value",e.value)}function Gp(e,t){if(ft(e,HTMLSelectElement)){const n=t,i=Array.from(n.children).find(s=>e.value===s.getAttribute("value"));i&&i.setAttribute("selected","")}}function Jp(e,t,n){return ft(t,Element)&&(qp(e,t,n),Ip(e,t,n),Kp(e,t),Gp(e,t)),t}async function Zp(e,t){const n=e.querySelectorAll?e.querySelectorAll("use"):[];if(n.length===0)return e;const i={};for(let o=0;o<n.length;o++){const a=n[o].getAttribute("xlink:href");if(a){const l=e.querySelector(a),c=document.querySelector(a);!l&&c&&!i[a]&&(i[a]=await Jn(c,t,!0))}}const s=Object.values(i);if(s.length){const o="http://www.w3.org/1999/xhtml",r=document.createElementNS(o,"svg");r.setAttribute("xmlns",o),r.style.position="absolute",r.style.width="0",r.style.height="0",r.style.overflow="hidden",r.style.display="none";const a=document.createElementNS(o,"defs");r.appendChild(a);for(let l=0;l<s.length;l++)a.appendChild(s[l]);e.appendChild(r)}return e}async function Jn(e,t,n){return!n&&t.filter&&!t.filter(e)?null:Promise.resolve(e).then(i=>Yp(i,t)).then(i=>Xp(e,i,t)).then(i=>Jp(e,i,t)).then(i=>Zp(i,t))}const La=/url\((['"]?)([^'"]+?)\1\)/g,Qp=/url\([^)]+\)\s*format\((["']?)([^"']+)\1\)/g,tg=/src:\s*(?:url\([^)]+\)\s*format\([^)]+\)[,;]\s*)+/g;function eg(e){const t=e.replace(/([.*+?^${}()|\[\]\/\\])/g,"\\$1");return new RegExp(`(url\\(['"]?)(${t})(['"]?\\))`,"g")}function ng(e){const t=[];return e.replace(La,(n,i,s)=>(t.push(s),n)),t.filter(n=>!Ri(n))}async function ig(e,t,n,i,s){try{const o=n?Mp(t,n):t,r=ls(t);let a;return s||(a=await cs(o,r,i)),e.replace(eg(t),`$1${a}$3`)}catch{}return e}function sg(e,{preferredFontFormat:t}){return t?e.replace(tg,n=>{for(;;){const[i,,s]=Qp.exec(n)||[];if(!s)return"";if(s===t)return`src: ${i};`}}):e}function Fa(e){return e.search(La)!==-1}async function Ia(e,t,n){if(!Fa(e))return e;const i=sg(e,n);return ng(i).reduce((o,r)=>o.then(a=>ig(a,r,t,n)),Promise.resolve(i))}async function ye(e,t,n){var i;const s=(i=t.style)===null||i===void 0?void 0:i.getPropertyValue(e);if(s){const o=await Ia(s,null,n);return t.style.setProperty(e,o,t.style.getPropertyPriority(e)),!0}return!1}async function og(e,t){await ye("background",e,t)||await ye("background-image",e,t),await ye("mask",e,t)||await ye("-webkit-mask",e,t)||await ye("mask-image",e,t)||await ye("-webkit-mask-image",e,t)}async function rg(e,t){const n=ft(e,HTMLImageElement);if(!(n&&!Ri(e.src))&&!(ft(e,SVGImageElement)&&!Ri(e.href.baseVal)))return;const i=n?e.src:e.href.baseVal,s=await cs(i,ls(i),t);await new Promise((o,r)=>{e.onload=o,e.onerror=t.onImageErrorHandler?(...l)=>{try{o(t.onImageErrorHandler(...l))}catch(c){r(c)}}:r;const a=e;a.decode&&(a.decode=o),a.loading==="lazy"&&(a.loading="eager"),n?(e.srcset="",e.src=s):e.href.baseVal=s})}async function ag(e,t){const i=Yt(e.childNodes).map(s=>ja(s,t));await Promise.all(i).then(()=>e)}async function ja(e,t){ft(e,Element)&&(await og(e,t),await rg(e,t),await ag(e,t))}function lg(e,t){const{style:n}=e;t.backgroundColor&&(n.backgroundColor=t.backgroundColor),t.width&&(n.width=`${t.width}px`),t.height&&(n.height=`${t.height}px`);const i=t.style;return i!=null&&Object.keys(i).forEach(s=>{n[s]=i[s]}),e}const sr={};async function or(e){let t=sr[e];if(t!=null)return t;const i=await(await fetch(e)).text();return t={url:e,cssText:i},sr[e]=t,t}async function rr(e,t){let n=e.cssText;const i=/url\(["']?([^"')]+)["']?\)/g,o=(n.match(/url\([^)]+\)/g)||[]).map(async r=>{let a=r.replace(i,"$1");return a.startsWith("https://")||(a=new URL(a,e.url).href),Ta(a,t.fetchRequestInit,({result:l})=>(n=n.replace(r,`url(${l})`),[r,l]))});return Promise.all(o).then(()=>n)}function ar(e){if(e==null)return[];const t=[],n=/(\/\*[\s\S]*?\*\/)/gi;let i=e.replace(n,"");const s=new RegExp("((@.*?keyframes [\\s\\S]*?){([\\s\\S]*?}\\s*?)})","gi");for(;;){const l=s.exec(i);if(l===null)break;t.push(l[0])}i=i.replace(s,"");const o=/@import[\s\S]*?url\([^)]*\)[\s\S]*?;/gi,r="((\\s*?(?:\\/\\*[\\s\\S]*?\\*\\/)?\\s*?@media[\\s\\S]*?){([\\s\\S]*?)}\\s*?})|(([\\s\\S]*?){([\\s\\S]*?)})",a=new RegExp(r,"gi");for(;;){let l=o.exec(i);if(l===null){if(l=a.exec(i),l===null)break;o.lastIndex=a.lastIndex}else a.lastIndex=o.lastIndex;t.push(l[0])}return t}async function cg(e,t){const n=[],i=[];return e.forEach(s=>{if("cssRules"in s)try{Yt(s.cssRules||[]).forEach((o,r)=>{if(o.type===CSSRule.IMPORT_RULE){let a=r+1;const l=o.href,c=or(l).then(h=>rr(h,t)).then(h=>ar(h).forEach(u=>{try{s.insertRule(u,u.startsWith("@import")?a+=1:s.cssRules.length)}catch(d){console.error("Error inserting rule from remote css",{rule:u,error:d})}})).catch(h=>{console.error("Error loading remote css",h.toString())});i.push(c)}})}catch(o){const r=e.find(a=>a.href==null)||document.styleSheets[0];s.href!=null&&i.push(or(s.href).then(a=>rr(a,t)).then(a=>ar(a).forEach(l=>{r.insertRule(l,r.cssRules.length)})).catch(a=>{console.error("Error loading remote stylesheet",a)})),console.error("Error inlining remote css file",o)}}),Promise.all(i).then(()=>(e.forEach(s=>{if("cssRules"in s)try{Yt(s.cssRules||[]).forEach(o=>{n.push(o)})}catch(o){console.error(`Error while reading CSS rules from ${s.href}`,o)}}),n))}function hg(e){return e.filter(t=>t.type===CSSRule.FONT_FACE_RULE).filter(t=>Fa(t.style.getPropertyValue("src")))}async function ug(e,t){if(e.ownerDocument==null)throw new Error("Provided element is not within a Document");const n=Yt(e.ownerDocument.styleSheets),i=await cg(n,t);return hg(i)}function $a(e){return e.trim().replace(/["']/g,"")}function dg(e){const t=new Set;function n(i){(i.style.fontFamily||getComputedStyle(i).fontFamily).split(",").forEach(o=>{t.add($a(o))}),Array.from(i.children).forEach(o=>{o instanceof HTMLElement&&n(o)})}return n(e),t}async function fg(e,t){const n=await ug(e,t),i=dg(e);return(await Promise.all(n.filter(o=>i.has($a(o.style.fontFamily))).map(o=>{const r=o.parentStyleSheet?o.parentStyleSheet.href:null;return Ia(o.cssText,r,t)}))).join(` +`)}async function pg(e,t){const n=t.fontEmbedCSS!=null?t.fontEmbedCSS:t.skipFonts?null:await fg(e,t);if(n){const i=document.createElement("style"),s=document.createTextNode(n);i.appendChild(s),e.firstChild?e.insertBefore(i,e.firstChild):e.appendChild(i)}}async function za(e,t={}){const{width:n,height:i}=Ea(e,t),s=await Jn(e,t,!0);return await pg(s,t),await ja(s,t),lg(s,t),await Tp(s,n,i)}async function Na(e,t={}){const{width:n,height:i}=Ea(e,t),s=await za(e,t),o=await Un(s),r=document.createElement("canvas"),a=r.getContext("2d"),l=t.pixelRatio||Dp(),c=t.canvasWidth||n,h=t.canvasHeight||i;return r.width=c*l,r.height=h*l,t.skipAutoScale||Ap(r),r.style.width=`${c}`,r.style.height=`${h}`,t.backgroundColor&&(a.fillStyle=t.backgroundColor,a.fillRect(0,0,r.width,r.height)),a.drawImage(o,0,0,r.width,r.height),r}async function gg(e,t={}){return(await Na(e,t)).toDataURL()}async function mg(e,t={}){return(await Na(e,t)).toDataURL("image/jpeg",t.quality||1)}const bg=e=>{const t=wt.c(17),{filename:n}=e,i=A.useContext(dr),[s,o]=A.useState(!1),r=A.useRef(null);let a;t[0]!==i||t[1]!==n?(a=async v=>{if(i!=null&&i.current){o(!1);const _={transform:"scale(1)","transform-origin":"top left",background:"white"};let y;t:switch(v){case ge.JPEG:{y=await mg(i.current,{quality:.95,style:_});break t}case ge.SVG:{y=await za(i.current,{style:_});break t}case ge.PNG:default:y=await gg(i.current,{style:_})}const w=document.createElement("a");w.href=typeof y=="string"?y:URL.createObjectURL(y),w.download=`${n}.${v}`,document.body.appendChild(w),w.click(),document.body.removeChild(w)}},t[0]=i,t[1]=n,t[2]=a):a=t[2];const l=a;let c;t[3]!==s?(c=()=>{o(!s)},t[3]=s,t[4]=c):c=t[4];const h=c;let u;t[5]===Symbol.for("react.memo_cache_sentinel")?(u=v=>{r.current&&!r.current.contains(v.target)&&o(!1)},t[5]=u):u=t[5];const d=u;let f,g;t[6]===Symbol.for("react.memo_cache_sentinel")?(f=()=>(document.addEventListener("mousedown",d),()=>{document.removeEventListener("mousedown",d)}),g=[],t[6]=f,t[7]=g):(f=t[6],g=t[7]),A.useEffect(f,g);let m;t[8]===Symbol.for("react.memo_cache_sentinel")?(m=M.jsx(pr,{}),t[8]=m):m=t[8];let p;t[9]!==h?(p=M.jsxs("button",{className:"downloadbutton downloadimage",onClick:h,children:["IMAGE ",m]}),t[9]=h,t[10]=p):p=t[10];let b;t[11]!==l||t[12]!==s?(b=s&&M.jsxs("div",{className:"image-options",children:[M.jsx("div",{className:"imageoption downloadpng",onClick:()=>l(ge.PNG),children:M.jsx("span",{children:"PNG"})}),M.jsx("div",{className:"imageoption downloadjpeg",onClick:()=>l(ge.JPEG),children:M.jsx("span",{children:"JPEG"})}),M.jsx("div",{className:"imageoption downloadsvg",onClick:()=>l(ge.SVG),children:M.jsx("span",{children:"SVG"})})]}),t[11]=l,t[12]=s,t[13]=b):b=t[13];let x;return t[14]!==p||t[15]!==b?(x=M.jsxs("div",{className:"image-dropdown",ref:r,children:[p,b]}),t[14]=p,t[15]=b,t[16]=x):x=t[16],x};Ct.defaults.font.size=16;Ct.defaults.font.family="Open Sans";Ct.defaults.font.weight=700;function Xg(e){const t=wt.c(55),{title:n,description:i,filter:s,children:o,category:r,data:a,filename:l}=e,{preview:c,setPreview:h}=A.useContext(ll),u=window.location.origin+window.location.pathname,{trackPageView:d}=cl();let f,g;t[0]!==n||t[1]!==d?(f=()=>{d({documentTitle:n})},g=[d,n],t[0]=n,t[1]=d,t[2]=f,t[3]=g):(f=t[2],g=t[3]),A.useEffect(f,g);let m;t[4]!==r?(m=r===G.Organisation&&M.jsx(bp,{}),t[4]=r,t[5]=m):m=t[5];let p;t[6]!==r?(p=r===G.Policy&&M.jsx(xp,{}),t[6]=r,t[7]=p):p=t[7];let b;t[8]!==r?(b=r===G.Network&&M.jsx(vp,{}),t[8]=r,t[9]=b):b=t[9];let x;t[10]!==r?(x=r===G.ConnectedUsers&&M.jsx(yp,{}),t[10]=r,t[11]=x):x=t[11];let v;t[12]!==r?(v=r===G.Services&&M.jsx(_p,{}),t[12]=r,t[13]=v):v=t[13];let _;t[14]===Symbol.for("react.memo_cache_sentinel")?(_=M.jsx(hl,{type:"data"}),t[14]=_):_=t[14];let y;t[15]!==c||t[16]!==h?(y=c&&M.jsx(se,{className:"preview-banner",children:M.jsxs("span",{children:["You are viewing a preview of the website which includes pre-published survey data. ",M.jsx(ul,{to:u,onClick:()=>h(!1),children:"Click here"})," to deactivate preview mode."]})}),t[15]=c,t[16]=h,t[17]=y):y=t[17];let w;t[18]!==r?(w=M.jsx(mp,{activeCategory:r}),t[18]=r,t[19]=w):w=t[19];let k;t[20]!==n?(k=M.jsx(se,{children:M.jsx("h3",{className:"m-1",children:n})}),t[20]=n,t[21]=k):k=t[21];let S;t[22]!==i?(S=M.jsx(se,{children:M.jsx("p",{className:"p-md-4",children:i})}),t[22]=i,t[23]=S):S=t[23];const C=`${l}.csv`;let D;t[24]!==a||t[25]!==C?(D=M.jsx(tr,{data:a,filename:C,exportType:ve.CSV}),t[24]=a,t[25]=C,t[26]=D):D=t[26];const P=`${l}.xlsx`;let O;t[27]!==a||t[28]!==P?(O=M.jsx(tr,{data:a,filename:P,exportType:ve.EXCEL}),t[27]=a,t[28]=P,t[29]=O):O=t[29];let E;t[30]!==l?(E=M.jsx(bg,{filename:l}),t[30]=l,t[31]=E):E=t[31];let I;t[32]!==D||t[33]!==O||t[34]!==E?(I=M.jsxs(se,{className:"downloadcontainer",children:[D,O,E]}),t[32]=D,t[33]=O,t[34]=E,t[35]=I):I=t[35];let T;t[36]!==s?(T=M.jsx(se,{children:s}),t[36]=s,t[37]=T):T=t[37];let L;t[38]!==o?(L=M.jsx(se,{children:o}),t[38]=o,t[39]=L):L=t[39];let F;t[40]!==k||t[41]!==S||t[42]!==I||t[43]!==T||t[44]!==L?(F=M.jsxs(ur,{className:"mb-5 grow",children:[k,S,I,T,L]}),t[40]=k,t[41]=S,t[42]=I,t[43]=T,t[44]=L,t[45]=F):F=t[45];let H;return t[46]!==w||t[47]!==F||t[48]!==m||t[49]!==p||t[50]!==b||t[51]!==x||t[52]!==v||t[53]!==y?(H=M.jsxs(M.Fragment,{children:[m,p,b,x,v,_,y,w,F]}),t[46]=w,t[47]=F,t[48]=m,t[49]=p,t[50]=b,t[51]=x,t[52]=v,t[53]=y,t[54]=H):H=t[54],H}function qg(e){const t=wt.c(81),{filterOptions:n,filterSelection:i,setFilterSelection:s,max1year:o,coloredYears:r}=e,a=o===void 0?!1:o,l=r===void 0?!1:r,[c,h]=A.useState(!0),{nrens:u}=A.useContext(dl);let d,f;if(t[0]===Symbol.for("react.memo_cache_sentinel")?(d=()=>{const W=()=>h(window.innerWidth>=992);return window.addEventListener("resize",W),()=>{window.removeEventListener("resize",W)}},f=[],t[0]=d,t[1]=f):(d=t[0],f=t[1]),A.useEffect(d,f),a&&i.selectedYears.length>1){const W=Math.max(...i.selectedYears);s({selectedYears:[W],selectedNrens:[...i.selectedNrens]})}let g;t[2]!==i.selectedNrens||t[3]!==i.selectedYears||t[4]!==s?(g=W=>{i.selectedNrens.includes(W)?s({selectedYears:[...i.selectedYears],selectedNrens:i.selectedNrens.filter(et=>et!==W)}):s({selectedYears:[...i.selectedYears],selectedNrens:[...i.selectedNrens,W]})},t[2]=i.selectedNrens,t[3]=i.selectedYears,t[4]=s,t[5]=g):g=t[5];const m=g;let p;t[6]!==i.selectedNrens||t[7]!==i.selectedYears||t[8]!==a||t[9]!==s?(p=W=>{i.selectedYears.includes(W)?s({selectedYears:i.selectedYears.filter(et=>et!==W),selectedNrens:[...i.selectedNrens]}):s({selectedYears:a?[W]:[...i.selectedYears,W],selectedNrens:[...i.selectedNrens]})},t[6]=i.selectedNrens,t[7]=i.selectedYears,t[8]=a,t[9]=s,t[10]=p):p=t[10];const b=p;let x;t[11]!==n.availableNrens||t[12]!==i.selectedYears||t[13]!==s?(x=()=>{s({selectedYears:[...i.selectedYears],selectedNrens:n.availableNrens.map(vg)})},t[11]=n.availableNrens,t[12]=i.selectedYears,t[13]=s,t[14]=x):x=t[14];const v=x;let _;t[15]!==i.selectedYears||t[16]!==s?(_=()=>{s({selectedYears:[...i.selectedYears],selectedNrens:[]})},t[15]=i.selectedYears,t[16]=s,t[17]=_):_=t[17];const y=_,w=c?3:2,k=Math.ceil(u.length/w);let S,C,D,P,O,E,I,T,L,F;if(t[18]!==n.availableNrens||t[19]!==i.selectedNrens||t[20]!==m||t[21]!==w||t[22]!==k||t[23]!==u){const W=Array.from(Array(w),yg);u.sort(xg).forEach((Jt,Zt)=>{const lt=Math.floor(Zt/k);W[lt].push(Jt)});let et;t[34]!==n.availableNrens?(et=Jt=>n.availableNrens.find(lt=>lt.name===Jt.name)!==void 0,t[34]=n.availableNrens,t[35]=et):et=t[35];const Re=et;D=vs,L=3,C=ii,E="outside",I="m-3",t[36]===Symbol.for("react.memo_cache_sentinel")?(T=M.jsx(ii.Toggle,{id:"nren-dropdown-toggle",variant:"compendium",children:"Select NRENs "}),t[36]=T):T=t[36],S=ii.Menu,t[37]===Symbol.for("react.memo_cache_sentinel")?(O={borderRadius:0},t[37]=O):O=t[37],F="d-flex fit-max-content mt-4 mx-3";let $t;t[38]!==i.selectedNrens||t[39]!==m||t[40]!==Re?($t=(Jt,Zt)=>M.jsx("div",{className:"flex-fill",children:Jt.map(lt=>M.jsx("div",{className:"filter-dropdown-item flex-fill py-1 px-3",children:M.jsxs(Qn.Check,{type:"checkbox",children:[M.jsx(Qn.Check.Input,{id:lt.name,readOnly:!0,type:"checkbox",onClick:()=>m(lt.name),checked:i.selectedNrens.includes(lt.name),className:"nren-checkbox",disabled:!Re(lt)}),M.jsxs(Qn.Check.Label,{htmlFor:lt.name,className:"nren-checkbox-label",children:[lt.name," ",M.jsxs("span",{style:{fontWeight:"lighter"},children:["(",lt.country,")"]})]})]})},lt.name))},Zt),t[38]=i.selectedNrens,t[39]=m,t[40]=Re,t[41]=$t):$t=t[41],P=W.map($t),t[18]=n.availableNrens,t[19]=i.selectedNrens,t[20]=m,t[21]=w,t[22]=k,t[23]=u,t[24]=S,t[25]=C,t[26]=D,t[27]=P,t[28]=O,t[29]=E,t[30]=I,t[31]=T,t[32]=L,t[33]=F}else S=t[24],C=t[25],D=t[26],P=t[27],O=t[28],E=t[29],I=t[30],T=t[31],L=t[32],F=t[33];let H;t[42]!==P||t[43]!==F?(H=M.jsx("div",{className:F,children:P}),t[42]=P,t[43]=F,t[44]=H):H=t[44];let $;t[45]!==v?($=M.jsx(Ft,{variant:"compendium",className:"flex-fill",onClick:v,children:"Select all NRENs"}),t[45]=v,t[46]=$):$=t[46];let N;t[47]!==y?(N=M.jsx(Ft,{variant:"compendium",className:"flex-fill",onClick:y,children:"Unselect all NRENs"}),t[47]=y,t[48]=N):N=t[48];let tt;t[49]!==$||t[50]!==N?(tt=M.jsxs("div",{className:"d-flex fit-max-content gap-2 mx-4 my-3",children:[$,N]}),t[49]=$,t[50]=N,t[51]=tt):tt=t[51];let Q;t[52]!==S||t[53]!==O||t[54]!==H||t[55]!==tt?(Q=M.jsxs(S,{style:O,children:[H,tt]}),t[52]=S,t[53]=O,t[54]=H,t[55]=tt,t[56]=Q):Q=t[56];let nt;t[57]!==C||t[58]!==E||t[59]!==I||t[60]!==T||t[61]!==Q?(nt=M.jsxs(C,{autoClose:E,className:I,children:[T,Q]}),t[57]=C,t[58]=E,t[59]=I,t[60]=T,t[61]=Q,t[62]=nt):nt=t[62];let U;t[63]!==D||t[64]!==L||t[65]!==nt?(U=M.jsx(D,{xs:L,children:nt}),t[63]=D,t[64]=L,t[65]=nt,t[66]=U):U=t[66];let X;if(t[67]!==l||t[68]!==n.availableYears||t[69]!==i.selectedYears||t[70]!==b){let W;t[72]!==l||t[73]!==i.selectedYears||t[74]!==b?(W=et=>M.jsx(Ft,{variant:l?"compendium-year-"+et%9:"compendium-year",active:i.selectedYears.includes(et),onClick:()=>b(et),children:et},et),t[72]=l,t[73]=i.selectedYears,t[74]=b,t[75]=W):W=t[75],X=n.availableYears.sort().map(W),t[67]=l,t[68]=n.availableYears,t[69]=i.selectedYears,t[70]=b,t[71]=X}else X=t[71];let K;t[76]!==X?(K=M.jsx(vs,{children:M.jsx(Li,{className:"d-flex justify-content-end gap-2 m-3",children:X})}),t[76]=X,t[77]=K):K=t[77];let At;return t[78]!==U||t[79]!==K?(At=M.jsxs(M.Fragment,{children:[U,K]}),t[78]=U,t[79]=K,t[80]=At):At=t[80],At}function xg(e,t){return e.name.localeCompare(t.name)}function yg(){return[]}function vg(e){return e.name}const Kg=e=>{const t=wt.c(3),{children:n}=e,i=A.useContext(dr);let s;return t[0]!==n||t[1]!==i?(s=M.jsx("div",{ref:i,children:n}),t[0]=n,t[1]=i,t[2]=s):s=t[2],s};function lr(e){const t=new Set,n=new Map;return e.forEach(i=>{t.add(i.year),n.set(i.nren,{name:i.nren,country:i.nren_country})}),{years:t,nrens:n}}function Gg(e,t,n){const i=wt.c(14),s=n===void 0?wg:n;let o;i[0]===Symbol.for("react.memo_cache_sentinel")?(o=[],i[0]=o):o=i[0];const[r,a]=A.useState(o),l=fl(),c=e+(l?"?preview":"");let h;i[1]!==c||i[2]!==t||i[3]!==s?(h=()=>{fetch(c).then(_g).then(b=>{const x=b.filter(s);a(x);const{years:v,nrens:_}=lr(x);t(y=>{const k=y.selectedYears.filter(D=>v.has(D)).length?y.selectedYears:[Math.max(...v)],C=y.selectedNrens.filter(D=>_.has(D)).length?y.selectedNrens:[..._.keys()];return{selectedYears:k,selectedNrens:C}})})},i[1]=c,i[2]=t,i[3]=s,i[4]=h):h=i[4];let u;i[5]!==c||i[6]!==t?(u=[c,t],i[5]=c,i[6]=t,i[7]=u):u=i[7],A.useEffect(h,u);let d,f;i[8]!==r?(f=lr(r),i[8]=r,i[9]=f):f=i[9],d=f;const{years:g,nrens:m}=d;let p;return i[10]!==r||i[11]!==m||i[12]!==g?(p={data:r,years:g,nrens:m},i[10]=r,i[11]=m,i[12]=g,i[13]=p):p=i[13],p}function _g(e){return e.json()}function wg(){return!0}export{q as A,yi as B,Ct as C,Xg as D,_t as E,qg as F,j as G,Y as H,B as I,Pn as J,V as K,Uo as L,z as M,Vg as N,mi as P,Vo as a,On as b,Tg as c,Ag as d,Hg as e,Kg as f,zg as g,jg as h,$g as i,Bg as j,Te as k,Wg as l,Yg as m,Rg as n,Ug as o,Eg as p,Lg as q,Ng as r,Ig as s,di as t,Gg as u,ui as v,Fg as w,Qe as x,at as y,yn as z};