47 lines
1.9 KiB
HTML
47 lines
1.9 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
<title>nuVistA</title>
|
|
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@5.1/dist/css/bootstrap.min.css" />
|
|
<link rel="stylesheet" type="text/css" href="/table-sticky.css" />
|
|
<link rel="stylesheet" type="text/css" href="/userstyle.css" />
|
|
</head>
|
|
<body><div id='root'></div></body>
|
|
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/vue@3.2"></script>
|
|
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/vue-router@4"></script>
|
|
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/bootstrap@5.1/dist/js/bootstrap.min.js"></script>
|
|
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/vue3-sfc-loader/dist/vue3-sfc-loader.js"></script>
|
|
<script type="text/javascript">
|
|
var loadModule = window['vue3-sfc-loader'].loadModule;
|
|
var options = {
|
|
moduleCache: {
|
|
vue: Vue
|
|
},
|
|
async getFile(url) {
|
|
const res = await fetch(url);
|
|
if(res.ok) return {
|
|
getContentData: asBinary => asBinary ? res.arrayBuffer() : res.text(),
|
|
}
|
|
else throw Object.assign(new Error(res.statusText + ' ' + url), { res });
|
|
},
|
|
addStyle(textContent) {
|
|
const style = Object.assign(document.createElement('style'), { textContent });
|
|
const ref = document.head.getElementsByTagName('style')[0] || null;
|
|
document.head.insertBefore(style, ref);
|
|
},
|
|
};
|
|
var secret = window.location.hash.substring(1);
|
|
var app = Vue.createApp({
|
|
components: {
|
|
'app': Vue.defineAsyncComponent(function() { return loadModule('/App.vue', options); })
|
|
},
|
|
data: function() { return { secret: secret }; },
|
|
template: '<app :secret="secret"></app>'
|
|
});
|
|
app.use(VueRouter.createRouter({ history: VueRouter.createWebHistory(), routes: [] }));
|
|
app.mount('#root');
|
|
</script>
|
|
</html>
|