-
+ {#if !vendored}
+
+ {/if}
1) {
alert("Please only provide a single file.");
} else {
+ console.log(files[0]);
readerModel.readData(files[0]);
}
}
diff --git a/src/routes/(main)/+layout.svelte b/src/lib/components/Main.svelte
similarity index 100%
rename from src/routes/(main)/+layout.svelte
rename to src/lib/components/Main.svelte
diff --git a/src/lib/components/NavBar.svelte b/src/lib/components/NavBar.svelte
index df21808..90494db 100644
--- a/src/lib/components/NavBar.svelte
+++ b/src/lib/components/NavBar.svelte
@@ -12,6 +12,8 @@
import { createCollapsible, createDropdownMenu, melt } from "@melt-ui/svelte";
import { slide, fly } from "svelte/transition";
+ export let vendored: boolean = false;
+
onMount(() => {
const nav_dropdown = document.getElementById("nav-dropdown") as Element;
observer.observe(nav_dropdown);
@@ -49,18 +51,22 @@
}
function navLogoClicked() {
+ // It's easiest to just calculate this here. If we do it at the top of the
+ // page then we will likely do it before index path is set.
+ let logoTarget = vendored ? ($readerModel.indexPath ? "/visualization/" : "/details/") : "/";
+
if ($loading.status === "LOADING") {
// If we are in the loading state go back to root and reload to force the
// loading to stop
- history.pushState({}, "", "/");
+ history.pushState({}, "", logoTarget);
location.reload();
} else if ($url.pathname.replaceAll("/", "") === "error") {
// If we are navigating away from the error page then we want to clean out
// the errored state and push clean state
readerModel.clear();
- history.pushState({}, "", "/");
+ history.pushState({}, "", logoTarget);
} else {
- history.pushState({}, "", "/" + window.location.search);
+ history.pushState({}, "", logoTarget + window.location.search);
}
}
@@ -75,7 +81,7 @@
File: {$readerModel.name}
- {#if $readerModel.indexPath || $readerModel.rawSrc}
+ {#if !vendored && ($readerModel.indexPath || $readerModel.rawSrc)}
{
readerModel.clear();
diff --git a/src/lib/components/Vendored.svelte b/src/lib/components/Vendored.svelte
new file mode 100644
index 0000000..4f34645
--- /dev/null
+++ b/src/lib/components/Vendored.svelte
@@ -0,0 +1,59 @@
+
+
+
+
diff --git a/src/routes/(error)/incompatible/+page.svelte b/src/routes-sw/(error)/incompatible/+page.svelte
similarity index 100%
rename from src/routes/(error)/incompatible/+page.svelte
rename to src/routes-sw/(error)/incompatible/+page.svelte
diff --git a/src/routes-sw/(main)/+layout.svelte b/src/routes-sw/(main)/+layout.svelte
new file mode 100644
index 0000000..3a26f9c
--- /dev/null
+++ b/src/routes-sw/(main)/+layout.svelte
@@ -0,0 +1,5 @@
+
+
+
diff --git a/src/routes/(main)/+page.svelte b/src/routes-sw/(main)/+page.svelte
similarity index 100%
rename from src/routes/(main)/+page.svelte
rename to src/routes-sw/(main)/+page.svelte
diff --git a/src/routes/(main)/about/+page.svelte b/src/routes-sw/(main)/about/+page.svelte
similarity index 100%
rename from src/routes/(main)/about/+page.svelte
rename to src/routes-sw/(main)/about/+page.svelte
diff --git a/src/routes/(main)/details/+page.svelte b/src/routes-sw/(main)/details/+page.svelte
similarity index 100%
rename from src/routes/(main)/details/+page.svelte
rename to src/routes-sw/(main)/details/+page.svelte
diff --git a/src/routes/(main)/error/+page.svelte b/src/routes-sw/(main)/error/+page.svelte
similarity index 100%
rename from src/routes/(main)/error/+page.svelte
rename to src/routes-sw/(main)/error/+page.svelte
diff --git a/src/routes/(main)/provenance/+page.svelte b/src/routes-sw/(main)/provenance/+page.svelte
similarity index 100%
rename from src/routes/(main)/provenance/+page.svelte
rename to src/routes-sw/(main)/provenance/+page.svelte
diff --git a/src/routes/(main)/visualization/+page.svelte b/src/routes-sw/(main)/visualization/+page.svelte
similarity index 100%
rename from src/routes/(main)/visualization/+page.svelte
rename to src/routes-sw/(main)/visualization/+page.svelte
diff --git a/src/routes/+layout.js b/src/routes-sw/+layout.js
similarity index 100%
rename from src/routes/+layout.js
rename to src/routes-sw/+layout.js
diff --git a/src/routes-vend/(error)/incompatible/+page.svelte b/src/routes-vend/(error)/incompatible/+page.svelte
new file mode 100644
index 0000000..4b5e1ee
--- /dev/null
+++ b/src/routes-vend/(error)/incompatible/+page.svelte
@@ -0,0 +1,30 @@
+
+
+
+
Incompatible Browser
+
+
+ Sorry, your current browser does not support the latest web-technologies
+ that this site needs.
+
+
+
+
+
+
+
(requires version 47 or later; will not work in private browsing)
+
+
+
+
+
(requires version 49 or later)
+
+
+
diff --git a/src/routes-vend/(main)/+layout.svelte b/src/routes-vend/(main)/+layout.svelte
new file mode 100644
index 0000000..a445e38
--- /dev/null
+++ b/src/routes-vend/(main)/+layout.svelte
@@ -0,0 +1,5 @@
+
+
+
diff --git a/src/routes-vend/(main)/+page.svelte b/src/routes-vend/(main)/+page.svelte
new file mode 100644
index 0000000..e69de29
diff --git a/src/routes-vend/(main)/about/+page.svelte b/src/routes-vend/(main)/about/+page.svelte
new file mode 100644
index 0000000..e69de29
diff --git a/src/routes-vend/(main)/details/+page.svelte b/src/routes-vend/(main)/details/+page.svelte
new file mode 100644
index 0000000..e69de29
diff --git a/src/routes-vend/(main)/error/+page.svelte b/src/routes-vend/(main)/error/+page.svelte
new file mode 100644
index 0000000..e69de29
diff --git a/src/routes-vend/(main)/provenance/+page.svelte b/src/routes-vend/(main)/provenance/+page.svelte
new file mode 100644
index 0000000..e69de29
diff --git a/src/routes-vend/(main)/visualization/+page.svelte b/src/routes-vend/(main)/visualization/+page.svelte
new file mode 100644
index 0000000..e69de29
diff --git a/src/routes-vend/+layout.js b/src/routes-vend/+layout.js
new file mode 100644
index 0000000..9b63ad4
--- /dev/null
+++ b/src/routes-vend/+layout.js
@@ -0,0 +1,5 @@
+// Static render
+// export const prerender = true;
+
+export const ssr = false;
+export const trailingSlash = "always";
diff --git a/svelte.config.js b/svelte.config.js
index 59d164c..63a4d76 100644
--- a/svelte.config.js
+++ b/svelte.config.js
@@ -1,19 +1,12 @@
-import adapter from "@sveltejs/adapter-static";
-import { vitePreprocess } from "@sveltejs/kit/vite";
-import { preprocessMeltUI, sequence } from "@melt-ui/pp";
+import sw_config from "./sw-config.js";
+import vend_config from "./vend-config.js";
-/** @type {import('@sveltejs/kit').Config} */
-const config = {
- // Consult https://kit.svelte.dev/docs/integrations#preprocessors
- // for more information about preprocessors
- preprocess: sequence([vitePreprocess(), preprocessMeltUI()]),
+let config;
- kit: {
- // adapter-auto only supports some environments, see https://kit.svelte.dev/docs/adapter-auto for a list.
- // If your environment is not supported or you settled on a specific environment, switch out the adapter.
- // See https://kit.svelte.dev/docs/adapters for more information about adapters.
- adapter: adapter({ fallback: "index.html" }),
- },
-};
+if (process.env.VENDORED) {
+ config = vend_config;
+} else {
+ config = sw_config;
+}
export default config;
diff --git a/sw-config.js b/sw-config.js
new file mode 100644
index 0000000..2aefe55
--- /dev/null
+++ b/sw-config.js
@@ -0,0 +1,24 @@
+import adapter from "@sveltejs/adapter-static";
+import { vitePreprocess } from "@sveltejs/kit/vite";
+import { preprocessMeltUI, sequence } from "@melt-ui/pp";
+
+/** @type {import('@sveltejs/kit').Config} */
+const config = {
+ // Consult https://kit.svelte.dev/docs/integrations#preprocessors
+ // for more information about preprocessors
+ preprocess: sequence([vitePreprocess(), preprocessMeltUI()]),
+
+ kit: {
+ // adapter-auto only supports some environments, see https://kit.svelte.dev/docs/adapter-auto for a list.
+ // If your environment is not supported or you settled on a specific environment, switch out the adapter.
+ // See https://kit.svelte.dev/docs/adapters for more information about adapters.
+ adapter: adapter({
+ fallback: "index.html",
+ }),
+ files: {
+ routes: "src/routes-sw",
+ },
+ },
+};
+
+export default config;
diff --git a/vend-config.js b/vend-config.js
new file mode 100644
index 0000000..3167216
--- /dev/null
+++ b/vend-config.js
@@ -0,0 +1,26 @@
+import adapter from "@sveltejs/adapter-static";
+import { vitePreprocess } from "@sveltejs/kit/vite";
+import { preprocessMeltUI, sequence } from "@melt-ui/pp";
+
+/** @type {import('@sveltejs/kit').Config} */
+const config = {
+ // Consult https://kit.svelte.dev/docs/integrations#preprocessors
+ // for more information about preprocessors
+ preprocess: sequence([vitePreprocess(), preprocessMeltUI()]),
+
+ kit: {
+ // adapter-auto only supports some environments, see https://kit.svelte.dev/docs/adapter-auto for a list.
+ // If your environment is not supported or you settled on a specific environment, switch out the adapter.
+ // See https://kit.svelte.dev/docs/adapters for more information about adapters.
+ adapter: adapter({
+ fallback: "index.html",
+ pages: "vendored",
+ }),
+ files: {
+ routes: "src/routes-vend",
+ serviceWorker: "",
+ },
+ },
+};
+
+export default config;