/*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ // @ts-check "use strict"; (function () { // @ts-ignore const vscode = acquireVsCodeApi(); function getSettings() { const element = document.getElementById('settings'); if (element) { const data = element.getAttribute('data-settings'); if (data) { return JSON.parse(data); } } throw new Error(`Could not load settings`); } const settings = getSettings(); // State let hasLoadedMedia = false; // Elements const video = document.createElement('video'); if (settings.src !== null) { video.src = settings.src; } video.playsInline = true; video.controls = true; video.autoplay = settings.autoplay; video.muted = settings.autoplay; video.loop = settings.loop; function onLoaded() { if (hasLoadedMedia) { return; } hasLoadedMedia = true; document.body.classList.remove('loading'); document.body.classList.add('ready'); document.body.append(video); } video.addEventListener('error', e => { if (hasLoadedMedia) { return; } hasLoadedMedia = true; document.body.classList.add('error'); document.body.classList.remove('loading'); }); if (settings.src === null) { onLoaded(); } else { video.addEventListener('canplaythrough', () => { onLoaded(); }); } document.querySelector('.open-file-link')?.addEventListener('click', (e) => { e.preventDefault(); vscode.postMessage({ type: 'reopen-as-text', }); }); }());