bookmark-manager/assets/start.js
2025-05-17 16:20:29 +02:00

65 lines
1.8 KiB
JavaScript

const { loadModule } = window['vue3-sfc-loader'];
const options = {
moduleCache: {
vue: Vue,
},
getFile(url) {
return fetch(url).then((resp) =>
resp.ok ? resp.text() : Promise.reject(resp)
);
},
addStyle(styleStr) {
const style = document.createElement('style');
style.textContent = styleStr;
const ref = document.head.getElementsByTagName('style')[0] || null;
document.head.insertBefore(style, ref);
},
};
var vueApp = Vue.createApp({
data() {
return {
modeEdit: false,
elements: [{
id: '234bi23b4ikj',
type: 'jumbotron',
title: 'my super awesome title',
text: 'there is nothing better on this planet'
},
{
id: '234bi23b4ikj',
type: 'grid',
title: 'Group 1',
columns: 2,
elements: [{
id: '234bi23b4ikj',
type: 'link',
link: 'https://google.com/',
title: 'Tisoware',
description: 'Elektronische Arbeitszeiterfassung'
},
{
id: '234bi23b4ikj',
type: 'link',
link: 'https://google.com/',
title: 'IT Helpdesk',
description: 'Helpdesk der operativen IT für Supportanfragen'
}]
}]
}
},
methods: {
toggleEditor()
{
this.modeEdit = !this.modeEdit;
}
},
components: {
DynamicRoot: Vue.defineAsyncComponent(() =>
loadModule('/vue/root.vue', options)
),
},
}).mount('#app');