Add settings page for managing forecasting API key and URL via UI

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
jtricerolph 2026-07-20 14:37:36 +00:00
parent cae411eae7
commit 1c411e402e
19809 changed files with 1962608 additions and 97 deletions

246
frontend/dist/assets/index-CtRlJPLa.js vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

BIN
frontend/dist/icons/icon-192.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
frontend/dist/icons/icon-512.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

14
frontend/dist/index.html vendored Normal file
View file

@ -0,0 +1,14 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="theme-color" content="#374151" />
<title>Reports</title>
<script type="module" crossorigin src="/reports/assets/index-CtRlJPLa.js"></script>
<link rel="stylesheet" crossorigin href="/reports/assets/index-PVYHf4e6.css">
<link rel="manifest" href="/reports/manifest.webmanifest"><script id="vite-plugin-pwa:register-sw" src="/reports/registerSW.js"></script></head>
<body>
<div id="root"></div>
</body>
</html>

1
frontend/dist/manifest.webmanifest vendored Normal file
View file

@ -0,0 +1 @@
{"name":"Reports","short_name":"Reports","start_url":"/reports/","display":"standalone","background_color":"#1d4ed8","theme_color":"#1d4ed8","lang":"en","scope":"/reports/","icons":[{"src":"/reports/icons/icon-192.png","sizes":"192x192","type":"image/png"},{"src":"/reports/icons/icon-512.png","sizes":"512x512","type":"image/png"}]}

1
frontend/dist/registerSW.js vendored Normal file
View file

@ -0,0 +1 @@
if('serviceWorker' in navigator) {window.addEventListener('load', () => {navigator.serviceWorker.register('/reports/sw.js', { scope: '/reports/' })})}

1
frontend/dist/sw.js vendored Normal file
View file

@ -0,0 +1 @@
if(!self.define){let e,i={};const n=(n,s)=>(n=new URL(n+".js",s).href,i[n]||new Promise(i=>{if("document"in self){const e=document.createElement("script");e.src=n,e.onload=i,document.head.appendChild(e)}else e=n,importScripts(n),i()}).then(()=>{let e=i[n];if(!e)throw new Error(`Module ${n} didnt register its module`);return e}));self.define=(s,r)=>{const t=e||("document"in self?document.currentScript.src:"")||location.href;if(i[t])return;let o={};const d=e=>n(e,t),c={module:{uri:t},exports:o,require:d};i[t]=Promise.all(s.map(e=>c[e]||d(e))).then(e=>(r(...e),o))}}define(["./workbox-9c191d2f"],function(e){"use strict";self.skipWaiting(),e.clientsClaim(),e.precacheAndRoute([{url:"registerSW.js",revision:"f92793d9cf2af040db5b9d00648bb489"},{url:"index.html",revision:"5124245a4535dd2b8afdc479ca0b8c86"},{url:"icons/icon-512.png",revision:"0c4b9ede73c99ac2decaded991577197"},{url:"icons/icon-192.png",revision:"027848faa5147db997ab23095bf32deb"},{url:"assets/index-PVYHf4e6.css",revision:null},{url:"assets/index-CtRlJPLa.js",revision:null},{url:"manifest.webmanifest",revision:"a3786d3e538ed573dc3d28928a0cce61"}],{}),e.cleanupOutdatedCaches(),e.registerRoute(new e.NavigationRoute(e.createHandlerBoundToURL("/reports/index.html"),{denylist:[/\/api\//]}))});

1
frontend/dist/workbox-9c191d2f.js vendored Normal file

File diff suppressed because one or more lines are too long