{"version":3,"file":"index-BScWU1qg.mjs","names":[],"sources":["../../src/scripts/service-worker/registerServiceWorker.ts","../../src/scripts/main.ts"],"sourcesContent":["import { createDialog } from \"@/core/createDialog\";\n\nexport async function registerServiceWorker(): Promise {\n if (!(\"serviceWorker\" in navigator)) {\n return;\n }\n\n if (navigator.serviceWorker.controller) {\n // The service worker is registered already. The browser will handle updating it.\n // This event listener ensures that the page reloads if the SW is updated because a new\n // SW means a new set of assets, new JS files for , meaning old routes will\n // be unable to load.\n navigator.serviceWorker.addEventListener(\"controllerchange\", () => {\n if (import.meta.env.PROD) {\n const [_dialog, content] = createDialog({\n title: \"Application Updated\",\n autoOpen: true,\n buttons: { \"Reload Page\": () => location.replace(location.href) },\n });\n\n content.append(\n \"The application has been updated. Features that have not yet loaded (including navigation) will not work until you reload the page.\",\n );\n } else {\n console.warn(\n \"The service worker controller has been updated. In production builds, this will prompt the user to reload the page.\",\n );\n }\n });\n }\n\n const path = import.meta.env.DEV\n ? \"/scripts/service-worker/service-worker.ts\"\n : \"/service-worker.mjs\";\n // Use search params to provide browser capability detail to the SW that it cannot detect itself.\n const search = new URLSearchParams({\n nav: \"navigation\" in window ? \"1\" : \"0\",\n v: import.meta.env.VITE_APP_VERSION,\n });\n const url = path + \"?\" + search;\n\n const sw = await navigator.serviceWorker.register(url, { scope: \"/\", type: \"module\" });\n await sw.update();\n}\n","import {\n errorDialog,\n registerAutoFocus,\n registerDefaultToday,\n registerErrorHandler,\n registerInterestFor,\n registerPeopleDataList,\n registerSoftNavigate,\n registerSplashScreen,\n} from \"@/core\";\nimport { registerServiceWorker } from \"@/service-worker/registerServiceWorker\";\n\n// Vite bundles main.css in the html into base64 with just @import statements and does\n// not follow the references to the whole css tree of the app. Importing it here indicates\n// to vite that we need the whole file.\nimport \"../styles/main.css\";\n\nprogressiveEnhancement(\n registerErrorHandler,\n registerSoftNavigate,\n registerDefaultToday,\n registerSplashScreen,\n registerAutoFocus,\n registerServiceWorker,\n registerPeopleDataList,\n registerInterestFor,\n);\n\ntype ProgressiveEnhancementOutput = void | Disposable | Promise;\ntype ProgressiveEnhancement = () => ProgressiveEnhancementOutput;\n\nasync function progressiveEnhancement(...fn: readonly ProgressiveEnhancement[]): Promise {\n for (const pe of fn) {\n try {\n await pe();\n } catch (e) {\n console.error(\"Failed to register progressive enhancement.\", pe.name, e);\n errorDialog(e);\n }\n }\n}\n"],"mappings":"oxBAEA,eAAsB,GAAuC,CAC3D,GAAI,EAAE,kBAAmB,WACvB,OAGE,UAAU,cAAc,YAK1B,UAAU,cAAc,iBAAiB,uBAA0B,CACvC,CACxB,GAAM,CAAC,EAAS,GAAW,EAAa,CACtC,MAAO,sBACP,SAAU,GACV,QAAS,CAAE,kBAAqB,SAAS,QAAQ,SAAS,KAAK,CAAE,CAClE,CAAC,CAEF,EAAQ,OACN,sIACD,GAMH,CAGJ,IAQM,EAAM,uBAJG,IAAI,gBAAgB,CACjC,IAAK,eAAgB,OAAS,IAAM,IACpC,EAAA,gBACD,CAAC,CAIF,MADW,MAAM,UAAU,cAAc,SAAS,EAAK,CAAE,MAAO,IAAK,KAAM,SAAU,CAAC,EAC7E,QAAQ,CCzBnB,EACE,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACD,CAKD,eAAe,EAAuB,GAAG,EAAsD,CAC7F,IAAK,IAAM,KAAM,EACf,GAAI,CACF,MAAM,GAAI,OACH,EAAG,CACV,QAAQ,MAAM,8CAA+C,EAAG,KAAM,EAAE,CACxE,EAAY,EAAE"}