2 lines
26 KiB
JavaScript
2 lines
26 KiB
JavaScript
import{c as en}from"./engine-DDeQk6Ow.js";import{d as Te,c as u,b as c,C as R,i as ne,_ as Ue,t as _,f as E,x as p,n as r,U as he,F as M,E as ge,j as tn,r as g,l as nn,p as Tt,Z as _t,s as Xe,o as an,aH as sn,A as be,aI as on,aJ as ln,m as rn,aM as cn}from"./index-BxubRpHd.js";import{p as I}from"./presentations-BPhZJv9V.js";import{_ as _e}from"./_plugin-vue_export-helper-DlAUqK2U.js";import{s as Ye,e as yt,f as Qe,g as un,h as dn,i as vn,d as fn,r as mn,j as pn,k as Je,a as yn,l as bt,S as bn,H as kn,m as wn,o as hn,D as gn,b as Tn,R as _n,n as Sn}from"./remote-aOKX75Mt.js";import{f as Cn,C as Ze,p as En,i as zn,j as $n,d as Nn}from"./log-Xlt5jeld.js";import{c as jn,a as An}from"./clock-4r1aA6KU.js";const Dn={key:0,class:"cast"},xn=["aria-busy"],In={class:"cast-label"},Rn={key:0,class:"cast-tv"},Mn={key:0,"aria-live":"polite"},Ln=Te({__name:"CastButton",props:{availability:{},deviceName:{},tv:{}},emits:["request","log"],setup(n,{emit:y}){const t=n,o=y,s=p(()=>t.availability!=="off"&&t.availability!=="no-devices"),i=p(()=>t.availability==="connected"),d=p(()=>t.availability==="connecting"?"Łączę z TV…":t.availability==="connected"?t.deviceName?`Na TV: ${t.deviceName}`:"Na TV":"Wyświetl na TV"),v=p(()=>{const k=t.tv;return k?k.phase==="waiting"?"TV: czekam na bilet":k.phase==="loading"?"TV: przygotowuję slajdy…":k.phase==="error"?"TV: błąd, połącz ponownie":`TV: slajd ${k.number}${k.special?" · specjalny":""}`:""});return(k,z)=>s.value?(r(),u("div",Dn,[c("button",{type:"button",class:R(["cast-row",{on:i.value}]),"aria-busy":n.availability==="connecting"?"true":void 0,onClick:z[0]||(z[0]=$=>o("request"))},[ne(Ue,{class:"cast-icon",name:"cast"}),c("span",In,_(d.value),1)],10,xn),i.value?(r(),u("p",Rn,[v.value?(r(),u("span",Mn,_(v.value),1)):E("",!0),c("button",{type:"button",class:"cast-log",onClick:z[1]||(z[1]=$=>o("log"))},"Dziennik TV")])):E("",!0)])):E("",!0)}}),Pn=_e(Ln,[["__scopeId","data-v-ff9a5014"]]),Bn={class:"drawer"},On=["id","aria-label"],Vn={class:"sheet-head"},qn=["disabled"],Hn={class:"sheet-title"},Wn={class:"title"},Gn={key:0,class:"subtitle"},Kn=["disabled"],Jn=["innerHTML"],Zn={key:1,class:"empty"},Fn=["innerHTML"],Un={key:1,class:"empty"},Xn=["data-current","aria-current","onClick"],Yn={class:"num"},Qn={class:"row-title"},ea={key:0,class:"tag"},ta={key:1,class:"now"},na={class:"list-foot"},aa={key:0,class:"hint"},sa={class:"bar","aria-label":"Szuflady na telefonie"},oa=["disabled","aria-expanded","aria-controls","onClick"],ia=Te({__name:"RemoteDrawer",props:{deck:{},state:{},live:{type:Boolean},cursor:{},open:{},disabled:{type:Boolean},wakeLockMissing:{type:Boolean}},emits:["goto","cursor","open","close"],setup(n,{emit:y}){const t=n,o=y,s=[{kind:"say",label:"Powiedz"},{kind:"notes",label:"Notatki"},{kind:"slides",label:"Slajdy"}],i=p(()=>t.deck.slides.length),d=p(()=>un(t.deck,t.state,t.live,t.cursor)),v=p(()=>t.live&&t.state?t.state.number:t.deck.slides[Ye(t.deck.slides,t.cursor)]?.number??0),k=p(()=>Ye(t.deck.slides,t.cursor)),z=p(()=>t.live&&t.state?t.state.number:t.deck.slides[k.value]?.number??t.cursor),$=p(()=>{const h=t.live&&t.state?.special?"s":"";return`${z.value}${h}`});function P(h){return h?/<img\b/i.test(h)?!0:h.replace(/<[^>]*>/g,"").replace(/ | /g," ").trim()!=="":!1}const w=p(()=>P(d.value?.say_html)?yt(d.value?.say_html??""):""),b=p(()=>P(d.value?.notes_html)?yt(d.value?.notes_html??""):""),S=p(()=>t.open==="say"?`Powiedz · slajd ${z.value}`:t.open==="notes"?`Notatki · slajd ${z.value}`:"Slajdy"),D=p(()=>t.open==="slides"?"":t.live?"Widzisz tylko Ty":`Przeglądasz na telefonie · slajd ${k.value+1} z ${i.value}`),N=p(()=>!t.live&&(t.open==="say"||t.open==="notes")),G=p(()=>k.value>0),ae=p(()=>k.value<i.value-1),A=p(()=>t.deck.slides.map(h=>({number:h.number,title:Qe(h),special:!!h.special})));function B(h){t.disabled||(t.open===h?o("close"):o("open",h))}function Y(h){const x=t.deck.slides[k.value+h];x&&o("cursor",x.number)}const K=g(null),O=g(null);return he([$,()=>t.open],()=>{K.value&&(K.value.scrollTop=0)}),he(()=>t.open,async h=>{if(h!=="slides")return;await _t(),O.value?.querySelector('[data-current="true"]')?.scrollIntoView({block:"center"})}),(h,x)=>{const se=nn("router-link");return r(),u("div",Bn,[n.open?(r(),u("section",{key:0,id:`remote-drawer-${n.open}`,class:"sheet","aria-label":S.value},[c("header",Vn,[N.value?(r(),u("button",{key:0,type:"button",class:"icon-btn","aria-label":"Poprzedni slajd na telefonie",disabled:!G.value,onClick:x[0]||(x[0]=T=>Y(-1))}," ‹ ",8,qn)):E("",!0),c("div",Hn,[c("p",Wn,_(S.value),1),D.value?(r(),u("p",Gn,_(D.value),1)):E("",!0)]),N.value?(r(),u("button",{key:1,type:"button",class:"icon-btn","aria-label":"Następny slajd na telefonie",disabled:!ae.value,onClick:x[1]||(x[1]=T=>Y(1))}," › ",8,Kn)):E("",!0),c("button",{type:"button",class:"close-btn",onClick:x[2]||(x[2]=T=>o("close"))},"Zamknij")]),c("div",{ref_key:"body",ref:K,class:R(["sheet-body",{reading:n.open!=="slides"}])},[n.open==="say"?(r(),u(M,{key:0},[w.value?(r(),u("div",{key:0,class:"text",innerHTML:w.value},null,8,Jn)):(r(),u("p",Zn,"Brak tekstu do powiedzenia na tym slajdzie."))],64)):n.open==="notes"?(r(),u(M,{key:1},[b.value?(r(),u("div",{key:0,class:"text",innerHTML:b.value},null,8,Fn)):(r(),u("p",Un,"Brak notatek do tego slajdu."))],64)):(r(),u(M,{key:2},[c("ol",{ref_key:"list",ref:O,class:"list"},[(r(!0),u(M,null,ge(A.value,T=>(r(),u("li",{key:T.number},[c("button",{type:"button",class:"row","data-current":T.number===v.value?"true":void 0,"aria-current":T.number===v.value?"true":void 0,onClick:Re=>o("goto",T.number)},[c("span",Yn,_(T.number),1),c("span",Qn,_(T.title),1),T.special?(r(),u("span",ea,"+ specjalny")):E("",!0),T.number===v.value?(r(),u("span",ta,"teraz")):E("",!0)],8,Xn)]))),128))],512),c("footer",na,[ne(se,{class:"back-link",to:{name:"my-presentations"}},{default:tn(()=>[...x[3]||(x[3]=[Tt("Wróć do moich prezentacji",-1)])]),_:1}),n.wakeLockMissing?(r(),u("p",aa,"Ta przeglądarka nie pozwala zablokować wygaszania ekranu.")):E("",!0)])],64))],2)],8,On)):E("",!0),c("nav",sa,[(r(),u(M,null,ge(s,T=>c("button",{key:T.kind,type:"button",class:R(["tab",{open:n.open===T.kind}]),disabled:n.disabled,"aria-expanded":n.open===T.kind?"true":"false","aria-controls":`remote-drawer-${T.kind}`,onClick:Re=>B(T.kind)},_(T.label),11,oa)),64))])])}}}),la=_e(ia,[["__scopeId","data-v-9f920f42"]]),ra=["aria-label"],ca={key:0,class:"eyebrow"},ua={class:"grid nav"},da=["disabled","aria-busy","onClick"],va={key:1,class:"grid fn"},fa=["disabled","aria-pressed","aria-busy","onClick"],ma={class:"label"},pa=Te({__name:"RemoteKeys",props:{state:{},live:{type:Boolean},busy:{},compact:{type:Boolean},cast:{type:Boolean}},emits:["press","reset"],setup(n,{emit:y}){const t=n,o=y,s=p(()=>dn(t.state,t.live,t.cast?"cast":"deck")),i=p(()=>t.cast?"Klawisze na TV":"Klawisze na komputerze"),d=p(()=>s.value.slice(0,2)),v=p(()=>s.value.slice(2));function k($){return(t.busy[$.action]??0)>0}function z($){$.enabled&&($.action==="clock-reset"?o("reset"):o("press",$.action))}return($,P)=>(r(),u("section",{class:R(["keys",{compact:n.compact}]),"aria-label":i.value},[n.compact?E("",!0):(r(),u("p",ca,_(i.value),1)),c("div",ua,[(r(!0),u(M,null,ge(d.value,w=>(r(),u("button",{key:w.action,type:"button",class:R(["key nav-key",w.action]),disabled:!w.enabled,"aria-busy":k(w)?"true":void 0,onClick:b=>z(w)},[w.action==="prev"?(r(),Xe(Ue,{key:0,class:"arrow",name:"arrow-left"})):E("",!0),c("span",null,_(w.label),1),w.action==="next"?(r(),Xe(Ue,{key:1,class:"arrow",name:"arrow-right"})):E("",!0)],10,da))),128))]),n.compact?E("",!0):(r(),u("div",va,[(r(!0),u(M,null,ge(v.value,w=>(r(),u("button",{key:w.action,type:"button",class:"key fn-key",disabled:!w.enabled,"aria-pressed":w.pressed===null?void 0:w.pressed?"true":"false","aria-busy":k(w)?"true":void 0,onClick:b=>z(w)},[c("span",ma,_(w.label),1),c("kbd",null,_(w.kbd),1)],8,fa))),128))]))],10,ra))}}),kt=_e(pa,[["__scopeId","data-v-25e061a7"]]),ya={class:"top"},ba={class:"row row-title"},ka={class:"deck-title"},wa={class:"row row-slide","aria-live":"polite"},ha={class:"counter"},ga={key:0,class:"slide-title"},Ta={key:1,class:"slide-title waiting"},_a={class:"row row-chips","aria-label":"Na komputerze"},Sa={class:"row row-clock"},Ca={key:0,class:"idle"},Ea={key:0,class:"chip"},za={key:2,class:"clock"},$a=Te({__name:"RemoteTopBar",props:{deckTitle:{},status:{},live:{type:Boolean},counter:{},slideTitle:{},chips:{},clock:{}},setup(n){const y=n,t=p(()=>vn(y.status));return(o,s)=>(r(),u("header",ya,[c("div",ba,[c("p",ka,_(n.deckTitle),1),c("p",{class:R(["conn",{on:n.status==="live"}])},[s[0]||(s[0]=c("span",{class:"dot","aria-hidden":"true"},null,-1)),Tt(_(t.value),1)],2)]),c("div",wa,[c("p",ha,_(n.counter),1),n.live?(r(),u("p",ga,_(n.slideTitle),1)):(r(),u("p",Ta,"Czekam na wersję mówcy"))]),c("ul",_a,[n.live?(r(!0),u(M,{key:0},ge(n.chips,i=>(r(),u("li",{key:i,class:R(["chip",{khaki:i==="Specjalny"}])},_(i),3))),128)):E("",!0)]),c("div",Sa,[n.live&&n.clock&&n.clock.idle?(r(),u("p",Ca,"Zegar ruszy przy pierwszej zmianie slajdu")):n.live&&n.clock?(r(),u(M,{key:1},[c("p",{class:R(["clock",{paused:n.clock.paused}])},[s[2]||(s[2]=c("span",{class:"lbl"},"Slajd",-1)),c("b",{class:R({over:n.clock.slideOver})},_(n.clock.slide),3),s[3]||(s[3]=c("span",{class:"sep","aria-hidden":"true"},"·",-1)),s[4]||(s[4]=c("span",{class:"lbl"},"Całość",-1)),c("b",{class:R({over:n.clock.totalOver})},_(n.clock.total),3),n.clock.pace?(r(),u(M,{key:0},[s[1]||(s[1]=c("span",{class:"sep","aria-hidden":"true"},"·",-1)),c("span",{class:R(["pace",{late:n.clock.late}])},_(n.clock.pace),3)],64)):E("",!0)],2),n.clock.paused?(r(),u("span",Ea,"Pauza")):E("",!0)],64)):(r(),u("p",za,[...s[5]||(s[5]=[c("b",null,"—",-1)])]))])]))}}),Na=_e($a,[["__scopeId","data-v-382e11de"]]),ja="https://www.gstatic.com/cv/js/sender/v1/cast_sender.js?loadCastFramework=1",Fe="bm-cast-sender";function tt(){return globalThis}function et(){const n=tt().cast?.framework;return n&&n.CastContext&&n.CastContextEventType?n:null}let ke=null;function Aa(n=1e4){return et()?Promise.resolve(!0):ke||(typeof document>"u"?Promise.resolve(!1):(ke=new Promise(t=>{let o=!1,s=null;const i=d=>{o||(o=!0,s!==null&&clearTimeout(s),t(d&&et()!==null))};try{tt().__onGCastApiAvailable=v=>i(!!v);let d=document.getElementById(Fe);d||(d=document.createElement("script"),d.id=Fe,d.src=ja,d.async=!0,d.addEventListener("error",()=>i(!1)),document.head.appendChild(d)),s=setTimeout(()=>i(!1),n)}catch{i(!1)}}).then(t=>(t||(ke=null,document.getElementById(Fe)?.remove()),t)),ke))}function Da(n){switch(n){case"NOT_CONNECTED":return"available";case"CONNECTING":return"connecting";case"CONNECTED":return"connected";default:return"no-devices"}}function xa(n){const y=et();if(!y)return null;let t;try{t=y.CastContext.getInstance()}catch{return null}const o=y.CastContextEventType;let s=!1,i=null;const d=(b,S)=>{if(s)return;const D=En(S);D&&n.onMessage(D)};function v(){const b=i;if(i=null,!!b)try{b.removeMessageListener(Ze,d)}catch{}}function k(){v();let b=null;try{b=t.getCurrentSession(),b?.addMessageListener(Ze,d)}catch{b=null}return i=b,b!==null}function z(b){s||n.onAvailability(Da(b??""))}const $=b=>z(b.castState),P=b=>{if(s)return;const S=b.sessionState;S==="SESSION_STARTED"||S==="SESSION_RESUMED"?k()&&n.onSession(S==="SESSION_STARTED"?"started":"resumed"):S==="SESSION_ENDED"&&(v(),n.onSession("ended"))};try{t.addEventListener(o.CAST_STATE_CHANGED,$),t.addEventListener(o.SESSION_STATE_CHANGED,P)}catch{return null}try{const b=tt().chrome?.cast?.AutoJoinPolicy?.ORIGIN_SCOPED??"origin_scoped";t.setOptions({receiverApplicationId:n.appId,autoJoinPolicy:b})}catch{}try{z(t.getCastState())}catch{z("")}let w=!1;try{w=t.getCurrentSession()!==null}catch{w=!1}return w&&queueMicrotask(()=>{!s&&i===null&&k()&&n.onSession("resumed")}),{async request(){if(!s)try{await t.requestSession()}catch{}},stop(){try{t.endCurrentSession(!0)}catch{}},async send(b){if(!Cn(b))throw new Error("cast message too large");let S=null;try{S=t.getCurrentSession()}catch{S=null}if(!S)throw new Error("no cast session");await S.sendMessage(Ze,b)},deviceName(){try{return t.getCurrentSession()?.getCastDevice()?.friendlyName??""}catch{return""}},connected(){try{return t.getCurrentSession()!==null}catch{return!1}},close(){if(!s){s=!0,v();try{t.removeEventListener(o.CAST_STATE_CHANGED,$),t.removeEventListener(o.SESSION_STATE_CHANGED,P)}catch{}}}}}const Ia=["speak","scheme","toolbar"],Ra=new Set(Ia);function Ma(n){const y=n.now??(()=>Date.now()),t=n.slides.map(i=>({number:i.number,hasSpecial:i.special!=null})),o=jn({budgets:n.slides.map(i=>i.seconds),targetSeconds:n.targetSeconds,now:y}),s=en({slides:t,history:{state:null,replaceState(){}},mode:"speaker",onNavigate:i=>{o.tick(),o.go(i)}});return{press(i){if(i==="sync"||i==="goto"||Ra.has(i))return!1;const d=mn(i);if(!d)return!1;const v=s.applyKey({key:d});return v==="pause"?o.pause():v==="clock"?o.toggleHidden():v==="reset"&&o.reset(),!0},goto(i){const d=t.findIndex(v=>v.number===i);return d<0?!1:(s.go(d),!0)},seed(i,d){t.some(v=>v.number===i)&&(o.tick(),s.showId(d?`${i}s`:String(i)),o.seek(s.snapshot().index))},state(i={}){return o.tick(),fn(s.snapshot(),o.view(),n.tab,{claim:!0,bye:i.bye,light:!1})},position(){const i=s.snapshot();return{number:i.number,special:i.special}}}}const La=/^[A-Za-z0-9_-]{8,64}$/;function nt(n){return"bm.cast."+n}function Pa(n,y,t){if(!n)return null;let o;try{o=n.getItem(nt(y))}catch{return null}if(!o)return null;let s;try{s=JSON.parse(o)}catch{return null}if(typeof s!="object"||s===null||Array.isArray(s))return null;const{tab:i,ticket:d,expires_at:v}=s;if(typeof i!="string"||!La.test(i)||!zn(d)||typeof v!="string")return null;const k=Date.parse(v);return!Number.isFinite(k)||k<=t?null:{tab:i,ticket:d,expires_at:v}}function Ba(n,y,t){if(n)try{n.setItem(nt(y),JSON.stringify({tab:t.tab,ticket:t.ticket,expires_at:t.expires_at}))}catch{}}function Oa(n,y){if(n)try{n.removeItem(nt(y))}catch{}}function wt(n,y,t=10*6e4){const o=Date.parse(n);return Number.isFinite(o)?y>=o-t:!0}const Va={key:0,class:"remote-status remote-label"},qa={key:1,class:"remote-status"},Ha={key:0,class:"remote-alert",role:"alert"},Wa={class:"remote-middle"},Ga={key:0,class:"remote-notice"},Ka={key:0,class:"remote-notice"},Ja={class:"remote-dialog-body"},Za="Nie udało się wczytać prezentacji. Sprawdź połączenie z internetem i spróbuj ponownie.",Fa="Za dużo żądań w krótkim czasie. Odczekaj minutę i spróbuj ponownie.",te="Pilot niedostępny. Spróbuję połączyć się ponownie za 10 s.",Ua="Nie udało się połączyć z TV. Spróbuj ponownie.",we="TV nie odpowiada. Dotknij „Na TV”, aby zakończyć i połączyć ponownie.",ht="Nie udało się odnowić biletu TV. Spróbuję ponownie.",gt="Nie udało się pobrać dziennika TV.",Xa=2e3,Ya=15e3,Qa=3e4,es=Te({__name:"PresentationRemoteView",props:{slug:{}},setup(n){const y=n,t=rn(),o=g("pending"),s=g(null),i=g("");let d=0,v=0,k=null,z="",$=0,P=0,w=0,b=!1,S=0,D=Je();const N=g(null),G=g(0),ae=g(Date.now()),A=g(!1),B=g(!1),Y=g("connecting"),K=g(!1),O=g(!1),h=g(!1),x=p(()=>B.value?"live":h.value?"unavailable":A.value?"live":Y.value==="connected"&&O.value?"waiting":K.value?"reconnecting":"connecting"),se=p(()=>s.value?.slides.length??0),T=p(()=>{const e=N.value;return!s.value||!e?0:Ye(s.value.slides,e.number)}),Re=p(()=>{const e=N.value;return A.value&&e?`${e.number} / ${e.total}`:`— / ${se.value}`}),St=p(()=>{const e=N.value,a=s.value?.slides[T.value];return!e||!a?"":e.special&&a.special?Qe(a.special):Qe(a)}),Ct=p(()=>N.value?wn(N.value):[]),Et=p(()=>{const e=N.value;return!s.value||!e?null:An(hn(e,s.value.slides.map(a=>a.seconds),s.value.target_seconds,T.value,G.value,ae.value))}),V=g(null),oe=g(1);he(N,e=>{e&&!e.bye&&e.number>0&&(oe.value=e.number)});function zt(e){se.value!==0&&(V.value=e)}function $t(){V.value=null}function Nt(e){oe.value=e}function jt(e){if(f){re(),f.mode.goto(e)&&J(),V.value=null;return}if(A.value){re(),Me("goto",e),V.value=null;return}oe.value=e,V.value="say"}function Q(){ae.value=Date.now(),A.value=B.value||D.live(ae.value)}function At(e){if(f)return;const a=Tn(e);!a||a.event!==_n||D.observe(a.payload,Date.now())&&(N.value=D.current(),G.value=D.receivedAt(),Q(),a.payload.bye&&le())}function Se(){d&&window.clearTimeout(d),d=0}const j=g("");let H=0;function q(e,a=4e3){j.value=e,H&&window.clearTimeout(H),H=0,a>0&&(H=window.setTimeout(()=>{j.value="",H=0},a))}function W(){H&&window.clearTimeout(H),H=0,j.value=""}const ie=g({});function at(e,a){const l=Math.max(0,(ie.value[e]??0)+a);ie.value={...ie.value,[e]:l}}async function Me(e,a){const l={action:e,tab:D.actionTab()};a!==void 0&&(l.number=a),at(e,1);try{await I.remote(y.slug,l),j.value&&j.value!==te&&W()}catch(m){q(bt(m instanceof be?m.status:-1))}finally{at(e,-1)}}function le(){f||!O.value||I.remote(y.slug,{action:"sync",tab:""}).catch(()=>{})}function Dt(){O.value=!0,h.value=!1,j.value===te&&W(),D.release(),le()}function xt(e){Y.value=e,e==="connected"?K.value=!0:O.value=!1}function It(e){if(O.value=!1,h.value=!0,e!==403||b){j.value===te&&W();return}b=!0,q(te,0),S=window.setTimeout(()=>{S=0,k?.resubscribe()},gn)}function re(){typeof navigator.vibrate=="function"&&navigator.vibrate(15)}function st(e){if(f){re(),f.mode.press(e)&&J();return}A.value&&(re(),Me(e))}const ce=g(null),ot=g(null);function Rt(){if(!A.value)return;re();const e=ce.value;e&&(e.open||e.showModal(),_t(()=>ot.value?.focus()))}function Ce(){ce.value?.open&&ce.value.close()}function Mt(){if(Ce(),f){f.mode.press("clock-reset")&&J();return}A.value&&Me("clock-reset")}function Lt(e){e.target===ce.value&&Ce()}let ue=null,Ee=!1;const ze=g(!1);async function it(){const e=navigator.wakeLock;if(!e||typeof e.request!="function"){ze.value=!0;return}if(!(ue&&!ue.released))try{const a=await e.request("screen");if(!Ee){a.release().catch(()=>{});return}ue=a,ze.value=!1}catch{ze.value=!0}}function Pt(){const e=ue;ue=null,e&&!e.released&&e.release().catch(()=>{})}function lt(){if(document.visibilityState!=="visible"){De();return}if(it(),f){Z&&He(),Ae.flush();return}le()}function Le(){$+=1,k?.close(),k=null,z="",O.value=!1,Y.value="connecting",K.value=!1,h.value=!1,b=!1,S&&window.clearTimeout(S),S=0,j.value===te&&W(),D=Je(),N.value=null,G.value=0,Q()}async function Bt(e){Le();const a=$;z=e;try{const l=()=>a===$,m=await cn(e,{onPublication:C=>{l()&&At(C)},onSubscribed:()=>{l()&&Dt()},onConnection:C=>{l()&&xt(C)},onDenied:C=>{l()&&It(C)},onUnavailable:()=>{l()&&(h.value=!0)}});if(a!==$){m.close();return}k=m}catch{a===$&&(h.value=!0)}}function Ot(){const e=o.value==="ready"?s.value?.remote_channel??"":"";if(e!==z){if(!e){Le();return}Bt(e)}}const Pe=g("off"),$e=g(""),Ne=g(null);let L=null,Be="",je=0,f=null,de=0,ve=0,rt=Promise.resolve();const Ae=yn(()=>{qt()},bn);function J(){f&&Ae.call()}function De(){ve&&window.clearTimeout(ve),ve=0}function Vt(){De(),!(!f||document.visibilityState!=="visible")&&(ve=window.setTimeout(()=>{ve=0;const e=f;e&&((Z||wt(e.expiresAt,Date.now()))&&He(),J())},kn))}async function qt(){const e=f;if(!e)return;const a=e.mode.state();Vt();const l=I.remoteState(e.slug,a);rt=l.catch(()=>{});try{if(await l,f!==e)return;N.value=a,G.value=Date.now(),Q(),j.value&&j.value!==te&&j.value!==we&&W()}catch(m){f===e&&q(bt(m instanceof be?m.status:-1))}}function Oe(){try{return window.sessionStorage}catch{return null}}function ct(e){Ba(Oe(),e.slug,{tab:e.tab,ticket:e.ticket,expires_at:e.expiresAt})}let Ve=null;function ee(e){const a=Ve;a&&(Ve=null,window.clearTimeout(a.timer),a.resolve(e))}function Ht(e){return ee(null),new Promise(a=>{const l=window.setTimeout(()=>ee(null),Xa);Ve={resolve:a,timer:l},e.send({type:"where"}).catch(()=>ee(null))})}async function Wt(e){const a=s.value,l=L;if(!a||!l)return;const m=++de,C=y.slug,F=Pa(Oe(),C,Date.now()),U=e?F:null,Ge=U?.tab??Sn();let mt=U?.ticket??"",Ke=U?.expires_at??"";if(!U||wt(Ke,Date.now())){let Ie;try{Ie=await I.castMint(C)}catch{if(m!==de)return;q(Ua),l.stop();return}if(m!==de||L!==l){I.castRevoke(C,Ie.ticket).catch(()=>{});return}F&&I.castRevoke(C,F.ticket).catch(()=>{}),mt=Ie.ticket,Ke=Ie.expires_at}const pt=Ma({slides:a.slides,targetSeconds:a.target_seconds,tab:Ge}),ye=N.value;!U&&A.value&&ye&&!ye.bye&&ye.number>0&&pt.seed(ye.number,ye.special);const X={slug:C,tab:Ge,ticket:mt,expiresAt:Ke,mode:pt};f=X,B.value=!0,Z=!1,Ne.value=null,ct(X),Q(),U||J();try{await l.send({type:"hello",ticket:X.ticket,tab:Ge})}catch{f===X&&q(we,0)}if(!U||f!==X)return;const xe=await Ht(l);f===X&&(xe&&xe.number>0&&X.mode.seed(xe.number,xe.special),J())}let Z=!1,qe=!1;async function He(){const e=f,a=L;if(!(!e||!a||qe)){if(document.visibilityState!=="visible"){Z=!0;return}qe=!0,Z=!1;try{let l;try{l=await I.castMint(e.slug)}catch{f===e&&(Z=!0,q(ht));return}if(f!==e||L!==a){I.castRevoke(e.slug,l.ticket).catch(()=>{});return}const m=e.ticket;e.ticket=l.ticket,e.expiresAt=l.expires_at,ct(e);try{await a.send({type:"hello",ticket:e.ticket,tab:e.tab})}catch{f===e&&q(we,0)}m!==e.ticket&&I.castRevoke(e.slug,m).catch(()=>{})}finally{qe=!1}}}function We(){de+=1,Ne.value=null,ee(null),pe();const e=f;if(!e)return;f=null,B.value=!1,Z=!1,Ae.cancel(),De();const a=e.mode.state({bye:!0});rt.then(()=>I.remoteState(e.slug,a)).catch(()=>{}),I.castRevoke(e.slug,e.ticket).catch(()=>{}),Oa(Oe(),e.slug),(j.value===we||j.value===ht)&&W(),D=Je(),N.value=null,G.value=0,Q(),le()}function Gt(){de+=1,ee(null),pe(),f=null,B.value=!1,Ae.cancel(),De()}function Kt(e){if($e.value=L?.deviceName()??"",e==="ended"){We();return}e==="resumed"&&f||(f&&We(),Wt(e==="resumed"))}let fe=[],me=0;function pe(){me&&window.clearTimeout(me),me=0,fe=[]}function ut(){pe(),q(gt)}function Jt(){const e=L;if(!e||!e.connected()){q(gt);return}pe(),me=window.setTimeout(ut,Ya),e.send({type:"log"}).catch(ut)}function Zt(e){if(!me)return;const a=Date.now();fe=fe.filter(F=>a-F.at<Qa&&F.of===e.of&&F.part!==e.part),fe.push({...e,at:a});const l=$n(fe);if(l===null)return;pe();let m=l;try{m=JSON.parse(l)}catch{}const C=new Date().toISOString();Nn(`bm-tv-${C.replace(/:/g,"-")}.json`,{receiver:m,phone:{tab:f?.tab??"",at:C}})}function Ft(e){switch(e.type){case"status":Ne.value=e,e.phase!=="waiting"&&j.value===we&&W(),e.phase==="ready"&&J();return;case"position":ee({number:e.number,special:e.special});return;case"need-ticket":f&&He();return;case"log":Zt(e);return}}function Ut(){L?.request()}function dt(){je+=1,L?.close(),L=null,Be="",Pe.value="off",$e.value=""}async function Xt(e){const a=je;if(!await Aa()||a!==je||!Ee)return;const m=()=>a===je;L=xa({appId:e,onAvailability:C=>{m()&&(Pe.value=C,$e.value=L?.deviceName()??"")},onSession:C=>{m()&&Kt(C)},onMessage:C=>{m()&&Ft(C)}})}function Yt(){const e=s.value,a=o.value==="ready"&&e&&e.slides.length>0?e.cast_app_id??"":"",l=a?`${a}|${y.slug}`:"";l!==Be&&(dt(),l&&(Be=l,Xt(a)))}async function vt(e){const a=++v;Se(),o.value="pending",s.value=null,i.value="",d=window.setTimeout(()=>{a===v&&o.value==="pending"&&(o.value="loading")},200);try{const l=await I.speaker(e);if(a!==v)return;Se();const m=l.slides??[];s.value={...l,slides:m},on(e),oe.value=m[0]?.number??1,V.value=null,document.title=l.title?`Pilot · ${l.title}`:"Pilot · BM II°",o.value=m.length===0?"empty":"ready"}catch(l){if(a!==v)return;if(Se(),l instanceof be&&l.status===404){ln(e),await t.replace({name:"my-presentations",query:{denied:"1"}});return}if(l instanceof be&&l.status===401)return;i.value=l instanceof be&&l.status===429?Fa:Za,o.value="error"}}function Qt(){vt(y.slug)}function ft(e,a,l){if(document.querySelector(`meta[data-deck-remote="${l}"]`))return;const m=document.createElement("meta");m.name=e,m.content=a,m.dataset.deckRemote=l,document.head.appendChild(m)}return he(()=>y.slug,e=>{f&&We(),vt(e)},{immediate:!0}),he([s,o],()=>{Ot(),Yt()}),an(()=>{Ee=!0,document.documentElement.classList.add("deck-remote"),ft("robots","noindex","robots"),ft("theme-color","#141a18","theme"),document.addEventListener("visibilitychange",lt),P=window.setInterval(()=>{document.visibilityState==="visible"&&le()},pn),w=window.setInterval(Q,1e3),it()}),sn(()=>{Ee=!1,v+=1,Se(),W(),Le(),Gt(),dt(),Ce(),Pt(),window.clearInterval(P),window.clearInterval(w),document.removeEventListener("visibilitychange",lt),document.documentElement.classList.remove("deck-remote"),document.querySelectorAll("meta[data-deck-remote]").forEach(e=>e.remove())}),(e,a)=>(r(),u("main",{class:R(["remote",{"remote-page":o.value==="ready"||o.value==="empty","remote-drawer-open":o.value==="ready"&&V.value}])},[o.value==="loading"?(r(),u("p",Va,"Wczytywanie pilota…")):o.value==="error"?(r(),u("div",qa,[c("p",null,_(i.value),1),c("button",{type:"button",class:"remote-retry",onClick:Qt},"Spróbuj ponownie")])):(o.value==="ready"||o.value==="empty")&&s.value?(r(),u(M,{key:2},[ne(Na,{class:"remote-top","deck-title":s.value.title,status:o.value==="empty"?"waiting":x.value,live:o.value==="ready"&&A.value,counter:Re.value,"slide-title":St.value,chips:Ct.value,clock:Et.value},null,8,["deck-title","status","live","counter","slide-title","chips","clock"]),j.value?(r(),u("p",Ha,_(j.value),1)):E("",!0),c("div",Wa,[o.value==="empty"?(r(),u("div",Ga,[...a[0]||(a[0]=[c("p",{class:"remote-notice-head"},"Ta prezentacja nie ma jeszcze slajdów.",-1),c("p",{class:"remote-muted"},"Dodaj slajdy w panelu administracyjnym i otwórz pilota ponownie.",-1)])])):V.value?(r(),Xe(kt,{key:1,compact:"",cast:B.value,state:N.value,live:A.value,busy:ie.value,onPress:st},null,8,["cast","state","live","busy"])):(r(),u(M,{key:2},[ne(Pn,{availability:Pe.value,"device-name":$e.value,tv:Ne.value,onRequest:Ut,onLog:Jt},null,8,["availability","device-name","tv"]),A.value?E("",!0):(r(),u("div",Ka,[...a[1]||(a[1]=[c("p",{class:"remote-notice-head"},"Otwórz wersję mówcy na komputerze",-1),c("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)])])),ne(kt,{cast:B.value,state:N.value,live:A.value,busy:ie.value,onPress:st,onReset:Rt},null,8,["cast","state","live","busy"])],64))]),ne(la,{deck:s.value,state:N.value,live:o.value==="ready"&&A.value,cursor:oe.value,open:V.value,disabled:se.value===0,"wake-lock-missing":ze.value,onOpen:zt,onClose:$t,onCursor:Nt,onGoto:jt},null,8,["deck","state","live","cursor","open","disabled","wake-lock-missing"])],64)):E("",!0),c("dialog",{ref_key:"resetDialog",ref:ce,class:"remote-dialog","aria-labelledby":"remote-reset-title","aria-describedby":"remote-reset-body",onClick:Lt},[c("div",Ja,[a[2]||(a[2]=c("p",{id:"remote-reset-title",class:"remote-dialog-title"},"Wyzerować zegar?",-1)),a[3]||(a[3]=c("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)),c("button",{type:"button",class:"remote-dialog-btn remote-dialog-danger",onClick:Mt},"Zeruj zegar"),c("button",{ref_key:"resetCancel",ref:ot,type:"button",class:"remote-dialog-btn",autofocus:"",onClick:Ce},"Anuluj",512)])],512)],2))}}),rs=_e(es,[["__scopeId","data-v-83b6bba7"]]);export{rs as default};
|