2 lines
16 KiB
JavaScript
2 lines
16 KiB
JavaScript
/* empty css */import{d as oe,Q as X,c as n,b as a,f as k,t as p,F as T,E as G,i as se,j as Fe,C,x as u,r as m,l as Ue,n as t,p as xe,X as Re,s as fe,_ as Te,o as Xe,az as Ge,A as ne,aA as Qe,aB as Je,m as et,aE as tt}from"./index-C7vQR2oS.js";import{p as me}from"./presentations-C1uyMUUr.js";import{s as pe,f as je,g as ke,h as at,i as nt,j as st,k as ot,l as Ce,m as lt,o as it,q as rt,u as ct,D as ut,d as dt,R as vt}from"./remote-BmhCoAgl.js";import{_ as le}from"./_plugin-vue_export-helper-DlAUqK2U.js";const mt={class:"drawer"},ft=["id","aria-label"],pt={class:"sheet-head"},kt=["disabled"],yt={class:"sheet-title"},bt={class:"title"},wt={key:0,class:"subtitle"},ht=["disabled"],gt=["innerHTML"],zt={key:1,class:"empty"},_t=["innerHTML"],$t={key:1,class:"empty"},Tt=["data-current","aria-current","onClick"],jt={class:"num"},Ct={class:"row-title"},St={key:0,class:"tag"},xt={key:1,class:"now"},Rt={class:"list-foot"},Et={key:0,class:"hint"},Bt={class:"bar","aria-label":"Szuflady na telefonie"},Lt=["disabled","aria-expanded","aria-controls","onClick"],Pt=oe({__name:"RemoteDrawer",props:{deck:{},state:{},live:{type:Boolean},cursor:{},open:{},disabled:{type:Boolean},wakeLockMissing:{type:Boolean}},emits:["goto","cursor","open","close"],setup(l,{emit:S}){const s=l,r=S,i=[{kind:"say",label:"Powiedz"},{kind:"notes",label:"Notatki"},{kind:"slides",label:"Slajdy"}],_=u(()=>s.deck.slides.length),j=u(()=>at(s.deck,s.state,s.live,s.cursor)),$=u(()=>s.live&&s.state?s.state.number:s.deck.slides[pe(s.deck.slides,s.cursor)]?.number??0),z=u(()=>pe(s.deck.slides,s.cursor)),w=u(()=>s.live&&s.state?s.state.number:s.deck.slides[z.value]?.number??s.cursor),L=u(()=>{const f=s.live&&s.state?.special?"s":"";return`${w.value}${f}`});function d(f){return f?/<img\b/i.test(f)?!0:f.replace(/<[^>]*>/g,"").replace(/ | /g," ").trim()!=="":!1}const N=u(()=>d(j.value?.say_html)?je(j.value?.say_html??""):""),I=u(()=>d(j.value?.notes_html)?je(j.value?.notes_html??""):""),P=u(()=>s.open==="say"?`Powiedz · slajd ${w.value}`:s.open==="notes"?`Notatki · slajd ${w.value}`:"Slajdy"),x=u(()=>s.open==="slides"?"":s.live?"Widzisz tylko Ty":`Przeglądasz na telefonie · slajd ${z.value+1} z ${_.value}`),b=u(()=>!s.live&&(s.open==="say"||s.open==="notes")),V=u(()=>z.value>0),A=u(()=>z.value<_.value-1),h=u(()=>s.deck.slides.map(f=>({number:f.number,title:ke(f),special:!!f.special})));function H(f){s.disabled||(s.open===f?r("close"):r("open",f))}function q(f){const y=s.deck.slides[z.value+f];y&&r("cursor",y.number)}const R=m(null),B=m(null);return X([L,()=>s.open],()=>{R.value&&(R.value.scrollTop=0)}),X(()=>s.open,async f=>{if(f!=="slides")return;await Re(),B.value?.querySelector('[data-current="true"]')?.scrollIntoView({block:"center"})}),(f,y)=>{const Q=Ue("router-link");return t(),n("div",mt,[l.open?(t(),n("section",{key:0,id:`remote-drawer-${l.open}`,class:"sheet","aria-label":P.value},[a("header",pt,[b.value?(t(),n("button",{key:0,type:"button",class:"icon-btn","aria-label":"Poprzedni slajd na telefonie",disabled:!V.value,onClick:y[0]||(y[0]=v=>q(-1))}," ‹ ",8,kt)):k("",!0),a("div",yt,[a("p",bt,p(P.value),1),x.value?(t(),n("p",wt,p(x.value),1)):k("",!0)]),b.value?(t(),n("button",{key:1,type:"button",class:"icon-btn","aria-label":"Następny slajd na telefonie",disabled:!A.value,onClick:y[1]||(y[1]=v=>q(1))}," › ",8,ht)):k("",!0),a("button",{type:"button",class:"close-btn",onClick:y[2]||(y[2]=v=>r("close"))},"Zamknij")]),a("div",{ref_key:"body",ref:R,class:C(["sheet-body",{reading:l.open!=="slides"}])},[l.open==="say"?(t(),n(T,{key:0},[N.value?(t(),n("div",{key:0,class:"text",innerHTML:N.value},null,8,gt)):(t(),n("p",zt,"Brak tekstu do powiedzenia na tym slajdzie."))],64)):l.open==="notes"?(t(),n(T,{key:1},[I.value?(t(),n("div",{key:0,class:"text",innerHTML:I.value},null,8,_t)):(t(),n("p",$t,"Brak notatek do tego slajdu."))],64)):(t(),n(T,{key:2},[a("ol",{ref_key:"list",ref:B,class:"list"},[(t(!0),n(T,null,G(h.value,v=>(t(),n("li",{key:v.number},[a("button",{type:"button",class:"row","data-current":v.number===$.value?"true":void 0,"aria-current":v.number===$.value?"true":void 0,onClick:ie=>r("goto",v.number)},[a("span",jt,p(v.number),1),a("span",Ct,p(v.title),1),v.special?(t(),n("span",St,"+ specjalny")):k("",!0),v.number===$.value?(t(),n("span",xt,"teraz")):k("",!0)],8,Tt)]))),128))],512),a("footer",Rt,[se(Q,{class:"back-link",to:{name:"my-presentations"}},{default:Fe(()=>[...y[3]||(y[3]=[xe("Wróć do moich prezentacji",-1)])]),_:1}),l.wakeLockMissing?(t(),n("p",Et,"Ta przeglądarka nie pozwala zablokować wygaszania ekranu.")):k("",!0)])],64))],2)],8,ft)):k("",!0),a("nav",Bt,[(t(),n(T,null,G(i,v=>a("button",{key:v.kind,type:"button",class:C(["tab",{open:l.open===v.kind}]),disabled:l.disabled,"aria-expanded":l.open===v.kind?"true":"false","aria-controls":`remote-drawer-${v.kind}`,onClick:ie=>H(v.kind)},p(v.label),11,Lt)),64))])])}}}),Dt=le(Pt,[["__scopeId","data-v-9f920f42"]]),Mt={key:0,class:"eyebrow"},Nt={class:"grid nav"},It=["disabled","aria-busy","onClick"],qt={key:1,class:"grid fn"},Vt=["disabled","aria-pressed","aria-busy","onClick"],At={class:"label"},Ht=oe({__name:"RemoteKeys",props:{state:{},live:{type:Boolean},busy:{},compact:{type:Boolean}},emits:["press","reset"],setup(l,{emit:S}){const s=l,r=S,i=u(()=>nt(s.state,s.live)),_=u(()=>i.value.slice(0,2)),j=u(()=>i.value.slice(2));function $(w){return(s.busy[w.action]??0)>0}function z(w){w.enabled&&(w.action==="clock-reset"?r("reset"):r("press",w.action))}return(w,L)=>(t(),n("section",{class:C(["keys",{compact:l.compact}]),"aria-label":"Klawisze na komputerze"},[l.compact?k("",!0):(t(),n("p",Mt,"Klawisze na komputerze")),a("div",Nt,[(t(!0),n(T,null,G(_.value,d=>(t(),n("button",{key:d.action,type:"button",class:C(["key nav-key",d.action]),disabled:!d.enabled,"aria-busy":$(d)?"true":void 0,onClick:N=>z(d)},[d.action==="prev"?(t(),fe(Te,{key:0,class:"arrow",name:"arrow-left"})):k("",!0),a("span",null,p(d.label),1),d.action==="next"?(t(),fe(Te,{key:1,class:"arrow",name:"arrow-right"})):k("",!0)],10,It))),128))]),l.compact?k("",!0):(t(),n("div",qt,[(t(!0),n(T,null,G(j.value,d=>(t(),n("button",{key:d.action,type:"button",class:"key fn-key",disabled:!d.enabled,"aria-pressed":d.pressed===null?void 0:d.pressed?"true":"false","aria-busy":$(d)?"true":void 0,onClick:N=>z(d)},[a("span",At,p(d.label),1),a("kbd",null,p(d.kbd),1)],8,Vt))),128))]))],2))}}),Se=le(Ht,[["__scopeId","data-v-1934c940"]]),Kt={class:"top"},Ot={class:"row row-title"},Wt={class:"deck-title"},Yt={class:"row row-slide","aria-live":"polite"},Zt={class:"counter"},Ft={key:0,class:"slide-title"},Ut={key:1,class:"slide-title waiting"},Xt={class:"row row-chips","aria-label":"Na komputerze"},Gt={class:"row row-clock"},Qt={key:0,class:"idle"},Jt={key:0,class:"chip"},ea={key:2,class:"clock"},ta=oe({__name:"RemoteTopBar",props:{deckTitle:{},status:{},live:{type:Boolean},counter:{},slideTitle:{},chips:{},clock:{}},setup(l){const S=l,s=u(()=>st(S.status));return(r,i)=>(t(),n("header",Kt,[a("div",Ot,[a("p",Wt,p(l.deckTitle),1),a("p",{class:C(["conn",{on:l.status==="live"}])},[i[0]||(i[0]=a("span",{class:"dot","aria-hidden":"true"},null,-1)),xe(p(s.value),1)],2)]),a("div",Yt,[a("p",Zt,p(l.counter),1),l.live?(t(),n("p",Ft,p(l.slideTitle),1)):(t(),n("p",Ut,"Czekam na wersję mówcy"))]),a("ul",Xt,[l.live?(t(!0),n(T,{key:0},G(l.chips,_=>(t(),n("li",{key:_,class:C(["chip",{khaki:_==="Specjalny"}])},p(_),3))),128)):k("",!0)]),a("div",Gt,[l.live&&l.clock&&l.clock.idle?(t(),n("p",Qt,"Zegar ruszy przy pierwszej zmianie slajdu")):l.live&&l.clock?(t(),n(T,{key:1},[a("p",{class:C(["clock",{paused:l.clock.paused}])},[i[2]||(i[2]=a("span",{class:"lbl"},"Slajd",-1)),a("b",{class:C({over:l.clock.slideOver})},p(l.clock.slide),3),i[3]||(i[3]=a("span",{class:"sep","aria-hidden":"true"},"·",-1)),i[4]||(i[4]=a("span",{class:"lbl"},"Całość",-1)),a("b",{class:C({over:l.clock.totalOver})},p(l.clock.total),3),l.clock.pace?(t(),n(T,{key:0},[i[1]||(i[1]=a("span",{class:"sep","aria-hidden":"true"},"·",-1)),a("span",{class:C(["pace",{late:l.clock.late}])},p(l.clock.pace),3)],64)):k("",!0)],2),l.clock.paused?(t(),n("span",Jt,"Pauza")):k("",!0)],64)):(t(),n("p",ea,[...i[5]||(i[5]=[a("b",null,"—",-1)])]))])]))}}),aa=le(ta,[["__scopeId","data-v-382e11de"]]),na={key:0,class:"remote-status remote-label"},sa={key:1,class:"remote-status"},oa={key:0,class:"remote-alert",role:"alert"},la={class:"remote-middle"},ia={key:0,class:"remote-notice"},ra={key:0,class:"remote-notice"},ca={class:"remote-dialog-body"},ua="Nie udało się wczytać prezentacji. Sprawdź połączenie z internetem i spróbuj ponownie.",da="Za dużo żądań w krótkim czasie. Odczekaj minutę i spróbuj ponownie.",U="Pilot niedostępny. Spróbuję połączyć się ponownie za 10 s.",va=oe({__name:"PresentationRemoteView",props:{slug:{}},setup(l){const S=l,s=et(),r=m("pending"),i=m(null),_=m("");let j=0,$=0,z=null,w="",L=0,d=0,N=0,I=!1,P=0,x=Ce();const b=m(null),V=m(0),A=m(Date.now()),h=m(!1),H=m("connecting"),q=m(!1),R=m(!1),B=m(!1),f=u(()=>B.value?"unavailable":h.value?"live":H.value==="connected"&&R.value?"waiting":q.value?"reconnecting":"connecting"),y=u(()=>i.value?.slides.length??0),Q=u(()=>{const e=b.value;return!i.value||!e?0:pe(i.value.slides,e.number)}),v=u(()=>{const e=b.value;return h.value&&e?`${e.number} / ${e.total}`:`— / ${y.value}`}),ie=u(()=>{const e=b.value,o=i.value?.slides[Q.value];return!e||!o?"":e.special&&o.special?ke(o.special):ke(o)}),Ee=u(()=>b.value?it(b.value):[]),Be=u(()=>{const e=b.value;return!i.value||!e?null:rt(ct(e,i.value.slides.map(o=>o.seconds),i.value.target_seconds,Q.value,V.value,A.value))}),D=m(null),K=m(1);X(b,e=>{e&&!e.bye&&e.number>0&&(K.value=e.number)});function Le(e){y.value!==0&&(D.value=e)}function Pe(){D.value=null}function De(e){K.value=e}function Me(e){if(h.value){ue(),ce("goto",e),D.value=null;return}K.value=e,D.value="say"}function re(){A.value=Date.now(),h.value=x.live(A.value)}function Ne(e){const o=dt(e);!o||o.event!==vt||x.observe(o.payload,Date.now())&&(b.value=x.current(),V.value=x.receivedAt(),re(),o.payload.bye&&ee())}function J(){j&&window.clearTimeout(j),j=0}const E=m("");let M=0;function ye(e,o=4e3){E.value=e,M&&window.clearTimeout(M),M=0,o>0&&(M=window.setTimeout(()=>{E.value="",M=0},o))}function O(){M&&window.clearTimeout(M),M=0,E.value=""}const W=m({});function be(e,o){const c=Math.max(0,(W.value[e]??0)+o);W.value={...W.value,[e]:c}}async function ce(e,o){const c={action:e,tab:x.actionTab()};o!==void 0&&(c.number=o),be(e,1);try{await me.remote(S.slug,c),E.value&&E.value!==U&&O()}catch(g){ye(lt(g instanceof ne?g.status:-1))}finally{be(e,-1)}}function ee(){R.value&&me.remote(S.slug,{action:"sync",tab:""}).catch(()=>{})}function Ie(){R.value=!0,B.value=!1,E.value===U&&O(),x.release(),ee()}function qe(e){H.value=e,e==="connected"?q.value=!0:R.value=!1}function Ve(e){if(R.value=!1,B.value=!0,e!==403||I){E.value===U&&O();return}I=!0,ye(U,0),P=window.setTimeout(()=>{P=0,z?.resubscribe()},ut)}function ue(){typeof navigator.vibrate=="function"&&navigator.vibrate(15)}function we(e){h.value&&(ue(),ce(e))}const Y=m(null),he=m(null);function Ae(){if(!h.value)return;ue();const e=Y.value;e&&(e.open||e.showModal(),Re(()=>he.value?.focus()))}function te(){Y.value?.open&&Y.value.close()}function He(){te(),h.value&&ce("clock-reset")}function Ke(e){e.target===Y.value&&te()}let Z=null,de=!1;const ae=m(!1);async function ge(){const e=navigator.wakeLock;if(!e||typeof e.request!="function"){ae.value=!0;return}if(!(Z&&!Z.released))try{const o=await e.request("screen");if(!de){o.release().catch(()=>{});return}Z=o,ae.value=!1}catch{ae.value=!0}}function Oe(){const e=Z;Z=null,e&&!e.released&&e.release().catch(()=>{})}function ze(){document.visibilityState==="visible"&&(ge(),ee())}function ve(){L+=1,z?.close(),z=null,w="",R.value=!1,H.value="connecting",q.value=!1,B.value=!1,I=!1,P&&window.clearTimeout(P),P=0,E.value===U&&O(),x=Ce(),b.value=null,V.value=0,re()}async function We(e){ve();const o=L;w=e;try{const c=()=>o===L,g=await tt(e,{onPublication:F=>{c()&&Ne(F)},onSubscribed:()=>{c()&&Ie()},onConnection:F=>{c()&&qe(F)},onDenied:F=>{c()&&Ve(F)},onUnavailable:()=>{c()&&(B.value=!0)}});if(o!==L){g.close();return}z=g}catch{o===L&&(B.value=!0)}}function Ye(){const e=r.value==="ready"?i.value?.remote_channel??"":"";if(e!==w){if(!e){ve();return}We(e)}}async function _e(e){const o=++$;J(),r.value="pending",i.value=null,_.value="",j=window.setTimeout(()=>{o===$&&r.value==="pending"&&(r.value="loading")},200);try{const c=await me.speaker(e);if(o!==$)return;J();const g=c.slides??[];i.value={...c,slides:g},Qe(e),K.value=g[0]?.number??1,D.value=null,document.title=c.title?`Pilot · ${c.title}`:"Pilot · BM II°",r.value=g.length===0?"empty":"ready"}catch(c){if(o!==$)return;if(J(),c instanceof ne&&c.status===404){Je(e),await s.replace({name:"my-presentations",query:{denied:"1"}});return}if(c instanceof ne&&c.status===401)return;_.value=c instanceof ne&&c.status===429?da:ua,r.value="error"}}function Ze(){_e(S.slug)}function $e(e,o,c){if(document.querySelector(`meta[data-deck-remote="${c}"]`))return;const g=document.createElement("meta");g.name=e,g.content=o,g.dataset.deckRemote=c,document.head.appendChild(g)}return X(()=>S.slug,e=>{_e(e)},{immediate:!0}),X([i,r],()=>{Ye()}),Xe(()=>{de=!0,document.documentElement.classList.add("deck-remote"),$e("robots","noindex","robots"),$e("theme-color","#141a18","theme"),document.addEventListener("visibilitychange",ze),d=window.setInterval(()=>{document.visibilityState==="visible"&&ee()},ot),N=window.setInterval(re,1e3),ge()}),Ge(()=>{de=!1,$+=1,J(),O(),ve(),te(),Oe(),window.clearInterval(d),window.clearInterval(N),document.removeEventListener("visibilitychange",ze),document.documentElement.classList.remove("deck-remote"),document.querySelectorAll("meta[data-deck-remote]").forEach(e=>e.remove())}),(e,o)=>(t(),n("main",{class:C(["remote",{"remote-page":r.value==="ready"||r.value==="empty","remote-drawer-open":r.value==="ready"&&D.value}])},[r.value==="loading"?(t(),n("p",na,"Wczytywanie pilota…")):r.value==="error"?(t(),n("div",sa,[a("p",null,p(_.value),1),a("button",{type:"button",class:"remote-retry",onClick:Ze},"Spróbuj ponownie")])):(r.value==="ready"||r.value==="empty")&&i.value?(t(),n(T,{key:2},[se(aa,{class:"remote-top","deck-title":i.value.title,status:r.value==="empty"?"waiting":f.value,live:r.value==="ready"&&h.value,counter:v.value,"slide-title":ie.value,chips:Ee.value,clock:Be.value},null,8,["deck-title","status","live","counter","slide-title","chips","clock"]),E.value?(t(),n("p",oa,p(E.value),1)):k("",!0),a("div",la,[r.value==="empty"?(t(),n("div",ia,[...o[0]||(o[0]=[a("p",{class:"remote-notice-head"},"Ta prezentacja nie ma jeszcze slajdów.",-1),a("p",{class:"remote-muted"},"Dodaj slajdy w panelu administracyjnym i otwórz pilota ponownie.",-1)])])):D.value?(t(),fe(Se,{key:1,compact:"",state:b.value,live:h.value,busy:W.value,onPress:we},null,8,["state","live","busy"])):(t(),n(T,{key:2},[h.value?k("",!0):(t(),n("div",ra,[...o[1]||(o[1]=[a("p",{class:"remote-notice-head"},"Otwórz wersję mówcy na komputerze",-1),a("p",{class:"remote-muted"}," Klawisze zadziałają, gdy wersja mówcy tej prezentacji będzie otwarta na komputerze. Powiedz i notatki możesz czytać już teraz. ",-1)])])),se(Se,{state:b.value,live:h.value,busy:W.value,onPress:we,onReset:Ae},null,8,["state","live","busy"])],64))]),se(Dt,{deck:i.value,state:b.value,live:r.value==="ready"&&h.value,cursor:K.value,open:D.value,disabled:y.value===0,"wake-lock-missing":ae.value,onOpen:Le,onClose:Pe,onCursor:De,onGoto:Me},null,8,["deck","state","live","cursor","open","disabled","wake-lock-missing"])],64)):k("",!0),a("dialog",{ref_key:"resetDialog",ref:Y,class:"remote-dialog","aria-labelledby":"remote-reset-title","aria-describedby":"remote-reset-body",onClick:Ke},[a("div",ca,[o[2]||(o[2]=a("p",{id:"remote-reset-title",class:"remote-dialog-title"},"Wyzerować zegar?",-1)),o[3]||(o[3]=a("p",{id:"remote-reset-body",class:"remote-muted"}," Czas całości i wszystkich slajdów wróci do zera, a zegar ruszy przy następnej zmianie slajdu. ",-1)),a("button",{type:"button",class:"remote-dialog-btn remote-dialog-danger",onClick:He},"Zeruj zegar"),a("button",{ref_key:"resetCancel",ref:he,type:"button",class:"remote-dialog-btn",autofocus:"",onClick:te},"Anuluj",512)])],512)],2))}}),ba=le(va,[["__scopeId","data-v-534bc4ac"]]);export{ba as default};
|