2 lines
8.6 KiB
JavaScript
2 lines
8.6 KiB
JavaScript
function g(e){const n=e<0,t=Math.abs(Math.round(e)),o=Math.floor(t/60),r=t%60;return(n?"−":"")+o+":"+(r<10?"0":"")+r}function P(e){return e.map(n=>Number.isFinite(n)&&n>0?n:0)}function E(e){return Number.isFinite(e)&&e>0?e:0}function O(e){const n=P(e.budgets),t=n.reduce((f,p)=>f+p,0),o=e.targetSeconds>0?e.targetSeconds:t,r=n.length===0?0:Math.max(0,Math.min(n.length-1,Math.trunc(e.index)||0)),l=E(e.elapsed),i=E(e.slideElapsed),s=n[r]??0,a=s-i;let d="",u=!1;if(!e.idle){let f=Math.min(i,s);for(let b=0;b<r;b++)f+=n[b]??0;const p=Math.round(f-l);u=p<0,d=p>=0?"zapas "+g(p):"opóźnienie "+g(-p)}return{slide:s?g(a):"—",total:g(o-l),pace:d,slideOver:s>0&&a<0,totalOver:l>o,late:u,idle:e.idle,paused:e.paused,hidden:e.hidden,elapsed:Math.floor(l),slideElapsed:Math.floor(i)}}function te(e){const n=P(e.budgets),t=n.map(()=>0);let o=0,r=0,l=0,i=!1;function s(c){return n.length===0?0:Math.max(0,Math.min(n.length-1,c))}function a(){return r===0&&o===0}function d(){return O({budgets:n,targetSeconds:e.targetSeconds,index:l,slideElapsed:t[l]??0,elapsed:o,idle:a(),paused:r===0&&o>0,hidden:i})}function u(){if(!r)return;const c=e.now(),M=(c-r)/1e3;r=c,n.length>0&&(t[l]+=M),o+=M}function f(c){l=s(c),r===0&&o===0&&(r=e.now())}function p(c){l=s(c)}function b(){!o&&!r||(u(),r=r?0:e.now())}function R(){for(let c=0;c<t.length;c++)t[c]=0;o=0,r=0}return{go:f,seek:p,tick:u,pause:b,reset:R,toggleHidden(){i=!i},view:d}}const A="remote.action",S="remote.state",oe=300,re=1e4,H=45e3,le=15e3,_=25e3,ie=1e4,se=1e3,y=800,x=["next","prev","first","last","goto","speak","notes","sources","special","back","clock-pause","clock","clock-reset","toolbar","scheme","sync"],C=/^[A-Za-z0-9_-]{8,64}$/,D=9999,T=9999,k=86400,L=new Set(x),v=new Set(["say","notes","srcs"]),V={next:"ArrowRight",prev:"ArrowLeft",first:"Home",last:"End",speak:"p",notes:"n",sources:"z",special:"s",back:"Escape","clock-pause":"t",clock:"c","clock-reset":"r",toolbar:"h",scheme:"j"};function ae(e){const n=V[e];return!n||n.toLowerCase()==="f"?null:n}function m(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function h(e,n,t){return typeof e=="number"&&Number.isInteger(e)&&e>=n&&e<=t}function F(e){if(!m(e))return null;const n=e.action,t=e.tab;if(typeof n!="string"||!L.has(n)||typeof t!="string"||t!==""&&!C.test(t))return null;const o=n;return o==="goto"?h(e.number,1,D)?{action:o,number:e.number,tab:t}:null:e.number!==void 0?null:{action:o,tab:t}}function G(e){if(!m(e))return null;const{elapsed:n,slide_elapsed:t,paused:o,hidden:r,idle:l}=e;return!h(n,0,k)||!h(t,0,k)||typeof o!="boolean"||typeof r!="boolean"||typeof l!="boolean"?null:{elapsed:n,slide_elapsed:t,paused:o,hidden:r,idle:l}}function B(e){if(!m(e))return null;const{tab:n,claim:t,bye:o,number:r,total:l,special:i,has_special:s,panel:a,toolbar_hidden:d}=e;if(typeof n!="string"||!C.test(n)||typeof t!="boolean"||typeof o!="boolean"||!h(r,0,T)||!h(l,0,T)||r>l||typeof i!="boolean"||typeof s!="boolean"||typeof d!="boolean"||a!==null&&(typeof a!="string"||!v.has(a)))return null;const u=e.light===void 0?!1:e.light;if(typeof u!="boolean")return null;const f=G(e.clock);return f?{tab:n,claim:t,bye:o,number:r,total:l,special:i,has_special:s,panel:a,toolbar_hidden:d,light:u,clock:f}:null}function ce(e){if(!m(e))return null;if(e.event===A){const n=F(e.payload);return n?{event:A,payload:n}:null}if(e.event===S){const n=B(e.payload);return n?{event:S,payload:n}:null}return null}function ue(){const e=globalThis.crypto;if(e&&typeof e.randomUUID=="function")return e.randomUUID();const n=new Uint8Array(16);if(e&&typeof e.getRandomValues=="function")e.getRandomValues(n);else for(let t=0;t<n.length;t++)n[t]=Math.floor(Math.random()*256);return Array.from(n,t=>t.toString(16).padStart(2,"0")).join("")}function N(e){return!Number.isFinite(e)||e<=0?0:Math.min(k,Math.floor(e))}function w(e){return!Number.isFinite(e)||e<=0?0:Math.min(T,Math.floor(e))}function de(e,n,t,o={}){const r=w(e.total),l=Math.min(w(e.number),r);return{tab:t,claim:!!o.claim,bye:!!o.bye,number:l,total:r,special:e.special,has_special:e.hasSpecial,panel:e.panel,toolbar_hidden:e.toolbarHidden,light:!!o.light,clock:n?{elapsed:N(n.elapsed),slide_elapsed:N(n.slideElapsed),paused:n.paused,hidden:n.hidden,idle:n.idle}:{elapsed:0,slide_elapsed:0,paused:!1,hidden:!1,idle:!0}}}function fe(e){let n=null;return{observe(t){const o=n===e;return t.bye?(t.tab===n&&(n=null),!1):((t.claim||n===null&&t.tab!==e)&&(n=t.tab),!o&&n===e)},activeTab:()=>n,isActive:()=>n===e,shouldApply(t){return n===e&&(t.tab===""||t.tab===e)}}}function pe(e,n=!1){const t=Number.isFinite(e)?Math.min(Math.max(e,0),1):0;return(n?y:2*y)+Math.floor(t*(y/2))}function be(){let e=null,n=0,t=null;return{observe(o,r){const l=e===null||e.bye||r-n>=_;return(o.claim&&!o.bye||t===null||l)&&(t=o.tab),o.tab!==t?!1:(e=o,n=r,o.bye&&(t=null),!0)},current:()=>e,receivedAt:()=>n,actionTab:()=>t??"",live(o){return e!==null&&!e.bye&&o-n<_},release(){t=null}}}function he(e,n){return e>0&&n-e<H}const K={now:()=>Date.now(),setTimeout:(e,n)=>globalThis.setTimeout(e,n),clearTimeout:e=>globalThis.clearTimeout(e)};function ge(e,n,t=K){let o=Number.NEGATIVE_INFINITY,r=null;function l(){o=t.now(),e()}function i(){r!==null&&t.clearTimeout(r),r=null}return{call(){if(r!==null)return;const s=o+n-t.now();if(s<=0){l();return}r=t.setTimeout(()=>{r=null,l()},s)},flush(){i(),l()},cancel:i}}const U=/<h([1-3])\b[^>]*>([\s\S]*?)<\/h\1\s*>/gi,Y=/<br\s*\/?>/gi,Z=/<[^>]*>/g,q=/&(#x[0-9a-f]+|#[0-9]+|amp|lt|gt|quot|apos|nbsp);/gi,z={amp:"&",lt:"<",gt:">",quot:'"',apos:"'",nbsp:" "};function j(e){return e.replace(q,(n,t)=>{const o=t.toLowerCase();if(o in z)return z[o];const r=o.startsWith("#x")?parseInt(o.slice(2),16):parseInt(o.slice(1),10);return!Number.isFinite(r)||r<=0||r>1114111?n:r===160?" ":String.fromCodePoint(r)})}function $(e){return j(e.replace(Y," ").replace(Z,"")).replace(/\s+/g," ").trim()}function I(e,n){const t=e.findIndex(o=>o.number===n);return t<0?0:t}function me(e){const n=e.body_html??"";for(const o of n.matchAll(U)){const r=$(o[2]??"");if(r)return r}const t=(e.section_label??"").trim();return t||`Slajd ${e.number}`}const W={say:"Na ekranie: Powiedz",notes:"Na ekranie: Notatki",srcs:"Na ekranie: Źródła"};function ye(e){const n=[];return e.special&&n.push("Specjalny"),e.panel&&n.push(W[e.panel]),e.toolbar_hidden&&n.push("Pasek ukryty"),e.clock.hidden&&n.push("Zegar ukryty"),n}const X={connecting:"Łączenie…",waiting:"Czekam na komputer",live:"Połączono",reconnecting:"Ponowne łączenie…",unavailable:"Pilot niedostępny"};function Te(e){return X[e]}function ke(e,n,t,o,r,l){const{clock:i}=e,a=!i.paused&&!i.idle?Math.max(0,(l-r)/1e3):0;return{budgets:n,targetSeconds:t,index:o,slideElapsed:i.slide_elapsed+a,elapsed:i.elapsed+a,idle:i.idle,paused:i.paused,hidden:i.hidden}}function Me(e,n){const t=n&&e!==null,o=e?.panel??null,r=!!e?.special,l=(i,s,a,d,u=null)=>({action:i,label:s,kbd:a,enabled:t&&d,pressed:u});return[l("prev","Wstecz","",!0),l("next","Dalej","",!0),l("sources","Źródła","Z",!0,o==="srcs"),l("notes","Notatki","N",!0,o==="notes"),l("special","Specjalny","S",!!e?.has_special||r,r),l("back","Powrót","Esc",r),l("clock-pause",e?.clock.paused?"Wznów":"Pauza","T",!e?.clock.idle),l("clock-reset","Zeruj","R",!0),l("clock",e?.clock.hidden?"Pokaż zegar":"Ukryj zegar","C",!0),l("toolbar","Pasek","H",!0,e?!e.toolbar_hidden:!1),l("speak","Powiedz","P",!0,o==="say"),l("scheme","Jasny","J",!0,!!e?.light),l("first","Początek","Home",!0),l("last","Koniec","End",!0)]}function Ee(e){return e===0?"Nie wysłano: brak połączenia z internetem. Naciśnij ponownie.":e===429?"Za dużo naciśnięć naraz. Odczekaj chwilę i naciśnij ponownie.":e===503?"Pilot jest teraz niedostępny. Steruj klawiaturą na komputerze.":"Nie wysłano polecenia. Naciśnij ponownie."}const J=/<img\b((?:[^>"']|"[^"]*"|'[^']*')*)>/gi,Q=/([^\s"'=<>/]+)(?:\s*=\s*(?:"([^"]*)"|'([^']*)'|([^\s"'=<>`]+)))?/g;function ee(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function ne(e){const n=new Map;for(const t of e.matchAll(Q)){const o=(t[1]??"").toLowerCase();!o||n.has(o)||n.set(o,t[2]??t[3]??t[4]??"")}return n}function Ae(e){return e?e.replace(J,(n,t)=>{const o=ne(t);if(!o.has("data-deck-image"))return n;const r=j(o.get("alt")??"").replace(/\s+/g," ").trim();return`<em class="drawer-image">${r?`[obraz: ${ee(r)}]`:"[obraz]"}</em>`}):""}function Se(e,n,t,o){if(e.slides.length===0)return null;if(t&&n){const r=e.slides[I(e.slides,n.number)]??null;return r&&n.special&&r.special?r.special:r}return e.slides[I(e.slides,o)]??null}export{se as C,ie as D,re as H,S as R,oe as S,ge as a,te as b,fe as c,ce as d,de as e,Ae as f,me as g,Se as h,Me as i,Te as j,le as k,be as l,Ee as m,ue as n,ye as o,he as p,O as q,ae as r,I as s,pe as t,ke as u};
|