11 lines
5.6 KiB
JavaScript
Executable File
11 lines
5.6 KiB
JavaScript
Executable File
function E(e,t,n,r,o){let i=`${o?"":"lib/"}screen.html?screen=${t}&lang=${n}&theme=${r}`;a(e).src=i}function y(e){return document.getElementById(e)}function a(e){let t=document.getElementById(e);if(!t)throw new Error(`Cannot find element '${e}'`);return t}function v(e){let t=parseInt(e);if(isNaN(t))throw new Error("Could not parse string to int. String was: "+e);return t}var m=null;function g(e){m&&clearTimeout(m),m=setTimeout(()=>{m=null,e()},100)}function x(e){var t;(t=y(e))==null||t.style.setProperty("display","none")}function T(e,t){var n;(n=y(e))==null||n.style.setProperty("display",t||"block")}function w(e,t){let n=a("screens"),r=e===0?n.offsetWidth:n.offsetWidth/e,o=n.offsetHeight,i=a(t),l=o*h;if(r>l){let d=Math.min(r,(r-l)/2);i.style.paddingTop="0",i.style.paddingBottom="0",i.style.paddingLeft=d+"px",i.style.paddingRight=d+"px"}else{let d=r/h;if(o>d){let b=Math.min(o,(o-d)/2);i.style.paddingTop=b+"px",i.style.paddingBottom=b+"px",i.style.paddingLeft="0",i.style.paddingRight="0"}}}var h=16/9;var L={};function S(e){L=e,_()}var c=H(),A=document.documentElement.lang;function P(e,t){let n=e.textContent||"";t===!0&&e.setAttribute("data-tr-org",n),e.textContent=u(n)}function k(e){for(let n of e.childNodes)k(n);if(e.nodeType!==Node.ELEMENT_NODE)return;let t=e;t.hasAttribute("data-tr")&&(t.hasAttribute("data-tr-org")||P(t,!0))}var F=function(e){for(let t of e){if(t.type==="attributes"&&t.target.nodeType===Node.ELEMENT_NODE){let n=t.target,r=n.getAttribute("data-tr");if(!r||r.length<1)continue;n.setAttribute("data-tr-org",r),n.textContent=u(r),n.setAttribute("data-tr","");continue}if(!(t.addedNodes.length<1||t.type!=="childList"))for(let n of t.addedNodes)k(n)}};function _(){document.documentElement.lang=c,document.querySelectorAll("[data-tr]").forEach(e=>{P(e,!0)}),new MutationObserver(F).observe(document,{attributeFilter:["data-tr"],childList:!0,subtree:!0})}function H(){return navigator.languages&&navigator.languages.length?navigator.languages[0]:navigator.language||"en-US"}function p(e){c=e,document.documentElement.lang=e,document.querySelectorAll("[data-tr-org]").forEach(t=>{let n=t.getAttribute("data-tr-org");if(!n){t.textContent="";return}let r;A===c?r=n:r=u(n),t.textContent=r})}function O(e){var n;return A===c?e:((n=L[e])==null?void 0:n[c])||e}function u(e,...t){let n=O(e),r={};t.forEach((o,i)=>{if(typeof o=="object"){for(let l in o)r[l]=o[l];return}r[""+i.toString()]=o});try{return new Function(...Object.keys(r),`return \`${n}\`;`)(...Object.values(r))}catch(o){return console.error("webtr: tr error: ",o),n}}var B={"Take Home Package - ${exerciseName}":{"de-DE":"Take Home Package - ${exerciseName}"},'Failed to load THP: \n"${e.message}"\nat ${e.filename}:${e.lineno}:${e.colno}':{"de-DE":'Fehler beim Laden des THP: \n"${e.message}"\nbei ${e.filename}:${e.lineno}:${e.colno}'},"${num} topic(s) could not be loaded.":{"de-DE":"${num} Topic(s) konnten nicht geladen werden."},"Topic has missing values. Object was '${t}'":{"de-DE":"Dem Topic fehlen ein oder mehrere Eigenschaften. Inhalt des Objekts: '${t}'"},"Please reload.":{"de-DE":"Bitte laden Sie diese Seite neu."},Activate:{"de-DE":"Aktivieren"},"Screen 1":{"de-DE":"Bildschirm 1"},"Screen 2":{"de-DE":"Bildschirm 2"},Loading:{"de-DE":"Wird geladen"},"Dark mode":{"de-DE":"Abdunkeln"},Language:{"de-DE":"Sprache"},Play:{"de-DE":"Wiedergabe"},Pause:{"de-DE":"Pausieren"},Stop:{"de-DE":"Stopp"},Filter:{"de-DE":null},"Enter Fullscreen mode on this screen":{"de-DE":"Vollbildmodus auf diesem Bildschirm aktivieren"},"Use without Fullscreen mode":{"de-DE":"Ohne Vollbildmodus nutzen"}},$=B;globalThis.addEventListener("error",e=>{console.error("DOM error: ",e),alert(u('Failed to load popout: \n"${e.message}"\nat ${e.filename}:${e.lineno}:${e.colno}',{e})),T("error","flex"),x("loading")});var s=null;globalThis.addEventListener("beforeunload",()=>{s!==null&&(window.opener.postMessage({closed:s},"*"),console.log("sending closed"))});function N(e){let t=e?"block":"none";function n(r){a(r).style.setProperty("display",t)}n("button-container"),n("button_with_fullscreen"),n("button_no_fullscreen")}function D(){N(!1),window.opener.postMessage({activated:s},"*")}function M(e){e===1?document.documentElement.requestFullscreen().then(()=>{D()}):D()}globalThis.addEventListener("load",()=>{let t=new URLSearchParams(document.location.search).get("screen");if(!t)throw new Error("Url parameter 'screen' missing!");s=v(t),window.opener.postMessage({popoutLoaded:s},"*"),document.title="Take Home Package - Screen "+s});globalThis.addEventListener("DOMContentLoaded",()=>{S($),a("button_with_fullscreen").addEventListener("click",()=>M(1)),a("button_no_fullscreen").addEventListener("click",()=>M(2));function e(){N(!0)}globalThis.addEventListener("fullscreenchange",()=>{document.fullscreenElement||e()}),globalThis.addEventListener("resize",()=>g(f)),new ResizeObserver(()=>g(f)).observe(a("main")),f()});function f(){w(0,"screen")}globalThis.addEventListener("message",function(e){if(s===null)throw new Error("Got a message before the screen id was set");let t=e.data;if("init"in t){let{lang:n,theme:r}=t.init;p(n),document.documentElement.setAttribute("data-theme",r),E("frame-screen",s,n,r,!0);return}else if("changeLang"in t){let n=t.changeLang;p(n)}else if("changeTheme"in t){let n=t.changeTheme;document.documentElement.setAttribute("data-theme",n)}else if("screenLoaded"in t){console.log("popout received screenLoaded",t.screenLoaded),window.opener.postMessage({screenLoaded:s},"*");return}a("frame-screen").contentWindow.postMessage(t,"*")});
|
|
/*! Bundled license information:
|
|
|
|
webtr/dist/webtr.js:
|
|
(**
|
|
* @file webtr.ts
|
|
* @copyright Mike Wille <mike@wille.io>
|
|
* @license MIT
|
|
*)
|
|
*/
|