Files
qt5-legatus-legacy/Lts/Tools/THP2/lib/screen.js
T
2026-08-13 18:33:10 +02:00

11 lines
7.2 KiB
JavaScript
Executable File

function A(e){return document.getElementById(e)}function b(e){return s("topic_"+e)}function s(e){let n=document.getElementById(e);if(!n)throw new Error(`Cannot find element '${e}'`);return n}function T(e){let n=parseInt(e);if(isNaN(n))throw new Error("Could not parse string to int. String was: "+e);return n}var q=16/9;function l(e){return e*100+"%"}function _(e,n,t,o,i){let r=e.style,a=o<2e-4||i<2e-4;r.left=l(n),r.top=l(t),r.width=l(a?1:o),r.height=l(a?1:i)}function d(e){var o,i,r;let n="topic_"+e.id;if(A(n)!==null){console.error("!!! element for topic already exists: "+e.id);return}let t=document.createElement(e.element);if(t.setAttribute("data-topic-type",e.type.toString()),t.setAttribute("data-topic-start",e.start.toString()),t.setAttribute("data-topic-duration",e.duration.toString()),t.setAttribute("data-topic-x",e.x.toString()),t.setAttribute("data-topic-y",e.y.toString()),t.setAttribute("data-topic-w",e.w.toString()),t.setAttribute("data-topic-h",e.h.toString()),t.setAttribute("data-topic-channel",e.channel.toString()),t.setAttribute("data-topic-filter",(i=(o=e.filter)==null?void 0:o.toString())!=null?i:"(null)"),t.setAttribute("data-topic-description",(r=e.description)!=null?r:""),t.addEventListener("error",a=>{console.error(`Topic ${e.id}# (${e.description||" - "}) error:`,a)}),["audio"].includes(e.element))t.setAttribute("hidden","");else{t.style.setProperty("z-index",""+(e.id+(e.filter?e.filter*1e4:0))),t.style.setProperty("position","fixed");let{x:a,y:S,w:L,h:w}=e;_(t,a,S,L,w)}return t.classList.add("topic"),t.id=n,s("screen").appendChild(t),t}var y={};function h(e){y=e,N()}var c=M(),E=document.documentElement.lang;function v(e,n){let t=e.textContent||"";n===!0&&e.setAttribute("data-tr-org",t),e.textContent=m(t)}function P(e){for(let t of e.childNodes)P(t);if(e.nodeType!==Node.ELEMENT_NODE)return;let n=e;n.hasAttribute("data-tr")&&(n.hasAttribute("data-tr-org")||v(n,!0))}var $=function(e){for(let n of e){if(n.type==="attributes"&&n.target.nodeType===Node.ELEMENT_NODE){let t=n.target,o=t.getAttribute("data-tr");if(!o||o.length<1)continue;t.setAttribute("data-tr-org",o),t.textContent=m(o),t.setAttribute("data-tr","");continue}if(!(n.addedNodes.length<1||n.type!=="childList"))for(let t of n.addedNodes)P(t)}};function N(){document.documentElement.lang=c,document.querySelectorAll("[data-tr]").forEach(e=>{v(e,!0)}),new MutationObserver($).observe(document,{attributeFilter:["data-tr"],childList:!0,subtree:!0})}function M(){return navigator.languages&&navigator.languages.length?navigator.languages[0]:navigator.language||"en-US"}function u(e){c=e,document.documentElement.lang=e,document.querySelectorAll("[data-tr-org]").forEach(n=>{let t=n.getAttribute("data-tr-org");if(!t){n.textContent="";return}let o;E===c?o=t:o=m(t),n.textContent=o})}function D(e){var t;return E===c?e:((t=y[e])==null?void 0:t[c])||e}function m(e,...n){let t=D(e),o={};n.forEach((i,r)=>{if(typeof i=="object"){for(let a in i)o[a]=i[a];return}o[""+r.toString()]=i});try{return new Function(...Object.keys(o),`return \`${t}\`;`)(...Object.values(o))}catch(i){return console.error("webtr: tr error: ",i),t}}var H={"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"}},k=H;globalThis.addEventListener("DOMContentLoaded",()=>{h(k)});function g(e){return`../topics/${e}`}function O(e){let n=d(e);return n.src=g(e.src),n.controls=!1,n.muted=!1,n}function V(e){let n=d(e);n.type="application/pdf";let t=[];return e.page&&t.push(`page=${e.page}`),e.zoom&&t.push(`zoom=${e.zoom}`),n.data=`${g(e.filename)}#toolbar=0&${t.join("&")}`,n}function C(e){let n=d(e);return n.src=g(e.src),n}function U(e){switch(e){case"video":return j();case"object":return B();case"img":return R();case"marker":return F();default:throw new Error("element invalid: "+e)}}var p=!1;function j(){return{init:function(e,n){let t=O(e);t.currentTime=n,t.muted=p},playbackPlay:function(e,n){let t=b(e.id);t.currentTime=n,setTimeout(()=>t.play(),1)},playbackPause:function(e){s("topic_"+e.id).pause()},playbackStop:function(e){s("topic_"+e.id).remove()},setPlaybackPosition:function(e,n){let t=s("topic_"+e.id);t.currentTime=n}}}function I(e){s("topic_"+e.id).remove()}function B(){return{init:function(e,n){V(e)},playbackPlay:function(e,n){},playbackPause:function(e){},playbackStop:function(e){I(e)},setPlaybackPosition:function(e,n){}}}function R(){return{init:function(e,n){C(e)},playbackPlay:function(e,n){},playbackPause:function(e){},playbackStop:function(e){I(e)},setPlaybackPosition:function(e,n){}}}function F(){return{init:function(e,n){},playbackPlay:function(e,n){},playbackPause:function(e){},playbackStop:function(e){},setPlaybackPosition:function(e,n){}}}globalThis.addEventListener("message",function(e){let n=e.data;if(!("init"in n))if("commandMessage"in n){let t=n.commandMessage;if(t.topic){let o=U(t.topic.element);switch(t.controlType){case 0:{typeof t.pos=="number"&&o.init(t.topic,t.pos);break}case 1:{o.playbackPause(t.topic);break}case 2:{typeof t.pos=="number"&&o.playbackPlay(t.topic,t.pos);break}case 3:{o.playbackStop(t.topic);break}case 4:{typeof t.pos=="number"&&o.setPlaybackPosition(t.topic,t.pos);break}default:{console.error("UNKNOWN CONTROL TYPE (with topic)");return}}}else switch(t.controlType){case 5:{p=!0;let o=this.document.getElementsByTagName("video");for(let i of o)i.muted=!0;break}case 6:{p=!1;let o=this.document.getElementsByTagName("video");for(let i of o)i.muted=!1;break}default:{console.error("UNKNOWN CONTROL TYPE (non-topic)");return}}}else if("changeLang"in n){let t=n.changeLang;u(t)}else if("changeTheme"in n){let t=n.changeTheme;document.documentElement.setAttribute("data-theme",t)}else console.log("screen.ts: unknown msg type",n)});function W(e,n,t,o){let i=f(e,n);try{return t(i)}catch(r){throw new Error(`Url parameter '${n}' must be of type ${o}!`)}}function f(e,n){let t=e.get(n);if(!t)throw new Error(`Url parameter '${n}' missing!`);return t}function z(e,n){return W(e,n,T,"number")}var x=null;globalThis.addEventListener("load",()=>{let e=new URLSearchParams(document.location.search);x=z(e,"screen"),e.has("lang")&&u(f(e,"lang")),e.has("theme")&&document.documentElement.setAttribute("data-theme",f(e,"theme")),window.parent.postMessage({screenLoaded:x},"*")});
/*! Bundled license information:
webtr/dist/webtr.js:
(**
* @file webtr.ts
* @copyright Mike Wille <mike@wille.io>
* @license MIT
*)
*/