From 7bb95f1836e0555f14f1847e70d72125d1b736a1 Mon Sep 17 00:00:00 2001 From: Bjarke Madsen <bjarke@nordu.net> Date: Thu, 13 Feb 2025 09:36:39 +0100 Subject: [PATCH] Put hashes on everything to bust caches --- compendium-frontend/vite.config.ts | 4 ++-- compendium_v2/static/AlienWave-6fWajwYt.js | 9 +++++++++ compendium_v2/static/AlienWave-DO1S2459.js | 9 --------- compendium_v2/static/AlienWaveInternal-BhuqQCyf.js | 9 --------- compendium_v2/static/AlienWaveInternal-Dbz1_Gp9.js | 9 +++++++++ compendium_v2/static/Audits-CufRH5if.js | 5 +++++ compendium_v2/static/Audits-DfjcC9VL.js | 5 ----- .../{Automation-DzfRRQiO.js => Automation-Dxks_3hH.js} | 2 +- compendium_v2/static/Budget-DX8h4kEm.js | 1 - compendium_v2/static/Budget-DaieNipA.js | 1 + compendium_v2/static/BusinessContinuity-BNzcQNhU.js | 5 +++++ compendium_v2/static/BusinessContinuity-CswNIFcO.js | 5 ----- compendium_v2/static/CapacityCoreIP-DiIZVI-s.js | 3 +++ compendium_v2/static/CapacityCoreIP-P2rbPvQY.js | 3 --- compendium_v2/static/CapacityLargestLink-CGhxu47M.js | 3 --- compendium_v2/static/CapacityLargestLink-xwsd4prK.js | 3 +++ compendium_v2/static/CentralProcurement-C6FG3PH8.js | 1 + compendium_v2/static/CentralProcurement-_z44vsb4.js | 1 - compendium_v2/static/CertificateProvider-CpWnMPbq.js | 1 - compendium_v2/static/CertificateProvider-D9Qr_R-E.js | 1 + compendium_v2/static/ChargingStructure-BiXVfonj.js | 3 --- compendium_v2/static/ChargingStructure-DXabP1VZ.js | 3 +++ compendium_v2/static/ColorPill-CXsYrUiQ.js | 1 + compendium_v2/static/ColorPill-CXvWIfWz.js | 1 - .../static/ConnectedInstitutionsURLs-BSBw8xZy.js | 1 - .../static/ConnectedInstitutionsURLs-DCBf9aew.js | 1 + compendium_v2/static/ConnectedUser-DXYx3bSL.js | 1 - compendium_v2/static/ConnectedUser-queHyxHS.js | 1 + compendium_v2/static/CorporateStrategy-BrErbevP.js | 3 --- compendium_v2/static/CorporateStrategy-we6KtBv4.js | 3 +++ compendium_v2/static/CrisisExercises-miIhkp8m.js | 2 ++ compendium_v2/static/CrisisExercises-mu7CJTN3.js | 2 -- compendium_v2/static/CrisisManagement-BxTFYm8e.js | 1 - compendium_v2/static/CrisisManagement-PDrUgEjD.js | 1 + compendium_v2/static/DarkFibreInstalled-DQjFL8rw.js | 1 + compendium_v2/static/DarkFibreInstalled-Uox2eGX8.js | 1 - compendium_v2/static/DarkFibreLease-DVVVHWmb.js | 1 + compendium_v2/static/DarkFibreLease-Nz1_rVx9.js | 1 - compendium_v2/static/ECProjects-BytaiuC6.js | 1 + compendium_v2/static/ECProjects-Ixano_sS.js | 1 - compendium_v2/static/EOSCListings-DWYL3kBM.js | 1 - compendium_v2/static/EOSCListings-H_13YHeq.js | 1 + compendium_v2/static/ExternalConnections-BVnV4NEl.js | 1 - compendium_v2/static/ExternalConnections-Bw3LdeFf.js | 1 + compendium_v2/static/FibreLight-Di0VQOdw.js | 2 ++ compendium_v2/static/FibreLight-UtHnGi0p.js | 2 -- compendium_v2/static/FundingSource-CnnYyCrH.js | 1 + compendium_v2/static/FundingSource-DoZCzgMa.js | 1 - compendium_v2/static/HTMLLegendPlugin-C-L3dIU1.js | 1 - compendium_v2/static/HTMLLegendPlugin-DF0OaxMQ.js | 1 + compendium_v2/static/IRUDuration-CI7E3kyS.js | 1 - compendium_v2/static/IRUDuration-CwtYlEdU.js | 1 + compendium_v2/static/Landing-35TvxyJ6.js | 1 - compendium_v2/static/Landing-wYnIDduc.js | 1 + compendium_v2/static/MonitoringTools-BGVkCHJR.js | 2 ++ compendium_v2/static/MonitoringTools-C61NJKaR.js | 2 -- .../static/NetworkFunctionVirtualisation-DLW-vjXN.js | 1 - .../static/NetworkFunctionVirtualisation-Dkgolz87.js | 1 + compendium_v2/static/NetworkMapUrls-B3Qc49It.js | 1 - compendium_v2/static/NetworkMapUrls-U7kWZFCY.js | 1 + compendium_v2/static/NonRAndEPeer-Bicp8r4m.js | 2 ++ compendium_v2/static/NonRAndEPeer-Cg_pAdU8.js | 2 -- compendium_v2/static/NrenYearTable-D3mNeVd3.js | 1 + compendium_v2/static/NrenYearTable-tQrmAmRo.js | 1 - compendium_v2/static/OPsAutomation-BoFZP12U.js | 3 --- compendium_v2/static/OPsAutomation-D9uxrxhD.js | 3 +++ compendium_v2/static/ParentOrganisation-BBwyogJP.js | 1 + compendium_v2/static/ParentOrganisation-OrE_JaGF.js | 1 - compendium_v2/static/PassiveMonitoring-CE6Z1wsB.js | 1 + compendium_v2/static/PassiveMonitoring-Cv8zkVr2.js | 1 - compendium_v2/static/PertTeam-Cf_GEMUq.js | 2 -- compendium_v2/static/PertTeam-LT8kFC71.js | 2 ++ compendium_v2/static/PillTable-Cnj0nnFy.js | 1 - compendium_v2/static/PillTable-DEX_WeNY.js | 1 + compendium_v2/static/Policy-B0McUfA8.js | 1 + compendium_v2/static/Policy-C19_KfRY.js | 1 - compendium_v2/static/RemoteCampuses-Bh0h6tbY.js | 1 + compendium_v2/static/RemoteCampuses-Bu_1Ucwy.js | 1 - compendium_v2/static/ScrollableMatrix-D6caiSg1.js | 1 + compendium_v2/static/ScrollableMatrix-Dxr22l4i.js | 1 - compendium_v2/static/SecurityControls-CkjbRt2j.js | 2 -- compendium_v2/static/SecurityControls-DPvKKslf.js | 2 ++ compendium_v2/static/ServiceLevelTargets-BQyQ1ynP.js | 2 -- compendium_v2/static/ServiceLevelTargets-BTUmV26j.js | 2 ++ .../static/ServiceManagementFramework-DDW7v-XJ.js | 2 -- .../static/ServiceManagementFramework-DWirH02M.js | 2 ++ .../{Services-kzZ5IOvA.js => Services-wGbaoPrz.js} | 2 +- compendium_v2/static/ServicesOffered-BnmNlrgs.js | 1 - compendium_v2/static/ServicesOffered-C6oTnjq_.js | 1 + compendium_v2/static/SideBar-CkoMfgfL.js | 1 - compendium_v2/static/SideBar-DC9SKCkF.js | 1 + compendium_v2/static/SiemVendors-W4GM3C-U.js | 1 + compendium_v2/static/SiemVendors-pjqFJlX2.js | 1 - compendium_v2/static/StaffGraph-D3mBN476.js | 4 ---- compendium_v2/static/StaffGraph-nuZcRAf1.js | 4 ++++ compendium_v2/static/StaffGraphAbsolute-B_KY3Vzc.js | 1 + compendium_v2/static/StaffGraphAbsolute-I7Y3C-nj.js | 1 - compendium_v2/static/SubOrganisation-C7B4_RD0.js | 1 - compendium_v2/static/SubOrganisation-uqygN7-8.js | 1 + ...-DxT_-mC9.js => SurveyContainerComponent-TmXjyfKm.js} | 2 +- .../static/SurveyManagementComponent-Br-7fyx2.js | 3 +++ .../static/SurveyManagementComponent-DygIuffI.js | 3 --- compendium_v2/static/SurveySidebar-B89Xtwv2.js | 1 + compendium_v2/static/SurveySidebar-CG0gwQ6b.js | 1 - compendium_v2/static/Table-BUrPWwZB.js | 1 + compendium_v2/static/Table-ClWM2_rS.js | 1 - compendium_v2/static/TrafficRatio-BELkAOlA.js | 1 - compendium_v2/static/TrafficRatio-CsniApRI.js | 1 + compendium_v2/static/TrafficUrl-0revWiHR.js | 1 + compendium_v2/static/TrafficUrl-BLm4mZku.js | 1 - compendium_v2/static/TrafficVolume-1MvPPErr.js | 1 - compendium_v2/static/TrafficVolume-BMOIGkfu.js | 1 + compendium_v2/static/UserManagementComponent-CAc00ajf.js | 1 + compendium_v2/static/UserManagementComponent-DK-BhUBG.js | 1 - compendium_v2/static/WeatherMap-CEsWOhkH.js | 1 + compendium_v2/static/WeatherMap-CZPcsrK6.js | 1 - ...charthelpers-B0zLHD4s.js => charthelpers-vHYh9qxV.js} | 2 +- ...nxnq.js => chartjs-plugin-datalabels.esm-Bb0FwIXw.js} | 2 +- compendium_v2/static/hook-BbhLqP_c.js | 1 - compendium_v2/static/hook-CgOBj93G.js | 1 + compendium_v2/static/index-C2DQFzVc.js | 1 + compendium_v2/static/index-CjWPDfDC.js | 1 - .../static/{index-BGZcCZJE.js => index-ClpOPiqG.js} | 2 +- compendium_v2/static/{index.css => index-Cv7xX6AU.css} | 0 compendium_v2/static/index-DSQNfbUQ.js | 1 + compendium_v2/static/{index.js => index-DunMf8wQ.js} | 4 ++-- compendium_v2/static/index-ZGgT6a2u.js | 1 - compendium_v2/static/index.html | 4 ++-- .../static/{lodash-0qAddrJ1.js => lodash-DG7dNfcw.js} | 2 +- .../static/{useData-CxftshCa.js => useData-DvdT9bkc.js} | 2 +- 130 files changed, 120 insertions(+), 120 deletions(-) create mode 100644 compendium_v2/static/AlienWave-6fWajwYt.js delete mode 100644 compendium_v2/static/AlienWave-DO1S2459.js delete mode 100644 compendium_v2/static/AlienWaveInternal-BhuqQCyf.js create mode 100644 compendium_v2/static/AlienWaveInternal-Dbz1_Gp9.js create mode 100644 compendium_v2/static/Audits-CufRH5if.js delete mode 100644 compendium_v2/static/Audits-DfjcC9VL.js rename compendium_v2/static/{Automation-DzfRRQiO.js => Automation-Dxks_3hH.js} (77%) delete mode 100644 compendium_v2/static/Budget-DX8h4kEm.js create mode 100644 compendium_v2/static/Budget-DaieNipA.js create mode 100644 compendium_v2/static/BusinessContinuity-BNzcQNhU.js delete mode 100644 compendium_v2/static/BusinessContinuity-CswNIFcO.js create mode 100644 compendium_v2/static/CapacityCoreIP-DiIZVI-s.js delete mode 100644 compendium_v2/static/CapacityCoreIP-P2rbPvQY.js delete mode 100644 compendium_v2/static/CapacityLargestLink-CGhxu47M.js create mode 100644 compendium_v2/static/CapacityLargestLink-xwsd4prK.js create mode 100644 compendium_v2/static/CentralProcurement-C6FG3PH8.js delete mode 100644 compendium_v2/static/CentralProcurement-_z44vsb4.js delete mode 100644 compendium_v2/static/CertificateProvider-CpWnMPbq.js create mode 100644 compendium_v2/static/CertificateProvider-D9Qr_R-E.js delete mode 100644 compendium_v2/static/ChargingStructure-BiXVfonj.js create mode 100644 compendium_v2/static/ChargingStructure-DXabP1VZ.js create mode 100644 compendium_v2/static/ColorPill-CXsYrUiQ.js delete mode 100644 compendium_v2/static/ColorPill-CXvWIfWz.js delete mode 100644 compendium_v2/static/ConnectedInstitutionsURLs-BSBw8xZy.js create mode 100644 compendium_v2/static/ConnectedInstitutionsURLs-DCBf9aew.js delete mode 100644 compendium_v2/static/ConnectedUser-DXYx3bSL.js create mode 100644 compendium_v2/static/ConnectedUser-queHyxHS.js delete mode 100644 compendium_v2/static/CorporateStrategy-BrErbevP.js create mode 100644 compendium_v2/static/CorporateStrategy-we6KtBv4.js create mode 100644 compendium_v2/static/CrisisExercises-miIhkp8m.js delete mode 100644 compendium_v2/static/CrisisExercises-mu7CJTN3.js delete mode 100644 compendium_v2/static/CrisisManagement-BxTFYm8e.js create mode 100644 compendium_v2/static/CrisisManagement-PDrUgEjD.js create mode 100644 compendium_v2/static/DarkFibreInstalled-DQjFL8rw.js delete mode 100644 compendium_v2/static/DarkFibreInstalled-Uox2eGX8.js create mode 100644 compendium_v2/static/DarkFibreLease-DVVVHWmb.js delete mode 100644 compendium_v2/static/DarkFibreLease-Nz1_rVx9.js create mode 100644 compendium_v2/static/ECProjects-BytaiuC6.js delete mode 100644 compendium_v2/static/ECProjects-Ixano_sS.js delete mode 100644 compendium_v2/static/EOSCListings-DWYL3kBM.js create mode 100644 compendium_v2/static/EOSCListings-H_13YHeq.js delete mode 100644 compendium_v2/static/ExternalConnections-BVnV4NEl.js create mode 100644 compendium_v2/static/ExternalConnections-Bw3LdeFf.js create mode 100644 compendium_v2/static/FibreLight-Di0VQOdw.js delete mode 100644 compendium_v2/static/FibreLight-UtHnGi0p.js create mode 100644 compendium_v2/static/FundingSource-CnnYyCrH.js delete mode 100644 compendium_v2/static/FundingSource-DoZCzgMa.js delete mode 100644 compendium_v2/static/HTMLLegendPlugin-C-L3dIU1.js create mode 100644 compendium_v2/static/HTMLLegendPlugin-DF0OaxMQ.js delete mode 100644 compendium_v2/static/IRUDuration-CI7E3kyS.js create mode 100644 compendium_v2/static/IRUDuration-CwtYlEdU.js delete mode 100644 compendium_v2/static/Landing-35TvxyJ6.js create mode 100644 compendium_v2/static/Landing-wYnIDduc.js create mode 100644 compendium_v2/static/MonitoringTools-BGVkCHJR.js delete mode 100644 compendium_v2/static/MonitoringTools-C61NJKaR.js delete mode 100644 compendium_v2/static/NetworkFunctionVirtualisation-DLW-vjXN.js create mode 100644 compendium_v2/static/NetworkFunctionVirtualisation-Dkgolz87.js delete mode 100644 compendium_v2/static/NetworkMapUrls-B3Qc49It.js create mode 100644 compendium_v2/static/NetworkMapUrls-U7kWZFCY.js create mode 100644 compendium_v2/static/NonRAndEPeer-Bicp8r4m.js delete mode 100644 compendium_v2/static/NonRAndEPeer-Cg_pAdU8.js create mode 100644 compendium_v2/static/NrenYearTable-D3mNeVd3.js delete mode 100644 compendium_v2/static/NrenYearTable-tQrmAmRo.js delete mode 100644 compendium_v2/static/OPsAutomation-BoFZP12U.js create mode 100644 compendium_v2/static/OPsAutomation-D9uxrxhD.js create mode 100644 compendium_v2/static/ParentOrganisation-BBwyogJP.js delete mode 100644 compendium_v2/static/ParentOrganisation-OrE_JaGF.js create mode 100644 compendium_v2/static/PassiveMonitoring-CE6Z1wsB.js delete mode 100644 compendium_v2/static/PassiveMonitoring-Cv8zkVr2.js delete mode 100644 compendium_v2/static/PertTeam-Cf_GEMUq.js create mode 100644 compendium_v2/static/PertTeam-LT8kFC71.js delete mode 100644 compendium_v2/static/PillTable-Cnj0nnFy.js create mode 100644 compendium_v2/static/PillTable-DEX_WeNY.js create mode 100644 compendium_v2/static/Policy-B0McUfA8.js delete mode 100644 compendium_v2/static/Policy-C19_KfRY.js create mode 100644 compendium_v2/static/RemoteCampuses-Bh0h6tbY.js delete mode 100644 compendium_v2/static/RemoteCampuses-Bu_1Ucwy.js create mode 100644 compendium_v2/static/ScrollableMatrix-D6caiSg1.js delete mode 100644 compendium_v2/static/ScrollableMatrix-Dxr22l4i.js delete mode 100644 compendium_v2/static/SecurityControls-CkjbRt2j.js create mode 100644 compendium_v2/static/SecurityControls-DPvKKslf.js delete mode 100644 compendium_v2/static/ServiceLevelTargets-BQyQ1ynP.js create mode 100644 compendium_v2/static/ServiceLevelTargets-BTUmV26j.js delete mode 100644 compendium_v2/static/ServiceManagementFramework-DDW7v-XJ.js create mode 100644 compendium_v2/static/ServiceManagementFramework-DWirH02M.js rename compendium_v2/static/{Services-kzZ5IOvA.js => Services-wGbaoPrz.js} (86%) delete mode 100644 compendium_v2/static/ServicesOffered-BnmNlrgs.js create mode 100644 compendium_v2/static/ServicesOffered-C6oTnjq_.js delete mode 100644 compendium_v2/static/SideBar-CkoMfgfL.js create mode 100644 compendium_v2/static/SideBar-DC9SKCkF.js create mode 100644 compendium_v2/static/SiemVendors-W4GM3C-U.js delete mode 100644 compendium_v2/static/SiemVendors-pjqFJlX2.js delete mode 100644 compendium_v2/static/StaffGraph-D3mBN476.js create mode 100644 compendium_v2/static/StaffGraph-nuZcRAf1.js create mode 100644 compendium_v2/static/StaffGraphAbsolute-B_KY3Vzc.js delete mode 100644 compendium_v2/static/StaffGraphAbsolute-I7Y3C-nj.js delete mode 100644 compendium_v2/static/SubOrganisation-C7B4_RD0.js create mode 100644 compendium_v2/static/SubOrganisation-uqygN7-8.js rename compendium_v2/static/{SurveyContainerComponent-DxT_-mC9.js => SurveyContainerComponent-TmXjyfKm.js} (99%) create mode 100644 compendium_v2/static/SurveyManagementComponent-Br-7fyx2.js delete mode 100644 compendium_v2/static/SurveyManagementComponent-DygIuffI.js create mode 100644 compendium_v2/static/SurveySidebar-B89Xtwv2.js delete mode 100644 compendium_v2/static/SurveySidebar-CG0gwQ6b.js create mode 100644 compendium_v2/static/Table-BUrPWwZB.js delete mode 100644 compendium_v2/static/Table-ClWM2_rS.js delete mode 100644 compendium_v2/static/TrafficRatio-BELkAOlA.js create mode 100644 compendium_v2/static/TrafficRatio-CsniApRI.js create mode 100644 compendium_v2/static/TrafficUrl-0revWiHR.js delete mode 100644 compendium_v2/static/TrafficUrl-BLm4mZku.js delete mode 100644 compendium_v2/static/TrafficVolume-1MvPPErr.js create mode 100644 compendium_v2/static/TrafficVolume-BMOIGkfu.js create mode 100644 compendium_v2/static/UserManagementComponent-CAc00ajf.js delete mode 100644 compendium_v2/static/UserManagementComponent-DK-BhUBG.js create mode 100644 compendium_v2/static/WeatherMap-CEsWOhkH.js delete mode 100644 compendium_v2/static/WeatherMap-CZPcsrK6.js rename compendium_v2/static/{charthelpers-B0zLHD4s.js => charthelpers-vHYh9qxV.js} (96%) rename compendium_v2/static/{chartjs-plugin-datalabels.esm-CjG-nxnq.js => chartjs-plugin-datalabels.esm-Bb0FwIXw.js} (99%) delete mode 100644 compendium_v2/static/hook-BbhLqP_c.js create mode 100644 compendium_v2/static/hook-CgOBj93G.js create mode 100644 compendium_v2/static/index-C2DQFzVc.js delete mode 100644 compendium_v2/static/index-CjWPDfDC.js rename compendium_v2/static/{index-BGZcCZJE.js => index-ClpOPiqG.js} (50%) rename compendium_v2/static/{index.css => index-Cv7xX6AU.css} (100%) create mode 100644 compendium_v2/static/index-DSQNfbUQ.js rename compendium_v2/static/{index.js => index-DunMf8wQ.js} (98%) delete mode 100644 compendium_v2/static/index-ZGgT6a2u.js rename compendium_v2/static/{lodash-0qAddrJ1.js => lodash-DG7dNfcw.js} (94%) rename compendium_v2/static/{useData-CxftshCa.js => useData-DvdT9bkc.js} (85%) diff --git a/compendium-frontend/vite.config.ts b/compendium-frontend/vite.config.ts index 325058f7..828570e5 100644 --- a/compendium-frontend/vite.config.ts +++ b/compendium-frontend/vite.config.ts @@ -55,14 +55,14 @@ export default defineConfig({ sourcemap: process.env.NODE_ENV !== 'production', rollupOptions: { output: { - entryFileNames: '[name].js', + entryFileNames: '[name]-[hash].js', assetFileNames: function (assetInfo) { const names = assetInfo.names; if (names.some(name => name.endsWith('.css'))) { if (names.some(name => name.toLowerCase().includes('component'))) { return '[hash].[ext]'; } - return '[name].[ext]'; + return '[name]-[hash].[ext]'; } return '[hash].[ext]'; diff --git a/compendium_v2/static/AlienWave-6fWajwYt.js b/compendium_v2/static/AlienWave-6fWajwYt.js new file mode 100644 index 00000000..642a9d72 --- /dev/null +++ b/compendium_v2/static/AlienWave-6fWajwYt.js @@ -0,0 +1,9 @@ +import{c as T,r as Y,F as S,j as v,t as j,S as E}from"./index-DunMf8wQ.js";import{u as W,g as C,n as F,D as M,F as P,f as R}from"./useData-DvdT9bkc.js";import{P as L}from"./PillTable-DEX_WeNY.js";import"./SideBar-DC9SKCkF.js";import"./xlsx-BHRztzV8.js";import"./index-DSQNfbUQ.js";import"./hook-CgOBj93G.js";import"./ColorPill-CXsYrUiQ.js";import"./Table-BUrPWwZB.js";function K(){const e=T.c(30);let a;e[0]===Symbol.for("react.memo_cache_sentinel")?(a=d=>d.alien_wave_third_party!==null,e[0]=a):a=e[0];const x=a,{filterSelection:t,setFilterSelection:p}=Y.useContext(S),{data:_,years:w,nrens:y}=W("/api/alien-wave",p,x);let s,h;if(e[1]!==_||e[2]!==t.selectedNrens||e[3]!==t.selectedYears){let d;e[6]!==t.selectedNrens||e[7]!==t.selectedYears?(d=g=>t.selectedYears.includes(g.year)&&t.selectedNrens.includes(g.nren),e[6]=t.selectedNrens,e[7]=t.selectedYears,e[8]=d):d=e[8],s=_.filter(d);const D=C(s,"alien_wave_third_party");h=F(D,A),e[1]=_,e[2]=t.selectedNrens,e[3]=t.selectedYears,e[4]=s,e[5]=h}else s=e[4],h=e[5];const b=h;let n,m;e[9]===Symbol.for("react.memo_cache_sentinel")?(n=["Yes","Planned","No"],m=new Map([[n[0],"yes"],[n[1],"planned"],[n[2],"no"]]),e[9]=n,e[10]=m):(n=e[9],m=e[10]);const k=m;let i;e[11]!==w?(i=[...w],e[11]=w,e[12]=i):i=e[12];let r;e[13]!==y?(r=y.values(),e[13]=y,e[14]=r):r=e[14];let l;e[15]!==r?(l=[...r],e[15]=r,e[16]=l):l=e[16];let o;e[17]!==i||e[18]!==l?(o={availableYears:i,availableNrens:l},e[17]=i,e[18]=l,e[19]=o):o=e[19];let u;e[20]!==t||e[21]!==p||e[22]!==o?(u=v.jsx(P,{filterOptions:o,filterSelection:t,setFilterSelection:p,coloredYears:!0}),e[20]=t,e[21]=p,e[22]=o,e[23]=u):u=e[23];const N=u;let c;e[24]!==b?(c=v.jsx(R,{children:v.jsx(L,{columns:n,columnLookup:k,dataLookup:b})}),e[24]=b,e[25]=c):c=e[25];let f;return e[26]!==N||e[27]!==s||e[28]!==c?(f=v.jsx(M,{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 + equipment (hence “alien”). This setup is in contrast to traditional DWDM systems, where the DWDM light source + (transponder) operates in the same management domain as the amplifiers. + + Where NRENs have given the number of individual alien wavelength services, the figure is available in a hover-over + box. These are indicated by a black line around the coloured marker.`,category:E.Network,filter:N,data:s,filename:"alien_wave_nrens_per_year",children:c}),e[26]=N,e[27]=s,e[28]=c,e[29]=f):f=e[29],f}function A(e,a){if(a.nr_of_alien_wave_third_party_services)return`No. of alien wavelength services: ${a.nr_of_alien_wave_third_party_services} `}export{K as default}; diff --git a/compendium_v2/static/AlienWave-DO1S2459.js b/compendium_v2/static/AlienWave-DO1S2459.js deleted file mode 100644 index c39131de..00000000 --- a/compendium_v2/static/AlienWave-DO1S2459.js +++ /dev/null @@ -1,9 +0,0 @@ -import{c as T,r as Y,F as S,j as v,t as j,S as E}from"./index.js";import{u as W,g as C,n as F,D as M,F as P,f as R}from"./useData-CxftshCa.js";import{P as L}from"./PillTable-Cnj0nnFy.js";import"./SideBar-CkoMfgfL.js";import"./xlsx-BHRztzV8.js";import"./index-ZGgT6a2u.js";import"./hook-BbhLqP_c.js";import"./ColorPill-CXvWIfWz.js";import"./Table-ClWM2_rS.js";function K(){const e=T.c(30);let a;e[0]===Symbol.for("react.memo_cache_sentinel")?(a=d=>d.alien_wave_third_party!==null,e[0]=a):a=e[0];const x=a,{filterSelection:t,setFilterSelection:p}=Y.useContext(S),{data:_,years:w,nrens:y}=W("/api/alien-wave",p,x);let s,h;if(e[1]!==_||e[2]!==t.selectedNrens||e[3]!==t.selectedYears){let d;e[6]!==t.selectedNrens||e[7]!==t.selectedYears?(d=g=>t.selectedYears.includes(g.year)&&t.selectedNrens.includes(g.nren),e[6]=t.selectedNrens,e[7]=t.selectedYears,e[8]=d):d=e[8],s=_.filter(d);const D=C(s,"alien_wave_third_party");h=F(D,A),e[1]=_,e[2]=t.selectedNrens,e[3]=t.selectedYears,e[4]=s,e[5]=h}else s=e[4],h=e[5];const b=h;let n,m;e[9]===Symbol.for("react.memo_cache_sentinel")?(n=["Yes","Planned","No"],m=new Map([[n[0],"yes"],[n[1],"planned"],[n[2],"no"]]),e[9]=n,e[10]=m):(n=e[9],m=e[10]);const k=m;let i;e[11]!==w?(i=[...w],e[11]=w,e[12]=i):i=e[12];let r;e[13]!==y?(r=y.values(),e[13]=y,e[14]=r):r=e[14];let l;e[15]!==r?(l=[...r],e[15]=r,e[16]=l):l=e[16];let o;e[17]!==i||e[18]!==l?(o={availableYears:i,availableNrens:l},e[17]=i,e[18]=l,e[19]=o):o=e[19];let u;e[20]!==t||e[21]!==p||e[22]!==o?(u=v.jsx(P,{filterOptions:o,filterSelection:t,setFilterSelection:p,coloredYears:!0}),e[20]=t,e[21]=p,e[22]=o,e[23]=u):u=e[23];const N=u;let c;e[24]!==b?(c=v.jsx(R,{children:v.jsx(L,{columns:n,columnLookup:k,dataLookup:b})}),e[24]=b,e[25]=c):c=e[25];let f;return e[26]!==N||e[27]!==s||e[28]!==c?(f=v.jsx(M,{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 - equipment (hence “alien”). This setup is in contrast to traditional DWDM systems, where the DWDM light source - (transponder) operates in the same management domain as the amplifiers. - - Where NRENs have given the number of individual alien wavelength services, the figure is available in a hover-over - box. These are indicated by a black line around the coloured marker.`,category:E.Network,filter:N,data:s,filename:"alien_wave_nrens_per_year",children:c}),e[26]=N,e[27]=s,e[28]=c,e[29]=f):f=e[29],f}function A(e,a){if(a.nr_of_alien_wave_third_party_services)return`No. of alien wavelength services: ${a.nr_of_alien_wave_third_party_services} `}export{K as default}; diff --git a/compendium_v2/static/AlienWaveInternal-BhuqQCyf.js b/compendium_v2/static/AlienWaveInternal-BhuqQCyf.js deleted file mode 100644 index 7042b855..00000000 --- a/compendium_v2/static/AlienWaveInternal-BhuqQCyf.js +++ /dev/null @@ -1,9 +0,0 @@ -import{c as k,r as Y,F as S,j as w,t as j,S as F}from"./index.js";import{u as M,g as T,D as W,F as C,f as E}from"./useData-CxftshCa.js";import{P}from"./PillTable-Cnj0nnFy.js";import"./SideBar-CkoMfgfL.js";import"./xlsx-BHRztzV8.js";import"./index-ZGgT6a2u.js";import"./hook-BbhLqP_c.js";import"./ColorPill-CXvWIfWz.js";import"./Table-ClWM2_rS.js";function B(){const e=k.c(30);let m;e[0]===Symbol.for("react.memo_cache_sentinel")?(m=c=>c.alien_wave_internal!==null,e[0]=m):m=e[0];const N=m,{filterSelection:t,setFilterSelection:d}=Y.useContext(S),{data:v,years:g,nrens:x}=M("/api/alien-wave",d,N);let s,p;if(e[1]!==v||e[2]!==t.selectedNrens||e[3]!==t.selectedYears){let c;e[6]!==t.selectedNrens||e[7]!==t.selectedYears?(c=D=>t.selectedYears.includes(D.year)&&t.selectedNrens.includes(D.nren),e[6]=t.selectedNrens,e[7]=t.selectedYears,e[8]=c):c=e[8],s=v.filter(c),p=T(s,"alien_wave_internal"),e[1]=v,e[2]=t.selectedNrens,e[3]=t.selectedYears,e[4]=s,e[5]=p}else s=e[4],p=e[5];const y=p;let n,u;e[9]===Symbol.for("react.memo_cache_sentinel")?(n=["Yes","No"],u=new Map([[n[0],"True"],[n[1],"False"]]),e[9]=n,e[10]=u):(n=e[9],u=e[10]);const b=u;let a;e[11]!==g?(a=[...g],e[11]=g,e[12]=a):a=e[12];let l;e[13]!==x?(l=x.values(),e[13]=x,e[14]=l):l=e[14];let i;e[15]!==l?(i=[...l],e[15]=l,e[16]=i):i=e[16];let r;e[17]!==a||e[18]!==i?(r={availableYears:a,availableNrens:i},e[17]=a,e[18]=i,e[19]=r):r=e[19];let h;e[20]!==t||e[21]!==d||e[22]!==r?(h=w.jsx(C,{filterOptions:r,filterSelection:t,setFilterSelection:d,coloredYears:!0}),e[20]=t,e[21]=d,e[22]=r,e[23]=h):h=e[23];const _=h;let o;e[24]!==y?(o=w.jsx(E,{children:w.jsx(P,{columns:n,columnLookup:b,dataLookup:y})}),e[24]=y,e[25]=o):o=e[25];let f;return e[26]!==_||e[27]!==s||e[28]!==o?(f=w.jsx(W,{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. - - 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 equipment (hence “alien”). This setup is in contrast to traditional - DWDM systems, where the DWDM light source (transponder) operates in the same management domain - as the amplifiers.`,category:F.Network,filter:_,data:s,filename:"alien_wave_internal_nrens_per_year",children:o}),e[26]=_,e[27]=s,e[28]=o,e[29]=f):f=e[29],f}export{B as default}; diff --git a/compendium_v2/static/AlienWaveInternal-Dbz1_Gp9.js b/compendium_v2/static/AlienWaveInternal-Dbz1_Gp9.js new file mode 100644 index 00000000..e06aaedc --- /dev/null +++ b/compendium_v2/static/AlienWaveInternal-Dbz1_Gp9.js @@ -0,0 +1,9 @@ +import{c as k,r as Y,F as S,j as w,t as j,S as F}from"./index-DunMf8wQ.js";import{u as M,g as T,D as W,F as C,f as E}from"./useData-DvdT9bkc.js";import{P}from"./PillTable-DEX_WeNY.js";import"./SideBar-DC9SKCkF.js";import"./xlsx-BHRztzV8.js";import"./index-DSQNfbUQ.js";import"./hook-CgOBj93G.js";import"./ColorPill-CXsYrUiQ.js";import"./Table-BUrPWwZB.js";function B(){const e=k.c(30);let m;e[0]===Symbol.for("react.memo_cache_sentinel")?(m=c=>c.alien_wave_internal!==null,e[0]=m):m=e[0];const N=m,{filterSelection:t,setFilterSelection:d}=Y.useContext(S),{data:v,years:g,nrens:x}=M("/api/alien-wave",d,N);let s,p;if(e[1]!==v||e[2]!==t.selectedNrens||e[3]!==t.selectedYears){let c;e[6]!==t.selectedNrens||e[7]!==t.selectedYears?(c=D=>t.selectedYears.includes(D.year)&&t.selectedNrens.includes(D.nren),e[6]=t.selectedNrens,e[7]=t.selectedYears,e[8]=c):c=e[8],s=v.filter(c),p=T(s,"alien_wave_internal"),e[1]=v,e[2]=t.selectedNrens,e[3]=t.selectedYears,e[4]=s,e[5]=p}else s=e[4],p=e[5];const y=p;let n,u;e[9]===Symbol.for("react.memo_cache_sentinel")?(n=["Yes","No"],u=new Map([[n[0],"True"],[n[1],"False"]]),e[9]=n,e[10]=u):(n=e[9],u=e[10]);const b=u;let a;e[11]!==g?(a=[...g],e[11]=g,e[12]=a):a=e[12];let l;e[13]!==x?(l=x.values(),e[13]=x,e[14]=l):l=e[14];let i;e[15]!==l?(i=[...l],e[15]=l,e[16]=i):i=e[16];let r;e[17]!==a||e[18]!==i?(r={availableYears:a,availableNrens:i},e[17]=a,e[18]=i,e[19]=r):r=e[19];let h;e[20]!==t||e[21]!==d||e[22]!==r?(h=w.jsx(C,{filterOptions:r,filterSelection:t,setFilterSelection:d,coloredYears:!0}),e[20]=t,e[21]=d,e[22]=r,e[23]=h):h=e[23];const _=h;let o;e[24]!==y?(o=w.jsx(E,{children:w.jsx(P,{columns:n,columnLookup:b,dataLookup:y})}),e[24]=y,e[25]=o):o=e[25];let f;return e[26]!==_||e[27]!==s||e[28]!==o?(f=w.jsx(W,{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. + + 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 equipment (hence “alien”). This setup is in contrast to traditional + DWDM systems, where the DWDM light source (transponder) operates in the same management domain + as the amplifiers.`,category:F.Network,filter:_,data:s,filename:"alien_wave_internal_nrens_per_year",children:o}),e[26]=_,e[27]=s,e[28]=o,e[29]=f):f=e[29],f}export{B as default}; diff --git a/compendium_v2/static/Audits-CufRH5if.js b/compendium_v2/static/Audits-CufRH5if.js new file mode 100644 index 00000000..8bb78946 --- /dev/null +++ b/compendium_v2/static/Audits-CufRH5if.js @@ -0,0 +1,5 @@ +import{c as Y,r as w,F as j,j as x,t as F,S as P}from"./index-DunMf8wQ.js";import{u as C,g as D,n as E,D as L,F as R,f as M}from"./useData-DvdT9bkc.js";import{P as A}from"./PillTable-DEX_WeNY.js";import"./SideBar-DC9SKCkF.js";import"./xlsx-BHRztzV8.js";import"./index-DSQNfbUQ.js";import"./hook-CgOBj93G.js";import"./ColorPill-CXsYrUiQ.js";import"./Table-BUrPWwZB.js";function K(){const e=Y.c(30);let s;e[0]===Symbol.for("react.memo_cache_sentinel")?(s=d=>d.audits!==null,e[0]=s):s=e[0];const k=s,{filterSelection:t,setFilterSelection:u}=w.useContext(j),{data:b,years:y,nrens:N}=C("/api/standards",u,k);let i,m;if(e[1]!==b||e[2]!==t.selectedNrens||e[3]!==t.selectedYears){let d;e[6]!==t.selectedNrens||e[7]!==t.selectedYears?(d=_=>t.selectedYears.includes(_.year)&&t.selectedNrens.includes(_.nren)&&_.audits!==null,e[6]=t.selectedNrens,e[7]=t.selectedYears,e[8]=d):d=e[8],i=b.filter(d);const T=D(i,"audits");m=E(T,I),e[1]=b,e[2]=t.selectedNrens,e[3]=t.selectedYears,e[4]=i,e[5]=m}else i=e[4],m=e[5];const g=m;let a,p;e[9]===Symbol.for("react.memo_cache_sentinel")?(a=["Yes","No"],p=new Map([[a[0],"True"],[a[1],"False"]]),e[9]=a,e[10]=p):(a=e[9],p=e[10]);const S=p;let r;e[11]!==y?(r=[...y],e[11]=y,e[12]=r):r=e[12];let l;e[13]!==N?(l=N.values(),e[13]=N,e[14]=l):l=e[14];let o;e[15]!==l?(o=[...l],e[15]=l,e[16]=o):o=e[16];let n;e[17]!==r||e[18]!==o?(n={availableYears:r,availableNrens:o},e[17]=r,e[18]=o,e[19]=n):n=e[19];let f;e[20]!==t||e[21]!==u||e[22]!==n?(f=x.jsx(R,{filterOptions:n,filterSelection:t,setFilterSelection:u,coloredYears:!0}),e[20]=t,e[21]=u,e[22]=n,e[23]=f):f=e[23];const v=f;let c;e[24]!==g?(c=x.jsx(M,{children:x.jsx(A,{columns:a,columnLookup:S,dataLookup:g})}),e[24]=g,e[25]=c):c=e[25];let h;return e[26]!==v||e[27]!==i||e[28]!==c?(h=x.jsx(L,{title:F.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 + mark ringed in black.`,category:P.Policy,filter:v,data:i,filename:"audits_nrens_per_year",children:c}),e[26]=v,e[27]=i,e[28]=c,e[29]=h):h=e[29],h}function I(e,s){if(s.audit_specifics)return s.audit_specifics}export{K as default}; diff --git a/compendium_v2/static/Audits-DfjcC9VL.js b/compendium_v2/static/Audits-DfjcC9VL.js deleted file mode 100644 index dd643cf0..00000000 --- a/compendium_v2/static/Audits-DfjcC9VL.js +++ /dev/null @@ -1,5 +0,0 @@ -import{c as Y,r as w,F as j,j as x,t as F,S as P}from"./index.js";import{u as C,g as D,n as E,D as L,F as R,f as M}from"./useData-CxftshCa.js";import{P as A}from"./PillTable-Cnj0nnFy.js";import"./SideBar-CkoMfgfL.js";import"./xlsx-BHRztzV8.js";import"./index-ZGgT6a2u.js";import"./hook-BbhLqP_c.js";import"./ColorPill-CXvWIfWz.js";import"./Table-ClWM2_rS.js";function K(){const e=Y.c(30);let s;e[0]===Symbol.for("react.memo_cache_sentinel")?(s=d=>d.audits!==null,e[0]=s):s=e[0];const k=s,{filterSelection:t,setFilterSelection:u}=w.useContext(j),{data:b,years:y,nrens:N}=C("/api/standards",u,k);let i,m;if(e[1]!==b||e[2]!==t.selectedNrens||e[3]!==t.selectedYears){let d;e[6]!==t.selectedNrens||e[7]!==t.selectedYears?(d=_=>t.selectedYears.includes(_.year)&&t.selectedNrens.includes(_.nren)&&_.audits!==null,e[6]=t.selectedNrens,e[7]=t.selectedYears,e[8]=d):d=e[8],i=b.filter(d);const T=D(i,"audits");m=E(T,I),e[1]=b,e[2]=t.selectedNrens,e[3]=t.selectedYears,e[4]=i,e[5]=m}else i=e[4],m=e[5];const g=m;let a,p;e[9]===Symbol.for("react.memo_cache_sentinel")?(a=["Yes","No"],p=new Map([[a[0],"True"],[a[1],"False"]]),e[9]=a,e[10]=p):(a=e[9],p=e[10]);const S=p;let r;e[11]!==y?(r=[...y],e[11]=y,e[12]=r):r=e[12];let l;e[13]!==N?(l=N.values(),e[13]=N,e[14]=l):l=e[14];let o;e[15]!==l?(o=[...l],e[15]=l,e[16]=o):o=e[16];let n;e[17]!==r||e[18]!==o?(n={availableYears:r,availableNrens:o},e[17]=r,e[18]=o,e[19]=n):n=e[19];let f;e[20]!==t||e[21]!==u||e[22]!==n?(f=x.jsx(R,{filterOptions:n,filterSelection:t,setFilterSelection:u,coloredYears:!0}),e[20]=t,e[21]=u,e[22]=n,e[23]=f):f=e[23];const v=f;let c;e[24]!==g?(c=x.jsx(M,{children:x.jsx(A,{columns:a,columnLookup:S,dataLookup:g})}),e[24]=g,e[25]=c):c=e[25];let h;return e[26]!==v||e[27]!==i||e[28]!==c?(h=x.jsx(L,{title:F.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 - mark ringed in black.`,category:P.Policy,filter:v,data:i,filename:"audits_nrens_per_year",children:c}),e[26]=v,e[27]=i,e[28]=c,e[29]=h):h=e[29],h}function I(e,s){if(s.audit_specifics)return s.audit_specifics}export{K as default}; diff --git a/compendium_v2/static/Automation-DzfRRQiO.js b/compendium_v2/static/Automation-Dxks_3hH.js similarity index 77% rename from compendium_v2/static/Automation-DzfRRQiO.js rename to compendium_v2/static/Automation-Dxks_3hH.js index 8979b214..9f951ea1 100644 --- a/compendium_v2/static/Automation-DzfRRQiO.js +++ b/compendium_v2/static/Automation-Dxks_3hH.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.js";import{u as oe,g as re,F as ie,D as ae,f as ce}from"./useData-CxftshCa.js";import{C as Q}from"./ColorPill-CXvWIfWz.js";import{T as he}from"./Table-ClWM2_rS.js";import"./SideBar-CkoMfgfL.js";import"./xlsx-BHRztzV8.js";import"./index-ZGgT6a2u.js";import"./hook-BbhLqP_c.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-DunMf8wQ.js";import{u as oe,g as re,F as ie,D as ae,f as ce}from"./useData-DvdT9bkc.js";import{C as Q}from"./ColorPill-CXsYrUiQ.js";import{T as he}from"./Table-BUrPWwZB.js";import"./SideBar-DC9SKCkF.js";import"./xlsx-BHRztzV8.js";import"./index-DSQNfbUQ.js";import"./hook-CgOBj93G.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-DX8h4kEm.js b/compendium_v2/static/Budget-DX8h4kEm.js deleted file mode 100644 index a6d6cdab..00000000 --- a/compendium_v2/static/Budget-DX8h4kEm.js +++ /dev/null @@ -1 +0,0 @@ -import{c as _,r as S,F as j,j as s,t as v,S as C}from"./index.js";import{L as R}from"./index-CjWPDfDC.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-CxftshCa.js";import{g as H}from"./charthelpers-B0zLHD4s.js";import"./SideBar-CkoMfgfL.js";import"./xlsx-BHRztzV8.js";import"./index-ZGgT6a2u.js";import"./hook-BbhLqP_c.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/Budget-DaieNipA.js b/compendium_v2/static/Budget-DaieNipA.js new file mode 100644 index 00000000..82876c4b --- /dev/null +++ b/compendium_v2/static/Budget-DaieNipA.js @@ -0,0 +1 @@ +import{c as _,r as S,F as j,j as s,t as v,S as C}from"./index-DunMf8wQ.js";import{L as R}from"./index-C2DQFzVc.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-DvdT9bkc.js";import{g as H}from"./charthelpers-vHYh9qxV.js";import"./SideBar-DC9SKCkF.js";import"./xlsx-BHRztzV8.js";import"./index-DSQNfbUQ.js";import"./hook-CgOBj93G.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-BNzcQNhU.js b/compendium_v2/static/BusinessContinuity-BNzcQNhU.js new file mode 100644 index 00000000..76f9e67f --- /dev/null +++ b/compendium_v2/static/BusinessContinuity-BNzcQNhU.js @@ -0,0 +1,5 @@ +import{c as v,r as S,F as j,j as y,t as C,S as E}from"./index-DunMf8wQ.js";import{u as F,g as P,n as D,D as L,F as R,f as M}from"./useData-DvdT9bkc.js";import{P as B}from"./PillTable-DEX_WeNY.js";import"./SideBar-DC9SKCkF.js";import"./xlsx-BHRztzV8.js";import"./index-DSQNfbUQ.js";import"./hook-CgOBj93G.js";import"./ColorPill-CXsYrUiQ.js";import"./Table-BUrPWwZB.js";function Q(){const e=v.c(30);let s;e[0]===Symbol.for("react.memo_cache_sentinel")?(s=u=>u.business_continuity_plans!==null,e[0]=s):s=e[0];const w=s,{filterSelection:t,setFilterSelection:p}=S.useContext(j),{data:b,years:_,nrens:x}=F("/api/standards",p,w);let n,d;if(e[1]!==b||e[2]!==t.selectedNrens||e[3]!==t.selectedYears){let u;e[6]!==t.selectedNrens||e[7]!==t.selectedYears?(u=k=>t.selectedYears.includes(k.year)&&t.selectedNrens.includes(k.nren)&&k.business_continuity_plans!==null,e[6]=t.selectedNrens,e[7]=t.selectedYears,e[8]=u):u=e[8],n=b.filter(u);const g=P(n,"business_continuity_plans");d=D(g,O),e[1]=b,e[2]=t.selectedNrens,e[3]=t.selectedYears,e[4]=n,e[5]=d}else n=e[4],d=e[5];const N=d;let i,f;e[9]===Symbol.for("react.memo_cache_sentinel")?(i=["Yes","No"],f=new Map([[i[0],"True"],[i[1],"False"]]),e[9]=i,e[10]=f):(i=e[9],f=e[10]);const Y=f;let l;e[11]!==_?(l=[..._],e[11]=_,e[12]=l):l=e[12];let o;e[13]!==x?(o=x.values(),e[13]=x,e[14]=o):o=e[14];let a;e[15]!==o?(a=[...o],e[15]=o,e[16]=a):a=e[16];let r;e[17]!==l||e[18]!==a?(r={availableYears:l,availableNrens:a},e[17]=l,e[18]=a,e[19]=r):r=e[19];let m;e[20]!==t||e[21]!==p||e[22]!==r?(m=y.jsx(R,{filterOptions:r,filterSelection:t,setFilterSelection:p,coloredYears:!0}),e[20]=t,e[21]=p,e[22]=r,e[23]=m):m=e[23];const T=m;let c;e[24]!==N?(c=y.jsx(M,{children:y.jsx(B,{columns:i,columnLookup:Y,dataLookup:N})}),e[24]=N,e[25]=c):c=e[25];let h;return e[26]!==T||e[27]!==n||e[28]!==c?(h=y.jsx(L,{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 + is denoted by a black ring around the marker.`,category:E.Policy,filter:T,data:n,filename:"business_continuity_nrens_per_year",children:c}),e[26]=T,e[27]=n,e[28]=c,e[29]=h):h=e[29],h}function O(e,s){if(s.business_continuity_plans_specifics)return s.business_continuity_plans_specifics}export{Q as default}; diff --git a/compendium_v2/static/BusinessContinuity-CswNIFcO.js b/compendium_v2/static/BusinessContinuity-CswNIFcO.js deleted file mode 100644 index 7b2eebad..00000000 --- a/compendium_v2/static/BusinessContinuity-CswNIFcO.js +++ /dev/null @@ -1,5 +0,0 @@ -import{c as v,r as S,F as j,j as y,t as C,S as E}from"./index.js";import{u as F,g as P,n as D,D as L,F as R,f as M}from"./useData-CxftshCa.js";import{P as B}from"./PillTable-Cnj0nnFy.js";import"./SideBar-CkoMfgfL.js";import"./xlsx-BHRztzV8.js";import"./index-ZGgT6a2u.js";import"./hook-BbhLqP_c.js";import"./ColorPill-CXvWIfWz.js";import"./Table-ClWM2_rS.js";function Q(){const e=v.c(30);let s;e[0]===Symbol.for("react.memo_cache_sentinel")?(s=u=>u.business_continuity_plans!==null,e[0]=s):s=e[0];const w=s,{filterSelection:t,setFilterSelection:p}=S.useContext(j),{data:b,years:_,nrens:x}=F("/api/standards",p,w);let n,d;if(e[1]!==b||e[2]!==t.selectedNrens||e[3]!==t.selectedYears){let u;e[6]!==t.selectedNrens||e[7]!==t.selectedYears?(u=k=>t.selectedYears.includes(k.year)&&t.selectedNrens.includes(k.nren)&&k.business_continuity_plans!==null,e[6]=t.selectedNrens,e[7]=t.selectedYears,e[8]=u):u=e[8],n=b.filter(u);const g=P(n,"business_continuity_plans");d=D(g,O),e[1]=b,e[2]=t.selectedNrens,e[3]=t.selectedYears,e[4]=n,e[5]=d}else n=e[4],d=e[5];const N=d;let i,f;e[9]===Symbol.for("react.memo_cache_sentinel")?(i=["Yes","No"],f=new Map([[i[0],"True"],[i[1],"False"]]),e[9]=i,e[10]=f):(i=e[9],f=e[10]);const Y=f;let l;e[11]!==_?(l=[..._],e[11]=_,e[12]=l):l=e[12];let o;e[13]!==x?(o=x.values(),e[13]=x,e[14]=o):o=e[14];let a;e[15]!==o?(a=[...o],e[15]=o,e[16]=a):a=e[16];let r;e[17]!==l||e[18]!==a?(r={availableYears:l,availableNrens:a},e[17]=l,e[18]=a,e[19]=r):r=e[19];let m;e[20]!==t||e[21]!==p||e[22]!==r?(m=y.jsx(R,{filterOptions:r,filterSelection:t,setFilterSelection:p,coloredYears:!0}),e[20]=t,e[21]=p,e[22]=r,e[23]=m):m=e[23];const T=m;let c;e[24]!==N?(c=y.jsx(M,{children:y.jsx(B,{columns:i,columnLookup:Y,dataLookup:N})}),e[24]=N,e[25]=c):c=e[25];let h;return e[26]!==T||e[27]!==n||e[28]!==c?(h=y.jsx(L,{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 - is denoted by a black ring around the marker.`,category:E.Policy,filter:T,data:n,filename:"business_continuity_nrens_per_year",children:c}),e[26]=T,e[27]=n,e[28]=c,e[29]=h):h=e[29],h}function O(e,s){if(s.business_continuity_plans_specifics)return s.business_continuity_plans_specifics}export{Q as default}; diff --git a/compendium_v2/static/CapacityCoreIP-DiIZVI-s.js b/compendium_v2/static/CapacityCoreIP-DiIZVI-s.js new file mode 100644 index 00000000..e8a3daaa --- /dev/null +++ b/compendium_v2/static/CapacityCoreIP-DiIZVI-s.js @@ -0,0 +1,3 @@ +import{c as P,r as Y,F as I,j as y,S as G,t as R}from"./index-DunMf8wQ.js";import{B as L}from"./index-C2DQFzVc.js";import{C as O,a as $,L as A,B as M,p as T,c as U,d as q,u as z,o as H,D as J,F as K,f as Q}from"./useData-DvdT9bkc.js";import{p as V}from"./chartjs-plugin-datalabels.esm-Bb0FwIXw.js";import{a as W}from"./charthelpers-vHYh9qxV.js";import"./SideBar-DC9SKCkF.js";import"./xlsx-BHRztzV8.js";import"./index-DSQNfbUQ.js";import"./hook-CgOBj93G.js";O.register($,A,M,T,U,q);function oe(){const e=P.c(39);let b;e[0]===Symbol.for("react.memo_cache_sentinel")?(b=n=>n.typical_backbone_capacity!=null,e[0]=b):b=e[0];const B=b,{filterSelection:t,setFilterSelection:s}=Y.useContext(I),{data:N,years:d,nrens:u}=z("/api/capacity",s,B);let i,l,a,g;if(e[1]!==N||e[2]!==t||e[3]!==u||e[4]!==s||e[5]!==d){let n;e[10]!==t.selectedNrens||e[11]!==t.selectedYears?(n=j=>t.selectedYears.includes(j.year)&&t.selectedNrens.includes(j.nren)&&B(j),e[10]=t.selectedNrens,e[11]=t.selectedYears,e[12]=n):n=e[12],a=N.filter(n),i=H(a,"typical_backbone_capacity","Backbone IP Capacity");let p;e[13]!==d?(p=[...d],e[13]=d,e[14]=p):p=e[14];let f;e[15]!==u?(f=u.values(),e[15]=u,e[16]=f):f=e[16];let m;e[17]!==f?(m=[...f],e[17]=f,e[18]=m):m=e[18];let h;e[19]!==p||e[20]!==m?(h={availableYears:p,availableNrens:m},e[19]=p,e[20]=m,e[21]=h):h=e[21];let S;e[22]!==t||e[23]!==s||e[24]!==h?(S=y.jsx(K,{filterOptions:h,filterSelection:t,setFilterSelection:s}),e[22]=t,e[23]=s,e[24]=h,e[25]=S):S=e[25],l=S,g=Array.from(new Set(a.map(X))),e[1]=N,e[2]=t,e[3]=u,e[4]=s,e[5]=d,e[6]=i,e[7]=l,e[8]=a,e[9]=g}else i=e[6],l=e[7],a=e[8],g=e[9];const w=g.length,D=Math.max(w*t.selectedYears.length*1.5+5,50),v=R["capacity-core-ip"],E=`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 _;e[26]===Symbol.for("react.memo_cache_sentinel")?(_=W({title:v,tooltipUnit:"Gbit/s",unit:"Gbit/s"}),e[26]=_):_=e[26];const F=_,k=`${D}rem`;let r;e[27]!==k?(r={height:k},e[27]=k,e[28]=r):r=e[28];let x;e[29]===Symbol.for("react.memo_cache_sentinel")?(x=[V],e[29]=x):x=e[29];let c;e[30]!==i?(c=y.jsx(L,{data:i,options:F,plugins:x}),e[30]=i,e[31]=c):c=e[31];let o;e[32]!==r||e[33]!==c?(o=y.jsx(Q,{children:y.jsx("div",{className:"chart-container",style:r,children:c})}),e[32]=r,e[33]=c,e[34]=o):o=e[34];let C;return e[35]!==l||e[36]!==a||e[37]!==o?(C=y.jsx(J,{title:v,description:E,category:G.Network,filter:l,data:a,filename:"capacity_core_ip",children:o}),e[35]=l,e[36]=a,e[37]=o,e[38]=C):C=e[38],C}function X(e){return e.nren}export{oe as default}; diff --git a/compendium_v2/static/CapacityCoreIP-P2rbPvQY.js b/compendium_v2/static/CapacityCoreIP-P2rbPvQY.js deleted file mode 100644 index 68ab16b7..00000000 --- a/compendium_v2/static/CapacityCoreIP-P2rbPvQY.js +++ /dev/null @@ -1,3 +0,0 @@ -import{c as P,r as Y,F as I,j as y,S as G,t as R}from"./index.js";import{B as L}from"./index-CjWPDfDC.js";import{C as O,a as $,L as A,B as M,p as T,c as U,d as q,u as z,o as H,D as J,F as K,f as Q}from"./useData-CxftshCa.js";import{p as V}from"./chartjs-plugin-datalabels.esm-CjG-nxnq.js";import{a as W}from"./charthelpers-B0zLHD4s.js";import"./SideBar-CkoMfgfL.js";import"./xlsx-BHRztzV8.js";import"./index-ZGgT6a2u.js";import"./hook-BbhLqP_c.js";O.register($,A,M,T,U,q);function oe(){const e=P.c(39);let b;e[0]===Symbol.for("react.memo_cache_sentinel")?(b=n=>n.typical_backbone_capacity!=null,e[0]=b):b=e[0];const B=b,{filterSelection:t,setFilterSelection:s}=Y.useContext(I),{data:N,years:d,nrens:u}=z("/api/capacity",s,B);let i,l,a,g;if(e[1]!==N||e[2]!==t||e[3]!==u||e[4]!==s||e[5]!==d){let n;e[10]!==t.selectedNrens||e[11]!==t.selectedYears?(n=j=>t.selectedYears.includes(j.year)&&t.selectedNrens.includes(j.nren)&&B(j),e[10]=t.selectedNrens,e[11]=t.selectedYears,e[12]=n):n=e[12],a=N.filter(n),i=H(a,"typical_backbone_capacity","Backbone IP Capacity");let p;e[13]!==d?(p=[...d],e[13]=d,e[14]=p):p=e[14];let f;e[15]!==u?(f=u.values(),e[15]=u,e[16]=f):f=e[16];let m;e[17]!==f?(m=[...f],e[17]=f,e[18]=m):m=e[18];let h;e[19]!==p||e[20]!==m?(h={availableYears:p,availableNrens:m},e[19]=p,e[20]=m,e[21]=h):h=e[21];let S;e[22]!==t||e[23]!==s||e[24]!==h?(S=y.jsx(K,{filterOptions:h,filterSelection:t,setFilterSelection:s}),e[22]=t,e[23]=s,e[24]=h,e[25]=S):S=e[25],l=S,g=Array.from(new Set(a.map(X))),e[1]=N,e[2]=t,e[3]=u,e[4]=s,e[5]=d,e[6]=i,e[7]=l,e[8]=a,e[9]=g}else i=e[6],l=e[7],a=e[8],g=e[9];const w=g.length,D=Math.max(w*t.selectedYears.length*1.5+5,50),v=R["capacity-core-ip"],E=`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 _;e[26]===Symbol.for("react.memo_cache_sentinel")?(_=W({title:v,tooltipUnit:"Gbit/s",unit:"Gbit/s"}),e[26]=_):_=e[26];const F=_,k=`${D}rem`;let r;e[27]!==k?(r={height:k},e[27]=k,e[28]=r):r=e[28];let x;e[29]===Symbol.for("react.memo_cache_sentinel")?(x=[V],e[29]=x):x=e[29];let c;e[30]!==i?(c=y.jsx(L,{data:i,options:F,plugins:x}),e[30]=i,e[31]=c):c=e[31];let o;e[32]!==r||e[33]!==c?(o=y.jsx(Q,{children:y.jsx("div",{className:"chart-container",style:r,children:c})}),e[32]=r,e[33]=c,e[34]=o):o=e[34];let C;return e[35]!==l||e[36]!==a||e[37]!==o?(C=y.jsx(J,{title:v,description:E,category:G.Network,filter:l,data:a,filename:"capacity_core_ip",children:o}),e[35]=l,e[36]=a,e[37]=o,e[38]=C):C=e[38],C}function X(e){return e.nren}export{oe as default}; diff --git a/compendium_v2/static/CapacityLargestLink-CGhxu47M.js b/compendium_v2/static/CapacityLargestLink-CGhxu47M.js deleted file mode 100644 index f42b477e..00000000 --- a/compendium_v2/static/CapacityLargestLink-CGhxu47M.js +++ /dev/null @@ -1,3 +0,0 @@ -import{c as L,r as Y,F as G,j as u,S as R,t as O}from"./index.js";import{B as P}from"./index-CjWPDfDC.js";import{C as $,a as A,L as M,B as U,p as W,c as q,d as z,u as H,o as I,D as J,F as K,f as Q}from"./useData-CxftshCa.js";import{p as T}from"./chartjs-plugin-datalabels.esm-CjG-nxnq.js";import{a as V}from"./charthelpers-B0zLHD4s.js";import"./SideBar-CkoMfgfL.js";import"./xlsx-BHRztzV8.js";import"./index-ZGgT6a2u.js";import"./hook-BbhLqP_c.js";$.register(A,M,U,W,q,z);function ce(){const e=L.c(39);let y;e[0]===Symbol.for("react.memo_cache_sentinel")?(y=o=>o.largest_link_capacity!=null,e[0]=y):y=e[0];const j=y,{filterSelection:t,setFilterSelection:s}=Y.useContext(G),{data:b,years:h,nrens:g}=H("/api/capacity",s,j);let i,l,a,_;if(e[1]!==b||e[2]!==t||e[3]!==g||e[4]!==s||e[5]!==h){let o;e[10]!==t.selectedNrens||e[11]!==t.selectedYears?(o=v=>t.selectedYears.includes(v.year)&&t.selectedNrens.includes(v.nren)&&j(v),e[10]=t.selectedNrens,e[11]=t.selectedYears,e[12]=o):o=e[12],a=b.filter(o),i=I(a,"largest_link_capacity","Link capacity");let p;e[13]!==h?(p=[...h],e[13]=h,e[14]=p):p=e[14];let f;e[15]!==g?(f=g.values(),e[15]=g,e[16]=f):f=e[16];let m;e[17]!==f?(m=[...f],e[17]=f,e[18]=m):m=e[18];let d;e[19]!==p||e[20]!==m?(d={availableYears:p,availableNrens:m},e[19]=p,e[20]=m,e[21]=d):d=e[21];let S;e[22]!==t||e[23]!==s||e[24]!==d?(S=u.jsx(K,{filterOptions:d,filterSelection:t,setFilterSelection:s}),e[22]=t,e[23]=s,e[24]=d,e[25]=S):S=e[25],l=S,_=Array.from(new Set(a.map(X))),e[1]=b,e[2]=t,e[3]=g,e[4]=s,e[5]=h,e[6]=i,e[7]=l,e[8]=a,e[9]=_}else i=e[6],l=e[7],a=e[8],_=e[9];const B=_.length,D=Math.max(B*t.selectedYears.length*1.5+5,50),w=O["capacity-largest-link"],E=`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 k;e[26]===Symbol.for("react.memo_cache_sentinel")?(k=V({title:w,tooltipUnit:"Gbit/s",unit:"Gbit/s"}),e[26]=k):k=e[26];const F=k,N=`${D}rem`;let r;e[27]!==N?(r={height:N},e[27]=N,e[28]=r):r=e[28];let x;e[29]===Symbol.for("react.memo_cache_sentinel")?(x=[T],e[29]=x):x=e[29];let n;e[30]!==i?(n=u.jsx(P,{data:i,options:F,plugins:x}),e[30]=i,e[31]=n):n=e[31];let c;e[32]!==r||e[33]!==n?(c=u.jsx(Q,{children:u.jsx("div",{className:"chart-container",style:r,children:n})}),e[32]=r,e[33]=n,e[34]=c):c=e[34];let C;return e[35]!==l||e[36]!==a||e[37]!==c?(C=u.jsx(J,{title:w,description:E,category:R.Network,filter:l,data:a,filename:"capacity_largest_link",children:c}),e[35]=l,e[36]=a,e[37]=c,e[38]=C):C=e[38],C}function X(e){return e.nren}export{ce as default}; diff --git a/compendium_v2/static/CapacityLargestLink-xwsd4prK.js b/compendium_v2/static/CapacityLargestLink-xwsd4prK.js new file mode 100644 index 00000000..0cc5e7b8 --- /dev/null +++ b/compendium_v2/static/CapacityLargestLink-xwsd4prK.js @@ -0,0 +1,3 @@ +import{c as L,r as Y,F as G,j as u,S as R,t as O}from"./index-DunMf8wQ.js";import{B as P}from"./index-C2DQFzVc.js";import{C as $,a as A,L as M,B as U,p as W,c as q,d as z,u as H,o as I,D as J,F as K,f as Q}from"./useData-DvdT9bkc.js";import{p as T}from"./chartjs-plugin-datalabels.esm-Bb0FwIXw.js";import{a as V}from"./charthelpers-vHYh9qxV.js";import"./SideBar-DC9SKCkF.js";import"./xlsx-BHRztzV8.js";import"./index-DSQNfbUQ.js";import"./hook-CgOBj93G.js";$.register(A,M,U,W,q,z);function ce(){const e=L.c(39);let y;e[0]===Symbol.for("react.memo_cache_sentinel")?(y=o=>o.largest_link_capacity!=null,e[0]=y):y=e[0];const j=y,{filterSelection:t,setFilterSelection:s}=Y.useContext(G),{data:b,years:h,nrens:g}=H("/api/capacity",s,j);let i,l,a,_;if(e[1]!==b||e[2]!==t||e[3]!==g||e[4]!==s||e[5]!==h){let o;e[10]!==t.selectedNrens||e[11]!==t.selectedYears?(o=v=>t.selectedYears.includes(v.year)&&t.selectedNrens.includes(v.nren)&&j(v),e[10]=t.selectedNrens,e[11]=t.selectedYears,e[12]=o):o=e[12],a=b.filter(o),i=I(a,"largest_link_capacity","Link capacity");let p;e[13]!==h?(p=[...h],e[13]=h,e[14]=p):p=e[14];let f;e[15]!==g?(f=g.values(),e[15]=g,e[16]=f):f=e[16];let m;e[17]!==f?(m=[...f],e[17]=f,e[18]=m):m=e[18];let d;e[19]!==p||e[20]!==m?(d={availableYears:p,availableNrens:m},e[19]=p,e[20]=m,e[21]=d):d=e[21];let S;e[22]!==t||e[23]!==s||e[24]!==d?(S=u.jsx(K,{filterOptions:d,filterSelection:t,setFilterSelection:s}),e[22]=t,e[23]=s,e[24]=d,e[25]=S):S=e[25],l=S,_=Array.from(new Set(a.map(X))),e[1]=b,e[2]=t,e[3]=g,e[4]=s,e[5]=h,e[6]=i,e[7]=l,e[8]=a,e[9]=_}else i=e[6],l=e[7],a=e[8],_=e[9];const B=_.length,D=Math.max(B*t.selectedYears.length*1.5+5,50),w=O["capacity-largest-link"],E=`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 k;e[26]===Symbol.for("react.memo_cache_sentinel")?(k=V({title:w,tooltipUnit:"Gbit/s",unit:"Gbit/s"}),e[26]=k):k=e[26];const F=k,N=`${D}rem`;let r;e[27]!==N?(r={height:N},e[27]=N,e[28]=r):r=e[28];let x;e[29]===Symbol.for("react.memo_cache_sentinel")?(x=[T],e[29]=x):x=e[29];let n;e[30]!==i?(n=u.jsx(P,{data:i,options:F,plugins:x}),e[30]=i,e[31]=n):n=e[31];let c;e[32]!==r||e[33]!==n?(c=u.jsx(Q,{children:u.jsx("div",{className:"chart-container",style:r,children:n})}),e[32]=r,e[33]=n,e[34]=c):c=e[34];let C;return e[35]!==l||e[36]!==a||e[37]!==c?(C=u.jsx(J,{title:w,description:E,category:R.Network,filter:l,data:a,filename:"capacity_largest_link",children:c}),e[35]=l,e[36]=a,e[37]=c,e[38]=C):C=e[38],C}function X(e){return e.nren}export{ce as default}; diff --git a/compendium_v2/static/CentralProcurement-C6FG3PH8.js b/compendium_v2/static/CentralProcurement-C6FG3PH8.js new file mode 100644 index 00000000..d1ae1476 --- /dev/null +++ b/compendium_v2/static/CentralProcurement-C6FG3PH8.js @@ -0,0 +1 @@ +import{c as Y,r as I,F as T,j as h,S as $,t as L}from"./index-DunMf8wQ.js";import{C as O,a as V,L as k,B as A,p as M,c as U,d as Z,u as q,o as z,D as G,F as H,f as J}from"./useData-DvdT9bkc.js";import{p as K}from"./chartjs-plugin-datalabels.esm-Bb0FwIXw.js";import{B as Q}from"./index-C2DQFzVc.js";import{a as W}from"./charthelpers-vHYh9qxV.js";import"./SideBar-DC9SKCkF.js";import"./xlsx-BHRztzV8.js";import"./index-DSQNfbUQ.js";import"./hook-CgOBj93G.js";O.register(V,k,A,M,U,Z);function ce(){const e=Y.c(40);let g;e[0]===Symbol.for("react.memo_cache_sentinel")?(g=s=>s.amount!=null,e[0]=g):g=e[0];const v=g,{filterSelection:t,setFilterSelection:l}=I.useContext(T),{data:w,years:d,nrens:y}=q("/api/central-procurement",l,v);let o,n,r,x;if(e[1]!==w||e[2]!==t||e[3]!==y||e[4]!==l||e[5]!==d){let s;e[10]!==t.selectedNrens||e[11]!==t.selectedYears?(s=j=>t.selectedYears.includes(j.year)&&t.selectedNrens.includes(j.nren),e[10]=t.selectedNrens,e[11]=t.selectedYears,e[12]=s):s=e[12],r=w.filter(s),o=z(r,"amount","Procurement Value");let a;e[13]!==d?(a=[...d],e[13]=d,e[14]=a):a=e[14];let f;e[15]!==y?(f=y.values(),e[15]=y,e[16]=f):f=e[16];let u;e[17]!==f?(u=[...f],e[17]=f,e[18]=u):u=e[18];let p;e[19]!==a||e[20]!==u?(p={availableYears:a,availableNrens:u},e[19]=a,e[20]=u,e[21]=p):p=e[21];let b;e[22]!==t||e[23]!==l||e[24]!==p?(b=h.jsx(H,{filterOptions:p,filterSelection:t,setFilterSelection:l}),e[22]=t,e[23]=l,e[24]=p,e[25]=b):b=e[25],n=b,x=Array.from(new Set(r.map(X))),e[1]=w,e[2]=t,e[3]=y,e[4]=l,e[5]=d,e[6]=o,e[7]=n,e[8]=r,e[9]=x}else o=e[6],n=e[7],r=e[8],x=e[9];const P=x.length,B=Math.max(P*t.selectedYears.length*1.5+5,50),D=L["central-procurement"];let N;e[26]===Symbol.for("react.memo_cache_sentinel")?(N=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[26]=N):N=e[26];const F=N;let S;e[27]===Symbol.for("react.memo_cache_sentinel")?(S=W({title:"Software Procurement Value",valueTransform(s){return`${new Intl.NumberFormat(void 0,{style:"currency",currency:"EUR",trailingZeroDisplay:"stripIfInteger"}).format(s)}`}}),e[27]=S):S=e[27];const R=S,E=`${B}rem`;let i;e[28]!==E?(i={height:E},e[28]=E,e[29]=i):i=e[29];let _;e[30]===Symbol.for("react.memo_cache_sentinel")?(_=[K],e[30]=_):_=e[30];let c;e[31]!==o?(c=h.jsx(Q,{data:o,options:R,plugins:_}),e[31]=o,e[32]=c):c=e[32];let m;e[33]!==i||e[34]!==c?(m=h.jsx(J,{children:h.jsx("div",{className:"chart-container",style:i,children:c})}),e[33]=i,e[34]=c,e[35]=m):m=e[35];let C;return e[36]!==n||e[37]!==r||e[38]!==m?(C=h.jsx(G,{title:D,description:F,category:$.Policy,filter:n,data:r,filename:"central_procurement",children:m}),e[36]=n,e[37]=r,e[38]=m,e[39]=C):C=e[39],C}function X(e){return e.nren}export{ce as default}; diff --git a/compendium_v2/static/CentralProcurement-_z44vsb4.js b/compendium_v2/static/CentralProcurement-_z44vsb4.js deleted file mode 100644 index ede8176e..00000000 --- a/compendium_v2/static/CentralProcurement-_z44vsb4.js +++ /dev/null @@ -1 +0,0 @@ -import{c as Y,r as I,F as T,j as h,S as $,t as L}from"./index.js";import{C as O,a as V,L as k,B as A,p as M,c as U,d as Z,u as q,o as z,D as G,F as H,f as J}from"./useData-CxftshCa.js";import{p as K}from"./chartjs-plugin-datalabels.esm-CjG-nxnq.js";import{B as Q}from"./index-CjWPDfDC.js";import{a as W}from"./charthelpers-B0zLHD4s.js";import"./SideBar-CkoMfgfL.js";import"./xlsx-BHRztzV8.js";import"./index-ZGgT6a2u.js";import"./hook-BbhLqP_c.js";O.register(V,k,A,M,U,Z);function ce(){const e=Y.c(40);let g;e[0]===Symbol.for("react.memo_cache_sentinel")?(g=s=>s.amount!=null,e[0]=g):g=e[0];const v=g,{filterSelection:t,setFilterSelection:l}=I.useContext(T),{data:w,years:d,nrens:y}=q("/api/central-procurement",l,v);let o,n,r,x;if(e[1]!==w||e[2]!==t||e[3]!==y||e[4]!==l||e[5]!==d){let s;e[10]!==t.selectedNrens||e[11]!==t.selectedYears?(s=j=>t.selectedYears.includes(j.year)&&t.selectedNrens.includes(j.nren),e[10]=t.selectedNrens,e[11]=t.selectedYears,e[12]=s):s=e[12],r=w.filter(s),o=z(r,"amount","Procurement Value");let a;e[13]!==d?(a=[...d],e[13]=d,e[14]=a):a=e[14];let f;e[15]!==y?(f=y.values(),e[15]=y,e[16]=f):f=e[16];let u;e[17]!==f?(u=[...f],e[17]=f,e[18]=u):u=e[18];let p;e[19]!==a||e[20]!==u?(p={availableYears:a,availableNrens:u},e[19]=a,e[20]=u,e[21]=p):p=e[21];let b;e[22]!==t||e[23]!==l||e[24]!==p?(b=h.jsx(H,{filterOptions:p,filterSelection:t,setFilterSelection:l}),e[22]=t,e[23]=l,e[24]=p,e[25]=b):b=e[25],n=b,x=Array.from(new Set(r.map(X))),e[1]=w,e[2]=t,e[3]=y,e[4]=l,e[5]=d,e[6]=o,e[7]=n,e[8]=r,e[9]=x}else o=e[6],n=e[7],r=e[8],x=e[9];const P=x.length,B=Math.max(P*t.selectedYears.length*1.5+5,50),D=L["central-procurement"];let N;e[26]===Symbol.for("react.memo_cache_sentinel")?(N=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[26]=N):N=e[26];const F=N;let S;e[27]===Symbol.for("react.memo_cache_sentinel")?(S=W({title:"Software Procurement Value",valueTransform(s){return`${new Intl.NumberFormat(void 0,{style:"currency",currency:"EUR",trailingZeroDisplay:"stripIfInteger"}).format(s)}`}}),e[27]=S):S=e[27];const R=S,E=`${B}rem`;let i;e[28]!==E?(i={height:E},e[28]=E,e[29]=i):i=e[29];let _;e[30]===Symbol.for("react.memo_cache_sentinel")?(_=[K],e[30]=_):_=e[30];let c;e[31]!==o?(c=h.jsx(Q,{data:o,options:R,plugins:_}),e[31]=o,e[32]=c):c=e[32];let m;e[33]!==i||e[34]!==c?(m=h.jsx(J,{children:h.jsx("div",{className:"chart-container",style:i,children:c})}),e[33]=i,e[34]=c,e[35]=m):m=e[35];let C;return e[36]!==n||e[37]!==r||e[38]!==m?(C=h.jsx(G,{title:D,description:F,category:$.Policy,filter:n,data:r,filename:"central_procurement",children:m}),e[36]=n,e[37]=r,e[38]=m,e[39]=C):C=e[39],C}function X(e){return e.nren}export{ce as default}; diff --git a/compendium_v2/static/CertificateProvider-CpWnMPbq.js b/compendium_v2/static/CertificateProvider-CpWnMPbq.js deleted file mode 100644 index fd53cd70..00000000 --- a/compendium_v2/static/CertificateProvider-CpWnMPbq.js +++ /dev/null @@ -1 +0,0 @@ -import{c as _,r as Y,F as j,j as S,t as k,S as D}from"./index.js";import{u as E,g as P,D as T,F as w,f as F}from"./useData-CxftshCa.js";import{P as L}from"./PillTable-Cnj0nnFy.js";import"./SideBar-CkoMfgfL.js";import"./xlsx-BHRztzV8.js";import"./index-ZGgT6a2u.js";import"./hook-BbhLqP_c.js";import"./ColorPill-CXvWIfWz.js";import"./Table-ClWM2_rS.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/CertificateProvider-D9Qr_R-E.js b/compendium_v2/static/CertificateProvider-D9Qr_R-E.js new file mode 100644 index 00000000..42313a2f --- /dev/null +++ b/compendium_v2/static/CertificateProvider-D9Qr_R-E.js @@ -0,0 +1 @@ +import{c as _,r as Y,F as j,j as S,t as k,S as D}from"./index-DunMf8wQ.js";import{u as E,g as P,D as T,F as w,f as F}from"./useData-DvdT9bkc.js";import{P as L}from"./PillTable-DEX_WeNY.js";import"./SideBar-DC9SKCkF.js";import"./xlsx-BHRztzV8.js";import"./index-DSQNfbUQ.js";import"./hook-CgOBj93G.js";import"./ColorPill-CXsYrUiQ.js";import"./Table-BUrPWwZB.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-BiXVfonj.js b/compendium_v2/static/ChargingStructure-BiXVfonj.js deleted file mode 100644 index cde4fb9f..00000000 --- a/compendium_v2/static/ChargingStructure-BiXVfonj.js +++ /dev/null @@ -1,3 +0,0 @@ -import{c as Y,r as j,F as v,j as p,t as E,S as F}from"./index.js";import{u as D,g as R,D as k,F as w,f as P}from"./useData-CxftshCa.js";import{P as T}from"./PillTable-Cnj0nnFy.js";import"./SideBar-CkoMfgfL.js";import"./xlsx-BHRztzV8.js";import"./index-ZGgT6a2u.js";import"./hook-BbhLqP_c.js";import"./ColorPill-CXvWIfWz.js";import"./Table-ClWM2_rS.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/ChargingStructure-DXabP1VZ.js b/compendium_v2/static/ChargingStructure-DXabP1VZ.js new file mode 100644 index 00000000..81d722ad --- /dev/null +++ b/compendium_v2/static/ChargingStructure-DXabP1VZ.js @@ -0,0 +1,3 @@ +import{c as Y,r as j,F as v,j as p,t as E,S as F}from"./index-DunMf8wQ.js";import{u as D,g as R,D as k,F as w,f as P}from"./useData-DvdT9bkc.js";import{P as T}from"./PillTable-DEX_WeNY.js";import"./SideBar-DC9SKCkF.js";import"./xlsx-BHRztzV8.js";import"./index-DSQNfbUQ.js";import"./hook-CgOBj93G.js";import"./ColorPill-CXsYrUiQ.js";import"./Table-BUrPWwZB.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-CXsYrUiQ.js b/compendium_v2/static/ColorPill-CXsYrUiQ.js new file mode 100644 index 00000000..105bf934 --- /dev/null +++ b/compendium_v2/static/ColorPill-CXsYrUiQ.js @@ -0,0 +1 @@ +import{c as m,j as a}from"./index-DunMf8wQ.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/ColorPill-CXvWIfWz.js b/compendium_v2/static/ColorPill-CXvWIfWz.js deleted file mode 100644 index 8a6c0af3..00000000 --- a/compendium_v2/static/ColorPill-CXvWIfWz.js +++ /dev/null @@ -1 +0,0 @@ -import{c as m,j as a}from"./index.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-BSBw8xZy.js b/compendium_v2/static/ConnectedInstitutionsURLs-BSBw8xZy.js deleted file mode 100644 index 3648f8ea..00000000 --- a/compendium_v2/static/ConnectedInstitutionsURLs-BSBw8xZy.js +++ /dev/null @@ -1 +0,0 @@ -import{c as g,r as y,F as C,j as x,t as L,S as R}from"./index.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-CxftshCa.js";import{N as O}from"./NrenYearTable-tQrmAmRo.js";import"./SideBar-CkoMfgfL.js";import"./xlsx-BHRztzV8.js";import"./index-ZGgT6a2u.js";import"./hook-BbhLqP_c.js";import"./Table-ClWM2_rS.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/ConnectedInstitutionsURLs-DCBf9aew.js b/compendium_v2/static/ConnectedInstitutionsURLs-DCBf9aew.js new file mode 100644 index 00000000..86d6b8e5 --- /dev/null +++ b/compendium_v2/static/ConnectedInstitutionsURLs-DCBf9aew.js @@ -0,0 +1 @@ +import{c as g,r as y,F as C,j as x,t as L,S as R}from"./index-DunMf8wQ.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-DvdT9bkc.js";import{N as O}from"./NrenYearTable-D3mNeVd3.js";import"./SideBar-DC9SKCkF.js";import"./xlsx-BHRztzV8.js";import"./index-DSQNfbUQ.js";import"./hook-CgOBj93G.js";import"./Table-BUrPWwZB.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-DXYx3bSL.js b/compendium_v2/static/ConnectedUser-DXYx3bSL.js deleted file mode 100644 index c01b304d..00000000 --- a/compendium_v2/static/ConnectedUser-DXYx3bSL.js +++ /dev/null @@ -1 +0,0 @@ -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.js";import{u as G,r as u,D as $,F as q,f as B}from"./useData-CxftshCa.js";import{S as z}from"./ScrollableMatrix-Dxr22l4i.js";import"./SideBar-CkoMfgfL.js";import"./xlsx-BHRztzV8.js";import"./index-ZGgT6a2u.js";import"./hook-BbhLqP_c.js";import"./Table-ClWM2_rS.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/ConnectedUser-queHyxHS.js b/compendium_v2/static/ConnectedUser-queHyxHS.js new file mode 100644 index 00000000..cbe3b8db --- /dev/null +++ b/compendium_v2/static/ConnectedUser-queHyxHS.js @@ -0,0 +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-DunMf8wQ.js";import{u as G,r as u,D as $,F as q,f as B}from"./useData-DvdT9bkc.js";import{S as z}from"./ScrollableMatrix-D6caiSg1.js";import"./SideBar-DC9SKCkF.js";import"./xlsx-BHRztzV8.js";import"./index-DSQNfbUQ.js";import"./hook-CgOBj93G.js";import"./Table-BUrPWwZB.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-BrErbevP.js b/compendium_v2/static/CorporateStrategy-BrErbevP.js deleted file mode 100644 index 81eaf37e..00000000 --- a/compendium_v2/static/CorporateStrategy-BrErbevP.js +++ /dev/null @@ -1,3 +0,0 @@ -import{c as k,r as C,F as j,j as y,t as E,S as F}from"./index.js";import{u as R,q as T,k as Y,i as w,D as L,F as P,f as B}from"./useData-CxftshCa.js";import{N as q}from"./NrenYearTable-tQrmAmRo.js";import"./SideBar-CkoMfgfL.js";import"./xlsx-BHRztzV8.js";import"./index-ZGgT6a2u.js";import"./hook-BbhLqP_c.js";import"./Table-ClWM2_rS.js";function J(){const e=k.c(23);let l;e[0]===Symbol.for("react.memo_cache_sentinel")?(l=x=>!!x.strategic_plan,e[0]=l):l=e[0];const b=l,{filterSelection:t,setFilterSelection:i}=C.useContext(j),{data:n,nrens:h}=R("/api/policy",i,b);let a,c;if(e[1]!==n||e[2]!==t.selectedNrens){const x=n?T(n):[];let d;e[5]!==t.selectedNrens?(d=D=>t.selectedNrens.includes(D.nren),e[5]=t.selectedNrens,e[6]=d):d=e[6],a=x.filter(d);const v=Y(a);let u;e[7]===Symbol.for("react.memo_cache_sentinel")?(u=(D,S)=>{const _=S.strategic_plan;D[_]=_},e[7]=u):u=e[7],c=w(v,u),e[1]=n,e[2]=t.selectedNrens,e[3]=a,e[4]=c}else a=e[3],c=e[4];const g=c;let p;e[8]===Symbol.for("react.memo_cache_sentinel")?(p=[],e[8]=p):p=e[8];let s;e[9]!==h?(s=h.values(),e[9]=h,e[10]=s):s=e[10];let r;e[11]!==s?(r={availableYears:p,availableNrens:[...s]},e[11]=s,e[12]=r):r=e[12];let m;e[13]!==t||e[14]!==i||e[15]!==r?(m=y.jsx(P,{filterOptions:r,filterSelection:t,setFilterSelection:i}),e[13]=t,e[14]=i,e[15]=r,e[16]=m):m=e[16];const N=m;let o;e[17]!==g?(o=y.jsx(B,{children:y.jsx(q,{data:g,columnTitle:"Corporate Strategy",noDots:!0,keysAreURLs:!0,removeDecoration:!0})}),e[17]=g,e[18]=o):o=e[18];let f;return e[19]!==N||e[20]!==a||e[21]!==o?(f=y.jsx(L,{title:E["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:F.Policy,filter:N,data:a,filename:"nren_corporate_strategy",children:o}),e[19]=N,e[20]=a,e[21]=o,e[22]=f):f=e[22],f}export{J as default}; diff --git a/compendium_v2/static/CorporateStrategy-we6KtBv4.js b/compendium_v2/static/CorporateStrategy-we6KtBv4.js new file mode 100644 index 00000000..595acb78 --- /dev/null +++ b/compendium_v2/static/CorporateStrategy-we6KtBv4.js @@ -0,0 +1,3 @@ +import{c as k,r as C,F as j,j as y,t as E,S as F}from"./index-DunMf8wQ.js";import{u as R,q as T,k as Y,i as w,D as L,F as P,f as B}from"./useData-DvdT9bkc.js";import{N as q}from"./NrenYearTable-D3mNeVd3.js";import"./SideBar-DC9SKCkF.js";import"./xlsx-BHRztzV8.js";import"./index-DSQNfbUQ.js";import"./hook-CgOBj93G.js";import"./Table-BUrPWwZB.js";function J(){const e=k.c(23);let l;e[0]===Symbol.for("react.memo_cache_sentinel")?(l=x=>!!x.strategic_plan,e[0]=l):l=e[0];const b=l,{filterSelection:t,setFilterSelection:i}=C.useContext(j),{data:n,nrens:h}=R("/api/policy",i,b);let a,c;if(e[1]!==n||e[2]!==t.selectedNrens){const x=n?T(n):[];let d;e[5]!==t.selectedNrens?(d=D=>t.selectedNrens.includes(D.nren),e[5]=t.selectedNrens,e[6]=d):d=e[6],a=x.filter(d);const v=Y(a);let u;e[7]===Symbol.for("react.memo_cache_sentinel")?(u=(D,S)=>{const _=S.strategic_plan;D[_]=_},e[7]=u):u=e[7],c=w(v,u),e[1]=n,e[2]=t.selectedNrens,e[3]=a,e[4]=c}else a=e[3],c=e[4];const g=c;let p;e[8]===Symbol.for("react.memo_cache_sentinel")?(p=[],e[8]=p):p=e[8];let s;e[9]!==h?(s=h.values(),e[9]=h,e[10]=s):s=e[10];let r;e[11]!==s?(r={availableYears:p,availableNrens:[...s]},e[11]=s,e[12]=r):r=e[12];let m;e[13]!==t||e[14]!==i||e[15]!==r?(m=y.jsx(P,{filterOptions:r,filterSelection:t,setFilterSelection:i}),e[13]=t,e[14]=i,e[15]=r,e[16]=m):m=e[16];const N=m;let o;e[17]!==g?(o=y.jsx(B,{children:y.jsx(q,{data:g,columnTitle:"Corporate Strategy",noDots:!0,keysAreURLs:!0,removeDecoration:!0})}),e[17]=g,e[18]=o):o=e[18];let f;return e[19]!==N||e[20]!==a||e[21]!==o?(f=y.jsx(L,{title:E["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:F.Policy,filter:N,data:a,filename:"nren_corporate_strategy",children:o}),e[19]=N,e[20]=a,e[21]=o,e[22]=f):f=e[22],f}export{J as default}; diff --git a/compendium_v2/static/CrisisExercises-miIhkp8m.js b/compendium_v2/static/CrisisExercises-miIhkp8m.js new file mode 100644 index 00000000..235d1dcb --- /dev/null +++ b/compendium_v2/static/CrisisExercises-miIhkp8m.js @@ -0,0 +1,2 @@ +import{c as P,r as S,F as D,S as L,j as W,t as M}from"./index-DunMf8wQ.js";import{u as R,g as O,F as A,D as G,f as V}from"./useData-DvdT9bkc.js";import{P as $}from"./PillTable-DEX_WeNY.js";import"./SideBar-DC9SKCkF.js";import"./xlsx-BHRztzV8.js";import"./index-DSQNfbUQ.js";import"./hook-CgOBj93G.js";import"./ColorPill-CXsYrUiQ.js";import"./Table-BUrPWwZB.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/CrisisExercises-mu7CJTN3.js b/compendium_v2/static/CrisisExercises-mu7CJTN3.js deleted file mode 100644 index 9fac7def..00000000 --- a/compendium_v2/static/CrisisExercises-mu7CJTN3.js +++ /dev/null @@ -1,2 +0,0 @@ -import{c as P,r as S,F as D,S as L,j as W,t as M}from"./index.js";import{u as R,g as O,F as A,D as G,f as V}from"./useData-CxftshCa.js";import{P as $}from"./PillTable-Cnj0nnFy.js";import"./SideBar-CkoMfgfL.js";import"./xlsx-BHRztzV8.js";import"./index-ZGgT6a2u.js";import"./hook-BbhLqP_c.js";import"./ColorPill-CXvWIfWz.js";import"./Table-ClWM2_rS.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-BxTFYm8e.js b/compendium_v2/static/CrisisManagement-BxTFYm8e.js deleted file mode 100644 index de334627..00000000 --- a/compendium_v2/static/CrisisManagement-BxTFYm8e.js +++ /dev/null @@ -1 +0,0 @@ -import{c as C,r as F,F as v,j as x,t as P,S as k}from"./index.js";import{u as w,g as D,D as E,F as T,f as L}from"./useData-CxftshCa.js";import{P as M}from"./PillTable-Cnj0nnFy.js";import"./SideBar-CkoMfgfL.js";import"./xlsx-BHRztzV8.js";import"./index-ZGgT6a2u.js";import"./hook-BbhLqP_c.js";import"./ColorPill-CXvWIfWz.js";import"./Table-ClWM2_rS.js";function H(){const e=C.c(30);let m;e[0]===Symbol.for("react.memo_cache_sentinel")?(m=c=>c.crisis_management_procedure!==null,e[0]=m):m=e[0];const S=m,{filterSelection:t,setFilterSelection:d}=F.useContext(v),{data:N,years:_,nrens:g}=w("/api/standards",d,S);let s,f;if(e[1]!==N||e[2]!==t.selectedNrens||e[3]!==t.selectedYears){let c;e[6]!==t.selectedNrens||e[7]!==t.selectedYears?(c=Y=>t.selectedYears.includes(Y.year)&&t.selectedNrens.includes(Y.nren)&&S(Y),e[6]=t.selectedNrens,e[7]=t.selectedYears,e[8]=c):c=e[8],s=N.filter(c),f=D(s,"crisis_management_procedure"),e[1]=N,e[2]=t.selectedNrens,e[3]=t.selectedYears,e[4]=s,e[5]=f}else s=e[4],f=e[5];const b=f;let l,p;e[9]===Symbol.for("react.memo_cache_sentinel")?(l=["Yes","No"],p=new Map([[l[0],"True"],[l[1],"False"]]),e[9]=l,e[10]=p):(l=e[9],p=e[10]);const j=p;let a;e[11]!==_?(a=[..._],e[11]=_,e[12]=a):a=e[12];let r;e[13]!==g?(r=g.values(),e[13]=g,e[14]=r):r=e[14];let i;e[15]!==r?(i=[...r],e[15]=r,e[16]=i):i=e[16];let n;e[17]!==a||e[18]!==i?(n={availableYears:a,availableNrens:i},e[17]=a,e[18]=i,e[19]=n):n=e[19];let u;e[20]!==t||e[21]!==d||e[22]!==n?(u=x.jsx(T,{filterOptions:n,filterSelection:t,setFilterSelection:d,coloredYears:!0}),e[20]=t,e[21]=d,e[22]=n,e[23]=u):u=e[23];const y=u;let o;e[24]!==b?(o=x.jsx(L,{children:x.jsx(M,{columns:l,columnLookup:j,dataLookup:b})}),e[24]=b,e[25]=o):o=e[25];let h;return e[26]!==y||e[27]!==s||e[28]!==o?(h=x.jsx(E,{title:P["crisis-management"],description:"The table below shows whether NRENs have a formal crisis management procedure.",category:k.Policy,filter:y,data:s,filename:"crisis_management_nrens_per_year",children:o}),e[26]=y,e[27]=s,e[28]=o,e[29]=h):h=e[29],h}export{H as default}; diff --git a/compendium_v2/static/CrisisManagement-PDrUgEjD.js b/compendium_v2/static/CrisisManagement-PDrUgEjD.js new file mode 100644 index 00000000..95ecb8eb --- /dev/null +++ b/compendium_v2/static/CrisisManagement-PDrUgEjD.js @@ -0,0 +1 @@ +import{c as C,r as F,F as v,j as x,t as P,S as k}from"./index-DunMf8wQ.js";import{u as w,g as D,D as E,F as T,f as L}from"./useData-DvdT9bkc.js";import{P as M}from"./PillTable-DEX_WeNY.js";import"./SideBar-DC9SKCkF.js";import"./xlsx-BHRztzV8.js";import"./index-DSQNfbUQ.js";import"./hook-CgOBj93G.js";import"./ColorPill-CXsYrUiQ.js";import"./Table-BUrPWwZB.js";function H(){const e=C.c(30);let m;e[0]===Symbol.for("react.memo_cache_sentinel")?(m=c=>c.crisis_management_procedure!==null,e[0]=m):m=e[0];const S=m,{filterSelection:t,setFilterSelection:d}=F.useContext(v),{data:N,years:_,nrens:g}=w("/api/standards",d,S);let s,f;if(e[1]!==N||e[2]!==t.selectedNrens||e[3]!==t.selectedYears){let c;e[6]!==t.selectedNrens||e[7]!==t.selectedYears?(c=Y=>t.selectedYears.includes(Y.year)&&t.selectedNrens.includes(Y.nren)&&S(Y),e[6]=t.selectedNrens,e[7]=t.selectedYears,e[8]=c):c=e[8],s=N.filter(c),f=D(s,"crisis_management_procedure"),e[1]=N,e[2]=t.selectedNrens,e[3]=t.selectedYears,e[4]=s,e[5]=f}else s=e[4],f=e[5];const b=f;let l,p;e[9]===Symbol.for("react.memo_cache_sentinel")?(l=["Yes","No"],p=new Map([[l[0],"True"],[l[1],"False"]]),e[9]=l,e[10]=p):(l=e[9],p=e[10]);const j=p;let a;e[11]!==_?(a=[..._],e[11]=_,e[12]=a):a=e[12];let r;e[13]!==g?(r=g.values(),e[13]=g,e[14]=r):r=e[14];let i;e[15]!==r?(i=[...r],e[15]=r,e[16]=i):i=e[16];let n;e[17]!==a||e[18]!==i?(n={availableYears:a,availableNrens:i},e[17]=a,e[18]=i,e[19]=n):n=e[19];let u;e[20]!==t||e[21]!==d||e[22]!==n?(u=x.jsx(T,{filterOptions:n,filterSelection:t,setFilterSelection:d,coloredYears:!0}),e[20]=t,e[21]=d,e[22]=n,e[23]=u):u=e[23];const y=u;let o;e[24]!==b?(o=x.jsx(L,{children:x.jsx(M,{columns:l,columnLookup:j,dataLookup:b})}),e[24]=b,e[25]=o):o=e[25];let h;return e[26]!==y||e[27]!==s||e[28]!==o?(h=x.jsx(E,{title:P["crisis-management"],description:"The table below shows whether NRENs have a formal crisis management procedure.",category:k.Policy,filter:y,data:s,filename:"crisis_management_nrens_per_year",children:o}),e[26]=y,e[27]=s,e[28]=o,e[29]=h):h=e[29],h}export{H as default}; diff --git a/compendium_v2/static/DarkFibreInstalled-DQjFL8rw.js b/compendium_v2/static/DarkFibreInstalled-DQjFL8rw.js new file mode 100644 index 00000000..a9525746 --- /dev/null +++ b/compendium_v2/static/DarkFibreInstalled-DQjFL8rw.js @@ -0,0 +1 @@ +import{c as N,r as j,F as D,j as n,t as F,S as L}from"./index-DunMf8wQ.js";import{L as w}from"./index-C2DQFzVc.js";import{C as E,a as v,L as P,P as R,b as I,p as K,c as O,d as T,u as U,e as Y,D as $,F as q,f as z}from"./useData-DvdT9bkc.js";import{g as A}from"./charthelpers-vHYh9qxV.js";import"./SideBar-DC9SKCkF.js";import"./xlsx-BHRztzV8.js";import"./index-DSQNfbUQ.js";import"./hook-CgOBj93G.js";E.register(v,P,R,I,K,O,T);function X(){const e=N.c(24);let o;e[0]===Symbol.for("react.memo_cache_sentinel")?(o=r=>r.fibre_length_in_country!=null,e[0]=o):o=e[0];const k=o,{filterSelection:t,setFilterSelection:c}=j.useContext(D),{data:u,nrens:_}=U("/api/dark-fibre-installed",c,k);let i,f;if(e[1]!==u||e[2]!==t.selectedNrens){let r;e[5]!==t.selectedNrens?(r=y=>t.selectedNrens.includes(y.nren)&&k(y),e[5]=t.selectedNrens,e[6]=r):r=e[6],i=u.filter(r),f=Y(i,"fibre_length_in_country"),e[1]=u,e[2]=t.selectedNrens,e[3]=i,e[4]=f}else i=e[3],f=e[4];const g=f;let m;e[7]===Symbol.for("react.memo_cache_sentinel")?(m=[],e[7]=m):m=e[7];let s;e[8]!==_?(s=_.values(),e[8]=_,e[9]=s):s=e[9];let l;e[10]!==s?(l={availableYears:m,availableNrens:[...s]},e[10]=s,e[11]=l):l=e[11];let d;e[12]!==t||e[13]!==c||e[14]!==l?(d=n.jsx(q,{filterOptions:l,filterSelection:t,setFilterSelection:c}),e[12]=t,e[13]=c,e[14]=l,e[15]=d):d=e[15];const x=d;let p;e[16]===Symbol.for("react.memo_cache_sentinel")?(p=A({title:"Kilometres of Installed Dark Fibre",tooltipUnit:"km",unit:"km"}),e[16]=p):p=e[16];const S=p;let h;e[17]===Symbol.for("react.memo_cache_sentinel")?(h=n.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[17]=h):h=e[17];const C=h;let a;e[18]!==g?(a=n.jsx(z,{children:n.jsx(w,{data:g,options:S})}),e[18]=g,e[19]=a):a=e[19];let b;return e[20]!==x||e[21]!==i||e[22]!==a?(b=n.jsx($,{title:F["dark-fibre-installed"],description:C,category:L.Network,filter:x,data:i,filename:"dark_fibre_lease_installed",children:a}),e[20]=x,e[21]=i,e[22]=a,e[23]=b):b=e[23],b}export{X as default}; diff --git a/compendium_v2/static/DarkFibreInstalled-Uox2eGX8.js b/compendium_v2/static/DarkFibreInstalled-Uox2eGX8.js deleted file mode 100644 index ea92281f..00000000 --- a/compendium_v2/static/DarkFibreInstalled-Uox2eGX8.js +++ /dev/null @@ -1 +0,0 @@ -import{c as N,r as j,F as D,j as n,t as F,S as L}from"./index.js";import{L as w}from"./index-CjWPDfDC.js";import{C as E,a as v,L as P,P as R,b as I,p as K,c as O,d as T,u as U,e as Y,D as $,F as q,f as z}from"./useData-CxftshCa.js";import{g as A}from"./charthelpers-B0zLHD4s.js";import"./SideBar-CkoMfgfL.js";import"./xlsx-BHRztzV8.js";import"./index-ZGgT6a2u.js";import"./hook-BbhLqP_c.js";E.register(v,P,R,I,K,O,T);function X(){const e=N.c(24);let o;e[0]===Symbol.for("react.memo_cache_sentinel")?(o=r=>r.fibre_length_in_country!=null,e[0]=o):o=e[0];const k=o,{filterSelection:t,setFilterSelection:c}=j.useContext(D),{data:u,nrens:_}=U("/api/dark-fibre-installed",c,k);let i,f;if(e[1]!==u||e[2]!==t.selectedNrens){let r;e[5]!==t.selectedNrens?(r=y=>t.selectedNrens.includes(y.nren)&&k(y),e[5]=t.selectedNrens,e[6]=r):r=e[6],i=u.filter(r),f=Y(i,"fibre_length_in_country"),e[1]=u,e[2]=t.selectedNrens,e[3]=i,e[4]=f}else i=e[3],f=e[4];const g=f;let m;e[7]===Symbol.for("react.memo_cache_sentinel")?(m=[],e[7]=m):m=e[7];let s;e[8]!==_?(s=_.values(),e[8]=_,e[9]=s):s=e[9];let l;e[10]!==s?(l={availableYears:m,availableNrens:[...s]},e[10]=s,e[11]=l):l=e[11];let d;e[12]!==t||e[13]!==c||e[14]!==l?(d=n.jsx(q,{filterOptions:l,filterSelection:t,setFilterSelection:c}),e[12]=t,e[13]=c,e[14]=l,e[15]=d):d=e[15];const x=d;let p;e[16]===Symbol.for("react.memo_cache_sentinel")?(p=A({title:"Kilometres of Installed Dark Fibre",tooltipUnit:"km",unit:"km"}),e[16]=p):p=e[16];const S=p;let h;e[17]===Symbol.for("react.memo_cache_sentinel")?(h=n.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[17]=h):h=e[17];const C=h;let a;e[18]!==g?(a=n.jsx(z,{children:n.jsx(w,{data:g,options:S})}),e[18]=g,e[19]=a):a=e[19];let b;return e[20]!==x||e[21]!==i||e[22]!==a?(b=n.jsx($,{title:F["dark-fibre-installed"],description:C,category:L.Network,filter:x,data:i,filename:"dark_fibre_lease_installed",children:a}),e[20]=x,e[21]=i,e[22]=a,e[23]=b):b=e[23],b}export{X as default}; diff --git a/compendium_v2/static/DarkFibreLease-DVVVHWmb.js b/compendium_v2/static/DarkFibreLease-DVVVHWmb.js new file mode 100644 index 00000000..63d75250 --- /dev/null +++ b/compendium_v2/static/DarkFibreLease-DVVVHWmb.js @@ -0,0 +1 @@ +import{c as w,r as R,F as P,j as c,S as I,t as D}from"./index-DunMf8wQ.js";import{L as U}from"./index-C2DQFzVc.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-DvdT9bkc.js";import{g as Q}from"./charthelpers-vHYh9qxV.js";import"./SideBar-DC9SKCkF.js";import"./xlsx-BHRztzV8.js";import"./index-DSQNfbUQ.js";import"./hook-CgOBj93G.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/DarkFibreLease-Nz1_rVx9.js b/compendium_v2/static/DarkFibreLease-Nz1_rVx9.js deleted file mode 100644 index 1b7d87f5..00000000 --- a/compendium_v2/static/DarkFibreLease-Nz1_rVx9.js +++ /dev/null @@ -1 +0,0 @@ -import{c as w,r as R,F as P,j as c,S as I,t as D}from"./index.js";import{L as U}from"./index-CjWPDfDC.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-CxftshCa.js";import{g as Q}from"./charthelpers-B0zLHD4s.js";import"./SideBar-CkoMfgfL.js";import"./xlsx-BHRztzV8.js";import"./index-ZGgT6a2u.js";import"./hook-BbhLqP_c.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-BytaiuC6.js b/compendium_v2/static/ECProjects-BytaiuC6.js new file mode 100644 index 00000000..439a9222 --- /dev/null +++ b/compendium_v2/static/ECProjects-BytaiuC6.js @@ -0,0 +1 @@ +import{c as v,r as Y,F as y,j as u,S as C}from"./index-DunMf8wQ.js";import{u as D,h as T,i as _,D as g,F,f as P}from"./useData-DvdT9bkc.js";import{N as R}from"./NrenYearTable-D3mNeVd3.js";import"./SideBar-DC9SKCkF.js";import"./xlsx-BHRztzV8.js";import"./index-DSQNfbUQ.js";import"./hook-CgOBj93G.js";import"./Table-BUrPWwZB.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/ECProjects-Ixano_sS.js b/compendium_v2/static/ECProjects-Ixano_sS.js deleted file mode 100644 index 3232f21c..00000000 --- a/compendium_v2/static/ECProjects-Ixano_sS.js +++ /dev/null @@ -1 +0,0 @@ -import{c as v,r as Y,F as y,j as u,S as C}from"./index.js";import{u as D,h as T,i as _,D as g,F,f as P}from"./useData-CxftshCa.js";import{N as R}from"./NrenYearTable-tQrmAmRo.js";import"./SideBar-CkoMfgfL.js";import"./xlsx-BHRztzV8.js";import"./index-ZGgT6a2u.js";import"./hook-BbhLqP_c.js";import"./Table-ClWM2_rS.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-DWYL3kBM.js b/compendium_v2/static/EOSCListings-DWYL3kBM.js deleted file mode 100644 index 10f2ece7..00000000 --- a/compendium_v2/static/EOSCListings-DWYL3kBM.js +++ /dev/null @@ -1 +0,0 @@ -import{c as Y,r as j,F as C,j as f,t as D,S as E}from"./index.js";import{u as _,h as F,i as R,D as L,F as k,f as O}from"./useData-CxftshCa.js";import{N as P}from"./NrenYearTable-tQrmAmRo.js";import"./SideBar-CkoMfgfL.js";import"./xlsx-BHRztzV8.js";import"./index-ZGgT6a2u.js";import"./hook-BbhLqP_c.js";import"./Table-ClWM2_rS.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/EOSCListings-H_13YHeq.js b/compendium_v2/static/EOSCListings-H_13YHeq.js new file mode 100644 index 00000000..6d6d1839 --- /dev/null +++ b/compendium_v2/static/EOSCListings-H_13YHeq.js @@ -0,0 +1 @@ +import{c as Y,r as j,F as C,j as f,t as D,S as E}from"./index-DunMf8wQ.js";import{u as _,h as F,i as R,D as L,F as k,f as O}from"./useData-DvdT9bkc.js";import{N as P}from"./NrenYearTable-D3mNeVd3.js";import"./SideBar-DC9SKCkF.js";import"./xlsx-BHRztzV8.js";import"./index-DSQNfbUQ.js";import"./hook-CgOBj93G.js";import"./Table-BUrPWwZB.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-BVnV4NEl.js b/compendium_v2/static/ExternalConnections-BVnV4NEl.js deleted file mode 100644 index 887261f1..00000000 --- a/compendium_v2/static/ExternalConnections-BVnV4NEl.js +++ /dev/null @@ -1 +0,0 @@ -import{c as _,j as r,e as C,r as S,F as E,t as w,S as D}from"./index.js";import{u as F,h as T,D as Y,F as R,f as L}from"./useData-CxftshCa.js";import{T as O}from"./Table-ClWM2_rS.js";import"./SideBar-CkoMfgfL.js";import"./xlsx-BHRztzV8.js";import"./index-ZGgT6a2u.js";import"./hook-BbhLqP_c.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/ExternalConnections-Bw3LdeFf.js b/compendium_v2/static/ExternalConnections-Bw3LdeFf.js new file mode 100644 index 00000000..acdb52ce --- /dev/null +++ b/compendium_v2/static/ExternalConnections-Bw3LdeFf.js @@ -0,0 +1 @@ +import{c as _,j as r,e as C,r as S,F as E,t as w,S as D}from"./index-DunMf8wQ.js";import{u as F,h as T,D as Y,F as R,f as L}from"./useData-DvdT9bkc.js";import{T as O}from"./Table-BUrPWwZB.js";import"./SideBar-DC9SKCkF.js";import"./xlsx-BHRztzV8.js";import"./index-DSQNfbUQ.js";import"./hook-CgOBj93G.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-Di0VQOdw.js b/compendium_v2/static/FibreLight-Di0VQOdw.js new file mode 100644 index 00000000..4466a109 --- /dev/null +++ b/compendium_v2/static/FibreLight-Di0VQOdw.js @@ -0,0 +1,2 @@ +import{c as Y,r as j,F as k,j as h,t as v,S as E}from"./index-DunMf8wQ.js";import{u as F,g as S,D as R,F as C,f as D}from"./useData-DvdT9bkc.js";import{P as L}from"./PillTable-DEX_WeNY.js";import"./SideBar-DC9SKCkF.js";import"./xlsx-BHRztzV8.js";import"./index-DSQNfbUQ.js";import"./hook-CgOBj93G.js";import"./ColorPill-CXsYrUiQ.js";import"./Table-BUrPWwZB.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/FibreLight-UtHnGi0p.js b/compendium_v2/static/FibreLight-UtHnGi0p.js deleted file mode 100644 index 914a0c75..00000000 --- a/compendium_v2/static/FibreLight-UtHnGi0p.js +++ /dev/null @@ -1,2 +0,0 @@ -import{c as Y,r as j,F as k,j as h,t as v,S as E}from"./index.js";import{u as F,g as S,D as R,F as C,f as D}from"./useData-CxftshCa.js";import{P as L}from"./PillTable-Cnj0nnFy.js";import"./SideBar-CkoMfgfL.js";import"./xlsx-BHRztzV8.js";import"./index-ZGgT6a2u.js";import"./hook-BbhLqP_c.js";import"./ColorPill-CXvWIfWz.js";import"./Table-ClWM2_rS.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-CnnYyCrH.js b/compendium_v2/static/FundingSource-CnnYyCrH.js new file mode 100644 index 00000000..cc39053b --- /dev/null +++ b/compendium_v2/static/FundingSource-CnnYyCrH.js @@ -0,0 +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-DunMf8wQ.js";import{B as H}from"./index-C2DQFzVc.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-DvdT9bkc.js";import{p as te}from"./chartjs-plugin-datalabels.esm-Bb0FwIXw.js";import"./SideBar-DC9SKCkF.js";import"./xlsx-BHRztzV8.js";import"./index-DSQNfbUQ.js";import"./hook-CgOBj93G.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/FundingSource-DoZCzgMa.js b/compendium_v2/static/FundingSource-DoZCzgMa.js deleted file mode 100644 index fc8f2e44..00000000 --- a/compendium_v2/static/FundingSource-DoZCzgMa.js +++ /dev/null @@ -1 +0,0 @@ -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.js";import{B as H}from"./index-CjWPDfDC.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-CxftshCa.js";import{p as te}from"./chartjs-plugin-datalabels.esm-CjG-nxnq.js";import"./SideBar-CkoMfgfL.js";import"./xlsx-BHRztzV8.js";import"./index-ZGgT6a2u.js";import"./hook-BbhLqP_c.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-C-L3dIU1.js b/compendium_v2/static/HTMLLegendPlugin-C-L3dIU1.js deleted file mode 100644 index a773a200..00000000 --- a/compendium_v2/static/HTMLLegendPlugin-C-L3dIU1.js +++ /dev/null @@ -1 +0,0 @@ -import{c as g,j as p}from"./index.js";import{f as m,C as c}from"./useData-CxftshCa.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/HTMLLegendPlugin-DF0OaxMQ.js b/compendium_v2/static/HTMLLegendPlugin-DF0OaxMQ.js new file mode 100644 index 00000000..24c7ce7b --- /dev/null +++ b/compendium_v2/static/HTMLLegendPlugin-DF0OaxMQ.js @@ -0,0 +1 @@ +import{c as g,j as p}from"./index-DunMf8wQ.js";import{f as m,C as c}from"./useData-DvdT9bkc.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-CI7E3kyS.js b/compendium_v2/static/IRUDuration-CI7E3kyS.js deleted file mode 100644 index f83919c2..00000000 --- a/compendium_v2/static/IRUDuration-CI7E3kyS.js +++ /dev/null @@ -1 +0,0 @@ -import{c as C,r as D,F as L,j as n,t as R,S as j}from"./index.js";import{L as E}from"./index-CjWPDfDC.js";import{C as v,a as k,L as F,P as I,b as U,p as P,c as w,d as O,u as Y,e as T,D as $,F as q,f as z}from"./useData-CxftshCa.js";import{g as A}from"./charthelpers-B0zLHD4s.js";import"./SideBar-CkoMfgfL.js";import"./xlsx-BHRztzV8.js";import"./index-ZGgT6a2u.js";import"./hook-BbhLqP_c.js";v.register(k,F,I,U,P,w,O);function W(){const e=C.c(24);let o;e[0]===Symbol.for("react.memo_cache_sentinel")?(o=r=>r.iru_duration!=null,e[0]=o):o=e[0];const N=o,{filterSelection:t,setFilterSelection:c}=D.useContext(L),{data:g,nrens:_}=Y("/api/dark-fibre-lease",c,N);let a,f;if(e[1]!==g||e[2]!==t.selectedNrens){let r;e[5]!==t.selectedNrens?(r=S=>t.selectedNrens.includes(S.nren),e[5]=t.selectedNrens,e[6]=r):r=e[6],a=g.filter(r),f=T(a,"iru_duration"),e[1]=g,e[2]=t.selectedNrens,e[3]=a,e[4]=f}else a=e[3],f=e[4];const x=f;let m;e[7]===Symbol.for("react.memo_cache_sentinel")?(m=[],e[7]=m):m=e[7];let s;e[8]!==_?(s=_.values(),e[8]=_,e[9]=s):s=e[9];let i;e[10]!==s?(i={availableYears:m,availableNrens:[...s]},e[10]=s,e[11]=i):i=e[11];let d;e[12]!==t||e[13]!==c||e[14]!==i?(d=n.jsx(q,{filterOptions:i,filterSelection:t,setFilterSelection:c}),e[12]=t,e[13]=c,e[14]=i,e[15]=d):d=e[15];const y=d;let p;e[16]===Symbol.for("react.memo_cache_sentinel")?(p=A({title:"Lease Duration In Years",tooltipUnit:"years",tickLimit:999}),e[16]=p):p=e[16];const b=p;let u;e[17]===Symbol.for("react.memo_cache_sentinel")?(u=n.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[17]=u):u=e[17];let l;e[18]!==x?(l=n.jsx(z,{children:n.jsx(E,{data:x,options:b})}),e[18]=x,e[19]=l):l=e[19];let h;return e[20]!==y||e[21]!==a||e[22]!==l?(h=n.jsx($,{title:R["iru-duration"],description:u,category:j.Network,filter:y,data:a,filename:"iru_duration_data",children:l}),e[20]=y,e[21]=a,e[22]=l,e[23]=h):h=e[23],h}export{W as default}; diff --git a/compendium_v2/static/IRUDuration-CwtYlEdU.js b/compendium_v2/static/IRUDuration-CwtYlEdU.js new file mode 100644 index 00000000..36ad1a18 --- /dev/null +++ b/compendium_v2/static/IRUDuration-CwtYlEdU.js @@ -0,0 +1 @@ +import{c as C,r as D,F as L,j as n,t as R,S as j}from"./index-DunMf8wQ.js";import{L as E}from"./index-C2DQFzVc.js";import{C as v,a as k,L as F,P as I,b as U,p as P,c as w,d as O,u as Y,e as T,D as $,F as q,f as z}from"./useData-DvdT9bkc.js";import{g as A}from"./charthelpers-vHYh9qxV.js";import"./SideBar-DC9SKCkF.js";import"./xlsx-BHRztzV8.js";import"./index-DSQNfbUQ.js";import"./hook-CgOBj93G.js";v.register(k,F,I,U,P,w,O);function W(){const e=C.c(24);let o;e[0]===Symbol.for("react.memo_cache_sentinel")?(o=r=>r.iru_duration!=null,e[0]=o):o=e[0];const N=o,{filterSelection:t,setFilterSelection:c}=D.useContext(L),{data:g,nrens:_}=Y("/api/dark-fibre-lease",c,N);let a,f;if(e[1]!==g||e[2]!==t.selectedNrens){let r;e[5]!==t.selectedNrens?(r=S=>t.selectedNrens.includes(S.nren),e[5]=t.selectedNrens,e[6]=r):r=e[6],a=g.filter(r),f=T(a,"iru_duration"),e[1]=g,e[2]=t.selectedNrens,e[3]=a,e[4]=f}else a=e[3],f=e[4];const x=f;let m;e[7]===Symbol.for("react.memo_cache_sentinel")?(m=[],e[7]=m):m=e[7];let s;e[8]!==_?(s=_.values(),e[8]=_,e[9]=s):s=e[9];let i;e[10]!==s?(i={availableYears:m,availableNrens:[...s]},e[10]=s,e[11]=i):i=e[11];let d;e[12]!==t||e[13]!==c||e[14]!==i?(d=n.jsx(q,{filterOptions:i,filterSelection:t,setFilterSelection:c}),e[12]=t,e[13]=c,e[14]=i,e[15]=d):d=e[15];const y=d;let p;e[16]===Symbol.for("react.memo_cache_sentinel")?(p=A({title:"Lease Duration In Years",tooltipUnit:"years",tickLimit:999}),e[16]=p):p=e[16];const b=p;let u;e[17]===Symbol.for("react.memo_cache_sentinel")?(u=n.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[17]=u):u=e[17];let l;e[18]!==x?(l=n.jsx(z,{children:n.jsx(E,{data:x,options:b})}),e[18]=x,e[19]=l):l=e[19];let h;return e[20]!==y||e[21]!==a||e[22]!==l?(h=n.jsx($,{title:R["iru-duration"],description:u,category:j.Network,filter:y,data:a,filename:"iru_duration_data",children:l}),e[20]=y,e[21]=a,e[22]=l,e[23]=h):h=e[23],h}export{W as default}; diff --git a/compendium_v2/static/Landing-35TvxyJ6.js b/compendium_v2/static/Landing-35TvxyJ6.js deleted file mode 100644 index 7c44e34a..00000000 --- a/compendium_v2/static/Landing-35TvxyJ6.js +++ /dev/null @@ -1 +0,0 @@ -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.js";import{u as W,w as ne}from"./xlsx-BHRztzV8.js";import{S as re}from"./SurveySidebar-CG0gwQ6b.js";import{f as se,a as le}from"./survey-3meXCY6T.js";import{T as q}from"./Table-ClWM2_rS.js";import"./SideBar-CkoMfgfL.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/Landing-wYnIDduc.js b/compendium_v2/static/Landing-wYnIDduc.js new file mode 100644 index 00000000..c20de019 --- /dev/null +++ b/compendium_v2/static/Landing-wYnIDduc.js @@ -0,0 +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-DunMf8wQ.js";import{u as W,w as ne}from"./xlsx-BHRztzV8.js";import{S as re}from"./SurveySidebar-B89Xtwv2.js";import{f as se,a as le}from"./survey-3meXCY6T.js";import{T as q}from"./Table-BUrPWwZB.js";import"./SideBar-DC9SKCkF.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-BGVkCHJR.js b/compendium_v2/static/MonitoringTools-BGVkCHJR.js new file mode 100644 index 00000000..81b423d5 --- /dev/null +++ b/compendium_v2/static/MonitoringTools-BGVkCHJR.js @@ -0,0 +1,2 @@ +import{c as v,r as S,F as T,j as h,t as Y,S as j}from"./index-DunMf8wQ.js";import{u as F,g as D,n as E,D as L,F as C,f as P}from"./useData-DvdT9bkc.js";import{P as R}from"./PillTable-DEX_WeNY.js";import"./SideBar-DC9SKCkF.js";import"./xlsx-BHRztzV8.js";import"./index-DSQNfbUQ.js";import"./hook-CgOBj93G.js";import"./ColorPill-CXsYrUiQ.js";import"./Table-BUrPWwZB.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/MonitoringTools-C61NJKaR.js b/compendium_v2/static/MonitoringTools-C61NJKaR.js deleted file mode 100644 index bcc90f2e..00000000 --- a/compendium_v2/static/MonitoringTools-C61NJKaR.js +++ /dev/null @@ -1,2 +0,0 @@ -import{c as v,r as S,F as T,j as h,t as Y,S as j}from"./index.js";import{u as F,g as D,n as E,D as L,F as C,f as P}from"./useData-CxftshCa.js";import{P as R}from"./PillTable-Cnj0nnFy.js";import"./SideBar-CkoMfgfL.js";import"./xlsx-BHRztzV8.js";import"./index-ZGgT6a2u.js";import"./hook-BbhLqP_c.js";import"./ColorPill-CXvWIfWz.js";import"./Table-ClWM2_rS.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-DLW-vjXN.js b/compendium_v2/static/NetworkFunctionVirtualisation-DLW-vjXN.js deleted file mode 100644 index 382fd461..00000000 --- a/compendium_v2/static/NetworkFunctionVirtualisation-DLW-vjXN.js +++ /dev/null @@ -1 +0,0 @@ -import{c as W,r as X,F as Z,S as k,j as t,t as ee}from"./index.js";import{u as te,g as se,F as le,D as re,f as ne}from"./useData-CxftshCa.js";import{C as I}from"./ColorPill-CXvWIfWz.js";import{T as ae}from"./Table-ClWM2_rS.js";import"./SideBar-CkoMfgfL.js";import"./xlsx-BHRztzV8.js";import"./index-ZGgT6a2u.js";import"./hook-BbhLqP_c.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/NetworkFunctionVirtualisation-Dkgolz87.js b/compendium_v2/static/NetworkFunctionVirtualisation-Dkgolz87.js new file mode 100644 index 00000000..985a748f --- /dev/null +++ b/compendium_v2/static/NetworkFunctionVirtualisation-Dkgolz87.js @@ -0,0 +1 @@ +import{c as W,r as X,F as Z,S as k,j as t,t as ee}from"./index-DunMf8wQ.js";import{u as te,g as se,F as le,D as re,f as ne}from"./useData-DvdT9bkc.js";import{C as I}from"./ColorPill-CXsYrUiQ.js";import{T as ae}from"./Table-BUrPWwZB.js";import"./SideBar-DC9SKCkF.js";import"./xlsx-BHRztzV8.js";import"./index-DSQNfbUQ.js";import"./hook-CgOBj93G.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-B3Qc49It.js b/compendium_v2/static/NetworkMapUrls-B3Qc49It.js deleted file mode 100644 index 21422d15..00000000 --- a/compendium_v2/static/NetworkMapUrls-B3Qc49It.js +++ /dev/null @@ -1 +0,0 @@ -import{c as b,r as h,F as j,j as u,t as y,S as _}from"./index.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-CxftshCa.js";import{N as T}from"./NrenYearTable-tQrmAmRo.js";import"./SideBar-CkoMfgfL.js";import"./xlsx-BHRztzV8.js";import"./index-ZGgT6a2u.js";import"./hook-BbhLqP_c.js";import"./Table-ClWM2_rS.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/NetworkMapUrls-U7kWZFCY.js b/compendium_v2/static/NetworkMapUrls-U7kWZFCY.js new file mode 100644 index 00000000..90ada2dc --- /dev/null +++ b/compendium_v2/static/NetworkMapUrls-U7kWZFCY.js @@ -0,0 +1 @@ +import{c as b,r as h,F as j,j as u,t as y,S as _}from"./index-DunMf8wQ.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-DvdT9bkc.js";import{N as T}from"./NrenYearTable-D3mNeVd3.js";import"./SideBar-DC9SKCkF.js";import"./xlsx-BHRztzV8.js";import"./index-DSQNfbUQ.js";import"./hook-CgOBj93G.js";import"./Table-BUrPWwZB.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-Bicp8r4m.js b/compendium_v2/static/NonRAndEPeer-Bicp8r4m.js new file mode 100644 index 00000000..b3abe901 --- /dev/null +++ b/compendium_v2/static/NonRAndEPeer-Bicp8r4m.js @@ -0,0 +1,2 @@ +import{c as D,r as F,F as Y,j as u,S as v,t as k}from"./index-DunMf8wQ.js";import{B as A}from"./index-C2DQFzVc.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-DvdT9bkc.js";import{p as Q}from"./chartjs-plugin-datalabels.esm-Bb0FwIXw.js";import{a as U}from"./charthelpers-vHYh9qxV.js";import"./SideBar-DC9SKCkF.js";import"./xlsx-BHRztzV8.js";import"./index-DSQNfbUQ.js";import"./hook-CgOBj93G.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/NonRAndEPeer-Cg_pAdU8.js b/compendium_v2/static/NonRAndEPeer-Cg_pAdU8.js deleted file mode 100644 index 1c211516..00000000 --- a/compendium_v2/static/NonRAndEPeer-Cg_pAdU8.js +++ /dev/null @@ -1,2 +0,0 @@ -import{c as D,r as F,F as Y,j as u,S as v,t as k}from"./index.js";import{B as A}from"./index-CjWPDfDC.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-CxftshCa.js";import{p as Q}from"./chartjs-plugin-datalabels.esm-CjG-nxnq.js";import{a as U}from"./charthelpers-B0zLHD4s.js";import"./SideBar-CkoMfgfL.js";import"./xlsx-BHRztzV8.js";import"./index-ZGgT6a2u.js";import"./hook-BbhLqP_c.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-D3mNeVd3.js b/compendium_v2/static/NrenYearTable-D3mNeVd3.js new file mode 100644 index 00000000..e76a1e58 --- /dev/null +++ b/compendium_v2/static/NrenYearTable-D3mNeVd3.js @@ -0,0 +1 @@ +import{c as j,j as r}from"./index-DunMf8wQ.js";import{w as p}from"./useData-DvdT9bkc.js";import{T as u}from"./Table-BUrPWwZB.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/NrenYearTable-tQrmAmRo.js b/compendium_v2/static/NrenYearTable-tQrmAmRo.js deleted file mode 100644 index c33e14b8..00000000 --- a/compendium_v2/static/NrenYearTable-tQrmAmRo.js +++ /dev/null @@ -1 +0,0 @@ -import{c as j,j as r}from"./index.js";import{w as p}from"./useData-CxftshCa.js";import{T as u}from"./Table-ClWM2_rS.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-BoFZP12U.js b/compendium_v2/static/OPsAutomation-BoFZP12U.js deleted file mode 100644 index 31207048..00000000 --- a/compendium_v2/static/OPsAutomation-BoFZP12U.js +++ /dev/null @@ -1,3 +0,0 @@ -import{c as y,r as P,F as S,j as h,t as g,S as k}from"./index.js";import{u as v,g as F,n as C,D,F as E,f as L}from"./useData-CxftshCa.js";import{P as R}from"./PillTable-Cnj0nnFy.js";import"./SideBar-CkoMfgfL.js";import"./xlsx-BHRztzV8.js";import"./index-ZGgT6a2u.js";import"./hook-BbhLqP_c.js";import"./ColorPill-CXvWIfWz.js";import"./Table-ClWM2_rS.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/OPsAutomation-D9uxrxhD.js b/compendium_v2/static/OPsAutomation-D9uxrxhD.js new file mode 100644 index 00000000..4de076af --- /dev/null +++ b/compendium_v2/static/OPsAutomation-D9uxrxhD.js @@ -0,0 +1,3 @@ +import{c as y,r as P,F as S,j as h,t as g,S as k}from"./index-DunMf8wQ.js";import{u as v,g as F,n as C,D,F as E,f as L}from"./useData-DvdT9bkc.js";import{P as R}from"./PillTable-DEX_WeNY.js";import"./SideBar-DC9SKCkF.js";import"./xlsx-BHRztzV8.js";import"./index-DSQNfbUQ.js";import"./hook-CgOBj93G.js";import"./ColorPill-CXsYrUiQ.js";import"./Table-BUrPWwZB.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-BBwyogJP.js b/compendium_v2/static/ParentOrganisation-BBwyogJP.js new file mode 100644 index 00000000..1e4c796a --- /dev/null +++ b/compendium_v2/static/ParentOrganisation-BBwyogJP.js @@ -0,0 +1 @@ +import{c as b,r as y,F as j,j as p,S as v}from"./index-DunMf8wQ.js";import{u as E,k as O,i as S,D as F,F as P,f as R}from"./useData-DvdT9bkc.js";import{N as w}from"./NrenYearTable-D3mNeVd3.js";import"./SideBar-DC9SKCkF.js";import"./xlsx-BHRztzV8.js";import"./index-DSQNfbUQ.js";import"./hook-CgOBj93G.js";import"./Table-BUrPWwZB.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/ParentOrganisation-OrE_JaGF.js b/compendium_v2/static/ParentOrganisation-OrE_JaGF.js deleted file mode 100644 index fd644f14..00000000 --- a/compendium_v2/static/ParentOrganisation-OrE_JaGF.js +++ /dev/null @@ -1 +0,0 @@ -import{c as b,r as y,F as j,j as p,S as v}from"./index.js";import{u as E,k as O,i as S,D as F,F as P,f as R}from"./useData-CxftshCa.js";import{N as w}from"./NrenYearTable-tQrmAmRo.js";import"./SideBar-CkoMfgfL.js";import"./xlsx-BHRztzV8.js";import"./index-ZGgT6a2u.js";import"./hook-BbhLqP_c.js";import"./Table-ClWM2_rS.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-CE6Z1wsB.js b/compendium_v2/static/PassiveMonitoring-CE6Z1wsB.js new file mode 100644 index 00000000..c1173bc1 --- /dev/null +++ b/compendium_v2/static/PassiveMonitoring-CE6Z1wsB.js @@ -0,0 +1 @@ +import{c as Y,r as j,F as _,j as N,t as y,S as F}from"./index-DunMf8wQ.js";import{u as T,g as k,D as w,F as A,f as C}from"./useData-DvdT9bkc.js";import{P as D}from"./PillTable-DEX_WeNY.js";import"./SideBar-DC9SKCkF.js";import"./xlsx-BHRztzV8.js";import"./index-DSQNfbUQ.js";import"./hook-CgOBj93G.js";import"./ColorPill-CXsYrUiQ.js";import"./Table-BUrPWwZB.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/PassiveMonitoring-Cv8zkVr2.js b/compendium_v2/static/PassiveMonitoring-Cv8zkVr2.js deleted file mode 100644 index 648af8f2..00000000 --- a/compendium_v2/static/PassiveMonitoring-Cv8zkVr2.js +++ /dev/null @@ -1 +0,0 @@ -import{c as Y,r as j,F as _,j as N,t as y,S as F}from"./index.js";import{u as T,g as k,D as w,F as A,f as C}from"./useData-CxftshCa.js";import{P as D}from"./PillTable-Cnj0nnFy.js";import"./SideBar-CkoMfgfL.js";import"./xlsx-BHRztzV8.js";import"./index-ZGgT6a2u.js";import"./hook-BbhLqP_c.js";import"./ColorPill-CXvWIfWz.js";import"./Table-ClWM2_rS.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-Cf_GEMUq.js b/compendium_v2/static/PertTeam-Cf_GEMUq.js deleted file mode 100644 index cf7d3c39..00000000 --- a/compendium_v2/static/PertTeam-Cf_GEMUq.js +++ /dev/null @@ -1,2 +0,0 @@ -import{c as E,r as _,F as b,j as N,t as g,S as k}from"./index.js";import{u as v,g as F,D as R,F as T,f as C}from"./useData-CxftshCa.js";import{P as D}from"./PillTable-Cnj0nnFy.js";import"./SideBar-CkoMfgfL.js";import"./xlsx-BHRztzV8.js";import"./index-ZGgT6a2u.js";import"./hook-BbhLqP_c.js";import"./ColorPill-CXvWIfWz.js";import"./Table-ClWM2_rS.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/PertTeam-LT8kFC71.js b/compendium_v2/static/PertTeam-LT8kFC71.js new file mode 100644 index 00000000..e9fcc817 --- /dev/null +++ b/compendium_v2/static/PertTeam-LT8kFC71.js @@ -0,0 +1,2 @@ +import{c as E,r as _,F as b,j as N,t as g,S as k}from"./index-DunMf8wQ.js";import{u as v,g as F,D as R,F as T,f as C}from"./useData-DvdT9bkc.js";import{P as D}from"./PillTable-DEX_WeNY.js";import"./SideBar-DC9SKCkF.js";import"./xlsx-BHRztzV8.js";import"./index-DSQNfbUQ.js";import"./hook-CgOBj93G.js";import"./ColorPill-CXsYrUiQ.js";import"./Table-BUrPWwZB.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-Cnj0nnFy.js b/compendium_v2/static/PillTable-Cnj0nnFy.js deleted file mode 100644 index 85cf6a1d..00000000 --- a/compendium_v2/static/PillTable-Cnj0nnFy.js +++ /dev/null @@ -1 +0,0 @@ -import{j as t}from"./index.js";import{C as c}from"./ColorPill-CXvWIfWz.js";import{T as u}from"./Table-ClWM2_rS.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/PillTable-DEX_WeNY.js b/compendium_v2/static/PillTable-DEX_WeNY.js new file mode 100644 index 00000000..5aec3ec2 --- /dev/null +++ b/compendium_v2/static/PillTable-DEX_WeNY.js @@ -0,0 +1 @@ +import{j as t}from"./index-DunMf8wQ.js";import{C as c}from"./ColorPill-CXsYrUiQ.js";import{T as u}from"./Table-BUrPWwZB.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-B0McUfA8.js b/compendium_v2/static/Policy-B0McUfA8.js new file mode 100644 index 00000000..924716ef --- /dev/null +++ b/compendium_v2/static/Policy-B0McUfA8.js @@ -0,0 +1 @@ +import{c as h,r as v,F as E,j as y,t as _,S as b}from"./index-DunMf8wQ.js";import{u as g,q as j,k,i as S,D as q,F as C,f as F}from"./useData-DvdT9bkc.js";import{N as R}from"./NrenYearTable-D3mNeVd3.js";import"./SideBar-DC9SKCkF.js";import"./xlsx-BHRztzV8.js";import"./index-DSQNfbUQ.js";import"./hook-CgOBj93G.js";import"./Table-BUrPWwZB.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/Policy-C19_KfRY.js b/compendium_v2/static/Policy-C19_KfRY.js deleted file mode 100644 index 88533f37..00000000 --- a/compendium_v2/static/Policy-C19_KfRY.js +++ /dev/null @@ -1 +0,0 @@ -import{c as h,r as v,F as E,j as y,t as _,S as b}from"./index.js";import{u as g,q as j,k,i as S,D as q,F as C,f as F}from"./useData-CxftshCa.js";import{N as R}from"./NrenYearTable-tQrmAmRo.js";import"./SideBar-CkoMfgfL.js";import"./xlsx-BHRztzV8.js";import"./index-ZGgT6a2u.js";import"./hook-BbhLqP_c.js";import"./Table-ClWM2_rS.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-Bh0h6tbY.js b/compendium_v2/static/RemoteCampuses-Bh0h6tbY.js new file mode 100644 index 00000000..73140462 --- /dev/null +++ b/compendium_v2/static/RemoteCampuses-Bh0h6tbY.js @@ -0,0 +1 @@ +import{c as S,j as n,r as D,F as R,t as E,S as g}from"./index-DunMf8wQ.js";import{u as w,h as F,i as k,D as T,F as B,f as L}from"./useData-DvdT9bkc.js";import{T as O}from"./Table-BUrPWwZB.js";import"./SideBar-DC9SKCkF.js";import"./xlsx-BHRztzV8.js";import"./index-DSQNfbUQ.js";import"./hook-CgOBj93G.js";function $({data:e,dottedBorder:t=!1,columns:o}){return Array.from(e.entries()).map(([s,a])=>Array.from(a.entries()).map(([i,d],c)=>n.jsxs("tr",{className:t?"dotted-border":"",children:[n.jsx("td",{className:"pt-3 nren-column text-nowrap",children:c===0&&s}),n.jsx("td",{className:"pt-3 year-column",children:i}),Object.keys(o).map((r,l)=>n.jsx("td",{className:"pt-3 blue-column",children:d[r]},l))]},s+i)))}function A(e){const t=S.c(15),{data:o,dottedBorder:s,columns:a}=e;let i;t[0]===Symbol.for("react.memo_cache_sentinel")?(i=n.jsx("th",{className:"nren-column",children:n.jsx("span",{children:"NREN"})}),t[0]=i):i=t[0];let d;t[1]===Symbol.for("react.memo_cache_sentinel")?(d=n.jsx("th",{className:"year-column",children:n.jsx("span",{children:"Year"})}),t[1]=d):d=t[1];let c;t[2]!==a?(c=Object.values(a).map(P),t[2]=a,t[3]=c):c=t[3];let r;t[4]!==c?(r=n.jsx("thead",{children:n.jsxs("tr",{children:[i,d,c]})}),t[4]=c,t[5]=r):r=t[5];let l;t[6]!==a||t[7]!==o||t[8]!==s?(l=$({data:o,dottedBorder:s,columns:a}),t[6]=a,t[7]=o,t[8]=s,t[9]=l):l=t[9];let u;t[10]!==l?(u=n.jsx("tbody",{children:l}),t[10]=l,t[11]=u):u=t[11];let m;return t[12]!==r||t[13]!==u?(m=n.jsxs(O,{borderless:!0,className:"compendium-table",children:[r,u]}),t[12]=r,t[13]=u,t[14]=m):m=t[14],m}function P(e,t){return n.jsx("th",{className:"blue-column",children:n.jsx("span",{children:e})},t)}function Q(){const e=S.c(29);let t;e[0]===Symbol.for("react.memo_cache_sentinel")?(t=x=>!!x.remote_campus_connectivity,e[0]=t):t=e[0];const o=t,{filterSelection:s,setFilterSelection:a}=D.useContext(R),{data:i,years:d,nrens:c}=w("/api/remote-campuses",a,o);let r,l;if(e[1]!==i||e[2]!==s.selectedNrens||e[3]!==s.selectedYears){let x;e[6]!==s.selectedNrens||e[7]!==s.selectedYears?(x=C=>s.selectedYears.includes(C.year)&&s.selectedNrens.includes(C.nren),e[6]=s.selectedNrens,e[7]=s.selectedYears,e[8]=x):x=e[8],r=i.filter(x);const v=F(r);l=k(v,J),e[1]=i,e[2]=s.selectedNrens,e[3]=s.selectedYears,e[4]=r,e[5]=l}else r=e[4],l=e[5];const u=l;let m;e[9]!==d?(m=[...d],e[9]=d,e[10]=m):m=e[10];let f;e[11]!==c?(f=c.values(),e[11]=c,e[12]=f):f=e[12];let p;e[13]!==f?(p=[...f],e[13]=f,e[14]=p):p=e[14];let h;e[15]!==m||e[16]!==p?(h={availableYears:m,availableNrens:p},e[15]=m,e[16]=p,e[17]=h):h=e[17];let j;e[18]!==s||e[19]!==a||e[20]!==h?(j=n.jsx(B,{filterOptions:h,filterSelection:s,setFilterSelection:a}),e[18]=s,e[19]=a,e[20]=h,e[21]=j):j=e[21];const b=j;let N;e[22]===Symbol.for("react.memo_cache_sentinel")?(N={countries:"Countries with Remote Campuses",local_r_and_e_connection:"Local R&E Connection"},e[22]=N):N=e[22];const Y=N;let _;e[23]!==u?(_=n.jsx(L,{children:n.jsx(A,{data:u,columns:Y,dottedBorder:!0})}),e[23]=u,e[24]=_):_=e[24];let y;return e[25]!==b||e[26]!==r||e[27]!==_?(y=n.jsx(T,{title:E["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:g.ConnectedUsers,filter:b,data:r,filename:"nren_remote_campuses",children:_}),e[25]=b,e[26]=r,e[27]=_,e[28]=y):y=e[28],y}function J(e,t){for(const o of t){if(!o.remote_campus_connectivity)continue;const s=o.connections.map(X).join(", ");e.countries=s,e.local_r_and_e_connection=o.connections.map(U).join(", ")}}function U(e){return e.local_r_and_e_connection?"Yes":"No"}function X(e){return e.country}export{Q as default}; diff --git a/compendium_v2/static/RemoteCampuses-Bu_1Ucwy.js b/compendium_v2/static/RemoteCampuses-Bu_1Ucwy.js deleted file mode 100644 index d6a2417e..00000000 --- a/compendium_v2/static/RemoteCampuses-Bu_1Ucwy.js +++ /dev/null @@ -1 +0,0 @@ -import{c as S,j as n,r as D,F as R,t as E,S as g}from"./index.js";import{u as w,h as F,i as k,D as T,F as B,f as L}from"./useData-CxftshCa.js";import{T as O}from"./Table-ClWM2_rS.js";import"./SideBar-CkoMfgfL.js";import"./xlsx-BHRztzV8.js";import"./index-ZGgT6a2u.js";import"./hook-BbhLqP_c.js";function $({data:e,dottedBorder:t=!1,columns:o}){return Array.from(e.entries()).map(([s,a])=>Array.from(a.entries()).map(([i,d],c)=>n.jsxs("tr",{className:t?"dotted-border":"",children:[n.jsx("td",{className:"pt-3 nren-column text-nowrap",children:c===0&&s}),n.jsx("td",{className:"pt-3 year-column",children:i}),Object.keys(o).map((r,l)=>n.jsx("td",{className:"pt-3 blue-column",children:d[r]},l))]},s+i)))}function A(e){const t=S.c(15),{data:o,dottedBorder:s,columns:a}=e;let i;t[0]===Symbol.for("react.memo_cache_sentinel")?(i=n.jsx("th",{className:"nren-column",children:n.jsx("span",{children:"NREN"})}),t[0]=i):i=t[0];let d;t[1]===Symbol.for("react.memo_cache_sentinel")?(d=n.jsx("th",{className:"year-column",children:n.jsx("span",{children:"Year"})}),t[1]=d):d=t[1];let c;t[2]!==a?(c=Object.values(a).map(P),t[2]=a,t[3]=c):c=t[3];let r;t[4]!==c?(r=n.jsx("thead",{children:n.jsxs("tr",{children:[i,d,c]})}),t[4]=c,t[5]=r):r=t[5];let l;t[6]!==a||t[7]!==o||t[8]!==s?(l=$({data:o,dottedBorder:s,columns:a}),t[6]=a,t[7]=o,t[8]=s,t[9]=l):l=t[9];let u;t[10]!==l?(u=n.jsx("tbody",{children:l}),t[10]=l,t[11]=u):u=t[11];let m;return t[12]!==r||t[13]!==u?(m=n.jsxs(O,{borderless:!0,className:"compendium-table",children:[r,u]}),t[12]=r,t[13]=u,t[14]=m):m=t[14],m}function P(e,t){return n.jsx("th",{className:"blue-column",children:n.jsx("span",{children:e})},t)}function Q(){const e=S.c(29);let t;e[0]===Symbol.for("react.memo_cache_sentinel")?(t=x=>!!x.remote_campus_connectivity,e[0]=t):t=e[0];const o=t,{filterSelection:s,setFilterSelection:a}=D.useContext(R),{data:i,years:d,nrens:c}=w("/api/remote-campuses",a,o);let r,l;if(e[1]!==i||e[2]!==s.selectedNrens||e[3]!==s.selectedYears){let x;e[6]!==s.selectedNrens||e[7]!==s.selectedYears?(x=C=>s.selectedYears.includes(C.year)&&s.selectedNrens.includes(C.nren),e[6]=s.selectedNrens,e[7]=s.selectedYears,e[8]=x):x=e[8],r=i.filter(x);const v=F(r);l=k(v,J),e[1]=i,e[2]=s.selectedNrens,e[3]=s.selectedYears,e[4]=r,e[5]=l}else r=e[4],l=e[5];const u=l;let m;e[9]!==d?(m=[...d],e[9]=d,e[10]=m):m=e[10];let f;e[11]!==c?(f=c.values(),e[11]=c,e[12]=f):f=e[12];let p;e[13]!==f?(p=[...f],e[13]=f,e[14]=p):p=e[14];let h;e[15]!==m||e[16]!==p?(h={availableYears:m,availableNrens:p},e[15]=m,e[16]=p,e[17]=h):h=e[17];let j;e[18]!==s||e[19]!==a||e[20]!==h?(j=n.jsx(B,{filterOptions:h,filterSelection:s,setFilterSelection:a}),e[18]=s,e[19]=a,e[20]=h,e[21]=j):j=e[21];const b=j;let N;e[22]===Symbol.for("react.memo_cache_sentinel")?(N={countries:"Countries with Remote Campuses",local_r_and_e_connection:"Local R&E Connection"},e[22]=N):N=e[22];const Y=N;let _;e[23]!==u?(_=n.jsx(L,{children:n.jsx(A,{data:u,columns:Y,dottedBorder:!0})}),e[23]=u,e[24]=_):_=e[24];let y;return e[25]!==b||e[26]!==r||e[27]!==_?(y=n.jsx(T,{title:E["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:g.ConnectedUsers,filter:b,data:r,filename:"nren_remote_campuses",children:_}),e[25]=b,e[26]=r,e[27]=_,e[28]=y):y=e[28],y}function J(e,t){for(const o of t){if(!o.remote_campus_connectivity)continue;const s=o.connections.map(X).join(", ");e.countries=s,e.local_r_and_e_connection=o.connections.map(U).join(", ")}}function U(e){return e.local_r_and_e_connection?"Yes":"No"}function X(e){return e.country}export{Q as default}; diff --git a/compendium_v2/static/ScrollableMatrix-D6caiSg1.js b/compendium_v2/static/ScrollableMatrix-D6caiSg1.js new file mode 100644 index 00000000..6c982180 --- /dev/null +++ b/compendium_v2/static/ScrollableMatrix-D6caiSg1.js @@ -0,0 +1 @@ +import{c as T,j as t,e as k}from"./index-DunMf8wQ.js";import{T as A}from"./Table-BUrPWwZB.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/ScrollableMatrix-Dxr22l4i.js b/compendium_v2/static/ScrollableMatrix-Dxr22l4i.js deleted file mode 100644 index 6be04915..00000000 --- a/compendium_v2/static/ScrollableMatrix-Dxr22l4i.js +++ /dev/null @@ -1 +0,0 @@ -import{c as T,j as t,e as k}from"./index.js";import{T as A}from"./Table-ClWM2_rS.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-CkjbRt2j.js b/compendium_v2/static/SecurityControls-CkjbRt2j.js deleted file mode 100644 index 53b7f661..00000000 --- a/compendium_v2/static/SecurityControls-CkjbRt2j.js +++ /dev/null @@ -1,2 +0,0 @@ -import{c as T,r as E,F as L,S as A,j,t as I}from"./index.js";import{u as M,g as O,F as R,D as V,f as W}from"./useData-CxftshCa.js";import{P as $}from"./PillTable-Cnj0nnFy.js";import"./SideBar-CkoMfgfL.js";import"./xlsx-BHRztzV8.js";import"./index-ZGgT6a2u.js";import"./hook-BbhLqP_c.js";import"./ColorPill-CXvWIfWz.js";import"./Table-ClWM2_rS.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/SecurityControls-DPvKKslf.js b/compendium_v2/static/SecurityControls-DPvKKslf.js new file mode 100644 index 00000000..3f37b60f --- /dev/null +++ b/compendium_v2/static/SecurityControls-DPvKKslf.js @@ -0,0 +1,2 @@ +import{c as T,r as E,F as L,S as A,j,t as I}from"./index-DunMf8wQ.js";import{u as M,g as O,F as R,D as V,f as W}from"./useData-DvdT9bkc.js";import{P as $}from"./PillTable-DEX_WeNY.js";import"./SideBar-DC9SKCkF.js";import"./xlsx-BHRztzV8.js";import"./index-DSQNfbUQ.js";import"./hook-CgOBj93G.js";import"./ColorPill-CXsYrUiQ.js";import"./Table-BUrPWwZB.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-BQyQ1ynP.js b/compendium_v2/static/ServiceLevelTargets-BQyQ1ynP.js deleted file mode 100644 index 89cd2a3a..00000000 --- a/compendium_v2/static/ServiceLevelTargets-BQyQ1ynP.js +++ /dev/null @@ -1,2 +0,0 @@ -import{c as y,r as j,F,j as v,t as T,S as _}from"./index.js";import{u as E,g as L,D as P,F as w,f as C}from"./useData-CxftshCa.js";import{P as D}from"./PillTable-Cnj0nnFy.js";import"./SideBar-CkoMfgfL.js";import"./xlsx-BHRztzV8.js";import"./index-ZGgT6a2u.js";import"./hook-BbhLqP_c.js";import"./ColorPill-CXvWIfWz.js";import"./Table-ClWM2_rS.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/ServiceLevelTargets-BTUmV26j.js b/compendium_v2/static/ServiceLevelTargets-BTUmV26j.js new file mode 100644 index 00000000..e714c336 --- /dev/null +++ b/compendium_v2/static/ServiceLevelTargets-BTUmV26j.js @@ -0,0 +1,2 @@ +import{c as y,r as j,F,j as v,t as T,S as _}from"./index-DunMf8wQ.js";import{u as E,g as L,D as P,F as w,f as C}from"./useData-DvdT9bkc.js";import{P as D}from"./PillTable-DEX_WeNY.js";import"./SideBar-DC9SKCkF.js";import"./xlsx-BHRztzV8.js";import"./index-DSQNfbUQ.js";import"./hook-CgOBj93G.js";import"./ColorPill-CXsYrUiQ.js";import"./Table-BUrPWwZB.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-DDW7v-XJ.js b/compendium_v2/static/ServiceManagementFramework-DDW7v-XJ.js deleted file mode 100644 index 1cd11d83..00000000 --- a/compendium_v2/static/ServiceManagementFramework-DDW7v-XJ.js +++ /dev/null @@ -1,2 +0,0 @@ -import{c as b,r as F,F as S,j as h,t as j,S as _}from"./index.js";import{u as y,g as E,D as P,F as C,f as D}from"./useData-CxftshCa.js";import{P as R}from"./PillTable-Cnj0nnFy.js";import"./SideBar-CkoMfgfL.js";import"./xlsx-BHRztzV8.js";import"./index-ZGgT6a2u.js";import"./hook-BbhLqP_c.js";import"./ColorPill-CXvWIfWz.js";import"./Table-ClWM2_rS.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/ServiceManagementFramework-DWirH02M.js b/compendium_v2/static/ServiceManagementFramework-DWirH02M.js new file mode 100644 index 00000000..c7433b57 --- /dev/null +++ b/compendium_v2/static/ServiceManagementFramework-DWirH02M.js @@ -0,0 +1,2 @@ +import{c as b,r as F,F as S,j as h,t as j,S as _}from"./index-DunMf8wQ.js";import{u as y,g as E,D as P,F as C,f as D}from"./useData-DvdT9bkc.js";import{P as R}from"./PillTable-DEX_WeNY.js";import"./SideBar-DC9SKCkF.js";import"./xlsx-BHRztzV8.js";import"./index-DSQNfbUQ.js";import"./hook-CgOBj93G.js";import"./ColorPill-CXsYrUiQ.js";import"./Table-BUrPWwZB.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-kzZ5IOvA.js b/compendium_v2/static/Services-wGbaoPrz.js similarity index 86% rename from compendium_v2/static/Services-kzZ5IOvA.js rename to compendium_v2/static/Services-wGbaoPrz.js index 1a7723e8..c0562113 100644 --- a/compendium_v2/static/Services-kzZ5IOvA.js +++ b/compendium_v2/static/Services-wGbaoPrz.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.js";import{u as oe,g as le,F as ce,D as ne,f as de}from"./useData-CxftshCa.js";import{T as me}from"./Table-ClWM2_rS.js";import"./SideBar-CkoMfgfL.js";import"./xlsx-BHRztzV8.js";import"./index-ZGgT6a2u.js";import"./hook-BbhLqP_c.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-DunMf8wQ.js";import{u as oe,g as le,F as ce,D as ne,f as de}from"./useData-DvdT9bkc.js";import{T as me}from"./Table-BUrPWwZB.js";import"./SideBar-DC9SKCkF.js";import"./xlsx-BHRztzV8.js";import"./index-DSQNfbUQ.js";import"./hook-CgOBj93G.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-BnmNlrgs.js b/compendium_v2/static/ServicesOffered-BnmNlrgs.js deleted file mode 100644 index 1c3803e2..00000000 --- a/compendium_v2/static/ServicesOffered-BnmNlrgs.js +++ /dev/null @@ -1 +0,0 @@ -import{c as b,r as w,F as j,j as c,t as k,S as C,U as E}from"./index.js";import{u as Y,r as F,D as I,F as P,f as R}from"./useData-CxftshCa.js";import{S as D}from"./ScrollableMatrix-Dxr22l4i.js";import"./SideBar-CkoMfgfL.js";import"./xlsx-BHRztzV8.js";import"./index-ZGgT6a2u.js";import"./hook-BbhLqP_c.js";import"./Table-ClWM2_rS.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/ServicesOffered-C6oTnjq_.js b/compendium_v2/static/ServicesOffered-C6oTnjq_.js new file mode 100644 index 00000000..16e0e8eb --- /dev/null +++ b/compendium_v2/static/ServicesOffered-C6oTnjq_.js @@ -0,0 +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-DunMf8wQ.js";import{u as Y,r as F,D as I,F as P,f as R}from"./useData-DvdT9bkc.js";import{S as D}from"./ScrollableMatrix-D6caiSg1.js";import"./SideBar-DC9SKCkF.js";import"./xlsx-BHRztzV8.js";import"./index-DSQNfbUQ.js";import"./hook-CgOBj93G.js";import"./Table-BUrPWwZB.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-CkoMfgfL.js b/compendium_v2/static/SideBar-CkoMfgfL.js deleted file mode 100644 index cc62725b..00000000 --- a/compendium_v2/static/SideBar-CkoMfgfL.js +++ /dev/null @@ -1 +0,0 @@ -import{c as N,r as y,j as t,Y as S,Z as k}from"./index.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/SideBar-DC9SKCkF.js b/compendium_v2/static/SideBar-DC9SKCkF.js new file mode 100644 index 00000000..13e02345 --- /dev/null +++ b/compendium_v2/static/SideBar-DC9SKCkF.js @@ -0,0 +1 @@ +import{c as N,r as y,j as t,Y as S,Z as k}from"./index-DunMf8wQ.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-W4GM3C-U.js b/compendium_v2/static/SiemVendors-W4GM3C-U.js new file mode 100644 index 00000000..1963b178 --- /dev/null +++ b/compendium_v2/static/SiemVendors-W4GM3C-U.js @@ -0,0 +1 @@ +import{c as Y,r as j,F as E,j as u,t as _,S as g}from"./index-DunMf8wQ.js";import{u as k,g as C,D as F,F as D,f as P}from"./useData-DvdT9bkc.js";import{P as R}from"./PillTable-DEX_WeNY.js";import"./SideBar-DC9SKCkF.js";import"./xlsx-BHRztzV8.js";import"./index-DSQNfbUQ.js";import"./hook-CgOBj93G.js";import"./ColorPill-CXsYrUiQ.js";import"./Table-BUrPWwZB.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/SiemVendors-pjqFJlX2.js b/compendium_v2/static/SiemVendors-pjqFJlX2.js deleted file mode 100644 index 58029631..00000000 --- a/compendium_v2/static/SiemVendors-pjqFJlX2.js +++ /dev/null @@ -1 +0,0 @@ -import{c as Y,r as j,F as E,j as u,t as _,S as g}from"./index.js";import{u as k,g as C,D as F,F as D,f as P}from"./useData-CxftshCa.js";import{P as R}from"./PillTable-Cnj0nnFy.js";import"./SideBar-CkoMfgfL.js";import"./xlsx-BHRztzV8.js";import"./index-ZGgT6a2u.js";import"./hook-BbhLqP_c.js";import"./ColorPill-CXvWIfWz.js";import"./Table-ClWM2_rS.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-D3mBN476.js b/compendium_v2/static/StaffGraph-D3mBN476.js deleted file mode 100644 index fe782589..00000000 --- a/compendium_v2/static/StaffGraph-D3mBN476.js +++ /dev/null @@ -1,4 +0,0 @@ -import{c as $,r as B,F as A,j as x,S as M,t as R}from"./index.js";import{B as P}from"./index-CjWPDfDC.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-CxftshCa.js";import{h as X,W as Z}from"./HTMLLegendPlugin-C-L3dIU1.js";import"./SideBar-CkoMfgfL.js";import"./xlsx-BHRztzV8.js";import"./index-ZGgT6a2u.js";import"./hook-BbhLqP_c.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/StaffGraph-nuZcRAf1.js b/compendium_v2/static/StaffGraph-nuZcRAf1.js new file mode 100644 index 00000000..f1da33e2 --- /dev/null +++ b/compendium_v2/static/StaffGraph-nuZcRAf1.js @@ -0,0 +1,4 @@ +import{c as $,r as B,F as A,j as x,S as M,t as R}from"./index-DunMf8wQ.js";import{B as P}from"./index-C2DQFzVc.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-DvdT9bkc.js";import{h as X,W as Z}from"./HTMLLegendPlugin-DF0OaxMQ.js";import"./SideBar-DC9SKCkF.js";import"./xlsx-BHRztzV8.js";import"./index-DSQNfbUQ.js";import"./hook-CgOBj93G.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-B_KY3Vzc.js b/compendium_v2/static/StaffGraphAbsolute-B_KY3Vzc.js new file mode 100644 index 00000000..729aba41 --- /dev/null +++ b/compendium_v2/static/StaffGraphAbsolute-B_KY3Vzc.js @@ -0,0 +1 @@ +import{c as D,r as Y,F as B,j as d,S as T,t as P}from"./index-DunMf8wQ.js";import{B as A}from"./index-C2DQFzVc.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-DvdT9bkc.js";import{p as K}from"./chartjs-plugin-datalabels.esm-Bb0FwIXw.js";import{a as Q}from"./charthelpers-vHYh9qxV.js";import"./SideBar-DC9SKCkF.js";import"./xlsx-BHRztzV8.js";import"./index-DSQNfbUQ.js";import"./hook-CgOBj93G.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/StaffGraphAbsolute-I7Y3C-nj.js b/compendium_v2/static/StaffGraphAbsolute-I7Y3C-nj.js deleted file mode 100644 index 86358ecc..00000000 --- a/compendium_v2/static/StaffGraphAbsolute-I7Y3C-nj.js +++ /dev/null @@ -1 +0,0 @@ -import{c as D,r as Y,F as B,j as d,S as T,t as P}from"./index.js";import{B as A}from"./index-CjWPDfDC.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-CxftshCa.js";import{p as K}from"./chartjs-plugin-datalabels.esm-CjG-nxnq.js";import{a as Q}from"./charthelpers-B0zLHD4s.js";import"./SideBar-CkoMfgfL.js";import"./xlsx-BHRztzV8.js";import"./index-ZGgT6a2u.js";import"./hook-BbhLqP_c.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-C7B4_RD0.js b/compendium_v2/static/SubOrganisation-C7B4_RD0.js deleted file mode 100644 index 67428e49..00000000 --- a/compendium_v2/static/SubOrganisation-C7B4_RD0.js +++ /dev/null @@ -1 +0,0 @@ -import{c as Y,r as y,F as C,j as p,t as S,S as j}from"./index.js";import{u as v,h as F,i as E,D as R,F as T,f as O}from"./useData-CxftshCa.js";import{N as P}from"./NrenYearTable-tQrmAmRo.js";import"./SideBar-CkoMfgfL.js";import"./xlsx-BHRztzV8.js";import"./index-ZGgT6a2u.js";import"./hook-BbhLqP_c.js";import"./Table-ClWM2_rS.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/SubOrganisation-uqygN7-8.js b/compendium_v2/static/SubOrganisation-uqygN7-8.js new file mode 100644 index 00000000..8f25b085 --- /dev/null +++ b/compendium_v2/static/SubOrganisation-uqygN7-8.js @@ -0,0 +1 @@ +import{c as Y,r as y,F as C,j as p,t as S,S as j}from"./index-DunMf8wQ.js";import{u as v,h as F,i as E,D as R,F as T,f as O}from"./useData-DvdT9bkc.js";import{N as P}from"./NrenYearTable-D3mNeVd3.js";import"./SideBar-DC9SKCkF.js";import"./xlsx-BHRztzV8.js";import"./index-DSQNfbUQ.js";import"./hook-CgOBj93G.js";import"./Table-BUrPWwZB.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-DxT_-mC9.js b/compendium_v2/static/SurveyContainerComponent-TmXjyfKm.js similarity index 99% rename from compendium_v2/static/SurveyContainerComponent-DxT_-mC9.js rename to compendium_v2/static/SurveyContainerComponent-TmXjyfKm.js index 9fe4326d..658345ef 100644 --- a/compendium_v2/static/SurveyContainerComponent-DxT_-mC9.js +++ b/compendium_v2/static/SurveyContainerComponent-TmXjyfKm.js @@ -1,4 +1,4 @@ -import{a3 as uo,a4 as lo,c as Re,r as F,j as L,C as co,E as ot,R as fe,a1 as Bn,a5 as po,a6 as ho,Q as fo}from"./index.js";import{D as mo,k as A}from"./index-BGZcCZJE.js";import{r as vo,a as ue}from"./survey.core-D1mOb2z9.js";import{V as we,v as yo,o as go}from"./validation-COFmylEH.js";import{S as Co}from"./SurveySidebar-CG0gwQ6b.js";import"./SideBar-CkoMfgfL.js";var be={exports:{}};/*! +import{a3 as uo,a4 as lo,c as Re,r as F,j as L,C as co,E as ot,R as fe,a1 as Bn,a5 as po,a6 as ho,Q as fo}from"./index-DunMf8wQ.js";import{D as mo,k as A}from"./index-ClpOPiqG.js";import{r as vo,a as ue}from"./survey.core-D1mOb2z9.js";import{V as we,v as yo,o as go}from"./validation-COFmylEH.js";import{S as Co}from"./SurveySidebar-B89Xtwv2.js";import"./SideBar-DC9SKCkF.js";var be={exports:{}};/*! * surveyjs - Survey JavaScript library v1.12.23 * 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-Br-7fyx2.js b/compendium_v2/static/SurveyManagementComponent-Br-7fyx2.js new file mode 100644 index 00000000..0bbd0c9d --- /dev/null +++ b/compendium_v2/static/SurveyManagementComponent-Br-7fyx2.js @@ -0,0 +1,3 @@ +import{r as P,h as K,j as t,i as X,_ as Q,c as G,y,a7 as Y,L as W,E as D,R as Z}from"./index-DunMf8wQ.js";import{A as z,l as ee}from"./lodash-DG7dNfcw.js";import{T as te}from"./Table-BUrPWwZB.js";import{k as m,D as se}from"./index-ClpOPiqG.js";import{v as ne,o as ae,S as o}from"./validation-COFmylEH.js";import{a as A}from"./survey-3meXCY6T.js";import{S as re}from"./SurveySidebar-B89Xtwv2.js";import"./hook-CgOBj93G.js";import"./SideBar-DC9SKCkF.js";const H=P.forwardRef(({bsPrefix:e,variant:n,animation:l="border",size:a,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,a&&`${f}-${a}`,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 q(e){const n=G.c(4),{status:l}=e;let a;n[0]===Symbol.for("react.memo_cache_sentinel")?(a=t.jsx(y,{variant:"success",size:"sm",children:t.jsx("strong",{children:"Completed"})}),n[0]=a):a=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:a,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:a,Serializer:i}=await Y(async()=>{const{Model:v,FunctionFactory:j,Serializer:B}=await import("./survey.core-D1mOb2z9.js").then(O=>O.s);return{Model:v,FunctionFactory:j,Serializer:B}},[]);function c(){const v=i.getAllPropertiesByName("customDescription"),j=i.getAllPropertiesByName("hideCheckboxLabels");v.length||i.addProperty("itemvalue","customDescription:text"),j.length||i.addProperty("question","hideCheckboxLabels:boolean")}if(a.Instance.hasFunction("validateQuestion")||a.Instance.register("validateQuestion",ne),a.Instance.hasFunction("validateWebsiteUrl")||a.Instance.register("validateWebsiteUrl",ae),!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 h=new l(f.model);h.setVariable("surveyyear",e),h.setVariable("previousyear",parseInt(e)-1),h.showNavigationButtons=!1,h.requiredText="",h.data=f.data,h.clearIncorrectValues(!0);const E=h.validate.bind(h,!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 a=>{const i=await a.json();a.ok?m.success("Notes saved"):m.error("Failed saving notes: "+i.message||a.statusText)}).catch(a=>{m.error("Failed saving notes: "+a)})}function _({text:e,helpText:n,onClick:l,enabled:a}){const[i,c]=P.useState(!1),d=async()=>{if(!i){c(!0);try{await l()}finally{c(!1)}}};return t.jsxs(y,{onClick:d,disabled:!a,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 ge(){const e=G.c(21);let n;e[0]===Symbol.for("react.memo_cache_sentinel")?(n=[],e[0]=n):n=e[0];const[l,a]=P.useState(n),i=P.useRef(!1);let c,d;e[1]===Symbol.for("react.memo_cache_sentinel")?(c=()=>{A().then(x=>{a(x)})},d=[],e[1]=c,e[2]=d):(c=e[1],d=e[2]),P.useEffect(c,d);let p;e[3]===Symbol.for("react.memo_cache_sentinel")?(p=async function(s,u,r,b){const N=b===void 0?!1:b;try{N&&(s=s+"?dry_run=1");const w=await fetch(s,{method:"POST"}),F=await w.json();w.ok?(F.message&&console.log(F.message),N||m(r),A().then(J=>{a(J)})):m(u+F.message)}catch(w){m(u+w.message)}},e[3]=p):p=e[3];const f=p;let h;e[4]===Symbol.for("react.memo_cache_sentinel")?(h=async function(){await f("/api/survey/new","Failed creating new survey: ","Created new survey")},e[4]=h):h=e[4];const E=h;let C;e[5]===Symbol.for("react.memo_cache_sentinel")?(C=async function(s,u,r){const b=r===void 0?!1:r;if(i.current){m("Wait for status update to be finished...");return}i.current=!0,await f("/api/survey/"+u+"/"+s,"Error while updating "+s+" survey status to "+u+": ",s+" survey status updated to "+u,b),i.current=!1},e[5]=C):C=e[5];const v=C;let j;e[6]===Symbol.for("react.memo_cache_sentinel")?(j=async function(s,u){await f("/api/response/unlock/"+s+"/"+u,"Error while unlocking "+u+" "+s+" survey response: ",u+" "+s+" survey response unlocked")},e[6]=j):j=e[6];const B=j,O=l.length>0&&l.every(ue),M=window.location.origin+"/data?preview";let R;e[7]===Symbol.for("react.memo_cache_sentinel")?(R=t.jsx(re,{}),e[7]=R):R=e[7];let T;e[8]===Symbol.for("react.memo_cache_sentinel")?(T={maxWidth:"100rem"},e[8]=T):T=e[8];let I;e[9]===Symbol.for("react.memo_cache_sentinel")?(I=t.jsx(se,{}),e[9]=I):I=e[9];const V=!O;let L;e[10]===Symbol.for("react.memo_cache_sentinel")?(L={pointerEvents:"auto",width:"10rem",margin:"1rem"},e[10]=L):L=e[10];let g;e[11]!==V?(g=t.jsx(y,{onClick:E,disabled:V,style:L,title:"Create a new survey for the next year. Only possible if all current surveys are published.",children:"start new survey"}),e[11]=V,e[12]=g):g=e[12];let S;if(e[13]!==l){let x;e[15]===Symbol.for("react.memo_cache_sentinel")?(x=(s,u)=>t.jsxs(z.Item,{eventKey:u.toString(),children:[t.jsxs(z.Header,{children:[s.year," - ",s.status]}),t.jsxs(z.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(_,{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:()=>v(s.year,"open")}),s.status==o.open&&t.jsx(_,{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:()=>v(s.year,"close")}),(s.status==o.preview||s.status==o.published)&&t.jsx(_,{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()=>{const r=[...s.responses].sort(he);(await Promise.all(r.map(w=>U(s.year,w.nren.name)))).every(de)?m.success("All surveys are valid"):m.error(`Some surveys are not valid. +Please check the responses`),A().then(w=>{a(w)})}}),(s.status==o.closed||s.status==o.preview)&&t.jsx(_,{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:()=>v(s.year,"preview")}),(s.status==o.preview||s.status==o.published)&&t.jsxs(t.Fragment,{children:[t.jsx(_,{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:()=>v(s.year,"publish",!0)}),t.jsx(_,{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:()=>v(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(r=>t.jsxs("tr",{children:[t.jsx("td",{children:r.nren.name}),t.jsx("td",{children:t.jsx(q,{status:r.status})}),t.jsx("td",{children:t.jsx(q,{status:r.valid?"true":"false"})}),t.jsx("td",{style:{textWrap:"wrap",wordWrap:"break-word",maxWidth:"10rem"},children:r.lock_description}),t.jsx("td",{children:"notes"in r&&t.jsx("textarea",{onInput:ee.debounce(b=>le(s.year,r.nren.id,b.target.value),1e3),style:{minWidth:"100%",minHeight:"5rem"},placeholder:"Notes for this survey",defaultValue:r.notes||""})}),t.jsxs("td",{children:[t.jsx(W,{to:`/survey/response/${s.year}/${r.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:()=>B(s.year,r.nren.name),disabled:r.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"}),r.status=="completed"&&t.jsx(y,{onClick:()=>{U(s.year,r.nren.name).then(b=>{b?m.success("Survey is valid"):m.error(`${r.nren.name} ${s.year} survey is not valid. +Please check the response`),A().then(N=>{a(N)})}).catch(ce)},style:{pointerEvents:"auto"},children:"Validate Survey"})]})]},r.nren.id))})]})]})]},s.year),e[15]=x):x=e[15],S=l.map(x),e[13]=l,e[14]=S}else S=e[14];let k;e[16]!==S?(k=t.jsx(z,{defaultActiveKey:"0",children:S}),e[16]=S,e[17]=k):k=e[17];let $;return e[18]!==g||e[19]!==k?($=t.jsxs(t.Fragment,{children:[R,t.jsx(D,{className:"py-5 grey-container",children:t.jsx(D,{style:T,children:t.jsxs(Z,{children:[I,g,k]})})})]}),e[18]=g,e[19]=k,e[20]=$):$=e[20],$}function ce(e){m.error("Failed validating survey: "+e)}function de(e){return e}function he(e,n){return e.nren.name.localeCompare(n.nren.name)}function ue(e){return e.status==o.published}export{ge as default}; diff --git a/compendium_v2/static/SurveyManagementComponent-DygIuffI.js b/compendium_v2/static/SurveyManagementComponent-DygIuffI.js deleted file mode 100644 index 2b87753c..00000000 --- a/compendium_v2/static/SurveyManagementComponent-DygIuffI.js +++ /dev/null @@ -1,3 +0,0 @@ -import{r as P,h as K,j as t,i as X,_ as Q,c as G,y,a7 as Y,L as W,E as D,R as Z}from"./index.js";import{A as z,l as ee}from"./lodash-0qAddrJ1.js";import{T as te}from"./Table-ClWM2_rS.js";import{k as m,D as se}from"./index-BGZcCZJE.js";import{v as ne,o as ae,S as o}from"./validation-COFmylEH.js";import{a as A}from"./survey-3meXCY6T.js";import{S as re}from"./SurveySidebar-CG0gwQ6b.js";import"./hook-BbhLqP_c.js";import"./SideBar-CkoMfgfL.js";const H=P.forwardRef(({bsPrefix:e,variant:n,animation:l="border",size:a,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,a&&`${f}-${a}`,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 q(e){const n=G.c(4),{status:l}=e;let a;n[0]===Symbol.for("react.memo_cache_sentinel")?(a=t.jsx(y,{variant:"success",size:"sm",children:t.jsx("strong",{children:"Completed"})}),n[0]=a):a=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:a,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:a,Serializer:i}=await Y(async()=>{const{Model:v,FunctionFactory:j,Serializer:B}=await import("./survey.core-D1mOb2z9.js").then(O=>O.s);return{Model:v,FunctionFactory:j,Serializer:B}},[]);function c(){const v=i.getAllPropertiesByName("customDescription"),j=i.getAllPropertiesByName("hideCheckboxLabels");v.length||i.addProperty("itemvalue","customDescription:text"),j.length||i.addProperty("question","hideCheckboxLabels:boolean")}if(a.Instance.hasFunction("validateQuestion")||a.Instance.register("validateQuestion",ne),a.Instance.hasFunction("validateWebsiteUrl")||a.Instance.register("validateWebsiteUrl",ae),!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 h=new l(f.model);h.setVariable("surveyyear",e),h.setVariable("previousyear",parseInt(e)-1),h.showNavigationButtons=!1,h.requiredText="",h.data=f.data,h.clearIncorrectValues(!0);const E=h.validate.bind(h,!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 a=>{const i=await a.json();a.ok?m.success("Notes saved"):m.error("Failed saving notes: "+i.message||a.statusText)}).catch(a=>{m.error("Failed saving notes: "+a)})}function _({text:e,helpText:n,onClick:l,enabled:a}){const[i,c]=P.useState(!1),d=async()=>{if(!i){c(!0);try{await l()}finally{c(!1)}}};return t.jsxs(y,{onClick:d,disabled:!a,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 ge(){const e=G.c(21);let n;e[0]===Symbol.for("react.memo_cache_sentinel")?(n=[],e[0]=n):n=e[0];const[l,a]=P.useState(n),i=P.useRef(!1);let c,d;e[1]===Symbol.for("react.memo_cache_sentinel")?(c=()=>{A().then(x=>{a(x)})},d=[],e[1]=c,e[2]=d):(c=e[1],d=e[2]),P.useEffect(c,d);let p;e[3]===Symbol.for("react.memo_cache_sentinel")?(p=async function(s,u,r,b){const N=b===void 0?!1:b;try{N&&(s=s+"?dry_run=1");const w=await fetch(s,{method:"POST"}),F=await w.json();w.ok?(F.message&&console.log(F.message),N||m(r),A().then(J=>{a(J)})):m(u+F.message)}catch(w){m(u+w.message)}},e[3]=p):p=e[3];const f=p;let h;e[4]===Symbol.for("react.memo_cache_sentinel")?(h=async function(){await f("/api/survey/new","Failed creating new survey: ","Created new survey")},e[4]=h):h=e[4];const E=h;let C;e[5]===Symbol.for("react.memo_cache_sentinel")?(C=async function(s,u,r){const b=r===void 0?!1:r;if(i.current){m("Wait for status update to be finished...");return}i.current=!0,await f("/api/survey/"+u+"/"+s,"Error while updating "+s+" survey status to "+u+": ",s+" survey status updated to "+u,b),i.current=!1},e[5]=C):C=e[5];const v=C;let j;e[6]===Symbol.for("react.memo_cache_sentinel")?(j=async function(s,u){await f("/api/response/unlock/"+s+"/"+u,"Error while unlocking "+u+" "+s+" survey response: ",u+" "+s+" survey response unlocked")},e[6]=j):j=e[6];const B=j,O=l.length>0&&l.every(ue),M=window.location.origin+"/data?preview";let R;e[7]===Symbol.for("react.memo_cache_sentinel")?(R=t.jsx(re,{}),e[7]=R):R=e[7];let T;e[8]===Symbol.for("react.memo_cache_sentinel")?(T={maxWidth:"100rem"},e[8]=T):T=e[8];let I;e[9]===Symbol.for("react.memo_cache_sentinel")?(I=t.jsx(se,{}),e[9]=I):I=e[9];const V=!O;let L;e[10]===Symbol.for("react.memo_cache_sentinel")?(L={pointerEvents:"auto",width:"10rem",margin:"1rem"},e[10]=L):L=e[10];let g;e[11]!==V?(g=t.jsx(y,{onClick:E,disabled:V,style:L,title:"Create a new survey for the next year. Only possible if all current surveys are published.",children:"start new survey"}),e[11]=V,e[12]=g):g=e[12];let S;if(e[13]!==l){let x;e[15]===Symbol.for("react.memo_cache_sentinel")?(x=(s,u)=>t.jsxs(z.Item,{eventKey:u.toString(),children:[t.jsxs(z.Header,{children:[s.year," - ",s.status]}),t.jsxs(z.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(_,{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:()=>v(s.year,"open")}),s.status==o.open&&t.jsx(_,{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:()=>v(s.year,"close")}),(s.status==o.preview||s.status==o.published)&&t.jsx(_,{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()=>{const r=[...s.responses].sort(he);(await Promise.all(r.map(w=>U(s.year,w.nren.name)))).every(de)?m.success("All surveys are valid"):m.error(`Some surveys are not valid. -Please check the responses`),A().then(w=>{a(w)})}}),(s.status==o.closed||s.status==o.preview)&&t.jsx(_,{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:()=>v(s.year,"preview")}),(s.status==o.preview||s.status==o.published)&&t.jsxs(t.Fragment,{children:[t.jsx(_,{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:()=>v(s.year,"publish",!0)}),t.jsx(_,{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:()=>v(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(r=>t.jsxs("tr",{children:[t.jsx("td",{children:r.nren.name}),t.jsx("td",{children:t.jsx(q,{status:r.status})}),t.jsx("td",{children:t.jsx(q,{status:r.valid?"true":"false"})}),t.jsx("td",{style:{textWrap:"wrap",wordWrap:"break-word",maxWidth:"10rem"},children:r.lock_description}),t.jsx("td",{children:"notes"in r&&t.jsx("textarea",{onInput:ee.debounce(b=>le(s.year,r.nren.id,b.target.value),1e3),style:{minWidth:"100%",minHeight:"5rem"},placeholder:"Notes for this survey",defaultValue:r.notes||""})}),t.jsxs("td",{children:[t.jsx(W,{to:`/survey/response/${s.year}/${r.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:()=>B(s.year,r.nren.name),disabled:r.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"}),r.status=="completed"&&t.jsx(y,{onClick:()=>{U(s.year,r.nren.name).then(b=>{b?m.success("Survey is valid"):m.error(`${r.nren.name} ${s.year} survey is not valid. -Please check the response`),A().then(N=>{a(N)})}).catch(ce)},style:{pointerEvents:"auto"},children:"Validate Survey"})]})]},r.nren.id))})]})]})]},s.year),e[15]=x):x=e[15],S=l.map(x),e[13]=l,e[14]=S}else S=e[14];let k;e[16]!==S?(k=t.jsx(z,{defaultActiveKey:"0",children:S}),e[16]=S,e[17]=k):k=e[17];let $;return e[18]!==g||e[19]!==k?($=t.jsxs(t.Fragment,{children:[R,t.jsx(D,{className:"py-5 grey-container",children:t.jsx(D,{style:T,children:t.jsxs(Z,{children:[I,g,k]})})})]}),e[18]=g,e[19]=k,e[20]=$):$=e[20],$}function ce(e){m.error("Failed validating survey: "+e)}function de(e){return e}function he(e,n){return e.nren.name.localeCompare(n.nren.name)}function ue(e){return e.status==o.published}export{ge as default}; diff --git a/compendium_v2/static/SurveySidebar-B89Xtwv2.js b/compendium_v2/static/SurveySidebar-B89Xtwv2.js new file mode 100644 index 00000000..e43da739 --- /dev/null +++ b/compendium_v2/static/SurveySidebar-B89Xtwv2.js @@ -0,0 +1 @@ +import{c as a,j as s,a2 as m}from"./index-DunMf8wQ.js";import{S as o}from"./SideBar-DC9SKCkF.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/SurveySidebar-CG0gwQ6b.js b/compendium_v2/static/SurveySidebar-CG0gwQ6b.js deleted file mode 100644 index 093c7858..00000000 --- a/compendium_v2/static/SurveySidebar-CG0gwQ6b.js +++ /dev/null @@ -1 +0,0 @@ -import{c as a,j as s,a2 as m}from"./index.js";import{S as o}from"./SideBar-CkoMfgfL.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-BUrPWwZB.js b/compendium_v2/static/Table-BUrPWwZB.js new file mode 100644 index 00000000..c48b660d --- /dev/null +++ b/compendium_v2/static/Table-BUrPWwZB.js @@ -0,0 +1 @@ +import{r as m,h as j,i as u,j as l}from"./index-DunMf8wQ.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/Table-ClWM2_rS.js b/compendium_v2/static/Table-ClWM2_rS.js deleted file mode 100644 index 12baa2f1..00000000 --- a/compendium_v2/static/Table-ClWM2_rS.js +++ /dev/null @@ -1 +0,0 @@ -import{r as m,h as j,i as u,j as l}from"./index.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-BELkAOlA.js b/compendium_v2/static/TrafficRatio-BELkAOlA.js deleted file mode 100644 index 8aa08cf4..00000000 --- a/compendium_v2/static/TrafficRatio-BELkAOlA.js +++ /dev/null @@ -1 +0,0 @@ -import{c as C,r as L,F as E,j as x,S as F,t as Y}from"./index.js";import{B as $}from"./index-CjWPDfDC.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-CxftshCa.js";import{h as G,W as H}from"./HTMLLegendPlugin-C-L3dIU1.js";import"./SideBar-CkoMfgfL.js";import"./xlsx-BHRztzV8.js";import"./index-ZGgT6a2u.js";import"./hook-BbhLqP_c.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/TrafficRatio-CsniApRI.js b/compendium_v2/static/TrafficRatio-CsniApRI.js new file mode 100644 index 00000000..c6c0eeba --- /dev/null +++ b/compendium_v2/static/TrafficRatio-CsniApRI.js @@ -0,0 +1 @@ +import{c as C,r as L,F as E,j as x,S as F,t as Y}from"./index-DunMf8wQ.js";import{B as $}from"./index-C2DQFzVc.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-DvdT9bkc.js";import{h as G,W as H}from"./HTMLLegendPlugin-DF0OaxMQ.js";import"./SideBar-DC9SKCkF.js";import"./xlsx-BHRztzV8.js";import"./index-DSQNfbUQ.js";import"./hook-CgOBj93G.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-0revWiHR.js b/compendium_v2/static/TrafficUrl-0revWiHR.js new file mode 100644 index 00000000..f7769664 --- /dev/null +++ b/compendium_v2/static/TrafficUrl-0revWiHR.js @@ -0,0 +1 @@ +import{c as j,r as k,F as S,j as p,t as _,S as g}from"./index-DunMf8wQ.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-DvdT9bkc.js";import{N as C}from"./NrenYearTable-D3mNeVd3.js";import"./SideBar-DC9SKCkF.js";import"./xlsx-BHRztzV8.js";import"./index-DSQNfbUQ.js";import"./hook-CgOBj93G.js";import"./Table-BUrPWwZB.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/TrafficUrl-BLm4mZku.js b/compendium_v2/static/TrafficUrl-BLm4mZku.js deleted file mode 100644 index 7739b5ac..00000000 --- a/compendium_v2/static/TrafficUrl-BLm4mZku.js +++ /dev/null @@ -1 +0,0 @@ -import{c as j,r as k,F as S,j as p,t as _,S as g}from"./index.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-CxftshCa.js";import{N as C}from"./NrenYearTable-tQrmAmRo.js";import"./SideBar-CkoMfgfL.js";import"./xlsx-BHRztzV8.js";import"./index-ZGgT6a2u.js";import"./hook-BbhLqP_c.js";import"./Table-ClWM2_rS.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-1MvPPErr.js b/compendium_v2/static/TrafficVolume-1MvPPErr.js deleted file mode 100644 index 26d42450..00000000 --- a/compendium_v2/static/TrafficVolume-1MvPPErr.js +++ /dev/null @@ -1 +0,0 @@ -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.js";import{L as k}from"./index-CjWPDfDC.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-CxftshCa.js";import{g as le}from"./charthelpers-B0zLHD4s.js";import"./SideBar-CkoMfgfL.js";import"./xlsx-BHRztzV8.js";import"./index-ZGgT6a2u.js";import"./hook-BbhLqP_c.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/TrafficVolume-BMOIGkfu.js b/compendium_v2/static/TrafficVolume-BMOIGkfu.js new file mode 100644 index 00000000..ec13a87f --- /dev/null +++ b/compendium_v2/static/TrafficVolume-BMOIGkfu.js @@ -0,0 +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-DunMf8wQ.js";import{L as k}from"./index-C2DQFzVc.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-DvdT9bkc.js";import{g as le}from"./charthelpers-vHYh9qxV.js";import"./SideBar-DC9SKCkF.js";import"./xlsx-BHRztzV8.js";import"./index-DSQNfbUQ.js";import"./hook-CgOBj93G.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-CAc00ajf.js b/compendium_v2/static/UserManagementComponent-CAc00ajf.js new file mode 100644 index 00000000..697b2074 --- /dev/null +++ b/compendium_v2/static/UserManagementComponent-CAc00ajf.js @@ -0,0 +1 @@ +import{r as x,h as Ee,j as t,i as Te,ai as Re,c as Ae,aj as Ge,a1 as Oe,W as Se,y as Ue,E as Ve,R as Be}from"./index-DunMf8wQ.js";import{k as de,D as Me}from"./index-ClpOPiqG.js";import{S as We}from"./SurveySidebar-B89Xtwv2.js";import{c as qe,a as Le}from"./index-DSQNfbUQ.js";import{A as ae,l as He}from"./lodash-DG7dNfcw.js";import{T as Je}from"./Table-BUrPWwZB.js";import"./SideBar-DC9SKCkF.js";import"./hook-CgOBj93G.js";const me=x.forwardRef(({className:e,bsPrefix:s,as:r="span",...c},l)=>(s=Ee(s,"input-group-text"),t.jsx(r,{ref:l,className:Te(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=Ee(e,"input-group");const d=x.useMemo(()=>({}),[]);return t.jsx(qe.Provider,{value:d,children:t.jsx(l,{ref:h,...a,className:Te(c,e,s&&`${e}-${s}`,r&&"has-validation")})})});$e.displayName="InputGroup";const ke=Object.assign($e,{Text:me,Radio:Ye,Checkbox:Ke});function Qe(e){const s=Ae.c(10),{getConfig:r,setConfig:c}=x.useContext(Ge);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(Oe);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,De=tt,z=et;let k,E,T,j,y,g,R,A,C,w,b,$,D;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]]:De,[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]),E=Ve,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(ke.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(ke,{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],k=Je,D="user-management-table",T=!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(Fe=>Fe.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]=k,e[27]=E,e[28]=T,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]=D}else k=e[26],E=e[27],T=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],D=e[38];let F;e[66]!==k||e[67]!==T||e[68]!==j||e[69]!==y||e[70]!==$||e[71]!==D?(F=t.jsxs(k,{className:D,bordered:T,children:[j,y,$]}),e[66]=k,e[67]=T,e[68]=j,e[69]=y,e[70]=$,e[71]=D,e[72]=F):F=e[72];let G;e[73]!==g||e[74]!==F?(G=t.jsx("div",{style:g,children:F}),e[73]=g,e[74]=F,e[75]=G):G=e[75];let O;e[76]!==R||e[77]!==G?(O=t.jsx("div",{className:R,children:G}),e[76]=R,e[77]=G,e[78]=O):O=e[78];let V;e[79]!==E||e[80]!==A||e[81]!==C||e[82]!==O?(V=t.jsxs(E,{className:A,children:[C,O]}),e[79]=E,e[80]=A,e[81]=C,e[82]=O,e[83]=V):V=e[83];let P;return e[84]!==w||e[85]!==b||e[86]!==V?(P=t.jsxs(t.Fragment,{children:[w,b,V]}),e[84]=w,e[85]=b,e[86]=V,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/UserManagementComponent-DK-BhUBG.js b/compendium_v2/static/UserManagementComponent-DK-BhUBG.js deleted file mode 100644 index 7dfbdb07..00000000 --- a/compendium_v2/static/UserManagementComponent-DK-BhUBG.js +++ /dev/null @@ -1 +0,0 @@ -import{r as x,h as Ee,j as t,i as Te,ai as Re,c as Ae,aj as Ge,a1 as Oe,W as Se,y as Ue,E as Ve,R as Be}from"./index.js";import{k as de,D as Me}from"./index-BGZcCZJE.js";import{S as We}from"./SurveySidebar-CG0gwQ6b.js";import{c as qe,a as Le}from"./index-ZGgT6a2u.js";import{A as ae,l as He}from"./lodash-0qAddrJ1.js";import{T as Je}from"./Table-ClWM2_rS.js";import"./SideBar-CkoMfgfL.js";import"./hook-BbhLqP_c.js";const me=x.forwardRef(({className:e,bsPrefix:s,as:r="span",...c},l)=>(s=Ee(s,"input-group-text"),t.jsx(r,{ref:l,className:Te(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=Ee(e,"input-group");const d=x.useMemo(()=>({}),[]);return t.jsx(qe.Provider,{value:d,children:t.jsx(l,{ref:h,...a,className:Te(c,e,s&&`${e}-${s}`,r&&"has-validation")})})});$e.displayName="InputGroup";const ke=Object.assign($e,{Text:me,Radio:Ye,Checkbox:Ke});function Qe(e){const s=Ae.c(10),{getConfig:r,setConfig:c}=x.useContext(Ge);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(Oe);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,De=tt,z=et;let k,E,T,j,y,g,R,A,C,w,b,$,D;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]]:De,[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]),E=Ve,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(ke.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(ke,{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],k=Je,D="user-management-table",T=!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(Fe=>Fe.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]=k,e[27]=E,e[28]=T,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]=D}else k=e[26],E=e[27],T=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],D=e[38];let F;e[66]!==k||e[67]!==T||e[68]!==j||e[69]!==y||e[70]!==$||e[71]!==D?(F=t.jsxs(k,{className:D,bordered:T,children:[j,y,$]}),e[66]=k,e[67]=T,e[68]=j,e[69]=y,e[70]=$,e[71]=D,e[72]=F):F=e[72];let G;e[73]!==g||e[74]!==F?(G=t.jsx("div",{style:g,children:F}),e[73]=g,e[74]=F,e[75]=G):G=e[75];let O;e[76]!==R||e[77]!==G?(O=t.jsx("div",{className:R,children:G}),e[76]=R,e[77]=G,e[78]=O):O=e[78];let V;e[79]!==E||e[80]!==A||e[81]!==C||e[82]!==O?(V=t.jsxs(E,{className:A,children:[C,O]}),e[79]=E,e[80]=A,e[81]=C,e[82]=O,e[83]=V):V=e[83];let P;return e[84]!==w||e[85]!==b||e[86]!==V?(P=t.jsxs(t.Fragment,{children:[w,b,V]}),e[84]=w,e[85]=b,e[86]=V,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-CEsWOhkH.js b/compendium_v2/static/WeatherMap-CEsWOhkH.js new file mode 100644 index 00000000..8f8e44c2 --- /dev/null +++ b/compendium_v2/static/WeatherMap-CEsWOhkH.js @@ -0,0 +1 @@ +import{c as b,r as k,F as w,j as m,t as g,S as j}from"./index-DunMf8wQ.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-DvdT9bkc.js";import{N as E}from"./NrenYearTable-D3mNeVd3.js";import"./SideBar-DC9SKCkF.js";import"./xlsx-BHRztzV8.js";import"./index-DSQNfbUQ.js";import"./hook-CgOBj93G.js";import"./Table-BUrPWwZB.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/WeatherMap-CZPcsrK6.js b/compendium_v2/static/WeatherMap-CZPcsrK6.js deleted file mode 100644 index c097d839..00000000 --- a/compendium_v2/static/WeatherMap-CZPcsrK6.js +++ /dev/null @@ -1 +0,0 @@ -import{c as b,r as k,F as w,j as m,t as g,S as j}from"./index.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-CxftshCa.js";import{N as E}from"./NrenYearTable-tQrmAmRo.js";import"./SideBar-CkoMfgfL.js";import"./xlsx-BHRztzV8.js";import"./index-ZGgT6a2u.js";import"./hook-BbhLqP_c.js";import"./Table-ClWM2_rS.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-B0zLHD4s.js b/compendium_v2/static/charthelpers-vHYh9qxV.js similarity index 96% rename from compendium_v2/static/charthelpers-B0zLHD4s.js rename to compendium_v2/static/charthelpers-vHYh9qxV.js index 1a2d1102..2831e45c 100644 --- a/compendium_v2/static/charthelpers-B0zLHD4s.js +++ b/compendium_v2/static/charthelpers-vHYh9qxV.js @@ -1 +1 @@ -import{C as l}from"./useData-CxftshCa.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-DvdT9bkc.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-CjG-nxnq.js b/compendium_v2/static/chartjs-plugin-datalabels.esm-Bb0FwIXw.js similarity index 99% rename from compendium_v2/static/chartjs-plugin-datalabels.esm-CjG-nxnq.js rename to compendium_v2/static/chartjs-plugin-datalabels.esm-Bb0FwIXw.js index 0a3166f4..79aceae4 100644 --- a/compendium_v2/static/chartjs-plugin-datalabels.esm-CjG-nxnq.js +++ b/compendium_v2/static/chartjs-plugin-datalabels.esm-Bb0FwIXw.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-CxftshCa.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-DvdT9bkc.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-BbhLqP_c.js b/compendium_v2/static/hook-BbhLqP_c.js deleted file mode 100644 index 987ff6e1..00000000 --- a/compendium_v2/static/hook-BbhLqP_c.js +++ /dev/null @@ -1 +0,0 @@ -import{$ as d,r as p}from"./index.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/hook-CgOBj93G.js b/compendium_v2/static/hook-CgOBj93G.js new file mode 100644 index 00000000..107af335 --- /dev/null +++ b/compendium_v2/static/hook-CgOBj93G.js @@ -0,0 +1 @@ +import{$ as d,r as p}from"./index-DunMf8wQ.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-C2DQFzVc.js b/compendium_v2/static/index-C2DQFzVc.js new file mode 100644 index 00000000..a5606222 --- /dev/null +++ b/compendium_v2/static/index-C2DQFzVc.js @@ -0,0 +1 @@ +import{r as a,f as h}from"./index-DunMf8wQ.js";import{C as b,t as L,v}from"./useData-DvdT9bkc.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-CjWPDfDC.js b/compendium_v2/static/index-CjWPDfDC.js deleted file mode 100644 index 57bc4695..00000000 --- a/compendium_v2/static/index-CjWPDfDC.js +++ /dev/null @@ -1 +0,0 @@ -import{r as a,f as h}from"./index.js";import{C as b,t as L,v}from"./useData-CxftshCa.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-BGZcCZJE.js b/compendium_v2/static/index-ClpOPiqG.js similarity index 50% rename from compendium_v2/static/index-BGZcCZJE.js rename to compendium_v2/static/index-ClpOPiqG.js index 4bf28a53..c157b920 100644 --- a/compendium_v2/static/index-BGZcCZJE.js +++ b/compendium_v2/static/index-ClpOPiqG.js @@ -1,4 +1,4 @@ -import{r as c}from"./index.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,A=/\n+/g,b=(e,t)=>{let a="",o="",i="";for(let r in e){let n=e[r];r[0]=="@"?r[1]=="i"?a=r+" "+n+";":o+=r[1]=="f"?b(n,r):r+"{"+b(n,r[1]=="k"?"":t)+"}":typeof n=="object"?o+=b(n,t?t.replace(/([^,])+/g,s=>r.replace(/([^,]*:\S+\([^)]*\))|([^,])+/g,l=>/&/.test(l)?l.replace(/&/g,s):s?s+" "+l:l)):r):n!=null&&(r=/^--/.test(r)?r:r.replace(/[A-Z]/g,"-$&").toLowerCase(),i+=b.p?b.p(r,n):r+":"+n+";")}return a+(t&&i?t+"{"+i+"}":i)+o},y={},P=e=>{if(typeof e=="object"){let t="";for(let a in e)t+=a+P(e[a]);return t}return e},L=(e,t,a,o,i)=>{let r=P(e),n=y[r]||(y[r]=(l=>{let d=0,u=11;for(;d<l.length;)u=101*u+l.charCodeAt(d++)>>>0;return"go"+u})(r));if(!y[n]){let l=r!==e?e:(d=>{let u,m,f=[{}];for(;u=_.exec(d.replace(H,""));)u[4]?f.shift():u[3]?(m=u[3].replace(A," ").trim(),f.unshift(f[0][m]=f[0][m]||{})):f[0][u[1]]=u[2].replace(A," ").trim();return f[0]})(e);y[n]=b(i?{["@keyframes "+n]:l}:l,a?"":"."+n)}let s=a&&y.g?y.g:null;return a&&(y.g=y[n]),((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[n],t,o,s),n},U=(e,t,a)=>e.reduce((o,i,r)=>{let n=t[r];if(n&&n.call){let s=n(a),l=s&&s.props&&s.props.className||/^go/.test(s)&&s;n=l?"."+l:s&&typeof s=="object"?s.props?"":b(s,""):s===!1?"":s}return o+i+(n??"")},"");function j(e){let t=this||{},a=e.call?e(t.p):e;return L(a.unshift?a.raw?U(a,[].slice.call(arguments,1),t.p):a.reduce((o,i)=>Object.assign(o,i&&i.call?i(t.p):i),{}):a,F(t.target),t.g,t.o,t.k)}let I,N,z;j.bind({g:1});let h=j.bind({k:1});function q(e,t,a,o){b.p=t,I=e,N=a,z=o}function x(e,t){let a=this||{};return function(){let o=arguments;function i(r,n){let s=Object.assign({},r),l=s.className||i.className;a.p=Object.assign({theme:N&&N()},s),a.o=/ *go\d+/.test(l),s.className=j.apply(a,o)+(l?" "+l:"");let d=e;return e[0]&&(d=s.as||e,delete s.as),z&&d[0]&&z(s),I(d,s)}return i}}var R=e=>typeof e=="function",O=(e,t)=>R(e)?e(t):e,Y=(()=>{let e=0;return()=>(++e).toString()})(),M=(()=>{let e;return()=>{if(e===void 0&&typeof window<"u"){let t=matchMedia("(prefers-reduced-motion: reduce)");e=!t||t.matches}return e}})(),Z=20,S=(e,t)=>{switch(t.type){case 0:return{...e,toasts:[t.toast,...e.toasts].slice(0,Z)};case 1:return{...e,toasts:e.toasts.map(r=>r.id===t.toast.id?{...r,...t.toast}:r)};case 2:let{toast:a}=t;return S(e,{type:e.toasts.find(r=>r.id===a.id)?1:0,toast:a});case 3:let{toastId:o}=t;return{...e,toasts:e.toasts.map(r=>r.id===o||o===void 0?{...r,dismissed:!0,visible:!1}:r)};case 4:return t.toastId===void 0?{...e,toasts:[]}:{...e,toasts:e.toasts.filter(r=>r.id!==t.toastId)};case 5:return{...e,pausedAt:t.time};case 6:let i=t.time-(e.pausedAt||0);return{...e,pausedAt:void 0,toasts:e.toasts.map(r=>({...r,pauseDuration:r.pauseDuration+i}))}}},k=[],D={toasts:[],pausedAt:void 0},v=e=>{D=S(D,e),k.forEach(t=>{t(D)})},B={blank:4e3,error:4e3,success:2e3,loading:1/0,custom:4e3},G=(e={})=>{let[t,a]=c.useState(D);c.useEffect(()=>(k.push(a),()=>{let i=k.indexOf(a);i>-1&&k.splice(i,1)}),[t]);let o=t.toasts.map(i=>{var r,n,s;return{...e,...e[i.type],...i,removeDelay:i.removeDelay||((r=e[i.type])==null?void 0:r.removeDelay)||(e==null?void 0:e.removeDelay),duration:i.duration||((n=e[i.type])==null?void 0:n.duration)||(e==null?void 0:e.duration)||B[i.type],style:{...e.style,...(s=e[i.type])==null?void 0:s.style,...i.style}}});return{...t,toasts:o}},J=(e,t="blank",a)=>({createdAt:Date.now(),visible:!0,dismissed:!1,type:t,ariaProps:{role:"status","aria-live":"polite"},message:e,pauseDuration:0,...a,id:(a==null?void 0:a.id)||Y()}),E=e=>(t,a)=>{let o=J(t,e,a);return v({type:2,toast:o}),o.id},p=(e,t)=>E("blank")(e,t);p.error=E("error");p.success=E("success");p.loading=E("loading");p.custom=E("custom");p.dismiss=e=>{v({type:3,toastId:e})};p.remove=e=>v({type:4,toastId:e});p.promise=(e,t,a)=>{let o=p.loading(t.loading,{...a,...a==null?void 0:a.loading});return typeof e=="function"&&(e=e()),e.then(i=>{let r=t.success?O(t.success,i):void 0;return r?p.success(r,{id:o,...a,...a==null?void 0:a.success}):p.dismiss(o),i}).catch(i=>{let r=t.error?O(t.error,i):void 0;r?p.error(r,{id:o,...a,...a==null?void 0:a.error}):p.dismiss(o)}),e};var K=(e,t)=>{v({type:1,toast:{id:e,height:t}})},Q=()=>{v({type:5,time:Date.now()})},w=new Map,V=1e3,W=(e,t=V)=>{if(w.has(e))return;let a=setTimeout(()=>{w.delete(e),v({type:4,toastId:e})},t);w.set(e,a)},X=e=>{let{toasts:t,pausedAt:a}=G(e);c.useEffect(()=>{if(a)return;let r=Date.now(),n=t.map(s=>{if(s.duration===1/0)return;let l=(s.duration||0)+s.pauseDuration-(r-s.createdAt);if(l<0){s.visible&&p.dismiss(s.id);return}return setTimeout(()=>p.dismiss(s.id),l)});return()=>{n.forEach(s=>s&&clearTimeout(s))}},[t,a]);let o=c.useCallback(()=>{a&&v({type:6,time:Date.now()})},[a]),i=c.useCallback((r,n)=>{let{reverseOrder:s=!1,gutter:l=8,defaultPosition:d}=n||{},u=t.filter(g=>(g.position||d)===(r.position||d)&&g.height),m=u.findIndex(g=>g.id===r.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(r=>{if(r.dismissed)W(r.id,r.removeDelay);else{let n=w.get(r.id);n&&(clearTimeout(n),w.delete(r.id))}})},[t]),{toasts:t,handlers:{updateHeight:K,startPause:Q,endPause:o,calculateOffset:i}}},ee=h` +import{r as c}from"./index-DunMf8wQ.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,A=/\n+/g,b=(e,t)=>{let a="",o="",i="";for(let r in e){let n=e[r];r[0]=="@"?r[1]=="i"?a=r+" "+n+";":o+=r[1]=="f"?b(n,r):r+"{"+b(n,r[1]=="k"?"":t)+"}":typeof n=="object"?o+=b(n,t?t.replace(/([^,])+/g,s=>r.replace(/([^,]*:\S+\([^)]*\))|([^,])+/g,l=>/&/.test(l)?l.replace(/&/g,s):s?s+" "+l:l)):r):n!=null&&(r=/^--/.test(r)?r:r.replace(/[A-Z]/g,"-$&").toLowerCase(),i+=b.p?b.p(r,n):r+":"+n+";")}return a+(t&&i?t+"{"+i+"}":i)+o},y={},P=e=>{if(typeof e=="object"){let t="";for(let a in e)t+=a+P(e[a]);return t}return e},L=(e,t,a,o,i)=>{let r=P(e),n=y[r]||(y[r]=(l=>{let d=0,u=11;for(;d<l.length;)u=101*u+l.charCodeAt(d++)>>>0;return"go"+u})(r));if(!y[n]){let l=r!==e?e:(d=>{let u,m,f=[{}];for(;u=_.exec(d.replace(H,""));)u[4]?f.shift():u[3]?(m=u[3].replace(A," ").trim(),f.unshift(f[0][m]=f[0][m]||{})):f[0][u[1]]=u[2].replace(A," ").trim();return f[0]})(e);y[n]=b(i?{["@keyframes "+n]:l}:l,a?"":"."+n)}let s=a&&y.g?y.g:null;return a&&(y.g=y[n]),((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[n],t,o,s),n},U=(e,t,a)=>e.reduce((o,i,r)=>{let n=t[r];if(n&&n.call){let s=n(a),l=s&&s.props&&s.props.className||/^go/.test(s)&&s;n=l?"."+l:s&&typeof s=="object"?s.props?"":b(s,""):s===!1?"":s}return o+i+(n??"")},"");function j(e){let t=this||{},a=e.call?e(t.p):e;return L(a.unshift?a.raw?U(a,[].slice.call(arguments,1),t.p):a.reduce((o,i)=>Object.assign(o,i&&i.call?i(t.p):i),{}):a,F(t.target),t.g,t.o,t.k)}let I,N,z;j.bind({g:1});let h=j.bind({k:1});function q(e,t,a,o){b.p=t,I=e,N=a,z=o}function x(e,t){let a=this||{};return function(){let o=arguments;function i(r,n){let s=Object.assign({},r),l=s.className||i.className;a.p=Object.assign({theme:N&&N()},s),a.o=/ *go\d+/.test(l),s.className=j.apply(a,o)+(l?" "+l:"");let d=e;return e[0]&&(d=s.as||e,delete s.as),z&&d[0]&&z(s),I(d,s)}return i}}var R=e=>typeof e=="function",O=(e,t)=>R(e)?e(t):e,Y=(()=>{let e=0;return()=>(++e).toString()})(),M=(()=>{let e;return()=>{if(e===void 0&&typeof window<"u"){let t=matchMedia("(prefers-reduced-motion: reduce)");e=!t||t.matches}return e}})(),Z=20,S=(e,t)=>{switch(t.type){case 0:return{...e,toasts:[t.toast,...e.toasts].slice(0,Z)};case 1:return{...e,toasts:e.toasts.map(r=>r.id===t.toast.id?{...r,...t.toast}:r)};case 2:let{toast:a}=t;return S(e,{type:e.toasts.find(r=>r.id===a.id)?1:0,toast:a});case 3:let{toastId:o}=t;return{...e,toasts:e.toasts.map(r=>r.id===o||o===void 0?{...r,dismissed:!0,visible:!1}:r)};case 4:return t.toastId===void 0?{...e,toasts:[]}:{...e,toasts:e.toasts.filter(r=>r.id!==t.toastId)};case 5:return{...e,pausedAt:t.time};case 6:let i=t.time-(e.pausedAt||0);return{...e,pausedAt:void 0,toasts:e.toasts.map(r=>({...r,pauseDuration:r.pauseDuration+i}))}}},k=[],D={toasts:[],pausedAt:void 0},v=e=>{D=S(D,e),k.forEach(t=>{t(D)})},B={blank:4e3,error:4e3,success:2e3,loading:1/0,custom:4e3},G=(e={})=>{let[t,a]=c.useState(D);c.useEffect(()=>(k.push(a),()=>{let i=k.indexOf(a);i>-1&&k.splice(i,1)}),[t]);let o=t.toasts.map(i=>{var r,n,s;return{...e,...e[i.type],...i,removeDelay:i.removeDelay||((r=e[i.type])==null?void 0:r.removeDelay)||(e==null?void 0:e.removeDelay),duration:i.duration||((n=e[i.type])==null?void 0:n.duration)||(e==null?void 0:e.duration)||B[i.type],style:{...e.style,...(s=e[i.type])==null?void 0:s.style,...i.style}}});return{...t,toasts:o}},J=(e,t="blank",a)=>({createdAt:Date.now(),visible:!0,dismissed:!1,type:t,ariaProps:{role:"status","aria-live":"polite"},message:e,pauseDuration:0,...a,id:(a==null?void 0:a.id)||Y()}),E=e=>(t,a)=>{let o=J(t,e,a);return v({type:2,toast:o}),o.id},p=(e,t)=>E("blank")(e,t);p.error=E("error");p.success=E("success");p.loading=E("loading");p.custom=E("custom");p.dismiss=e=>{v({type:3,toastId:e})};p.remove=e=>v({type:4,toastId:e});p.promise=(e,t,a)=>{let o=p.loading(t.loading,{...a,...a==null?void 0:a.loading});return typeof e=="function"&&(e=e()),e.then(i=>{let r=t.success?O(t.success,i):void 0;return r?p.success(r,{id:o,...a,...a==null?void 0:a.success}):p.dismiss(o),i}).catch(i=>{let r=t.error?O(t.error,i):void 0;r?p.error(r,{id:o,...a,...a==null?void 0:a.error}):p.dismiss(o)}),e};var K=(e,t)=>{v({type:1,toast:{id:e,height:t}})},Q=()=>{v({type:5,time:Date.now()})},w=new Map,V=1e3,W=(e,t=V)=>{if(w.has(e))return;let a=setTimeout(()=>{w.delete(e),v({type:4,toastId:e})},t);w.set(e,a)},X=e=>{let{toasts:t,pausedAt:a}=G(e);c.useEffect(()=>{if(a)return;let r=Date.now(),n=t.map(s=>{if(s.duration===1/0)return;let l=(s.duration||0)+s.pauseDuration-(r-s.createdAt);if(l<0){s.visible&&p.dismiss(s.id);return}return setTimeout(()=>p.dismiss(s.id),l)});return()=>{n.forEach(s=>s&&clearTimeout(s))}},[t,a]);let o=c.useCallback(()=>{a&&v({type:6,time:Date.now()})},[a]),i=c.useCallback((r,n)=>{let{reverseOrder:s=!1,gutter:l=8,defaultPosition:d}=n||{},u=t.filter(g=>(g.position||d)===(r.position||d)&&g.height),m=u.findIndex(g=>g.id===r.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(r=>{if(r.dismissed)W(r.id,r.removeDelay);else{let n=w.get(r.id);n&&(clearTimeout(n),w.delete(r.id))}})},[t]),{toasts:t,handlers:{updateHeight:K,startPause:Q,endPause:o,calculateOffset:i}}},ee=h` from { transform: scale(0) rotate(45deg); opacity: 0; diff --git a/compendium_v2/static/index.css b/compendium_v2/static/index-Cv7xX6AU.css similarity index 100% rename from compendium_v2/static/index.css rename to compendium_v2/static/index-Cv7xX6AU.css diff --git a/compendium_v2/static/index-DSQNfbUQ.js b/compendium_v2/static/index-DSQNfbUQ.js new file mode 100644 index 00000000..9e9f2a04 --- /dev/null +++ b/compendium_v2/static/index-DSQNfbUQ.js @@ -0,0 +1 @@ +import{r as a,_ as c}from"./index-DunMf8wQ.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.js b/compendium_v2/static/index-DunMf8wQ.js similarity index 98% rename from compendium_v2/static/index.js rename to compendium_v2/static/index-DunMf8wQ.js index a3d2323a..4b0a2290 100644 --- a/compendium_v2/static/index.js +++ b/compendium_v2/static/index-DunMf8wQ.js @@ -1,4 +1,4 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["Budget-DX8h4kEm.js","index-CjWPDfDC.js","useData-CxftshCa.js","SideBar-CkoMfgfL.js","xlsx-BHRztzV8.js","index-ZGgT6a2u.js","hook-BbhLqP_c.js","charthelpers-B0zLHD4s.js","ChargingStructure-BiXVfonj.js","PillTable-Cnj0nnFy.js","ColorPill-CXvWIfWz.js","Table-ClWM2_rS.js","ECProjects-Ixano_sS.js","NrenYearTable-tQrmAmRo.js","FundingSource-DoZCzgMa.js","chartjs-plugin-datalabels.esm-CjG-nxnq.js","ParentOrganisation-OrE_JaGF.js","StaffGraph-D3mBN476.js","HTMLLegendPlugin-C-L3dIU1.js","StaffGraphAbsolute-I7Y3C-nj.js","SubOrganisation-C7B4_RD0.js","Audits-DfjcC9VL.js","BusinessContinuity-CswNIFcO.js","CentralProcurement-_z44vsb4.js","CorporateStrategy-BrErbevP.js","CrisisExercises-mu7CJTN3.js","CrisisManagement-BxTFYm8e.js","EOSCListings-DWYL3kBM.js","Policy-C19_KfRY.js","SecurityControls-CkjbRt2j.js","ServiceLevelTargets-BQyQ1ynP.js","ServiceManagementFramework-DDW7v-XJ.js","ServicesOffered-BnmNlrgs.js","ScrollableMatrix-Dxr22l4i.js","ConnectedInstitutionsURLs-BSBw8xZy.js","ConnectedUser-DXYx3bSL.js","RemoteCampuses-Bu_1Ucwy.js","AlienWave-DO1S2459.js","AlienWaveInternal-BhuqQCyf.js","Automation-DzfRRQiO.js","CapacityCoreIP-P2rbPvQY.js","CapacityLargestLink-CGhxu47M.js","CertificateProvider-CpWnMPbq.js","DarkFibreLease-Nz1_rVx9.js","DarkFibreInstalled-Uox2eGX8.js","ExternalConnections-BVnV4NEl.js","FibreLight-UtHnGi0p.js","IRUDuration-CI7E3kyS.js","MonitoringTools-C61NJKaR.js","NetworkFunctionVirtualisation-DLW-vjXN.js","NetworkMapUrls-B3Qc49It.js","NonRAndEPeer-Cg_pAdU8.js","OPsAutomation-BoFZP12U.js","PassiveMonitoring-Cv8zkVr2.js","PertTeam-Cf_GEMUq.js","SiemVendors-pjqFJlX2.js","TrafficRatio-BELkAOlA.js","TrafficUrl-BLm4mZku.js","TrafficVolume-1MvPPErr.js","WeatherMap-CZPcsrK6.js","Services-kzZ5IOvA.js","Landing-35TvxyJ6.js","SurveySidebar-CG0gwQ6b.js","survey-3meXCY6T.js","SurveyContainerComponent-DxT_-mC9.js","index-BGZcCZJE.js","survey.core-D1mOb2z9.js","validation-COFmylEH.js","DZ9kPoxi.css","SurveyManagementComponent-DygIuffI.js","lodash-0qAddrJ1.js","UserManagementComponent-DK-BhUBG.js"])))=>i.map(i=>d[i]); +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["Budget-DaieNipA.js","index-C2DQFzVc.js","useData-DvdT9bkc.js","SideBar-DC9SKCkF.js","xlsx-BHRztzV8.js","index-DSQNfbUQ.js","hook-CgOBj93G.js","charthelpers-vHYh9qxV.js","ChargingStructure-DXabP1VZ.js","PillTable-DEX_WeNY.js","ColorPill-CXsYrUiQ.js","Table-BUrPWwZB.js","ECProjects-BytaiuC6.js","NrenYearTable-D3mNeVd3.js","FundingSource-CnnYyCrH.js","chartjs-plugin-datalabels.esm-Bb0FwIXw.js","ParentOrganisation-BBwyogJP.js","StaffGraph-nuZcRAf1.js","HTMLLegendPlugin-DF0OaxMQ.js","StaffGraphAbsolute-B_KY3Vzc.js","SubOrganisation-uqygN7-8.js","Audits-CufRH5if.js","BusinessContinuity-BNzcQNhU.js","CentralProcurement-C6FG3PH8.js","CorporateStrategy-we6KtBv4.js","CrisisExercises-miIhkp8m.js","CrisisManagement-PDrUgEjD.js","EOSCListings-H_13YHeq.js","Policy-B0McUfA8.js","SecurityControls-DPvKKslf.js","ServiceLevelTargets-BTUmV26j.js","ServiceManagementFramework-DWirH02M.js","ServicesOffered-C6oTnjq_.js","ScrollableMatrix-D6caiSg1.js","ConnectedInstitutionsURLs-DCBf9aew.js","ConnectedUser-queHyxHS.js","RemoteCampuses-Bh0h6tbY.js","AlienWave-6fWajwYt.js","AlienWaveInternal-Dbz1_Gp9.js","Automation-Dxks_3hH.js","CapacityCoreIP-DiIZVI-s.js","CapacityLargestLink-xwsd4prK.js","CertificateProvider-D9Qr_R-E.js","DarkFibreLease-DVVVHWmb.js","DarkFibreInstalled-DQjFL8rw.js","ExternalConnections-Bw3LdeFf.js","FibreLight-Di0VQOdw.js","IRUDuration-CwtYlEdU.js","MonitoringTools-BGVkCHJR.js","NetworkFunctionVirtualisation-Dkgolz87.js","NetworkMapUrls-U7kWZFCY.js","NonRAndEPeer-Bicp8r4m.js","OPsAutomation-D9uxrxhD.js","PassiveMonitoring-CE6Z1wsB.js","PertTeam-LT8kFC71.js","SiemVendors-W4GM3C-U.js","TrafficRatio-CsniApRI.js","TrafficUrl-0revWiHR.js","TrafficVolume-BMOIGkfu.js","WeatherMap-CEsWOhkH.js","Services-wGbaoPrz.js","Landing-wYnIDduc.js","SurveySidebar-B89Xtwv2.js","survey-3meXCY6T.js","SurveyContainerComponent-TmXjyfKm.js","index-ClpOPiqG.js","survey.core-D1mOb2z9.js","validation-COFmylEH.js","DZ9kPoxi.css","SurveyManagementComponent-Br-7fyx2.js","lodash-DG7dNfcw.js","UserManagementComponent-CAc00ajf.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 GE(l){return l.replace(YE,"-$1").toLowerCase()}var kE=/^ms-/;function Ou(l){return GE(l).replace(kE,"-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]),k=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:k,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),k=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:k,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 Gb(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 kb(l){let{onEnter:n,onEntering:c,onEntered:s,onExit:u,onExiting:f,onExited:d,addEndListener:y,children:v}=l,p=Gb(l,Yb);const b=g.useRef(null),R=rf(b,$u(v)),S=J=>k=>{J&&b.current&&J(b.current,k)},_=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,k)=>v(J,Object.assign({},k,{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=kb(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:k,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(k),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:k=!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,Gt=_e.scrollHeight>Ku(_e).documentElement.clientHeight;ne({paddingRight:Ie&&!Gt?_y():void 0,paddingLeft:!Ie&&Gt?_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:k,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 Gu(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,Gu({key:c},n.attr),Vp(n.child)))}function Yp(l){return n=>Yt.createElement(xS,Yu({attr:Gu({},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:Gu(Gu({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 k;n[1]===Symbol.for("react.memo_cache_sentinel")?(k={...b,color:"black",fontWeight:"bold"},n[1]=k):k=n[1],b=k}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"},G2={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 k;n[26]!==u||n[27]!==f?(k=h.jsx(u,{to:"/roles",className:f,children:J}),n[26]=u,n[27]=f,n[28]=k):k=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]!==k||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,k,W,X,de]}),n[41]=M,n[42]=Y,n[43]=k,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 k;n[28]===Symbol.for("react.memo_cache_sentinel")?(k=h.jsx("span",{children:se.audits}),n[28]=k):k=n[28];let N;n[29]!==u||n[30]!==f?(N=h.jsx(u,{to:"/audits",className:f,children:k}),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 k;n[28]!==u||n[29]!==f?(k=h.jsx(u,{to:"/remote-campuses",className:f,children:J}),n[28]=u,n[29]=f,n[30]=k):k=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]!==k||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,k,N,W,X,de]}),n[41]=H,n[42]=M,n[43]=Y,n[44]=k,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,k;n[27]===Symbol.for("react.memo_cache_sentinel")?(J=h.jsx("hr",{className:"fake-divider"}),k=h.jsx("h6",{className:"section-title",children:"Performance Monitoring & Management"}),n[27]=J,n[28]=k):(J=n[27],k=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 Gt;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]!==_?(Gt=h.jsxs(h.Fragment,{children:[d,y,p,R,_,H,M,Y,J,k,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]=Gt):Gt=n[132],Gt}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 k;n[30]===Symbol.for("react.memo_cache_sentinel")?(k=h.jsx("span",{children:se["professional-services"]}),n[30]=k):k=n[30];let N;n[31]!==u||n[32]!==f?(N=h.jsx(u,{to:"/professional-services",className:f,children:k}),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 k;return l[22]!==s||l[23]!==J||l[24]!==M?(k=h.jsxs(ir,{show:s,centered:!0,children:[R,M,J]}),l[22]=s,l[23]=J,l[24]=M,l[25]=k):k=l[25],k},BS=g.lazy(()=>be(()=>import("./Budget-DX8h4kEm.js"),__vite__mapDeps([0,1,2,3,4,5,6,7]))),qS=g.lazy(()=>be(()=>import("./ChargingStructure-BiXVfonj.js"),__vite__mapDeps([8,2,3,4,5,6,9,10,11]))),VS=g.lazy(()=>be(()=>import("./ECProjects-Ixano_sS.js"),__vite__mapDeps([12,2,3,4,5,6,13,11]))),YS=g.lazy(()=>be(()=>import("./FundingSource-DoZCzgMa.js"),__vite__mapDeps([14,1,2,3,4,5,6,15]))),GS=g.lazy(()=>be(()=>import("./ParentOrganisation-OrE_JaGF.js"),__vite__mapDeps([16,2,3,4,5,6,13,11]))),Oy=g.lazy(()=>be(()=>import("./StaffGraph-D3mBN476.js"),__vite__mapDeps([17,1,2,3,4,5,6,18]))),kS=g.lazy(()=>be(()=>import("./StaffGraphAbsolute-I7Y3C-nj.js"),__vite__mapDeps([19,1,2,3,4,5,6,15,7]))),XS=g.lazy(()=>be(()=>import("./SubOrganisation-C7B4_RD0.js"),__vite__mapDeps([20,2,3,4,5,6,13,11]))),QS=g.lazy(()=>be(()=>import("./Audits-DfjcC9VL.js"),__vite__mapDeps([21,2,3,4,5,6,9,10,11]))),ZS=g.lazy(()=>be(()=>import("./BusinessContinuity-CswNIFcO.js"),__vite__mapDeps([22,2,3,4,5,6,9,10,11]))),KS=g.lazy(()=>be(()=>import("./CentralProcurement-_z44vsb4.js"),__vite__mapDeps([23,2,3,4,5,6,15,1,7]))),$S=g.lazy(()=>be(()=>import("./CorporateStrategy-BrErbevP.js"),__vite__mapDeps([24,2,3,4,5,6,13,11]))),FS=g.lazy(()=>be(()=>import("./CrisisExercises-mu7CJTN3.js"),__vite__mapDeps([25,2,3,4,5,6,9,10,11]))),JS=g.lazy(()=>be(()=>import("./CrisisManagement-BxTFYm8e.js"),__vite__mapDeps([26,2,3,4,5,6,9,10,11]))),PS=g.lazy(()=>be(()=>import("./EOSCListings-DWYL3kBM.js"),__vite__mapDeps([27,2,3,4,5,6,13,11]))),WS=g.lazy(()=>be(()=>import("./Policy-C19_KfRY.js"),__vite__mapDeps([28,2,3,4,5,6,13,11]))),IS=g.lazy(()=>be(()=>import("./SecurityControls-CkjbRt2j.js"),__vite__mapDeps([29,2,3,4,5,6,9,10,11]))),e2=g.lazy(()=>be(()=>import("./ServiceLevelTargets-BQyQ1ynP.js"),__vite__mapDeps([30,2,3,4,5,6,9,10,11]))),t2=g.lazy(()=>be(()=>import("./ServiceManagementFramework-DDW7v-XJ.js"),__vite__mapDeps([31,2,3,4,5,6,9,10,11]))),n2=g.lazy(()=>be(()=>import("./ServicesOffered-BnmNlrgs.js"),__vite__mapDeps([32,2,3,4,5,6,33,11]))),a2=g.lazy(()=>be(()=>import("./ConnectedInstitutionsURLs-BSBw8xZy.js"),__vite__mapDeps([34,2,3,4,5,6,13,11]))),dl=g.lazy(()=>be(()=>import("./ConnectedUser-DXYx3bSL.js"),__vite__mapDeps([35,2,3,4,5,6,33,11]))),l2=g.lazy(()=>be(()=>import("./RemoteCampuses-Bu_1Ucwy.js"),__vite__mapDeps([36,2,3,4,5,6,11]))),i2=g.lazy(()=>be(()=>import("./AlienWave-DO1S2459.js"),__vite__mapDeps([37,2,3,4,5,6,9,10,11]))),r2=g.lazy(()=>be(()=>import("./AlienWaveInternal-BhuqQCyf.js"),__vite__mapDeps([38,2,3,4,5,6,9,10,11]))),u2=g.lazy(()=>be(()=>import("./Automation-DzfRRQiO.js"),__vite__mapDeps([39,2,3,4,5,6,10,11]))),c2=g.lazy(()=>be(()=>import("./CapacityCoreIP-P2rbPvQY.js"),__vite__mapDeps([40,1,2,3,4,5,6,15,7]))),s2=g.lazy(()=>be(()=>import("./CapacityLargestLink-CGhxu47M.js"),__vite__mapDeps([41,1,2,3,4,5,6,15,7]))),o2=g.lazy(()=>be(()=>import("./CertificateProvider-CpWnMPbq.js"),__vite__mapDeps([42,2,3,4,5,6,9,10,11]))),Dy=g.lazy(()=>be(()=>import("./DarkFibreLease-Nz1_rVx9.js"),__vite__mapDeps([43,1,2,3,4,5,6,7]))),f2=g.lazy(()=>be(()=>import("./DarkFibreInstalled-Uox2eGX8.js"),__vite__mapDeps([44,1,2,3,4,5,6,7]))),d2=g.lazy(()=>be(()=>import("./ExternalConnections-BVnV4NEl.js"),__vite__mapDeps([45,2,3,4,5,6,11]))),h2=g.lazy(()=>be(()=>import("./FibreLight-UtHnGi0p.js"),__vite__mapDeps([46,2,3,4,5,6,9,10,11]))),m2=g.lazy(()=>be(()=>import("./IRUDuration-CI7E3kyS.js"),__vite__mapDeps([47,1,2,3,4,5,6,7]))),y2=g.lazy(()=>be(()=>import("./MonitoringTools-C61NJKaR.js"),__vite__mapDeps([48,2,3,4,5,6,9,10,11]))),p2=g.lazy(()=>be(()=>import("./NetworkFunctionVirtualisation-DLW-vjXN.js"),__vite__mapDeps([49,2,3,4,5,6,10,11]))),v2=g.lazy(()=>be(()=>import("./NetworkMapUrls-B3Qc49It.js"),__vite__mapDeps([50,2,3,4,5,6,13,11]))),g2=g.lazy(()=>be(()=>import("./NonRAndEPeer-Cg_pAdU8.js"),__vite__mapDeps([51,1,2,3,4,5,6,15,7]))),E2=g.lazy(()=>be(()=>import("./OPsAutomation-BoFZP12U.js"),__vite__mapDeps([52,2,3,4,5,6,9,10,11]))),b2=g.lazy(()=>be(()=>import("./PassiveMonitoring-Cv8zkVr2.js"),__vite__mapDeps([53,2,3,4,5,6,9,10,11]))),S2=g.lazy(()=>be(()=>import("./PertTeam-Cf_GEMUq.js"),__vite__mapDeps([54,2,3,4,5,6,9,10,11]))),x2=g.lazy(()=>be(()=>import("./SiemVendors-pjqFJlX2.js"),__vite__mapDeps([55,2,3,4,5,6,9,10,11]))),_2=g.lazy(()=>be(()=>import("./TrafficRatio-BELkAOlA.js"),__vite__mapDeps([56,1,2,3,4,5,6,18]))),R2=g.lazy(()=>be(()=>import("./TrafficUrl-BLm4mZku.js"),__vite__mapDeps([57,2,3,4,5,6,13,11]))),T2=g.lazy(()=>be(()=>import("./TrafficVolume-1MvPPErr.js"),__vite__mapDeps([58,1,2,3,4,5,6,7]))),N2=g.lazy(()=>be(()=>import("./WeatherMap-CZPcsrK6.js"),__vite__mapDeps([59,2,3,4,5,6,13,11]))),Ua=g.lazy(()=>be(()=>import("./Services-kzZ5IOvA.js"),__vite__mapDeps([60,2,3,4,5,6,11]))),C2=g.lazy(()=>be(()=>import("./Landing-35TvxyJ6.js"),__vite__mapDeps([61,4,62,3,63,11]))),No=g.lazy(()=>be(()=>import("./SurveyContainerComponent-DxT_-mC9.js"),__vite__mapDeps([64,65,66,67,62,3,68]))),j2=g.lazy(()=>be(()=>import("./SurveyManagementComponent-DygIuffI.js"),__vite__mapDeps([69,70,6,11,65,67,63,62,3]))),O2=g.lazy(()=>be(()=>import("./UserManagementComponent-DK-BhUBG.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(kS,{})},{path:"/charging",element:h.jsx(qS,{})},{path:"/suborganisations",element:h.jsx(XS,{})},{path:"/parentorganisation",element:h.jsx(GS,{})},{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,ku 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,G2 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 GE(l){return l.replace(YE,"-$1").toLowerCase()}var kE=/^ms-/;function Ou(l){return GE(l).replace(kE,"-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]),k=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:k,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),k=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:k,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 Gb(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 kb(l){let{onEnter:n,onEntering:c,onEntered:s,onExit:u,onExiting:f,onExited:d,addEndListener:y,children:v}=l,p=Gb(l,Yb);const b=g.useRef(null),R=rf(b,$u(v)),S=J=>k=>{J&&b.current&&J(b.current,k)},_=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,k)=>v(J,Object.assign({},k,{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=kb(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:k,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(k),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:k=!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,Gt=_e.scrollHeight>Ku(_e).documentElement.clientHeight;ne({paddingRight:Ie&&!Gt?_y():void 0,paddingLeft:!Ie&&Gt?_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:k,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 Gu(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,Gu({key:c},n.attr),Vp(n.child)))}function Yp(l){return n=>Yt.createElement(xS,Yu({attr:Gu({},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:Gu(Gu({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 k;n[1]===Symbol.for("react.memo_cache_sentinel")?(k={...b,color:"black",fontWeight:"bold"},n[1]=k):k=n[1],b=k}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"},G2={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 k;n[26]!==u||n[27]!==f?(k=h.jsx(u,{to:"/roles",className:f,children:J}),n[26]=u,n[27]=f,n[28]=k):k=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]!==k||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,k,W,X,de]}),n[41]=M,n[42]=Y,n[43]=k,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 k;n[28]===Symbol.for("react.memo_cache_sentinel")?(k=h.jsx("span",{children:se.audits}),n[28]=k):k=n[28];let N;n[29]!==u||n[30]!==f?(N=h.jsx(u,{to:"/audits",className:f,children:k}),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 k;n[28]!==u||n[29]!==f?(k=h.jsx(u,{to:"/remote-campuses",className:f,children:J}),n[28]=u,n[29]=f,n[30]=k):k=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]!==k||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,k,N,W,X,de]}),n[41]=H,n[42]=M,n[43]=Y,n[44]=k,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,k;n[27]===Symbol.for("react.memo_cache_sentinel")?(J=h.jsx("hr",{className:"fake-divider"}),k=h.jsx("h6",{className:"section-title",children:"Performance Monitoring & Management"}),n[27]=J,n[28]=k):(J=n[27],k=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 Gt;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]!==_?(Gt=h.jsxs(h.Fragment,{children:[d,y,p,R,_,H,M,Y,J,k,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]=Gt):Gt=n[132],Gt}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 k;n[30]===Symbol.for("react.memo_cache_sentinel")?(k=h.jsx("span",{children:se["professional-services"]}),n[30]=k):k=n[30];let N;n[31]!==u||n[32]!==f?(N=h.jsx(u,{to:"/professional-services",className:f,children:k}),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 k;return l[22]!==s||l[23]!==J||l[24]!==M?(k=h.jsxs(ir,{show:s,centered:!0,children:[R,M,J]}),l[22]=s,l[23]=J,l[24]=M,l[25]=k):k=l[25],k},BS=g.lazy(()=>be(()=>import("./Budget-DaieNipA.js"),__vite__mapDeps([0,1,2,3,4,5,6,7]))),qS=g.lazy(()=>be(()=>import("./ChargingStructure-DXabP1VZ.js"),__vite__mapDeps([8,2,3,4,5,6,9,10,11]))),VS=g.lazy(()=>be(()=>import("./ECProjects-BytaiuC6.js"),__vite__mapDeps([12,2,3,4,5,6,13,11]))),YS=g.lazy(()=>be(()=>import("./FundingSource-CnnYyCrH.js"),__vite__mapDeps([14,1,2,3,4,5,6,15]))),GS=g.lazy(()=>be(()=>import("./ParentOrganisation-BBwyogJP.js"),__vite__mapDeps([16,2,3,4,5,6,13,11]))),Oy=g.lazy(()=>be(()=>import("./StaffGraph-nuZcRAf1.js"),__vite__mapDeps([17,1,2,3,4,5,6,18]))),kS=g.lazy(()=>be(()=>import("./StaffGraphAbsolute-B_KY3Vzc.js"),__vite__mapDeps([19,1,2,3,4,5,6,15,7]))),XS=g.lazy(()=>be(()=>import("./SubOrganisation-uqygN7-8.js"),__vite__mapDeps([20,2,3,4,5,6,13,11]))),QS=g.lazy(()=>be(()=>import("./Audits-CufRH5if.js"),__vite__mapDeps([21,2,3,4,5,6,9,10,11]))),ZS=g.lazy(()=>be(()=>import("./BusinessContinuity-BNzcQNhU.js"),__vite__mapDeps([22,2,3,4,5,6,9,10,11]))),KS=g.lazy(()=>be(()=>import("./CentralProcurement-C6FG3PH8.js"),__vite__mapDeps([23,2,3,4,5,6,15,1,7]))),$S=g.lazy(()=>be(()=>import("./CorporateStrategy-we6KtBv4.js"),__vite__mapDeps([24,2,3,4,5,6,13,11]))),FS=g.lazy(()=>be(()=>import("./CrisisExercises-miIhkp8m.js"),__vite__mapDeps([25,2,3,4,5,6,9,10,11]))),JS=g.lazy(()=>be(()=>import("./CrisisManagement-PDrUgEjD.js"),__vite__mapDeps([26,2,3,4,5,6,9,10,11]))),PS=g.lazy(()=>be(()=>import("./EOSCListings-H_13YHeq.js"),__vite__mapDeps([27,2,3,4,5,6,13,11]))),WS=g.lazy(()=>be(()=>import("./Policy-B0McUfA8.js"),__vite__mapDeps([28,2,3,4,5,6,13,11]))),IS=g.lazy(()=>be(()=>import("./SecurityControls-DPvKKslf.js"),__vite__mapDeps([29,2,3,4,5,6,9,10,11]))),e2=g.lazy(()=>be(()=>import("./ServiceLevelTargets-BTUmV26j.js"),__vite__mapDeps([30,2,3,4,5,6,9,10,11]))),t2=g.lazy(()=>be(()=>import("./ServiceManagementFramework-DWirH02M.js"),__vite__mapDeps([31,2,3,4,5,6,9,10,11]))),n2=g.lazy(()=>be(()=>import("./ServicesOffered-C6oTnjq_.js"),__vite__mapDeps([32,2,3,4,5,6,33,11]))),a2=g.lazy(()=>be(()=>import("./ConnectedInstitutionsURLs-DCBf9aew.js"),__vite__mapDeps([34,2,3,4,5,6,13,11]))),dl=g.lazy(()=>be(()=>import("./ConnectedUser-queHyxHS.js"),__vite__mapDeps([35,2,3,4,5,6,33,11]))),l2=g.lazy(()=>be(()=>import("./RemoteCampuses-Bh0h6tbY.js"),__vite__mapDeps([36,2,3,4,5,6,11]))),i2=g.lazy(()=>be(()=>import("./AlienWave-6fWajwYt.js"),__vite__mapDeps([37,2,3,4,5,6,9,10,11]))),r2=g.lazy(()=>be(()=>import("./AlienWaveInternal-Dbz1_Gp9.js"),__vite__mapDeps([38,2,3,4,5,6,9,10,11]))),u2=g.lazy(()=>be(()=>import("./Automation-Dxks_3hH.js"),__vite__mapDeps([39,2,3,4,5,6,10,11]))),c2=g.lazy(()=>be(()=>import("./CapacityCoreIP-DiIZVI-s.js"),__vite__mapDeps([40,1,2,3,4,5,6,15,7]))),s2=g.lazy(()=>be(()=>import("./CapacityLargestLink-xwsd4prK.js"),__vite__mapDeps([41,1,2,3,4,5,6,15,7]))),o2=g.lazy(()=>be(()=>import("./CertificateProvider-D9Qr_R-E.js"),__vite__mapDeps([42,2,3,4,5,6,9,10,11]))),Dy=g.lazy(()=>be(()=>import("./DarkFibreLease-DVVVHWmb.js"),__vite__mapDeps([43,1,2,3,4,5,6,7]))),f2=g.lazy(()=>be(()=>import("./DarkFibreInstalled-DQjFL8rw.js"),__vite__mapDeps([44,1,2,3,4,5,6,7]))),d2=g.lazy(()=>be(()=>import("./ExternalConnections-Bw3LdeFf.js"),__vite__mapDeps([45,2,3,4,5,6,11]))),h2=g.lazy(()=>be(()=>import("./FibreLight-Di0VQOdw.js"),__vite__mapDeps([46,2,3,4,5,6,9,10,11]))),m2=g.lazy(()=>be(()=>import("./IRUDuration-CwtYlEdU.js"),__vite__mapDeps([47,1,2,3,4,5,6,7]))),y2=g.lazy(()=>be(()=>import("./MonitoringTools-BGVkCHJR.js"),__vite__mapDeps([48,2,3,4,5,6,9,10,11]))),p2=g.lazy(()=>be(()=>import("./NetworkFunctionVirtualisation-Dkgolz87.js"),__vite__mapDeps([49,2,3,4,5,6,10,11]))),v2=g.lazy(()=>be(()=>import("./NetworkMapUrls-U7kWZFCY.js"),__vite__mapDeps([50,2,3,4,5,6,13,11]))),g2=g.lazy(()=>be(()=>import("./NonRAndEPeer-Bicp8r4m.js"),__vite__mapDeps([51,1,2,3,4,5,6,15,7]))),E2=g.lazy(()=>be(()=>import("./OPsAutomation-D9uxrxhD.js"),__vite__mapDeps([52,2,3,4,5,6,9,10,11]))),b2=g.lazy(()=>be(()=>import("./PassiveMonitoring-CE6Z1wsB.js"),__vite__mapDeps([53,2,3,4,5,6,9,10,11]))),S2=g.lazy(()=>be(()=>import("./PertTeam-LT8kFC71.js"),__vite__mapDeps([54,2,3,4,5,6,9,10,11]))),x2=g.lazy(()=>be(()=>import("./SiemVendors-W4GM3C-U.js"),__vite__mapDeps([55,2,3,4,5,6,9,10,11]))),_2=g.lazy(()=>be(()=>import("./TrafficRatio-CsniApRI.js"),__vite__mapDeps([56,1,2,3,4,5,6,18]))),R2=g.lazy(()=>be(()=>import("./TrafficUrl-0revWiHR.js"),__vite__mapDeps([57,2,3,4,5,6,13,11]))),T2=g.lazy(()=>be(()=>import("./TrafficVolume-BMOIGkfu.js"),__vite__mapDeps([58,1,2,3,4,5,6,7]))),N2=g.lazy(()=>be(()=>import("./WeatherMap-CEsWOhkH.js"),__vite__mapDeps([59,2,3,4,5,6,13,11]))),Ua=g.lazy(()=>be(()=>import("./Services-wGbaoPrz.js"),__vite__mapDeps([60,2,3,4,5,6,11]))),C2=g.lazy(()=>be(()=>import("./Landing-wYnIDduc.js"),__vite__mapDeps([61,4,62,3,63,11]))),No=g.lazy(()=>be(()=>import("./SurveyContainerComponent-TmXjyfKm.js"),__vite__mapDeps([64,65,66,67,62,3,68]))),j2=g.lazy(()=>be(()=>import("./SurveyManagementComponent-Br-7fyx2.js"),__vite__mapDeps([69,70,6,11,65,67,63,62,3]))),O2=g.lazy(()=>be(()=>import("./UserManagementComponent-CAc00ajf.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(kS,{})},{path:"/charging",element:h.jsx(qS,{})},{path:"/suborganisations",element:h.jsx(XS,{})},{path:"/parentorganisation",element:h.jsx(GS,{})},{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,ku 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,G2 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-ZGgT6a2u.js b/compendium_v2/static/index-ZGgT6a2u.js deleted file mode 100644 index 73a7067f..00000000 --- a/compendium_v2/static/index-ZGgT6a2u.js +++ /dev/null @@ -1 +0,0 @@ -import{r as a,_ as c}from"./index.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.html b/compendium_v2/static/index.html index bdaafa05..bc5478fb 100644 --- a/compendium_v2/static/index.html +++ b/compendium_v2/static/index.html @@ -5,8 +5,8 @@ <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.js"></script> - <link rel="stylesheet" crossorigin href="/static/index.css"> + <script type="module" crossorigin src="/static/index-DunMf8wQ.js"></script> + <link rel="stylesheet" crossorigin href="/static/index-Cv7xX6AU.css"> </head> <body> <div id="root"></div> diff --git a/compendium_v2/static/lodash-0qAddrJ1.js b/compendium_v2/static/lodash-DG7dNfcw.js similarity index 94% rename from compendium_v2/static/lodash-0qAddrJ1.js rename to compendium_v2/static/lodash-DG7dNfcw.js index 661a252f..7a8cda76 100644 --- a/compendium_v2/static/lodash-0qAddrJ1.js +++ b/compendium_v2/static/lodash-DG7dNfcw.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.js";import{u as T_}from"./hook-BbhLqP_c.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-DunMf8wQ.js";import{u as T_}from"./hook-CgOBj93G.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-CxftshCa.js b/compendium_v2/static/useData-DvdT9bkc.js similarity index 85% rename from compendium_v2/static/useData-CxftshCa.js rename to compendium_v2/static/useData-DvdT9bkc.js index 32fbe0f1..893a335f 100644 --- a/compendium_v2/static/useData-CxftshCa.js +++ b/compendium_v2/static/useData-DvdT9bkc.js @@ -1,4 +1,4 @@ -var za=Object.defineProperty;var Na=(e,t,n)=>t in e?za(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var R=(e,t,n)=>Na(e,typeof t!="symbol"?t+"":t,n);import{r as A,u as Vt,g as Ba,j as M,h as Kt,i as qt,k as Ha,w as Wa,l as ms,o as Va,m as un,f as ue,n as ar,B as Ya,p as Ua,q as Xa,s as bs,v as Ka,x as lr,y as Ft,z as qa,A as Ga,c as wt,D as Ja,S as G,E as cr,R as se,O as Za,P as Qa,G as tl,N as el,H as nl,I as xe,J as hr,K as ge,M as il,Q as sl,T as ol,L as rl,V as al,C as xs,W as Jn,X as ll}from"./index.js";import{S as sn}from"./SideBar-CkoMfgfL.js";import{u as Zn,w as cl}from"./xlsx-BHRztzV8.js";import{c as ur,F as dr}from"./index-ZGgT6a2u.js";import{u as hl}from"./hook-BbhLqP_c.js";function ul(){return A.useState(null)}function dl(e,t,n,i=!1){const s=Vt(n);A.useEffect(()=>{const o=typeof e=="function"?e():e;return o.addEventListener(t,s,i),()=>o.removeEventListener(t,s,i)},[e])}const fl=["onKeyDown"];function pl(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 gl(e){return!e||e.trim()==="#"}const fr=A.forwardRef((e,t)=>{let{onKeyDown:n}=e,i=pl(e,fl);const[s]=Ba(Object.assign({tagName:"a"},i)),o=Vt(r=>{s.onKeyDown(r),n==null||n(r)});return gl(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}))});fr.displayName="Anchor";const Ti=A.forwardRef(({bsPrefix:e,className:t,role:n="toolbar",...i},s)=>{const o=Kt(e,"btn-toolbar");return M.jsx("div",{...i,ref:s,className:qt(t,o),role:n})});Ti.displayName="ButtonToolbar";function ml(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 bl(){const[,e]=A.useReducer(t=>t+1,0);return e}const Yn=A.createContext(null);var ys=Object.prototype.hasOwnProperty;function vs(e,t,n){for(n of e.keys())if(Be(n,t))return n}function Be(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--&&Be(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=vs(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=vs(t,s),!s)||!Be(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(ys.call(e,n)&&++i&&!ys.call(t,n)||!(n in t)||!Be(e[n],t[n]))return!1;return Object.keys(t).length===i}}return e!==e&&t!==t}function xl(e){const t=Ha();return[e[0],A.useCallback(n=>{if(t())return e[1](n)},[t,e[1]])]}var ut="top",xt="bottom",yt="right",dt="left",Ri="auto",on=[ut,xt,yt,dt],we="start",Ke="end",yl="clippingParents",pr="viewport",Te="popper",vl="reference",_s=on.reduce(function(e,t){return e.concat([t+"-"+we,t+"-"+Ke])},[]),gr=[].concat(on,[Ri]).reduce(function(e,t){return e.concat([t,t+"-"+we,t+"-"+Ke])},[]),_l="beforeRead",wl="read",Sl="afterRead",kl="beforeMain",Ml="main",Cl="afterMain",Pl="beforeWrite",Ol="write",Dl="afterWrite",Al=[_l,wl,Sl,kl,Ml,Cl,Pl,Ol,Dl];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 Li(e){if(typeof ShadowRoot>"u")return!1;var t=gt(e).ShadowRoot;return e instanceof t||e instanceof ShadowRoot}var ce=Math.max,Ln=Math.min,Se=Math.round;function yi(){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 mr(){return!/^((?!chrome|android).)*safari/i.test(yi())}function ke(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&&Se(i.width)/e.offsetWidth||1,o=e.offsetHeight>0&&Se(i.height)/e.offsetHeight||1);var r=de(e)?gt(e):window,a=r.visualViewport,l=!mr()&&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 Fi(e){var t=ke(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 br(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&Li(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 jt(e){return gt(e).getComputedStyle(e)}function El(e){return["table","td","th"].indexOf(Ut(e))>=0}function Gt(e){return((de(e)?e.ownerDocument:e.document)||window.document).documentElement}function Un(e){return Ut(e)==="html"?e:e.assignedSlot||e.parentNode||(Li(e)?e.host:null)||Gt(e)}function ws(e){return!Ot(e)||jt(e).position==="fixed"?null:e.offsetParent}function Tl(e){var t=/firefox/i.test(yi()),n=/Trident/i.test(yi());if(n&&Ot(e)){var i=jt(e);if(i.position==="fixed")return null}var s=Un(e);for(Li(s)&&(s=s.host);Ot(s)&&["html","body"].indexOf(Ut(s))<0;){var o=jt(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 rn(e){for(var t=gt(e),n=ws(e);n&&El(n)&&jt(n).position==="static";)n=ws(n);return n&&(Ut(n)==="html"||Ut(n)==="body"&&jt(n).position==="static")?t:n||Tl(e)||t}function Ii(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function He(e,t,n){return ce(e,Ln(t,n))}function Rl(e,t,n){var i=He(e,t,n);return i>n?n:i}function xr(){return{top:0,right:0,bottom:0,left:0}}function yr(e){return Object.assign({},xr(),e)}function vr(e,t){return t.reduce(function(n,i){return n[i]=e,n},{})}var Ll=function(t,n){return t=typeof t=="function"?t(Object.assign({},n.rects,{placement:n.placement})):t,yr(typeof t!="number"?t:vr(t,on))};function Fl(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=Ii(a),c=[dt,yt].indexOf(a)>=0,h=c?"height":"width";if(!(!o||!r)){var u=Ll(s.padding,n),d=Fi(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=rn(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=He(_,w,y),S=l;n.modifiersData[i]=(t={},t[S]=k,t.centerOffset=k-w,t)}}function Il(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)||br(t.elements.popper,s)&&(t.elements.arrow=s))}const jl={name:"arrow",enabled:!0,phase:"main",fn:Fl,effect:Il,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Me(e){return e.split("-")[1]}var $l={top:"auto",right:"auto",bottom:"auto",left:"auto"};function zl(e,t){var n=e.x,i=e.y,s=t.devicePixelRatio||1;return{x:Se(n*s)/s||0,y:Se(i*s)/s||0}}function Ss(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=rn(n),k="clientHeight",S="clientWidth";if(w===gt(n)&&(w=Gt(n),jt(w).position!=="static"&&a==="absolute"&&(k="scrollHeight",S="scrollWidth")),w=w,s===ut||(s===dt||s===yt)&&o===Ke){_=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===Ke){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&&$l),O=h===!0?zl({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 Nl(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:Me(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,Ss(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,Ss(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 Bl={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:Nl,data:{}};var dn={passive:!0};function Hl(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,dn)}),a&&l.addEventListener("resize",n.update,dn),function(){o&&c.forEach(function(h){h.removeEventListener("scroll",n.update,dn)}),a&&l.removeEventListener("resize",n.update,dn)}}const Wl={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:Hl,data:{}};var Vl={left:"right",right:"left",bottom:"top",top:"bottom"};function En(e){return e.replace(/left|right|bottom|top/g,function(t){return Vl[t]})}var Yl={start:"end",end:"start"};function ks(e){return e.replace(/start|end/g,function(t){return Yl[t]})}function ji(e){var t=gt(e),n=t.pageXOffset,i=t.pageYOffset;return{scrollLeft:n,scrollTop:i}}function $i(e){return ke(Gt(e)).left+ji(e).scrollLeft}function Ul(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=mr();(c||!c&&t==="fixed")&&(a=s.offsetLeft,l=s.offsetTop)}return{width:o,height:r,x:a+$i(e),y:l}}function Xl(e){var t,n=Gt(e),i=ji(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+$i(e),l=-i.scrollTop;return jt(s||n).direction==="rtl"&&(a+=ce(n.clientWidth,s?s.clientWidth:0)-o),{width:o,height:r,x:a,y:l}}function zi(e){var t=jt(e),n=t.overflow,i=t.overflowX,s=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+s+i)}function _r(e){return["html","body","#document"].indexOf(Ut(e))>=0?e.ownerDocument.body:Ot(e)&&zi(e)?e:_r(Un(e))}function We(e,t){var n;t===void 0&&(t=[]);var i=_r(e),s=i===((n=e.ownerDocument)==null?void 0:n.body),o=gt(i),r=s?[o].concat(o.visualViewport||[],zi(i)?i:[]):i,a=t.concat(r);return s?a:a.concat(We(Un(r)))}function vi(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function Kl(e,t){var n=ke(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 Ms(e,t,n){return t===pr?vi(Ul(e,n)):de(t)?Kl(t,n):vi(Xl(Gt(e)))}function ql(e){var t=We(Un(e)),n=["absolute","fixed"].indexOf(jt(e).position)>=0,i=n&&Ot(e)?rn(e):e;return de(i)?t.filter(function(s){return de(s)&&br(s,i)&&Ut(s)!=="body"}):[]}function Gl(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=Ms(e,c,i);return l.top=ce(h.top,l.top),l.right=Ln(h.right,l.right),l.bottom=Ln(h.bottom,l.bottom),l.left=ce(h.left,l.left),l},Ms(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 wr(e){var t=e.reference,n=e.element,i=e.placement,s=i?Pt(i):null,o=i?Me(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?Ii(s):null;if(c!=null){var h=c==="y"?"height":"width";switch(o){case we:l[c]=l[c]-(t[h]/2-n[h]/2);break;case Ke:l[c]=l[c]+(t[h]/2-n[h]/2);break}}return l}function qe(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?yl:a,c=n.rootBoundary,h=c===void 0?pr:c,u=n.elementContext,d=u===void 0?Te:u,f=n.altBoundary,g=f===void 0?!1:f,m=n.padding,p=m===void 0?0:m,b=yr(typeof p!="number"?p:vr(p,on)),x=d===Te?vl:Te,v=e.rects.popper,_=e.elements[g?x:d],y=Gl(de(_)?_:_.contextElement||Gt(e.elements.popper),l,h,r),w=ke(e.elements.reference),k=wr({reference:w,element:v,strategy:"absolute",placement:s}),S=vi(Object.assign({},v,k)),C=d===Te?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===Te&&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 Jl(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?gr:l,h=Me(i),u=h?a?_s:_s.filter(function(g){return Me(g)===h}):on,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]=qe(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 Zl(e){if(Pt(e)===Ri)return[];var t=En(e);return[ks(e),t,ks(t)]}function Ql(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?[En(p)]:Zl(p)),_=[p].concat(v).reduce(function(U,X){return U.concat(Pt(X)===Ri?Jl(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=Me(P)===we,I=[ut,xt].indexOf(O)>=0,T=I?"width":"height",L=qe(t,{placement:P,boundary:h,rootBoundary:u,altBoundary:d,padding:c}),F=I?E?yt:dt:E?xt:ut;y[T]>w[T]&&(F=En(F));var B=En(F),$=[];if(o&&$.push(L[O]<=0),a&&$.push(L[F]<=0,L[B]<=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 q=_.find(function(At){var H=k.get(At);if(H)return H.slice(0,X).every(function(et){return et})});if(q)return C=q,"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 tc={name:"flip",enabled:!0,phase:"main",fn:Ql,requiresIfExists:["offset"],data:{_skip:!1}};function Cs(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 Ps(e){return[ut,yt,xt,dt].some(function(t){return e[t]>=0})}function ec(e){var t=e.state,n=e.name,i=t.rects.reference,s=t.rects.popper,o=t.modifiersData.preventOverflow,r=qe(t,{elementContext:"reference"}),a=qe(t,{altBoundary:!0}),l=Cs(r,i),c=Cs(a,s,o),h=Ps(l),u=Ps(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 nc={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:ec};function ic(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 sc(e){var t=e.state,n=e.options,i=e.name,s=n.offset,o=s===void 0?[0,0]:s,r=gr.reduce(function(h,u){return h[u]=ic(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 oc={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:sc};function rc(e){var t=e.state,n=e.name;t.modifiersData[n]=wr({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})}const ac={name:"popperOffsets",enabled:!0,phase:"read",fn:rc,data:{}};function lc(e){return e==="x"?"y":"x"}function cc(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=qe(t,{boundary:l,rootBoundary:c,padding:u,altBoundary:h}),b=Pt(t.placement),x=Me(t.placement),v=!x,_=Ii(b),y=lc(_),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[_],B=F+p[I],$=F-p[T],N=f?-S[L]/2:0,tt=x===we?k[L]:S[L],Q=x===we?-S[L]:-k[L],nt=t.elements.arrow,U=f&&nt?Fi(nt):{width:0,height:0},X=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:xr(),q=X[I],At=X[T],H=He(0,k[L],U[L]),et=v?k[L]/2-N-H-q-D.mainAxis:tt-H-q-D.mainAxis,Ee=v?-k[L]/2+N+H+At+D.mainAxis:Q+H+At+D.mainAxis,zt=t.elements.arrow&&rn(t.elements.arrow),Jt=zt?_==="y"?zt.clientTop||0:zt.clientLeft||0:0,Zt=(E=P==null?void 0:P[_])!=null?E:0,lt=F+et-Zt-Jt,Ia=F+Ee-Zt,ls=He(f?Ln(B,lt):B,F,f?ce($,Ia):$);w[_]=ls,O[_]=ls-F}if(a){var cs,ja=_==="x"?ut:dt,$a=_==="x"?xt:yt,Qt=w[y],hn=y==="y"?"height":"width",hs=Qt+p[ja],us=Qt-p[$a],Gn=[ut,dt].indexOf(b)!==-1,ds=(cs=P==null?void 0:P[y])!=null?cs:0,fs=Gn?hs:Qt-k[hn]-S[hn]-ds+D.altAxis,ps=Gn?Qt+k[hn]+S[hn]-ds-D.altAxis:us,gs=f&&Gn?Rl(fs,Qt,ps):He(f?fs:hs,Qt,f?ps:us);w[y]=gs,O[y]=gs-Qt}t.modifiersData[i]=O}}const hc={name:"preventOverflow",enabled:!0,phase:"main",fn:cc,requiresIfExists:["offset"]};function uc(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function dc(e){return e===gt(e)||!Ot(e)?ji(e):uc(e)}function fc(e){var t=e.getBoundingClientRect(),n=Se(t.width)/e.offsetWidth||1,i=Se(t.height)/e.offsetHeight||1;return n!==1||i!==1}function pc(e,t,n){n===void 0&&(n=!1);var i=Ot(t),s=Ot(t)&&fc(t),o=Gt(t),r=ke(e,s,n),a={scrollLeft:0,scrollTop:0},l={x:0,y:0};return(i||!i&&!n)&&((Ut(t)!=="body"||zi(o))&&(a=dc(t)),Ot(t)?(l=ke(t,!0),l.x+=t.clientLeft,l.y+=t.clientTop):o&&(l.x=$i(o))),{x:r.left+a.scrollLeft-l.x,y:r.top+a.scrollTop-l.y,width:r.width,height:r.height}}function gc(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 mc(e){var t=gc(e);return Al.reduce(function(n,i){return n.concat(t.filter(function(s){return s.phase===i}))},[])}function bc(e){var t;return function(){return t||(t=new Promise(function(n){Promise.resolve().then(function(){t=void 0,n(e())})})),t}}function xc(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 Os={placement:"bottom",modifiers:[],strategy:"absolute"};function Ds(){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 yc(e){e===void 0&&(e={});var t=e,n=t.defaultModifiers,i=n===void 0?[]:n,s=t.defaultOptions,o=s===void 0?Os:s;return function(a,l,c){c===void 0&&(c=o);var h={placement:"bottom",orderedModifiers:[],options:Object.assign({},Os,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)?We(a):a.contextElement?We(a.contextElement):[],popper:We(l)};var v=mc(xc([].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(Ds(x,v)){h.rects={reference:pc(x,rn(v),h.options.strategy==="fixed"),popper:Fi(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:bc(function(){return new Promise(function(p){f.forceUpdate(),p(h)})}),destroy:function(){m(),d=!0}};if(!Ds(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 vc=yc({defaultModifiers:[nc,ac,Bl,Wl,oc,tc,hc,jl]}),_c=["enabled","placement","strategy","modifiers"];function wc(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 Sc={name:"applyStyles",enabled:!1,phase:"afterWrite",fn:()=>{}},kc={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)}}},Mc=[];function Cc(e,t,n={}){let{enabled:i=!0,placement:s="bottom",strategy:o="absolute",modifiers:r=Mc}=n,a=wc(n,_c);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]=xl(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(()=>(Be(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,Sc]})},[o,s,g,i,m]),A.useEffect(()=>{if(!(!i||e==null||t==null))return c.current=vc(e,t,Object.assign({},a,{placement:s,strategy:o,modifiers:[...m,kc,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 Pc(e){return e.button===0}function Oc(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}const Qn=e=>e&&("current"in e?e.current:e),Es={click:"mousedown",mouseup:"mousedown",pointerup:"pointerdown"};function Dc(e,t=As,{disabled:n,clickTrigger:i="click"}={}){const s=A.useRef(!1),o=A.useRef(!1),r=A.useCallback(c=>{const h=Qn(e);Wa(!!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||Oc(c)||!Pc(c)||!!ms(h,c.target)||o.current,o.current=!1},[e]),a=Vt(c=>{const h=Qn(e);h&&ms(h,c.target)?o.current=!0:o.current=!1}),l=Vt(c=>{s.current||t(c)});A.useEffect(()=>{var c,h;if(n||e==null)return;const u=Va(Qn(e)),d=u.defaultView||window;let f=(c=d.event)!=null?c:(h=d.parent)==null?void 0:h.event,g=null;Es[i]&&(g=un(u,Es[i],a,!0));const m=un(u,i,r,!0),p=un(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=>un(x,"mousemove",As))),()=>{g==null||g(),m(),p(),b.forEach(x=>x())}},[e,n,i,r,a,l])}function Ac(e){const t={};return Array.isArray(e)?(e==null||e.forEach(n=>{t[n.name]=n}),t):e||t}function Ec(e={}){return Array.isArray(e)?e:Object.keys(e).map(t=>(e[t].name=t,e[t]))}function Tc({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=Ac(l.modifiers);return Object.assign({},l,{placement:n,enabled:e,strategy:o?"fixed":l.strategy,modifiers:Ec(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 Rc=["children","usePopper"];function Lc(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 Fc=()=>{};function Sr(e={}){const t=A.useContext(Yn),[n,i]=ul(),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=Cc(x,b,Tc({placement:c||m||"bottom-start",enabled:d,enableEvents:u??f,offset:r,flip:o,fixed:l,arrowElement:n,popperConfig:h})),_=Object.assign({ref:p||Fc,"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 Dc(b,g,{clickTrigger:a,disabled:!f}),[_,y]}function kr(e){let{children:t,usePopper:n=!0}=e,i=Lc(e,Rc);const[s,o]=Sr(Object.assign({},i,{usePopper:n}));return M.jsx(M.Fragment,{children:t(s,o)})}kr.displayName="DropdownMenu";const Ni={prefix:String(Math.round(Math.random()*1e10)),current:0},Mr=ue.createContext(Ni),Ic=ue.createContext(!1);let jc=!!(typeof window<"u"&&window.document&&window.document.createElement),ti=new WeakMap;function $c(e=!1){let t=A.useContext(Mr),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=ti.get(o);r==null?ti.set(o,{id:t.current,state:o.memoizedState}):o.memoizedState!==r.state&&(t.current=r.id,ti.delete(o))}n.current=++t.current}return n.current}function zc(e){let t=A.useContext(Mr);t===Ni&&!jc&&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=$c(!!e),i=`react-aria${t.prefix}`;return e||`${i}-${n}`}function Nc(e){let t=ue.useId(),[n]=A.useState(Yc()),i=n?"react-aria":`react-aria${Ni.prefix}`;return e||`${i}-${t}`}const Bc=typeof ue.useId=="function"?Nc:zc;function Hc(){return!1}function Wc(){return!0}function Vc(e){return()=>{}}function Yc(){return typeof ue.useSyncExternalStore=="function"?ue.useSyncExternalStore(Vc,Hc,Wc):A.useContext(Ic)}const Cr=e=>{var t;return((t=e.getAttribute("role"))==null?void 0:t.toLowerCase())==="menu"},Ts=()=>{};function Pr(){const e=Bc(),{show:t=!1,toggle:n=Ts,setToggle:i,menuElement:s}=A.useContext(Yn)||{},o=A.useCallback(a=>{n(!t,a)},[t,n]),r={id:e,ref:i||Ts,onClick:o,"aria-expanded":!!t};return s&&Cr(s)&&(r["aria-haspopup"]=!0),[r,{show:t,toggle:n}]}function Or({children:e}){const[t,n]=Pr();return M.jsx(M.Fragment,{children:e(t,n)})}Or.displayName="DropdownToggle";const _i=A.createContext(null),Rs=(e,t=null)=>e!=null?String(e):t||null,Dr=A.createContext(null);Dr.displayName="NavContext";const Uc=["eventKey","disabled","onClick","active","as"];function Xc(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=A.useContext(_i),r=A.useContext(Dr),{activeKey:a}=r||{},l=Rs(e,t),c=n==null&&e!=null?Rs(a)===l:n;return[{onClick:Vt(u=>{i||(s==null||s(u),o&&!u.isPropagationStopped()&&o(l,u))}),"aria-disabled":i||void 0,"aria-selected":c,[ar("dropdown-item")]:""},{isActive:c}]}const Er=A.forwardRef((e,t)=>{let{eventKey:n,disabled:i,onClick:s,active:o,as:r=Ya}=e,a=Xc(e,Uc);const[l]=Ar({key:n,href:a.href,disabled:i,onClick:s,active:o});return M.jsx(r,Object.assign({},a,{ref:t},l))});Er.displayName="DropdownItem";function Ls(){const e=bl(),t=A.useRef(null),n=A.useCallback(i=>{t.current=i,e()},[e]);return[t,n]}function an({defaultShow:e,show:t,onSelect:n,onToggle:i,itemSelector:s=`* [${ar("dropdown-item")}]`,focusFirstItemOnShow:o,placement:r="bottom-start",children:a}){const l=Ua(),[c,h]=ml(t,e,i),[u,d]=Ls(),f=u.current,[g,m]=Ls(),p=g.current,b=Xa(c),x=A.useRef(null),v=A.useRef(!1),_=A.useContext(_i),y=A.useCallback((P,O,E=O==null?void 0:O.type)=>{h(P,{originalEvent:O,source:E})},[h]),w=Vt((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=Vt(()=>{p&&p.focus&&p.focus()}),C=Vt(()=>{const P=x.current;let O=o;if(O==null&&(O=u.current&&Cr(u.current)?"keyboard":!1),O===!1||O==="keyboard"&&!/^key.+$/.test(P))return;const E=bs(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=bs(u.current,s);let I=E.indexOf(P)+O;return I=Math.max(0,Math.min(I,E.length)),E[I]};return dl(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":Ka(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(_i.Provider,{value:w,children:M.jsx(Yn.Provider,{value:k,children:a})})}an.displayName="Dropdown";an.Menu=kr;an.Toggle=Or;an.Item=Er;const Bi=A.createContext({});Bi.displayName="DropdownContext";const Tr=A.forwardRef(({className:e,bsPrefix:t,as:n="hr",role:i="separator",...s},o)=>(t=Kt(t,"dropdown-divider"),M.jsx(n,{ref:o,className:qt(e,t),role:i,...s})));Tr.displayName="DropdownDivider";const Rr=A.forwardRef(({className:e,bsPrefix:t,as:n="div",role:i="heading",...s},o)=>(t=Kt(t,"dropdown-header"),M.jsx(n,{ref:o,className:qt(e,t),role:i,...s})));Rr.displayName="DropdownHeader";const Lr=A.forwardRef(({bsPrefix:e,className:t,eventKey:n,disabled:i=!1,onClick:s,active:o,as:r=fr,...a},l)=>{const c=Kt(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:qt(t,c,u.isActive&&"active",i&&"disabled")})});Lr.displayName="DropdownItem";const Fr=A.forwardRef(({className:e,bsPrefix:t,as:n="span",...i},s)=>(t=Kt(t,"dropdown-item-text"),M.jsx(n,{ref:s,className:qt(e,t),...i})));Fr.displayName="DropdownItemText";const Kc=typeof global<"u"&&global.navigator&&global.navigator.product==="ReactNative",qc=typeof document<"u",Gc=qc||Kc?A.useLayoutEffect:A.useEffect,Ir=A.createContext(null);Ir.displayName="NavbarContext";function jr(e,t){return e}function $r(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 zr=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(Ir),g=Kt(e,"dropdown-menu"),{align:m,drop:p,isRTL:b}=A.useContext(Bi);n=n||m;const x=A.useContext(ur),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 _=$r(d,p,b),[y,{hasShown:w,popper:k,show:S,toggle:C}]=Sr({flip:s,rootCloseEvent:i,show:o,usePopper:!f&&v.length===0,offset:[0,2],popperConfig:l,placement:_});if(y.ref=lr(jr(u),y.ref),Gc(()=>{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:qt(t,g,S&&"show",d&&`${g}-end`,c&&`${g}-${c}`,...v)})});zr.displayName="DropdownMenu";const Nr=A.forwardRef(({bsPrefix:e,split:t,className:n,childBsPrefix:i,as:s=Ft,...o},r)=>{const a=Kt(e,"dropdown-toggle"),l=A.useContext(Yn);i!==void 0&&(o.bsPrefix=i);const[c]=Pr();return c.ref=lr(c.ref,jr(r)),M.jsx(s,{className:qt(n,a,t&&`${a}-split`,(l==null?void 0:l.show)&&"show"),...c,...o})});Nr.displayName="DropdownToggle";const Br=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}=hl(e,{show:"onToggle"}),g=A.useContext(ur),m=Kt(n,"dropdown"),p=qa(),b=k=>d===!1?k==="click":d==="inside"?k!=="rootClose":d==="outside"?k!=="select":!0,x=Ga((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)))}),_=$r(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(Bi.Provider,{value:y,children:M.jsx(an,{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:qt(o,s&&"show",w[i])})})})});Br.displayName="Dropdown";const ei=Object.assign(Br,{Toggle:Nr,Menu:zr,Item:Lr,ItemText:Fr,Divider:Tr,Header:Rr});/*! +var za=Object.defineProperty;var Na=(e,t,n)=>t in e?za(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var R=(e,t,n)=>Na(e,typeof t!="symbol"?t+"":t,n);import{r as A,u as Vt,g as Ba,j as M,h as Kt,i as qt,k as Ha,w as Wa,l as ms,o as Va,m as un,f as ue,n as ar,B as Ya,p as Ua,q as Xa,s as bs,v as Ka,x as lr,y as Ft,z as qa,A as Ga,c as wt,D as Ja,S as G,E as cr,R as se,O as Za,P as Qa,G as tl,N as el,H as nl,I as xe,J as hr,K as ge,M as il,Q as sl,T as ol,L as rl,V as al,C as xs,W as Jn,X as ll}from"./index-DunMf8wQ.js";import{S as sn}from"./SideBar-DC9SKCkF.js";import{u as Zn,w as cl}from"./xlsx-BHRztzV8.js";import{c as ur,F as dr}from"./index-DSQNfbUQ.js";import{u as hl}from"./hook-CgOBj93G.js";function ul(){return A.useState(null)}function dl(e,t,n,i=!1){const s=Vt(n);A.useEffect(()=>{const o=typeof e=="function"?e():e;return o.addEventListener(t,s,i),()=>o.removeEventListener(t,s,i)},[e])}const fl=["onKeyDown"];function pl(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 gl(e){return!e||e.trim()==="#"}const fr=A.forwardRef((e,t)=>{let{onKeyDown:n}=e,i=pl(e,fl);const[s]=Ba(Object.assign({tagName:"a"},i)),o=Vt(r=>{s.onKeyDown(r),n==null||n(r)});return gl(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}))});fr.displayName="Anchor";const Ti=A.forwardRef(({bsPrefix:e,className:t,role:n="toolbar",...i},s)=>{const o=Kt(e,"btn-toolbar");return M.jsx("div",{...i,ref:s,className:qt(t,o),role:n})});Ti.displayName="ButtonToolbar";function ml(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 bl(){const[,e]=A.useReducer(t=>t+1,0);return e}const Yn=A.createContext(null);var ys=Object.prototype.hasOwnProperty;function vs(e,t,n){for(n of e.keys())if(Be(n,t))return n}function Be(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--&&Be(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=vs(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=vs(t,s),!s)||!Be(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(ys.call(e,n)&&++i&&!ys.call(t,n)||!(n in t)||!Be(e[n],t[n]))return!1;return Object.keys(t).length===i}}return e!==e&&t!==t}function xl(e){const t=Ha();return[e[0],A.useCallback(n=>{if(t())return e[1](n)},[t,e[1]])]}var ut="top",xt="bottom",yt="right",dt="left",Ri="auto",on=[ut,xt,yt,dt],we="start",Ke="end",yl="clippingParents",pr="viewport",Te="popper",vl="reference",_s=on.reduce(function(e,t){return e.concat([t+"-"+we,t+"-"+Ke])},[]),gr=[].concat(on,[Ri]).reduce(function(e,t){return e.concat([t,t+"-"+we,t+"-"+Ke])},[]),_l="beforeRead",wl="read",Sl="afterRead",kl="beforeMain",Ml="main",Cl="afterMain",Pl="beforeWrite",Ol="write",Dl="afterWrite",Al=[_l,wl,Sl,kl,Ml,Cl,Pl,Ol,Dl];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 Li(e){if(typeof ShadowRoot>"u")return!1;var t=gt(e).ShadowRoot;return e instanceof t||e instanceof ShadowRoot}var ce=Math.max,Ln=Math.min,Se=Math.round;function yi(){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 mr(){return!/^((?!chrome|android).)*safari/i.test(yi())}function ke(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&&Se(i.width)/e.offsetWidth||1,o=e.offsetHeight>0&&Se(i.height)/e.offsetHeight||1);var r=de(e)?gt(e):window,a=r.visualViewport,l=!mr()&&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 Fi(e){var t=ke(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 br(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&Li(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 jt(e){return gt(e).getComputedStyle(e)}function El(e){return["table","td","th"].indexOf(Ut(e))>=0}function Gt(e){return((de(e)?e.ownerDocument:e.document)||window.document).documentElement}function Un(e){return Ut(e)==="html"?e:e.assignedSlot||e.parentNode||(Li(e)?e.host:null)||Gt(e)}function ws(e){return!Ot(e)||jt(e).position==="fixed"?null:e.offsetParent}function Tl(e){var t=/firefox/i.test(yi()),n=/Trident/i.test(yi());if(n&&Ot(e)){var i=jt(e);if(i.position==="fixed")return null}var s=Un(e);for(Li(s)&&(s=s.host);Ot(s)&&["html","body"].indexOf(Ut(s))<0;){var o=jt(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 rn(e){for(var t=gt(e),n=ws(e);n&&El(n)&&jt(n).position==="static";)n=ws(n);return n&&(Ut(n)==="html"||Ut(n)==="body"&&jt(n).position==="static")?t:n||Tl(e)||t}function Ii(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function He(e,t,n){return ce(e,Ln(t,n))}function Rl(e,t,n){var i=He(e,t,n);return i>n?n:i}function xr(){return{top:0,right:0,bottom:0,left:0}}function yr(e){return Object.assign({},xr(),e)}function vr(e,t){return t.reduce(function(n,i){return n[i]=e,n},{})}var Ll=function(t,n){return t=typeof t=="function"?t(Object.assign({},n.rects,{placement:n.placement})):t,yr(typeof t!="number"?t:vr(t,on))};function Fl(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=Ii(a),c=[dt,yt].indexOf(a)>=0,h=c?"height":"width";if(!(!o||!r)){var u=Ll(s.padding,n),d=Fi(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=rn(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=He(_,w,y),S=l;n.modifiersData[i]=(t={},t[S]=k,t.centerOffset=k-w,t)}}function Il(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)||br(t.elements.popper,s)&&(t.elements.arrow=s))}const jl={name:"arrow",enabled:!0,phase:"main",fn:Fl,effect:Il,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Me(e){return e.split("-")[1]}var $l={top:"auto",right:"auto",bottom:"auto",left:"auto"};function zl(e,t){var n=e.x,i=e.y,s=t.devicePixelRatio||1;return{x:Se(n*s)/s||0,y:Se(i*s)/s||0}}function Ss(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=rn(n),k="clientHeight",S="clientWidth";if(w===gt(n)&&(w=Gt(n),jt(w).position!=="static"&&a==="absolute"&&(k="scrollHeight",S="scrollWidth")),w=w,s===ut||(s===dt||s===yt)&&o===Ke){_=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===Ke){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&&$l),O=h===!0?zl({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 Nl(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:Me(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,Ss(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,Ss(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 Bl={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:Nl,data:{}};var dn={passive:!0};function Hl(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,dn)}),a&&l.addEventListener("resize",n.update,dn),function(){o&&c.forEach(function(h){h.removeEventListener("scroll",n.update,dn)}),a&&l.removeEventListener("resize",n.update,dn)}}const Wl={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:Hl,data:{}};var Vl={left:"right",right:"left",bottom:"top",top:"bottom"};function En(e){return e.replace(/left|right|bottom|top/g,function(t){return Vl[t]})}var Yl={start:"end",end:"start"};function ks(e){return e.replace(/start|end/g,function(t){return Yl[t]})}function ji(e){var t=gt(e),n=t.pageXOffset,i=t.pageYOffset;return{scrollLeft:n,scrollTop:i}}function $i(e){return ke(Gt(e)).left+ji(e).scrollLeft}function Ul(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=mr();(c||!c&&t==="fixed")&&(a=s.offsetLeft,l=s.offsetTop)}return{width:o,height:r,x:a+$i(e),y:l}}function Xl(e){var t,n=Gt(e),i=ji(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+$i(e),l=-i.scrollTop;return jt(s||n).direction==="rtl"&&(a+=ce(n.clientWidth,s?s.clientWidth:0)-o),{width:o,height:r,x:a,y:l}}function zi(e){var t=jt(e),n=t.overflow,i=t.overflowX,s=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+s+i)}function _r(e){return["html","body","#document"].indexOf(Ut(e))>=0?e.ownerDocument.body:Ot(e)&&zi(e)?e:_r(Un(e))}function We(e,t){var n;t===void 0&&(t=[]);var i=_r(e),s=i===((n=e.ownerDocument)==null?void 0:n.body),o=gt(i),r=s?[o].concat(o.visualViewport||[],zi(i)?i:[]):i,a=t.concat(r);return s?a:a.concat(We(Un(r)))}function vi(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function Kl(e,t){var n=ke(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 Ms(e,t,n){return t===pr?vi(Ul(e,n)):de(t)?Kl(t,n):vi(Xl(Gt(e)))}function ql(e){var t=We(Un(e)),n=["absolute","fixed"].indexOf(jt(e).position)>=0,i=n&&Ot(e)?rn(e):e;return de(i)?t.filter(function(s){return de(s)&&br(s,i)&&Ut(s)!=="body"}):[]}function Gl(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=Ms(e,c,i);return l.top=ce(h.top,l.top),l.right=Ln(h.right,l.right),l.bottom=Ln(h.bottom,l.bottom),l.left=ce(h.left,l.left),l},Ms(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 wr(e){var t=e.reference,n=e.element,i=e.placement,s=i?Pt(i):null,o=i?Me(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?Ii(s):null;if(c!=null){var h=c==="y"?"height":"width";switch(o){case we:l[c]=l[c]-(t[h]/2-n[h]/2);break;case Ke:l[c]=l[c]+(t[h]/2-n[h]/2);break}}return l}function qe(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?yl:a,c=n.rootBoundary,h=c===void 0?pr:c,u=n.elementContext,d=u===void 0?Te:u,f=n.altBoundary,g=f===void 0?!1:f,m=n.padding,p=m===void 0?0:m,b=yr(typeof p!="number"?p:vr(p,on)),x=d===Te?vl:Te,v=e.rects.popper,_=e.elements[g?x:d],y=Gl(de(_)?_:_.contextElement||Gt(e.elements.popper),l,h,r),w=ke(e.elements.reference),k=wr({reference:w,element:v,strategy:"absolute",placement:s}),S=vi(Object.assign({},v,k)),C=d===Te?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===Te&&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 Jl(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?gr:l,h=Me(i),u=h?a?_s:_s.filter(function(g){return Me(g)===h}):on,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]=qe(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 Zl(e){if(Pt(e)===Ri)return[];var t=En(e);return[ks(e),t,ks(t)]}function Ql(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?[En(p)]:Zl(p)),_=[p].concat(v).reduce(function(U,X){return U.concat(Pt(X)===Ri?Jl(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=Me(P)===we,I=[ut,xt].indexOf(O)>=0,T=I?"width":"height",L=qe(t,{placement:P,boundary:h,rootBoundary:u,altBoundary:d,padding:c}),F=I?E?yt:dt:E?xt:ut;y[T]>w[T]&&(F=En(F));var B=En(F),$=[];if(o&&$.push(L[O]<=0),a&&$.push(L[F]<=0,L[B]<=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 q=_.find(function(At){var H=k.get(At);if(H)return H.slice(0,X).every(function(et){return et})});if(q)return C=q,"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 tc={name:"flip",enabled:!0,phase:"main",fn:Ql,requiresIfExists:["offset"],data:{_skip:!1}};function Cs(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 Ps(e){return[ut,yt,xt,dt].some(function(t){return e[t]>=0})}function ec(e){var t=e.state,n=e.name,i=t.rects.reference,s=t.rects.popper,o=t.modifiersData.preventOverflow,r=qe(t,{elementContext:"reference"}),a=qe(t,{altBoundary:!0}),l=Cs(r,i),c=Cs(a,s,o),h=Ps(l),u=Ps(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 nc={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:ec};function ic(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 sc(e){var t=e.state,n=e.options,i=e.name,s=n.offset,o=s===void 0?[0,0]:s,r=gr.reduce(function(h,u){return h[u]=ic(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 oc={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:sc};function rc(e){var t=e.state,n=e.name;t.modifiersData[n]=wr({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})}const ac={name:"popperOffsets",enabled:!0,phase:"read",fn:rc,data:{}};function lc(e){return e==="x"?"y":"x"}function cc(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=qe(t,{boundary:l,rootBoundary:c,padding:u,altBoundary:h}),b=Pt(t.placement),x=Me(t.placement),v=!x,_=Ii(b),y=lc(_),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[_],B=F+p[I],$=F-p[T],N=f?-S[L]/2:0,tt=x===we?k[L]:S[L],Q=x===we?-S[L]:-k[L],nt=t.elements.arrow,U=f&&nt?Fi(nt):{width:0,height:0},X=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:xr(),q=X[I],At=X[T],H=He(0,k[L],U[L]),et=v?k[L]/2-N-H-q-D.mainAxis:tt-H-q-D.mainAxis,Ee=v?-k[L]/2+N+H+At+D.mainAxis:Q+H+At+D.mainAxis,zt=t.elements.arrow&&rn(t.elements.arrow),Jt=zt?_==="y"?zt.clientTop||0:zt.clientLeft||0:0,Zt=(E=P==null?void 0:P[_])!=null?E:0,lt=F+et-Zt-Jt,Ia=F+Ee-Zt,ls=He(f?Ln(B,lt):B,F,f?ce($,Ia):$);w[_]=ls,O[_]=ls-F}if(a){var cs,ja=_==="x"?ut:dt,$a=_==="x"?xt:yt,Qt=w[y],hn=y==="y"?"height":"width",hs=Qt+p[ja],us=Qt-p[$a],Gn=[ut,dt].indexOf(b)!==-1,ds=(cs=P==null?void 0:P[y])!=null?cs:0,fs=Gn?hs:Qt-k[hn]-S[hn]-ds+D.altAxis,ps=Gn?Qt+k[hn]+S[hn]-ds-D.altAxis:us,gs=f&&Gn?Rl(fs,Qt,ps):He(f?fs:hs,Qt,f?ps:us);w[y]=gs,O[y]=gs-Qt}t.modifiersData[i]=O}}const hc={name:"preventOverflow",enabled:!0,phase:"main",fn:cc,requiresIfExists:["offset"]};function uc(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function dc(e){return e===gt(e)||!Ot(e)?ji(e):uc(e)}function fc(e){var t=e.getBoundingClientRect(),n=Se(t.width)/e.offsetWidth||1,i=Se(t.height)/e.offsetHeight||1;return n!==1||i!==1}function pc(e,t,n){n===void 0&&(n=!1);var i=Ot(t),s=Ot(t)&&fc(t),o=Gt(t),r=ke(e,s,n),a={scrollLeft:0,scrollTop:0},l={x:0,y:0};return(i||!i&&!n)&&((Ut(t)!=="body"||zi(o))&&(a=dc(t)),Ot(t)?(l=ke(t,!0),l.x+=t.clientLeft,l.y+=t.clientTop):o&&(l.x=$i(o))),{x:r.left+a.scrollLeft-l.x,y:r.top+a.scrollTop-l.y,width:r.width,height:r.height}}function gc(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 mc(e){var t=gc(e);return Al.reduce(function(n,i){return n.concat(t.filter(function(s){return s.phase===i}))},[])}function bc(e){var t;return function(){return t||(t=new Promise(function(n){Promise.resolve().then(function(){t=void 0,n(e())})})),t}}function xc(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 Os={placement:"bottom",modifiers:[],strategy:"absolute"};function Ds(){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 yc(e){e===void 0&&(e={});var t=e,n=t.defaultModifiers,i=n===void 0?[]:n,s=t.defaultOptions,o=s===void 0?Os:s;return function(a,l,c){c===void 0&&(c=o);var h={placement:"bottom",orderedModifiers:[],options:Object.assign({},Os,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)?We(a):a.contextElement?We(a.contextElement):[],popper:We(l)};var v=mc(xc([].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(Ds(x,v)){h.rects={reference:pc(x,rn(v),h.options.strategy==="fixed"),popper:Fi(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:bc(function(){return new Promise(function(p){f.forceUpdate(),p(h)})}),destroy:function(){m(),d=!0}};if(!Ds(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 vc=yc({defaultModifiers:[nc,ac,Bl,Wl,oc,tc,hc,jl]}),_c=["enabled","placement","strategy","modifiers"];function wc(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 Sc={name:"applyStyles",enabled:!1,phase:"afterWrite",fn:()=>{}},kc={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)}}},Mc=[];function Cc(e,t,n={}){let{enabled:i=!0,placement:s="bottom",strategy:o="absolute",modifiers:r=Mc}=n,a=wc(n,_c);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]=xl(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(()=>(Be(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,Sc]})},[o,s,g,i,m]),A.useEffect(()=>{if(!(!i||e==null||t==null))return c.current=vc(e,t,Object.assign({},a,{placement:s,strategy:o,modifiers:[...m,kc,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 Pc(e){return e.button===0}function Oc(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}const Qn=e=>e&&("current"in e?e.current:e),Es={click:"mousedown",mouseup:"mousedown",pointerup:"pointerdown"};function Dc(e,t=As,{disabled:n,clickTrigger:i="click"}={}){const s=A.useRef(!1),o=A.useRef(!1),r=A.useCallback(c=>{const h=Qn(e);Wa(!!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||Oc(c)||!Pc(c)||!!ms(h,c.target)||o.current,o.current=!1},[e]),a=Vt(c=>{const h=Qn(e);h&&ms(h,c.target)?o.current=!0:o.current=!1}),l=Vt(c=>{s.current||t(c)});A.useEffect(()=>{var c,h;if(n||e==null)return;const u=Va(Qn(e)),d=u.defaultView||window;let f=(c=d.event)!=null?c:(h=d.parent)==null?void 0:h.event,g=null;Es[i]&&(g=un(u,Es[i],a,!0));const m=un(u,i,r,!0),p=un(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=>un(x,"mousemove",As))),()=>{g==null||g(),m(),p(),b.forEach(x=>x())}},[e,n,i,r,a,l])}function Ac(e){const t={};return Array.isArray(e)?(e==null||e.forEach(n=>{t[n.name]=n}),t):e||t}function Ec(e={}){return Array.isArray(e)?e:Object.keys(e).map(t=>(e[t].name=t,e[t]))}function Tc({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=Ac(l.modifiers);return Object.assign({},l,{placement:n,enabled:e,strategy:o?"fixed":l.strategy,modifiers:Ec(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 Rc=["children","usePopper"];function Lc(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 Fc=()=>{};function Sr(e={}){const t=A.useContext(Yn),[n,i]=ul(),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=Cc(x,b,Tc({placement:c||m||"bottom-start",enabled:d,enableEvents:u??f,offset:r,flip:o,fixed:l,arrowElement:n,popperConfig:h})),_=Object.assign({ref:p||Fc,"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 Dc(b,g,{clickTrigger:a,disabled:!f}),[_,y]}function kr(e){let{children:t,usePopper:n=!0}=e,i=Lc(e,Rc);const[s,o]=Sr(Object.assign({},i,{usePopper:n}));return M.jsx(M.Fragment,{children:t(s,o)})}kr.displayName="DropdownMenu";const Ni={prefix:String(Math.round(Math.random()*1e10)),current:0},Mr=ue.createContext(Ni),Ic=ue.createContext(!1);let jc=!!(typeof window<"u"&&window.document&&window.document.createElement),ti=new WeakMap;function $c(e=!1){let t=A.useContext(Mr),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=ti.get(o);r==null?ti.set(o,{id:t.current,state:o.memoizedState}):o.memoizedState!==r.state&&(t.current=r.id,ti.delete(o))}n.current=++t.current}return n.current}function zc(e){let t=A.useContext(Mr);t===Ni&&!jc&&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=$c(!!e),i=`react-aria${t.prefix}`;return e||`${i}-${n}`}function Nc(e){let t=ue.useId(),[n]=A.useState(Yc()),i=n?"react-aria":`react-aria${Ni.prefix}`;return e||`${i}-${t}`}const Bc=typeof ue.useId=="function"?Nc:zc;function Hc(){return!1}function Wc(){return!0}function Vc(e){return()=>{}}function Yc(){return typeof ue.useSyncExternalStore=="function"?ue.useSyncExternalStore(Vc,Hc,Wc):A.useContext(Ic)}const Cr=e=>{var t;return((t=e.getAttribute("role"))==null?void 0:t.toLowerCase())==="menu"},Ts=()=>{};function Pr(){const e=Bc(),{show:t=!1,toggle:n=Ts,setToggle:i,menuElement:s}=A.useContext(Yn)||{},o=A.useCallback(a=>{n(!t,a)},[t,n]),r={id:e,ref:i||Ts,onClick:o,"aria-expanded":!!t};return s&&Cr(s)&&(r["aria-haspopup"]=!0),[r,{show:t,toggle:n}]}function Or({children:e}){const[t,n]=Pr();return M.jsx(M.Fragment,{children:e(t,n)})}Or.displayName="DropdownToggle";const _i=A.createContext(null),Rs=(e,t=null)=>e!=null?String(e):t||null,Dr=A.createContext(null);Dr.displayName="NavContext";const Uc=["eventKey","disabled","onClick","active","as"];function Xc(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=A.useContext(_i),r=A.useContext(Dr),{activeKey:a}=r||{},l=Rs(e,t),c=n==null&&e!=null?Rs(a)===l:n;return[{onClick:Vt(u=>{i||(s==null||s(u),o&&!u.isPropagationStopped()&&o(l,u))}),"aria-disabled":i||void 0,"aria-selected":c,[ar("dropdown-item")]:""},{isActive:c}]}const Er=A.forwardRef((e,t)=>{let{eventKey:n,disabled:i,onClick:s,active:o,as:r=Ya}=e,a=Xc(e,Uc);const[l]=Ar({key:n,href:a.href,disabled:i,onClick:s,active:o});return M.jsx(r,Object.assign({},a,{ref:t},l))});Er.displayName="DropdownItem";function Ls(){const e=bl(),t=A.useRef(null),n=A.useCallback(i=>{t.current=i,e()},[e]);return[t,n]}function an({defaultShow:e,show:t,onSelect:n,onToggle:i,itemSelector:s=`* [${ar("dropdown-item")}]`,focusFirstItemOnShow:o,placement:r="bottom-start",children:a}){const l=Ua(),[c,h]=ml(t,e,i),[u,d]=Ls(),f=u.current,[g,m]=Ls(),p=g.current,b=Xa(c),x=A.useRef(null),v=A.useRef(!1),_=A.useContext(_i),y=A.useCallback((P,O,E=O==null?void 0:O.type)=>{h(P,{originalEvent:O,source:E})},[h]),w=Vt((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=Vt(()=>{p&&p.focus&&p.focus()}),C=Vt(()=>{const P=x.current;let O=o;if(O==null&&(O=u.current&&Cr(u.current)?"keyboard":!1),O===!1||O==="keyboard"&&!/^key.+$/.test(P))return;const E=bs(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=bs(u.current,s);let I=E.indexOf(P)+O;return I=Math.max(0,Math.min(I,E.length)),E[I]};return dl(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":Ka(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(_i.Provider,{value:w,children:M.jsx(Yn.Provider,{value:k,children:a})})}an.displayName="Dropdown";an.Menu=kr;an.Toggle=Or;an.Item=Er;const Bi=A.createContext({});Bi.displayName="DropdownContext";const Tr=A.forwardRef(({className:e,bsPrefix:t,as:n="hr",role:i="separator",...s},o)=>(t=Kt(t,"dropdown-divider"),M.jsx(n,{ref:o,className:qt(e,t),role:i,...s})));Tr.displayName="DropdownDivider";const Rr=A.forwardRef(({className:e,bsPrefix:t,as:n="div",role:i="heading",...s},o)=>(t=Kt(t,"dropdown-header"),M.jsx(n,{ref:o,className:qt(e,t),role:i,...s})));Rr.displayName="DropdownHeader";const Lr=A.forwardRef(({bsPrefix:e,className:t,eventKey:n,disabled:i=!1,onClick:s,active:o,as:r=fr,...a},l)=>{const c=Kt(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:qt(t,c,u.isActive&&"active",i&&"disabled")})});Lr.displayName="DropdownItem";const Fr=A.forwardRef(({className:e,bsPrefix:t,as:n="span",...i},s)=>(t=Kt(t,"dropdown-item-text"),M.jsx(n,{ref:s,className:qt(e,t),...i})));Fr.displayName="DropdownItemText";const Kc=typeof global<"u"&&global.navigator&&global.navigator.product==="ReactNative",qc=typeof document<"u",Gc=qc||Kc?A.useLayoutEffect:A.useEffect,Ir=A.createContext(null);Ir.displayName="NavbarContext";function jr(e,t){return e}function $r(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 zr=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(Ir),g=Kt(e,"dropdown-menu"),{align:m,drop:p,isRTL:b}=A.useContext(Bi);n=n||m;const x=A.useContext(ur),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 _=$r(d,p,b),[y,{hasShown:w,popper:k,show:S,toggle:C}]=Sr({flip:s,rootCloseEvent:i,show:o,usePopper:!f&&v.length===0,offset:[0,2],popperConfig:l,placement:_});if(y.ref=lr(jr(u),y.ref),Gc(()=>{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:qt(t,g,S&&"show",d&&`${g}-end`,c&&`${g}-${c}`,...v)})});zr.displayName="DropdownMenu";const Nr=A.forwardRef(({bsPrefix:e,split:t,className:n,childBsPrefix:i,as:s=Ft,...o},r)=>{const a=Kt(e,"dropdown-toggle"),l=A.useContext(Yn);i!==void 0&&(o.bsPrefix=i);const[c]=Pr();return c.ref=lr(c.ref,jr(r)),M.jsx(s,{className:qt(n,a,t&&`${a}-split`,(l==null?void 0:l.show)&&"show"),...c,...o})});Nr.displayName="DropdownToggle";const Br=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}=hl(e,{show:"onToggle"}),g=A.useContext(ur),m=Kt(n,"dropdown"),p=qa(),b=k=>d===!1?k==="click":d==="inside"?k!=="rootClose":d==="outside"?k!=="select":!0,x=Ga((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)))}),_=$r(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(Bi.Provider,{value:y,children:M.jsx(an,{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:qt(o,s&&"show",w[i])})})})});Br.displayName="Dropdown";const ei=Object.assign(Br,{Toggle:Nr,Menu:zr,Item:Lr,ItemText:Fr,Divider:Tr,Header:Rr});/*! * @kurkle/color v0.3.2 * https://github.com/kurkle/color#readme * (c) 2023 Jukka Kurkela -- GitLab