1 line
4.9 KiB
JavaScript
1 line
4.9 KiB
JavaScript
import{Ct as e,Hn as t,Kt as n,St as r,Tn as i,Tt as a,Un as o,Vn as s,Yt as c,Zt as l,an as u,gt as d,jt as f,qt as p,wt as m,xt as h,yn as g}from"./client-Be0b5AZU.js";import{t as _}from"./_plugin-vue_export-helper-C_Iw6R3j.js";import{t as v}from"./QrCode-BWG8g5fm.js";import{r as y}from"./application-T8uHIr7B.js";var b=[{value:`SCREEN_TIMER_TYPE_BREAK`,label:`Перерыв`},{value:`SCREEN_TIMER_TYPE_BEFORE_GAME`,label:`До начала игры`},{value:`SCREEN_TIMER_TYPE_UNTIL_END`,label:`До конца игры`}];function x(e,t,n){let r=b.find(e=>e.value===(t??`SCREEN_TIMER_TYPE_BREAK`)).label;return!e?.trim()||e===r?b.find(e=>e.value===n).label:e}function S(e=``,t=``){try{let n=new URL(e);return/^https?:\/\/[^/\\\s?#]/.test(e)&&[`http:`,`https:`].includes(n.protocol)&&!!n.hostname&&!n.username&&!n.password&&e===e.trim()&&new TextEncoder().encode(e).length<=2048&&new TextEncoder().encode(t).length<=1e4}catch{return!1}}var C={key:0,class:`timer-preview`},w={key:1,class:`preview-message`},T=[`src`,`autoplay`,`loop`],E={key:3,class:`preview-message`},D={key:4,class:`preview-message`},O={key:5,class:`preview-qr`},k={key:1},A={key:2},j={key:6,class:`preview-team-list`},M={key:0,class:`preview-message`},N={key:2,class:`preview-message`},P={key:7,class:`preview-results`},F=[`src`],I={key:9,class:`preview-message`},L=_(f({__name:`ScreenPreview`,props:{state:{},questions:{},teams:{},teamNames:{},isThumbnail:{type:Boolean}},setup(f){let _=f,b=h(()=>Math.max(1,_.teamNames?.length??0)),x=g(Date.now()),L=g(0),R=g(Date.now()),z=g(),B=null,V=h(()=>{let e=_.state.backgroundImage||_.state.coverImage;return e?{backgroundImage:`linear-gradient(rgb(0 0 0 / 55%), rgb(0 0 0 / 55%)), url("${e}")`}:{}}),H=h(()=>_.state.timerState===`SCREEN_TIMER_STATE_RUNNING`?Math.max(0,L.value-(x.value-R.value)/1e3):L.value),U=h(()=>{let e=Math.floor(H.value/60),t=Math.floor(H.value%60);return`${String(e).padStart(2,`0`)}:${String(t).padStart(2,`0`)}`}),W=h(()=>y(_.state.introAudio)),G=h(()=>y(_.state.conclusionVideo));return u(()=>[_.state.timerRemainingSeconds,_.state.timerState,_.state.stateVersion],()=>{let e=Math.max(0,Number(_.state.timerRemainingSeconds||0));if(_.state.timerState===`SCREEN_TIMER_STATE_RUNNING`&&z.value===_.state.timerState){let t=Math.max(0,L.value-(Date.now()-R.value)/1e3);if(Math.abs(e-t)<=.5)return}L.value=e,R.value=Date.now(),z.value=_.state.timerState},{immediate:!0}),n(()=>{_.isThumbnail||(B=window.setInterval(()=>{x.value=Date.now()},250))}),p(()=>{B!=null&&window.clearInterval(B)}),(n,u)=>(c(),a(`div`,{class:s([`screen-preview`,{"screen-thumbnail":f.isThumbnail}]),style:t(V.value)},[f.state.mode===`SCREEN_MODE_TIMER`?(c(),a(`div`,C,[r(`h2`,null,o(f.state.timerLabel||`Перерыв`),1),r(`strong`,null,o(U.value),1)])):f.state.mode===`SCREEN_MODE_INTRO`?(c(),a(`div`,w,o(W.value?`Аудиозапись введения`:`Введение не задано`),1)):f.state.mode===`SCREEN_MODE_CONCLUSION`&&G.value?(c(),a(`video`,{key:2,src:G.value,autoplay:!f.isThumbnail,preload:`metadata`,class:`preview-video`,loop:!f.isThumbnail,muted:``,playsinline:``},null,8,T)):f.state.mode===`SCREEN_MODE_CONCLUSION`?(c(),a(`div`,E,` Видео закрывашки не задано `)):f.state.mode===`SCREEN_MODE_TEXT`?(c(),a(`div`,D,o(f.state.text),1)):f.state.mode===`SCREEN_MODE_QR`?(c(),a(`div`,O,[i(S)(f.state.qrUrl)?(c(),e(i(v),{key:0,value:f.state.qrUrl,size:512,padding:24},null,8,[`value`])):(c(),a(`span`,k,`Укажите ссылку для QR-кода`)),f.state.text?(c(),a(`p`,A,o(f.state.text),1)):m(``,!0)])):f.state.mode===`SCREEN_MODE_TEAMS`?(c(),a(`div`,j,[f.teamNames?f.teamNames.length?(c(),a(`div`,{key:1,class:`team-names`,style:t({gridTemplateRows:`repeat(${b.value}, minmax(0, 1fr))`,fontSize:`min(${22.5/b.value}cqw, 5cqw)`})},[(c(!0),a(d,null,l(f.teamNames,(e,t)=>(c(),a(`p`,{key:t},o(e),1))),128))],4)):(c(),a(`p`,N,`Команды пока не зарегистрированы`)):(c(),a(`p`,M,`Список команд ещё не загружен`))])):f.state.mode===`SCREEN_MODE_RESULTS`?(c(),a(`div`,P,[u[4]||=r(`h2`,null,`Результаты`,-1),r(`table`,null,[r(`thead`,null,[r(`tr`,null,[u[0]||=r(`th`,null,`Место`,-1),u[1]||=r(`th`,null,`Команда`,-1),(c(!0),a(d,null,l(f.questions,e=>(c(),a(`th`,{key:e.code},o(e.code),1))),128)),u[2]||=r(`th`,null,`Сумма`,-1),u[3]||=r(`th`,null,`Ходы`,-1)])]),r(`tbody`,null,[(c(!0),a(d,null,l(f.teams,e=>(c(),a(`tr`,{key:e.team?.ID},[r(`td`,null,o(e.place),1),r(`td`,null,o(e.team?.name),1),(c(!0),a(d,null,l(f.questions,t=>(c(),a(`td`,{key:t.code},o(e.answers?.find(e=>e.questionCode===t.code)?.score??0),1))),128)),r(`td`,null,o(e.totalScore),1),r(`td`,null,o(e.actionsCount),1)]))),128))])])])):f.state.coverImage?(c(),a(`img`,{key:8,src:f.state.coverImage,alt:`Обложка дела`,class:`preview-cover`},null,8,F)):(c(),a(`div`,I,o(f.state.gameName||`Обложка не задана`),1))],6))}}),[[`__scopeId`,`data-v-aa93ec4e`]]);export{S as i,x as n,b as r,L as t}; |