/* eslint-disable no-new */ import Vue from 'vue'; import axios from '../../lib/utils/axios_utils'; import notebookLab from '../../notebook/index.vue'; export default () => { const el = document.getElementById('js-notebook-viewer'); new Vue({ el, components: { notebookLab, }, data() { return { error: false, loadError: false, loading: true, json: {}, }; }, mounted() { if (gon.katex_css_url) { const katexStyles = document.createElement('link'); katexStyles.setAttribute('rel', 'stylesheet'); katexStyles.setAttribute('href', gon.katex_css_url); document.head.appendChild(katexStyles); } if (gon.katex_js_url) { const katexScript = document.createElement('script'); katexScript.addEventListener('load', () => { this.loadFile(); }); katexScript.setAttribute('src', gon.katex_js_url); document.head.appendChild(katexScript); } else { this.loadFile(); } }, methods: { loadFile() { axios.get(el.dataset.endpoint) .then(res => res.data) .then((data) => { this.json = data; this.loading = false; }) .catch((e) => { if (e.status !== 200) { this.loadError = true; } this.error = true; }); }, }, template: `
An error occurred whilst loading the file. Please try again later. An error occurred whilst parsing the file.