aboutsummaryrefslogtreecommitdiff
path: root/data/js/vue-app.js
diff options
context:
space:
mode:
authorPaul Oliver <contact@pauloliver.dev>2026-03-21 01:36:24 +0100
committerPaul Oliver <contact@pauloliver.dev>2026-04-06 06:13:34 +0200
commit52d836f146e080f83688fa67f56fb31dc3d1f5b8 (patch)
treef84dd4929bae23cc7f25ed21be9ded4107af950d /data/js/vue-app.js
parent9f7e70904e6c0fa650323ac5e50ebf6003da333c (diff)
Adds data server (WIP)data_improvements
Diffstat (limited to 'data/js/vue-app.js')
-rw-r--r--data/js/vue-app.js24
1 files changed, 24 insertions, 0 deletions
diff --git a/data/js/vue-app.js b/data/js/vue-app.js
new file mode 100644
index 0000000..80a813f
--- /dev/null
+++ b/data/js/vue-app.js
@@ -0,0 +1,24 @@
+const { createApp } = Vue
+const { loadModule } = window['vue3-sfc-loader']
+
+const addStyle = styleStr => {
+ const style = document.createElement('style')
+ const ref = document.head.getElementsByTagName('style')[0] || null
+ style.textContent = styleStr
+ document.head.insertBefore(style, ref)
+}
+
+const getFile = url => fetch(url).then(resp => resp.ok ? resp.text() : Promise.reject(resp))
+const moduleCache = { vue: Vue }
+
+const options = { addStyle, getFile, moduleCache }
+
+const app = createApp({
+ components: {
+ App: Vue.defineAsyncComponent(() => loadModule('vue/App.vue', options)),
+ Section: Vue.defineAsyncComponent(() => loadModule('vue/Section.vue', options)),
+ Plot: Vue.defineAsyncComponent(() => loadModule('vue/Plot.vue', options)),
+ },
+})
+
+app.mount('#app')