import{D as e,E as t,I as n,K as r,Lt as i,M as a,N as o,O as s,Rt as c,T as l,V as ee,W as te,Y as u,Z as d,at as f,gt as p,j as m,l as h,ot as g,q as _,r as ne,rt as re,u as ie,w as v,xt as y,y as b,yt as x,zt as S}from"./client-DXlIdAPE.js";import{H as C,N as ae,R as w,V as T,n as E,o as oe,r as se,t as ce}from"./light-BIsOPw8z.js";import{d as le,t as D}from"./Card-B9DBICFl.js";import{t as O}from"./Modal-DFHC6g9a.js";import{t as k}from"./use-merged-state-UQYRS3II.js";import{n as ue,t as A}from"./Button-CcjM7zNp.js";import{t as de}from"./Select-B0fdukwJ.js";import{n as fe,r as j}from"./use-form-item-RYm9Vtu-.js";import{a as pe,r as M}from"./resolve-slot-CYut2r4x.js";import{r as me}from"./Suffix-DkvtIJaL.js";import{t as he}from"./Add-Cn8-zp6r.js";import{t as N}from"./Input-DXZNHng_.js";import{t as P}from"./Remove-CfO9HjO6.js";import{t as F}from"./Tag-cr1aUmGQ.js";import{t as ge}from"./Alert-CVZSu-oL.js";import{n as _e,r as ve,t as I}from"./es-FaTWfn-R.js";import{t as L}from"./Space-BoT6AgVB.js";import{t as R}from"./Flex-BlFzWn2i.js";import{t as ye}from"./Rate-BLN6FKiL.js";import{t as be}from"./QrCode-DVQJ7F46.js";import{t as xe}from"./text-QAj6bI83.js";import{S as z,U as B,X as V,rt as Se,tt as Ce,w as H}from"./index-Cvq506nd.js";import{t as we}from"./HeaderMenu-CCe3SZd2.js";import{t as Te}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as Ee}from"./Settings-BlHIBr7A.js";import{t as De}from"./binary_client-Djl8PMA7.js";import{n as Oe,r as ke}from"./application-unfoo6WB.js";import{t as Ae}from"./useSimplePolling-CXfCzB7b.js";import{n as je,t as Me}from"./datetime-BJNH0M1T.js";function Ne(e){let{textColorDisabled:t}=e;return{iconColorDisabled:t}}var Pe=E({name:`InputNumber`,common:ce,peers:{Button:z,Input:H},self:Ne}),U=T([C(`input-number-suffix`,` display: inline-block; margin-right: 10px; `),C(`input-number-prefix`,` display: inline-block; margin-left: 10px; `)]);function Fe(e){return e==null||typeof e==`string`&&e.trim()===``?null:Number(e)}function Ie(e){return e.includes(`.`)&&(/^(-)?\d+.*(\.|0)$/.test(e)||/^-?\d*$/.test(e))||e===`-`||e===`-0`}function W(e){return e==null?!0:!Number.isNaN(e)}function G(e,t){return typeof e==`number`?t===void 0?String(e):e.toFixed(t):``}function Le(e){if(e===null)return null;if(typeof e==`number`)return e;{let t=Number(e);return Number.isNaN(t)?null:t}}var Re=800,ze=100,Be=o({name:`InputNumber`,props:Object.assign(Object.assign({},se.props),{autofocus:Boolean,loading:{type:Boolean,default:void 0},placeholder:String,defaultValue:{type:Number,default:null},value:Number,step:{type:[Number,String],default:1},min:[Number,String],max:[Number,String],size:String,disabled:{type:Boolean,default:void 0},validator:Function,bordered:{type:Boolean,default:void 0},showButton:{type:Boolean,default:!0},buttonPlacement:{type:String,default:`right`},inputProps:Object,readonly:Boolean,clearable:Boolean,keyboard:{type:Object,default:{}},updateValueOnInput:{type:Boolean,default:!0},round:{type:Boolean,default:void 0},parse:Function,format:Function,precision:Number,status:String,"onUpdate:value":[Function,Array],onUpdateValue:[Function,Array],onFocus:[Function,Array],onBlur:[Function,Array],onClear:[Function,Array],onChange:[Function,Array]}),slots:Object,setup(e){let{mergedBorderedRef:t,mergedClsPrefixRef:n,mergedRtlRef:r,mergedComponentPropsRef:i}=ae(e),a=se(`InputNumber`,`-input-number`,U,Pe,e,n),{localeRef:o}=me(`InputNumber`),s=fe(e,{mergedSize:t=>{let{size:n}=e;if(n)return n;let{mergedSize:r}=t||{};return r?.value?r.value:i?.value?.InputNumber?.size||`medium`}}),{mergedSizeRef:c,mergedDisabledRef:l,mergedStatusRef:te}=s,u=p(null),d=p(null),f=p(null),m=p(e.defaultValue),h=k(x(e,`value`),m),g=p(``),_=e=>{let t=String(e).split(`.`)[1];return t?t.length:0},ne=t=>{let n=[e.min,e.max,e.step,t].map(e=>e===void 0?0:_(e));return Math.max(...n)},ie=V(()=>{let{placeholder:t}=e;return t===void 0?o.value.placeholder:t}),y=V(()=>{let t=Le(e.step);return t===null||t===0?1:Math.abs(t)}),b=V(()=>{let t=Le(e.min);return t===null?null:t}),S=V(()=>{let t=Le(e.max);return t===null?null:t}),C=()=>{let{value:t}=h;if(W(t)){let{format:n,precision:r}=e;n?g.value=n(t):t===null||r===void 0||_(t)>r?g.value=G(t,void 0):g.value=G(t,r)}else g.value=String(t)};C();let T=t=>{let{value:n}=h;if(t===n){C();return}let{"onUpdate:value":r,onUpdateValue:i,onChange:a}=e,{nTriggerFormInput:o,nTriggerFormChange:c}=s;a&&j(a,t),i&&j(i,t),r&&j(r,t),m.value=t,o(),c()},E=({offset:t,doUpdateIfValid:n,fixPrecision:r,isInputing:i})=>{let{value:a}=g;if(i&&Ie(a))return!1;let o=(e.parse||Fe)(a);if(o===null)return n&&T(null),null;if(W(o)){let a=_(o),{precision:s}=e;if(s!==void 0&&st){if(!n||i)return!1;c=t}if(r!==null&&cE({offset:0,doUpdateIfValid:!1,isInputing:!1,fixPrecision:!1})===!1),D=V(()=>{let{value:t}=h;if(e.validator&&t===null)return!1;let{value:n}=y;return E({offset:-n,doUpdateIfValid:!1,isInputing:!1,fixPrecision:!1})!==!1}),O=V(()=>{let{value:t}=h;if(e.validator&&t===null)return!1;let{value:n}=y;return E({offset:+n,doUpdateIfValid:!1,isInputing:!1,fixPrecision:!1})!==!1});function ue(t){let{onFocus:n}=e,{nTriggerFormFocus:r}=s;n&&j(n,t),r()}function A(t){if(t.target===u.value?.wrapperElRef)return;let n=E({offset:0,doUpdateIfValid:!0,isInputing:!1,fixPrecision:!0});if(n!==!1){let e=u.value?.inputElRef;e&&(e.value=String(n||``)),h.value===n&&C()}else C();let{onBlur:r}=e,{nTriggerFormBlur:i}=s;r&&j(r,t),i(),ee(()=>{C()})}function de(t){let{onClear:n}=e;n&&j(n,t)}function pe(){let{value:t}=O;if(!t){ye();return}let{value:n}=h;if(n===null)e.validator||T(P());else{let{value:e}=y;E({offset:e,doUpdateIfValid:!0,isInputing:!1,fixPrecision:!0})}}function M(){let{value:t}=D;if(!t){L();return}let{value:n}=h;if(n===null)e.validator||T(P());else{let{value:e}=y;E({offset:-e,doUpdateIfValid:!0,isInputing:!1,fixPrecision:!0})}}let he=ue,N=A;function P(){if(e.validator)return null;let{value:t}=b,{value:n}=S;return t===null?n===null?0:Math.min(0,n):Math.max(0,t)}function F(e){de(e),T(null)}function ge(e){var t;f.value?.$el.contains(e.target)&&e.preventDefault(),d.value?.$el.contains(e.target)&&e.preventDefault(),(t=u.value)==null||t.activate()}let _e=null,ve=null,I=null;function L(){I&&=(window.clearTimeout(I),null),_e&&=(window.clearInterval(_e),null)}let R=null;function ye(){R&&=(window.clearTimeout(R),null),ve&&=(window.clearInterval(ve),null)}function be(){L(),I=window.setTimeout(()=>{_e=window.setInterval(()=>{M()},ze)},Re),le(`mouseup`,document,L,{once:!0})}function xe(){ye(),R=window.setTimeout(()=>{ve=window.setInterval(()=>{pe()},ze)},Re),le(`mouseup`,document,ye,{once:!0})}let z=()=>{ve||pe()},B=()=>{_e||M()};function Se(t){var n;if(t.key===`Enter`){if(t.target===u.value?.wrapperElRef)return;E({offset:0,doUpdateIfValid:!0,isInputing:!1,fixPrecision:!0})!==!1&&((n=u.value)==null||n.deactivate())}else if(t.key===`ArrowUp`){if(!O.value||e.keyboard.ArrowUp===!1)return;t.preventDefault(),E({offset:0,doUpdateIfValid:!0,isInputing:!1,fixPrecision:!0})!==!1&&pe()}else if(t.key===`ArrowDown`){if(!D.value||e.keyboard.ArrowDown===!1)return;t.preventDefault(),E({offset:0,doUpdateIfValid:!0,isInputing:!1,fixPrecision:!0})!==!1&&M()}}function Ce(t){g.value=t,e.updateValueOnInput&&!e.format&&!e.parse&&e.precision===void 0&&E({offset:0,doUpdateIfValid:!0,isInputing:!0,fixPrecision:!1})}re(h,()=>{C()});let H={focus:()=>u.value?.focus(),blur:()=>u.value?.blur(),select:()=>u.value?.select()},we=oe(`InputNumber`,r,n);return Object.assign(Object.assign({},H),{rtlEnabled:we,inputInstRef:u,minusButtonInstRef:d,addButtonInstRef:f,mergedClsPrefix:n,mergedBordered:t,uncontrolledValue:m,mergedValue:h,mergedPlaceholder:ie,displayedValueInvalid:ce,mergedSize:c,mergedDisabled:l,displayedValue:g,addable:O,minusable:D,mergedStatus:te,handleFocus:he,handleBlur:N,handleClear:F,handleMouseDown:ge,handleAddClick:z,handleMinusClick:B,handleAddMousedown:xe,handleMinusMousedown:be,handleKeyDown:Se,handleUpdateDisplayedValue:Ce,mergedTheme:a,inputThemeOverrides:{paddingSmall:`0 8px 0 10px`,paddingMedium:`0 8px 0 12px`,paddingLarge:`0 8px 0 14px`},buttonThemeOverrides:v(()=>{let{self:{iconColorDisabled:e}}=a.value,[t,n,r,i]=w(e);return{textColorTextDisabled:`rgb(${t}, ${n}, ${r})`,opacityDisabled:`${i}`}})})},render(){let{mergedClsPrefix:e,$slots:t}=this,r=()=>n(ue,{text:!0,disabled:!this.minusable||this.mergedDisabled||this.readonly,focusable:!1,theme:this.mergedTheme.peers.Button,themeOverrides:this.mergedTheme.peerOverrides.Button,builtinThemeOverrides:this.buttonThemeOverrides,onClick:this.handleMinusClick,onMousedown:this.handleMinusMousedown,ref:`minusButtonInstRef`},{icon:()=>M(t[`minus-icon`],()=>[n(B,{clsPrefix:e},{default:()=>n(P,null)})])}),i=()=>n(ue,{text:!0,disabled:!this.addable||this.mergedDisabled||this.readonly,focusable:!1,theme:this.mergedTheme.peers.Button,themeOverrides:this.mergedTheme.peerOverrides.Button,builtinThemeOverrides:this.buttonThemeOverrides,onClick:this.handleAddClick,onMousedown:this.handleAddMousedown,ref:`addButtonInstRef`},{icon:()=>M(t[`add-icon`],()=>[n(B,{clsPrefix:e},{default:()=>n(he,null)})])});return n(`div`,{class:[`${e}-input-number`,this.rtlEnabled&&`${e}-input-number--rtl`]},n(N,{ref:`inputInstRef`,autofocus:this.autofocus,status:this.mergedStatus,bordered:this.mergedBordered,loading:this.loading,value:this.displayedValue,onUpdateValue:this.handleUpdateDisplayedValue,theme:this.mergedTheme.peers.Input,themeOverrides:this.mergedTheme.peerOverrides.Input,builtinThemeOverrides:this.inputThemeOverrides,size:this.mergedSize,placeholder:this.mergedPlaceholder,disabled:this.mergedDisabled,readonly:this.readonly,round:this.round,textDecoration:this.displayedValueInvalid?`line-through`:void 0,onFocus:this.handleFocus,onBlur:this.handleBlur,onKeydown:this.handleKeyDown,onMousedown:this.handleMouseDown,onClear:this.handleClear,clearable:this.clearable,inputProps:this.inputProps,internalLoadingBeforeSuffix:!0},{prefix:()=>this.showButton&&this.buttonPlacement===`both`?[r(),pe(t.prefix,t=>t?n(`span`,{class:`${e}-input-number-prefix`},t):null)]:t.prefix?.call(t),suffix:()=>this.showButton?[pe(t.suffix,t=>t?n(`span`,{class:`${e}-input-number-suffix`},t):null),this.buttonPlacement===`right`?r():null,i()]:t.suffix?.call(t)}))}}),Ve={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},He=o({name:`Flag`,render:function(e,t){return u(),s(`svg`,Ve,t[0]||=[l(`path`,{d:`M6 30H4V2h24l-5.8 9l5.8 9H6zm0-12h18.33l-4.53-7l4.53-7H6z`,fill:`currentColor`},null,-1)])}}),Ue={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},We=o({name:`Pause`,render:function(e,t){return u(),s(`svg`,Ue,t[0]||=[l(`path`,{d:`M12 8v16H8V8h4m0-2H8a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h4a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2z`,fill:`currentColor`},null,-1),l(`path`,{d:`M24 8v16h-4V8h4m0-2h-4a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h4a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2z`,fill:`currentColor`},null,-1)])}}),Ge={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},Ke=o({name:`Play`,render:function(e,t){return u(),s(`svg`,Ge,t[0]||=[l(`path`,{d:`M7 28a1 1 0 0 1-1-1V5a1 1 0 0 1 1.482-.876l20 11a1 1 0 0 1 0 1.752l-20 11A1 1 0 0 1 7 28zM8 6.69V25.31L24.925 16z`,fill:`currentColor`},null,-1)])}}),qe={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},Je=o({name:`Reset`,render:function(e,t){return u(),s(`svg`,qe,t[0]||=[l(`path`,{d:`M18 28A12 12 0 1 0 6 16v6.2l-3.6-3.6L1 20l6 6l6-6l-1.4-1.4L8 22.2V16a10 10 0 1 1 10 10z`,fill:`currentColor`},null,-1)])}}),Ye={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},Xe=o({name:`Trophy`,render:function(e,t){return u(),s(`svg`,Ye,t[0]||=[l(`path`,{d:`M26 7h-2V6a2.002 2.002 0 0 0-2-2H10a2.002 2.002 0 0 0-2 2v1H6a2.002 2.002 0 0 0-2 2v3a4.005 4.005 0 0 0 4 4h.322A8.169 8.169 0 0 0 15 21.934V26h-5v2h12v-2h-5v-4.069A7.966 7.966 0 0 0 23.74 16H24a4.005 4.005 0 0 0 4-4V9a2.002 2.002 0 0 0-2-2zM8 14a2.002 2.002 0 0 1-2-2V9h2zm14 0a6 6 0 0 1-6.186 5.997A6.2 6.2 0 0 1 10 13.707V6h12zm4-2a2.002 2.002 0 0 1-2 2V9h2z`,fill:`currentColor`},null,-1)])}}),Ze={key:0,class:`timer-preview`},K=[`src`],Qe=[`src`],$e={key:3,class:`preview-message`},et={key:4,class:`preview-message`},tt={key:5,class:`preview-message`},nt={key:6,class:`preview-results`},q=[`src`],rt=Te(o({__name:`ScreenPreview`,props:{state:{},questions:{},teams:{}},setup(t){let n=t,i=p(Date.now()),a=p(0),o=p(Date.now()),ee=p(),te=null,f=v(()=>{let e=n.state.backgroundImage||n.state.coverImage;return e?{backgroundImage:`linear-gradient(rgb(0 0 0 / 55%), rgb(0 0 0 / 55%)), url("${e}")`}:{}}),m=v(()=>n.state.timerState===`SCREEN_TIMER_STATE_RUNNING`?Math.max(0,a.value-(i.value-o.value)/1e3):a.value),h=v(()=>{let e=Math.floor(m.value/60),t=Math.floor(m.value%60);return`${String(e).padStart(2,`0`)}:${String(t).padStart(2,`0`)}`}),g=v(()=>ke(n.state.introAudio)),ne=v(()=>ke(n.state.conclusionVideo));return re(()=>[n.state.timerRemainingSeconds,n.state.timerState,n.state.stateVersion],()=>{let e=Math.max(0,Number(n.state.timerRemainingSeconds||0));if(n.state.timerState===`SCREEN_TIMER_STATE_RUNNING`&&ee.value===n.state.timerState){let t=Math.max(0,a.value-(Date.now()-o.value)/1e3);if(Math.abs(e-t)<=.5)return}a.value=e,o.value=Date.now(),ee.value=n.state.timerState},{immediate:!0}),r(()=>{te=window.setInterval(()=>{i.value=Date.now()},250)}),_(()=>{te!=null&&window.clearInterval(te)}),(n,r)=>(u(),s(`div`,{class:`screen-preview`,style:c(f.value)},[t.state.mode===`SCREEN_MODE_TIMER`?(u(),s(`div`,Ze,[l(`h2`,null,S(t.state.timerLabel||`Перерыв`),1),l(`strong`,null,S(h.value),1)])):t.state.mode===`SCREEN_MODE_INTRO`&&g.value?(u(),s(`audio`,{key:1,src:g.value,controls:``},null,8,K)):t.state.mode===`SCREEN_MODE_CONCLUSION`&&ne.value?(u(),s(`video`,{key:2,src:ne.value,autoplay:``,class:`preview-video`,loop:``,muted:``,playsinline:``},null,8,Qe)):t.state.mode===`SCREEN_MODE_CONCLUSION`?(u(),s(`div`,$e,` Видео закрывашки не задано `)):t.state.mode===`SCREEN_MODE_INTRO_DONE`?(u(),s(`div`,et,`Успехов`)):t.state.mode===`SCREEN_MODE_CONCLUSION_DONE`?(u(),s(`div`,tt,` Спасибо за игру! `)):t.state.mode===`SCREEN_MODE_RESULTS`?(u(),s(`div`,nt,[r[4]||=l(`h2`,null,`Результаты`,-1),l(`table`,null,[l(`thead`,null,[l(`tr`,null,[r[0]||=l(`th`,null,`Место`,-1),r[1]||=l(`th`,null,`Команда`,-1),(u(!0),s(b,null,d(t.questions,e=>(u(),s(`th`,{key:e.code},S(e.code),1))),128)),r[2]||=l(`th`,null,`Сумма`,-1),r[3]||=l(`th`,null,`Ходы`,-1)])]),l(`tbody`,null,[(u(!0),s(b,null,d(t.teams,e=>(u(),s(`tr`,{key:e.team?.ID},[l(`td`,null,S(e.place),1),l(`td`,null,S(e.team?.name),1),(u(!0),s(b,null,d(t.questions,t=>(u(),s(`td`,{key:t.code},S(e.answers?.find(e=>e.questionCode===t.code)?.score??0),1))),128)),l(`td`,null,S(e.totalScore),1),l(`td`,null,S(e.actionsCount),1)]))),128))])])])):t.state.coverImage?(u(),s(`img`,{key:7,src:t.state.coverImage,alt:`Обложка дела`,class:`preview-cover`},null,8,q)):e(``,!0)],4))}}),[[`__scopeId`,`data-v-fab52465`]]),it={class:`center-block-custom`},at={class:`width1200`},ot={class:`settings-block`},st={class:`screens-block`},ct={key:1,class:`screen-empty`},lt={class:`screen-status`},ut={key:0,class:`screen-error`},dt={class:`map-preview-layout`},ft={class:`map-block`},pt=[`onPointerdown`],mt=[`onPointerdown`],ht={key:2},gt=[`onClick`],_t={class:`screen-preview-panel`},vt={key:1,class:`screen-preview-placeholder`},yt={class:`team-content-block`},bt={class:`title-block`},xt={class:`team-name-block`},St={key:0},Ct={key:1},wt={key:0},Tt={key:0},Et={key:1},Dt={key:2},Ot={key:3},kt={key:4},At={key:0,class:`give-application-image-block`},jt=[`src`],Mt=[`src`],Nt=[`href`],Pt=[`href`],Ft={class:`qr-block`},It={key:0,class:`answers-empty`},Lt={class:`answers-question-title`},Rt={class:`answers-question-answer`},zt={class:`correct-answer`},Bt={class:`answers-team-name`},Vt={class:`answers-team-answer`},Ht={key:0,class:`answers-empty`},J=Te(o({__name:`GamePage`,setup(n){let r=_e(),o=De(),_=p(!1),re=ie(),x=h().params.id,C=ve(),ae=p(!1),w=p({name:``,description:``,format:`online`,location:``}),T=p(!1),E=p(!1),oe=p(!1),se=p(!1),ce=p(``),le=p(``),k=p(1),ue=p(``),fe=p(!1),j=p(``),pe=p(``),M=p(!1),me=p(1),he=p([]),P=p(!1),z=p(!1),B=p(``),V=p(),H=p(!1),Te=p(!1),Ne,Pe=0,U=p({ID:void 0,name:void 0,description:void 0,startAt:void 0,status:void 0,format:void 0,location:void 0,scenario:void 0,teams:void 0}),Fe=[{label:`Ожидает ответа`,value:`pending`},{label:`Подтверждено`,value:`confirmed`},{label:`Отменено`,value:`cancelled`}],Ie=v(()=>(U.value.teams||[]).filter(e=>e.participationStatus!==`cancelled`).length),W=v(()=>new Map((U.value.teams||[]).filter(e=>e.applications?.length).map(e=>[e.ID,e]))),G=p([]),Le=p([]),Re=p([]),ze=p([]),Ve=p(!1),Ue=p(100),Ge=p(0),qe=p(10),Ye=p(`Перерыв`),Ze=p(!1),K=v(()=>{let e=G.value.map(e=>e.mode).filter(Boolean);if(!(!e.length||e.some(t=>t!==e[0])))return e[0]}),Qe=v(()=>G.value[0]),$e=v(()=>G.value.find(e=>e.status===`connected`)||G.value[0]),et=v(()=>G.value.some(e=>e.status===`disconnected`)),tt=v(()=>{switch(Qe.value?.timerState){case`SCREEN_TIMER_STATE_RUNNING`:return`Идёт`;case`SCREEN_TIMER_STATE_PAUSED`:return`Пауза`;case`SCREEN_TIMER_STATE_FINISHED`:return`Завершён`;default:return`Остановлен`}}),nt=v(()=>{let e=Math.max(0,Qe.value?.timerRemainingSeconds||0);return`${String(Math.floor(e/60)).padStart(2,`0`)}:${String(e%60).padStart(2,`0`)}`}),q=p(1),J=p({x:0,y:0}),Y,Ut;async function X(e){let t=await r.GetGame({ID:e});U.value=t.game,U.value.teams=U.value.teams?.sort((e,t)=>{let n=0;(e.applications?.length||0)>0&&(n=1);let r=0;if((t.applications?.length||0)>0&&(r=1),n>r)return-1;if(na?1:ie.stop()),Ne=void 0,Te.value=!1}function Gt(){Z(),z.value=!1}function Kt(e){try{let t=new URL(e,window.location.origin),n=t.searchParams.get(`screenId`),r=t.searchParams.get(`accessToken`);return t.pathname!==`/screen`||!n||!r?void 0:{screenID:n,accessToken:r}}catch{return}}async function qt(e,t){if(!H.value){H.value=!0;try{await r.BindScreen({screenID:e,accessToken:t,gameID:Number(x)}),C.success(`Экран привязан к игре`),await Wt(),Gt()}catch(e){C.error(e instanceof Error?e.message:`Не удалось привязать экран`)}finally{H.value=!1}}}async function Jt(){let e=window.BarcodeDetector;if(!e||!navigator.mediaDevices?.getUserMedia){B.value=`Сканирование камерой не поддерживается в этом браузере.`,z.value=!0;return}z.value=!0,B.value=``;try{if(Ne=await navigator.mediaDevices.getUserMedia({video:{facingMode:`environment`}}),Te.value=!0,await ee(),!V.value)return;V.value.srcObject=Ne,await V.value.play();let t=new e,n=async()=>{if(!(!V.value||!Ne))try{let e=(await t.detect(V.value))[0]?.rawValue;if(e){let t=Kt(e);if(t){Z(),await qt(t.screenID,t.accessToken);return}B.value=`Это не QR-код экрана.`}Pe=requestAnimationFrame(n)}catch{B.value=`Не удалось распознать QR-код.`,Z()}};Pe=requestAnimationFrame(n)}catch{B.value=`Не удалось открыть камеру.`,Z()}}async function Yt(){if(Y||Ve.value)return;let e=await r.GetGameMap({gameID:Number(x)});ze.value=e.items||[]}Yt();async function Xt(e,t=e.hidden){Ve.value=!0;try{await r.UpdateGameMapItem({gameID:Number(x),kind:e.kind,itemID:e.itemID,x:Math.round(e.x||0),y:Math.round(e.y||0),hidden:t})}finally{Ve.value=!1}}function Zt(e,t){Y={item:e,startX:t.clientX,startY:t.clientY,itemX:e.x||0,itemY:e.y||0},window.addEventListener(`pointermove`,Qt),window.addEventListener(`pointerup`,$t,{once:!0})}function Qt(e){if(!Y)return;let t=Y.item.kind===`team`?20:1;Y.item.x=Math.round((Y.itemX+(e.clientX-Y.startX)/q.value)/t)*t,Y.item.y=Math.round((Y.itemY+(e.clientY-Y.startY)/q.value)/t)*t}async function $t(){if(!Y)return;let e=Y.item;Y=void 0,window.removeEventListener(`pointermove`,Qt),await Xt(e),await Yt()}async function en(e){e.hidden=!e.hidden,await Xt(e)}function tn(e){q.value=Math.min(2,Math.max(.5,Number((q.value+e).toFixed(2))))}function nn(){q.value=1,J.value={x:0,y:0}}function rn(e){e.button===0&&(Ut={startX:e.clientX,startY:e.clientY,offsetX:J.value.x,offsetY:J.value.y},window.addEventListener(`pointermove`,an),window.addEventListener(`pointerup`,on,{once:!0}))}function an(e){Ut&&(J.value={x:Ut.offsetX+e.clientX-Ut.startX,y:Ut.offsetY+e.clientY-Ut.startY})}function on(){Ut=void 0,window.removeEventListener(`pointermove`,an)}function sn(e){e.preventDefault(),tn(e.deltaY<0?.1:-.1)}async function cn(e){await r.SetScreenSound({screenID:e.ID,soundEnabled:!0}),await Wt()}async function ln(e){await r.UnbindScreen({screenID:e.ID}),await Wt()}async function un(e){await r.SetScreenMode({gameID:Number(x),mode:e})}async function dn(){let e=qe.value,t=Ye.value.trim();if(!e||e<=0||!t){C.error(`Укажите длительность и надпись таймера`);return}await r.SetScreenTimer({gameID:Number(x),durationSeconds:Math.round(e*60),label:t}),await Wt()}async function Q(e){(e===`SCREEN_COMMAND_PLAY`||e===`SCREEN_COMMAND_REPLAY`)&&!window.confirm(`Запустить медиа на всех экранах?`)||await r.SendScreenCommand({gameID:Number(x),command:e,positionMs:Math.max(0,Math.round(Ge.value*1e3)),volume:Math.max(0,Math.min(100,Math.round(Ue.value)))})}async function fn(e,t,n=!1){let r=`/team-story/`+e+`?password=`+t;if(n){window.open(r,`_blank`);return}re.push(r)}async function pn(){if(!(_.value||!U.value.teams?.length)){_.value=!0;try{let{blob:e,filename:t}=await o.downloadTeamQR(U.value.ID),n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t,document.body.appendChild(r),r.click(),r.remove(),setTimeout(()=>URL.revokeObjectURL(n),1e3)}catch(e){C.error(e instanceof Error?e.message:`Не удалось скачать QR команд`)}finally{_.value=!1}}}function mn(){re.push(`/games/`+x+`/results`)}function hn(){w.value={name:U.value.name||``,description:U.value.description||``,format:U.value.format||`online`,location:U.value.location||``},ae.value=!0}function gn(){ae.value=!1}async function _n(){await r.UpdateGame({ID:U.value.ID,name:w.value.name,description:w.value.description,format:w.value.format,location:w.value.location.trim(),startAt:U.value.startAt,scenarioID:U.value.scenario?.ID}),await X(U.value.ID),ae.value=!1}let vn=p({ID:0,name:``,status:``,password:``,actionsCount:0,applications:[],captainEmail:void 0,participantsCount:void 0,participationStatus:void 0,participationSource:void 0,participationEmailError:void 0,participationEmailSent:void 0}),yn=p(``),bn=p({ID:0,name:``,status:``,password:``,actionsCount:0,applications:[],captainEmail:void 0,participantsCount:void 0,participationStatus:void 0,participationSource:void 0,participationEmailError:void 0,participationEmailSent:void 0}),$=p({name:``,image:``,file_type:``}),xn=window.location.href;function Sn(e,t){vn.value=e,$.value=t,T.value=!0}async function Cn(){if(k.value<1||k.value>8){C.error(`Укажите от 1 до 8 игроков`);return}await r.AddTeam({gameID:U.value.ID,name:ce.value,captainEmail:le.value.trim(),participantsCount:k.value}),await X(U.value.ID),E.value=!1,le.value=``,k.value=1}async function wn(){await r.GiveTeamApplications({ID:vn.value.ID,name:$.value.name}),await X(U.value.ID),T.value=!1}async function Tn(e){bn.value=e,oe.value=!0}async function En(){await r.DeleteTeam({ID:bn.value.ID}),await X(U.value.ID),oe.value=!1}async function Dn(){await r.DeleteGame({ID:U.value.ID}),C.success(`Игра удалена`),re.push(`/games`)}function On(e,t){return ne()+`/team-story/`+e+`?password=`+t}async function kn(e,t){j.value=e,pe.value=t,fe.value=!0}function An(){me.value=1,he.value=[],M.value=!0}async function jn(){if(!(P.value||!U.value.ID)){P.value=!0;try{let e=await r.IssueGameTickets({gameID:U.value.ID,count:me.value});he.value=e.tickets||[],C.success(`Выпущено билетов: ${he.value.length}`)}catch(e){C.error(e instanceof Error?e.message:`Не удалось выпустить билеты`)}finally{P.value=!1}}}Ae(()=>{X(Number(x)),Wt(),Yt()},2e3),te(Z);async function Mn(){await r.ResetGame({ID:U.value.ID}),await X(U.value.ID)}async function Nn(){await r.StartGame({ID:U.value.ID}),await X(U.value.ID)}async function Pn(){await r.PauseGame({ID:U.value.ID}),await X(U.value.ID)}async function Fn(){await r.PlayGame({ID:U.value.ID}),await X(U.value.ID)}async function In(){await r.FinishGame({ID:U.value.ID}),await X(U.value.ID)}let Ln=p(!1),Rn=p(!1),zn=p([]),Bn=p(0),Vn=p(0),Hn=p([]),Un=p([]),Wn=p({});function Gn(e,t){return(e??``)+`:`+(t??``)}function Kn(e,t){return(e.answers||[]).find(e=>e.questionCode==t)?.answer||``}function qn(e,t){Wn.value[e]=t===null?void 0:t}async function Jn(){let e=await r.GetGameAnswers({gameID:Number(x)});Hn.value=e.questions||[],Un.value=e.teams||[];let t={};for(let e of Un.value)for(let n of e.answers||[])t[Gn(e.team?.ID,n.questionCode)]=n.score;Wn.value=t}async function Yn(){Ln.value=!0,await Jn()}async function Xn(){Rn.value=!0;let e=await r.GetGameReviewsForModeration({gameID:Number(x)});zn.value=e.reviews||[],Bn.value=e.averageRating||0,Vn.value=e.reviewsCount||0}async function Zn(e,t){await r.ModerateGameReview({ID:e.ID,status:t}),await Xn()}async function Qn(){for(let e of Hn.value)for(let t of Un.value){let n=Wn.value[Gn(t.team?.ID,e.code)];await r.SetTeamAnswerScore({ID:t.team?.ID,questionCode:e.code,score:n??void 0})}C.success(`Баллы сохранены`),await Jn()}function $n(){let e=new Date;return new Date(e.getTime()-e.getTimezoneOffset()*6e4)}function er(e,t){if(e==``)return`Игра ещё не началась`;let n=je(e),r=$n();t!=``&&(r=je(t));let i=r.getTime()-n.getTime();if(i<0)return`Игра ещё не началась`;let a=Math.floor(i/1e3),o=Math.floor(a/60),s=Math.floor(o/60),c=Math.floor(s/24),l=Math.floor(c/30),ee=Math.floor(c/365);return ee>0?`${ee}г ${c%365}д`:l>0?`${l}мес ${c%30}д`:c>0?`${c}д ${s%24}ч`:s>0?`${s}ч ${o%60}м`:o>0?`${o}м ${a%60}с`:`${a}с`}let tr=p(``);return Ae(()=>{tr.value=er(U.value.startedAt||``,U.value.endedAt||``)},1e3),(n,r)=>(u(),s(b,null,[l(`div`,it,[l(`div`,at,[l(`div`,ot,[a(y(R),{justify:`space-between`},{default:f(()=>[a(y(L),null,{default:f(()=>[a(y(F),{bordered:!1,type:`info`},{default:f(()=>[m(` Участвуют команд: `+S(Ie.value),1)]),_:1}),a(y(F),{type:`info`},{default:f(()=>[m(S(tr.value),1)]),_:1}),y(Me)(U.value.startAt)?(u(),t(y(F),{key:0,type:`info`},{default:f(()=>[m(` Начало: `+S(y(Me)(U.value.startAt)),1)]),_:1})):e(``,!0)]),_:1}),a(y(R),{justify:`end`},{default:f(()=>[a(y(A),{quaternary:``,onClick:r[0]||=e=>kn(y(xn),`Админка`)},{default:f(()=>[...r[74]||=[m(` QR `,-1)]]),_:1}),a(y(A),{quaternary:``,onClick:r[1]||=e=>An()},{default:f(()=>[...r[75]||=[m(` Выпустить билеты `,-1)]]),_:1}),a(y(A),{quaternary:``,onClick:r[2]||=e=>Yn()},{default:f(()=>[...r[76]||=[m(` Ответы команд `,-1)]]),_:1}),U.value.status==`finish`?(u(),t(y(A),{key:0,quaternary:``,onClick:r[3]||=e=>mn()},{default:f(()=>[a(y(I),{class:`settings-icon`},{default:f(()=>[a(y(Xe))]),_:1}),r[77]||=m(` Итоги `,-1)]),_:1})):e(``,!0),Ie.value?(u(),t(y(A),{key:1,quaternary:``,loading:_.value,disabled:_.value,onClick:r[4]||=e=>pn()},{default:f(()=>[...r[78]||=[m(` QR команд `,-1)]]),_:1},8,[`loading`,`disabled`])):e(``,!0),a(y(A),{quaternary:``,onClick:r[5]||=e=>hn()},{default:f(()=>[a(y(I),{class:`settings-icon`},{default:f(()=>[a(y(Ee))]),_:1}),r[79]||=m(` Настройки `,-1)]),_:1}),(U.value.teams?.length||0)==0?(u(),t(y(A),{key:2,type:`error`,quaternary:``,onClick:r[6]||=e=>se.value=!0},{default:f(()=>[...r[80]||=[m(` Удалить игру `,-1)]]),_:1})):e(``,!0),a(y(L),null,{default:f(()=>[U.value.status==`draft`?e(``,!0):(u(),t(y(A),{key:0,type:`info`,dashed:``,onClick:r[7]||=e=>Mn()},{default:f(()=>[a(y(I),null,{default:f(()=>[a(y(Je))]),_:1})]),_:1})),U.value.status==`draft`?(u(),t(y(A),{key:1,type:`info`,dashed:``,onClick:r[8]||=e=>Nn()},{default:f(()=>[a(y(I),null,{default:f(()=>[a(y(Ke))]),_:1})]),_:1})):e(``,!0),U.value.status==`pause`?(u(),t(y(A),{key:2,type:`info`,dashed:``,onClick:r[9]||=e=>Fn()},{default:f(()=>[a(y(I),null,{default:f(()=>[a(y(Ke))]),_:1})]),_:1})):e(``,!0),U.value.status==`run`?(u(),t(y(A),{key:3,type:`info`,dashed:``,onClick:r[10]||=e=>Pn()},{default:f(()=>[a(y(I),null,{default:f(()=>[a(y(We))]),_:1})]),_:1})):e(``,!0),U.value.status==`finish`?e(``,!0):(u(),t(y(A),{key:4,type:`info`,dashed:``,onClick:r[11]||=e=>In()},{default:f(()=>[a(y(I),null,{default:f(()=>[a(y(He))]),_:1})]),_:1}))]),_:1})]),_:1})]),_:1})]),l(`div`,st,[a(y(R),{align:`center`,justify:`space-between`},{default:f(()=>[r[82]||=l(`p`,{class:`screens-title`},`Экраны`,-1),a(y(A),{size:`small`,type:`primary`,onClick:Jt},{default:f(()=>[...r[81]||=[m(`Привязать экран`,-1)]]),_:1})]),_:1}),et.value?(u(),t(y(ge),{key:0,type:`warning`,title:`Проверьте подключение экрана`},{default:f(()=>[...r[83]||=[m(` Один или несколько экранов не выходят на связь более минуты. `,-1)]]),_:1})):e(``,!0),G.value.length===0?(u(),s(`p`,ct,`К игре пока не привязаны экраны.`)):(u(),s(b,{key:2},[(u(!0),s(b,null,d(G.value,n=>(u(),s(`div`,{key:n.ID,class:`screen-row`},[l(`div`,null,[l(`div`,null,`Экран `+S(n.ID),1),l(`div`,lt,S(n.status===`connected`?`Онлайн`:`Оффлайн`),1),n.error?(u(),s(`div`,ut,S(n.error),1)):e(``,!0)]),a(y(R),{justify:`end`},{default:f(()=>[n.soundEnabled?(u(),t(y(F),{key:0,type:`success`},{default:f(()=>[...r[84]||=[m(`Со звуком`,-1)]]),_:1})):(u(),t(y(A),{key:1,size:`small`,onClick:e=>cn(n)},{default:f(()=>[...r[85]||=[m(`Назначить звук`,-1)]]),_:1},8,[`onClick`])),a(y(A),{size:`small`,type:`error`,ghost:``,onClick:e=>ln(n)},{default:f(()=>[...r[86]||=[m(` Отвязать `,-1)]]),_:1},8,[`onClick`])]),_:2},1024)]))),128)),a(y(L),{class:`screen-mode-controls`},{default:f(()=>[a(y(A),{size:`small`,type:K.value===`SCREEN_MODE_COVER`?`primary`:`default`,onClick:r[12]||=e=>un(`SCREEN_MODE_COVER`)},{default:f(()=>[...r[87]||=[m(`Обложка`,-1)]]),_:1},8,[`type`]),a(y(A),{size:`small`,type:K.value===`SCREEN_MODE_INTRO`?`primary`:`default`,onClick:r[13]||=e=>un(`SCREEN_MODE_INTRO`)},{default:f(()=>[...r[88]||=[m(`Введение`,-1)]]),_:1},8,[`type`]),a(y(A),{size:`small`,type:K.value===`SCREEN_MODE_INTRO_DONE`?`primary`:`default`,onClick:r[14]||=e=>un(`SCREEN_MODE_INTRO_DONE`)},{default:f(()=>[...r[89]||=[m(`Успехов`,-1)]]),_:1},8,[`type`]),a(y(A),{size:`small`,type:K.value===`SCREEN_MODE_CONCLUSION`?`primary`:`default`,onClick:r[15]||=e=>un(`SCREEN_MODE_CONCLUSION`)},{default:f(()=>[...r[90]||=[m(`Закрывашка`,-1)]]),_:1},8,[`type`]),a(y(A),{size:`small`,type:K.value===`SCREEN_MODE_CONCLUSION_DONE`?`primary`:`default`,onClick:r[16]||=e=>un(`SCREEN_MODE_CONCLUSION_DONE`)},{default:f(()=>[...r[91]||=[m(`Спасибо за игру!`,-1)]]),_:1},8,[`type`]),U.value.status===`finish`?(u(),t(y(A),{key:0,size:`small`,type:K.value===`SCREEN_MODE_RESULTS`?`primary`:`default`,onClick:r[17]||=e=>un(`SCREEN_MODE_RESULTS`)},{default:f(()=>[...r[92]||=[m(`Результаты`,-1)]]),_:1},8,[`type`])):e(``,!0),a(y(A),{type:K.value===`SCREEN_MODE_TIMER`?`primary`:`default`,onClick:r[18]||=e=>un(`SCREEN_MODE_TIMER`)},{default:f(()=>[...r[93]||=[m(`Таймер`,-1)]]),_:1},8,[`type`])]),_:1}),a(y(L),{class:`screen-mode-controls`,align:`center`},{default:f(()=>[a(y(Be),{value:qe.value,"onUpdate:value":r[19]||=e=>qe.value=e,min:1,max:1440,step:1,size:`small`,placeholder:`Минуты`},null,8,[`value`]),a(y(N),{value:Ye.value,"onUpdate:value":r[20]||=e=>Ye.value=e,size:`small`,placeholder:`Надпись таймера`},null,8,[`value`]),a(y(A),{size:`small`,onClick:dn},{default:f(()=>[...r[94]||=[m(`Настроить таймер`,-1)]]),_:1}),a(y(F),{type:`info`},{default:f(()=>[m(S(tt.value)+` · `+S(nt.value),1)]),_:1})]),_:1}),a(y(L),{class:`screen-mode-controls`},{default:f(()=>[a(y(A),{size:`small`,onClick:r[21]||=e=>Q(`SCREEN_COMMAND_TIMER_START`)},{default:f(()=>[...r[95]||=[m(`Старт таймера`,-1)]]),_:1}),a(y(A),{size:`small`,onClick:r[22]||=e=>Q(`SCREEN_COMMAND_TIMER_PAUSE`)},{default:f(()=>[...r[96]||=[m(`Пауза таймера`,-1)]]),_:1}),a(y(A),{size:`small`,onClick:r[23]||=e=>Q(`SCREEN_COMMAND_TIMER_RESUME`)},{default:f(()=>[...r[97]||=[m(`Продолжить таймер`,-1)]]),_:1}),a(y(A),{size:`small`,onClick:r[24]||=e=>Q(`SCREEN_COMMAND_TIMER_RESET`)},{default:f(()=>[...r[98]||=[m(`Сбросить таймер`,-1)]]),_:1})]),_:1}),a(y(L),{class:`screen-mode-controls`},{default:f(()=>[a(y(A),{size:`small`,onClick:r[25]||=e=>Q(`SCREEN_COMMAND_PLAY`)},{default:f(()=>[...r[99]||=[m(`Запуск`,-1)]]),_:1}),a(y(A),{size:`small`,onClick:r[26]||=e=>Q(`SCREEN_COMMAND_PAUSE`)},{default:f(()=>[...r[100]||=[m(`Пауза`,-1)]]),_:1}),a(y(A),{size:`small`,onClick:r[27]||=e=>Q(`SCREEN_COMMAND_RESUME`)},{default:f(()=>[...r[101]||=[m(`Продолжить`,-1)]]),_:1}),a(y(A),{size:`small`,onClick:r[28]||=e=>Q(`SCREEN_COMMAND_STOP`)},{default:f(()=>[...r[102]||=[m(`Стоп`,-1)]]),_:1}),a(y(A),{size:`small`,onClick:r[29]||=e=>Q(`SCREEN_COMMAND_REPLAY`)},{default:f(()=>[...r[103]||=[m(`Повтор`,-1)]]),_:1})]),_:1}),a(y(L),{class:`screen-mode-controls`,align:`center`},{default:f(()=>[a(y(xe),null,{default:f(()=>[...r[104]||=[m(`Громкость`,-1)]]),_:1}),a(y(Be),{value:Ue.value,"onUpdate:value":r[30]||=e=>Ue.value=e,min:0,max:100,step:5,size:`small`},null,8,[`value`]),a(y(A),{size:`small`,onClick:r[31]||=e=>Q(`SCREEN_COMMAND_VOLUME`)},{default:f(()=>[...r[105]||=[m(`Применить`,-1)]]),_:1}),a(y(xe),null,{default:f(()=>[...r[106]||=[m(`Позиция, сек.`,-1)]]),_:1}),a(y(Be),{value:Ge.value,"onUpdate:value":r[32]||=e=>Ge.value=e,min:0,step:5,size:`small`},null,8,[`value`]),a(y(A),{size:`small`,onClick:r[33]||=e=>Q(`SCREEN_COMMAND_SEEK`)},{default:f(()=>[...r[107]||=[m(`Перемотать`,-1)]]),_:1})]),_:1})],64))]),l(`div`,dt,[l(`div`,ft,[a(y(R),{align:`center`,justify:`space-between`},{default:f(()=>[r[111]||=l(`p`,{class:`screens-title`},`Карта помещения`,-1),a(y(L),null,{default:f(()=>[a(y(A),{size:`small`,onClick:r[34]||=e=>tn(-.1)},{default:f(()=>[...r[108]||=[m(`−`,-1)]]),_:1}),a(y(xe),null,{default:f(()=>[m(S(Math.round(q.value*100))+`%`,1)]),_:1}),a(y(A),{size:`small`,onClick:r[35]||=e=>tn(.1)},{default:f(()=>[...r[109]||=[m(`+`,-1)]]),_:1}),a(y(A),{size:`small`,onClick:nn},{default:f(()=>[...r[110]||=[m(`Сбросить`,-1)]]),_:1})]),_:1})]),_:1}),l(`div`,{class:`map-field`,onPointerdown:rn,onWheel:sn},[l(`div`,{class:`map-canvas`,style:c({transform:`translate(${J.value.x}px, ${J.value.y}px) scale(${q.value})`})},[(u(!0),s(b,null,d(ze.value,n=>g((u(),s(`div`,{key:`${n.kind}-${n.itemID}`,class:i([`map-item`,[n.kind===`screen`?`map-screen`:n.kind===`organizer_desk`?`map-organizer-desk`:`map-team`,{"map-team-needs-applications":n.kind===`team`&&W.value.has(n.itemID)}]]),style:c({left:`${n.x||0}px`,top:`${n.y||0}px`}),onPointerdown:Se(e=>n.kind!==`team`&&Zt(n,e),[`stop`])},[n.kind===`team`?(u(),s(`div`,{key:0,class:`map-team-handle`,onPointerdown:Se(e=>Zt(n,e),[`stop`])},null,40,mt)):e(``,!0),l(`span`,null,S(n.label),1),n.kind===`team`&&W.value.has(n.itemID)?(u(),t(y(L),{key:1,class:`map-team-applications`,vertical:``},{default:f(()=>[(u(!0),s(b,null,d(W.value.get(n.itemID)?.applications,e=>(u(),t(y(A),{key:e.name,size:`small`,onClick:t=>Sn(W.value.get(n.itemID),e)},{default:f(()=>[m(` Выдать: `+S(e.name),1)]),_:2},1032,[`onClick`]))),128))]),_:2},1024)):e(``,!0),n.kind===`screen`?(u(),s(`small`,ht,S(n.status)+S(n.soundEnabled?` · звук`:``),1)):e(``,!0),l(`button`,{class:`map-item-hide`,type:`button`,onPointerdown:r[36]||=Se(()=>{},[`stop`]),onClick:Se(e=>en(n),[`stop`])},` × `,40,gt)],46,pt)),[[Ce,!n.hidden]])),128))],4)],32),ze.value.some(e=>e.hidden)?(u(),t(y(L),{key:0,class:`map-hidden-items`},{default:f(()=>[(u(!0),s(b,null,d(ze.value.filter(e=>e.hidden),e=>(u(),t(y(A),{key:`hidden-${e.kind}-${e.itemID}`,size:`small`,onClick:t=>en(e)},{default:f(()=>[m(` Добавить `+S(e.label),1)]),_:2},1032,[`onClick`]))),128))]),_:1})):e(``,!0)]),l(`aside`,_t,[r[112]||=l(`p`,{class:`screens-title`},`Превью экрана`,-1),$e.value?.status===`connected`?(u(),t(rt,{key:0,state:$e.value,questions:Le.value,teams:Re.value},null,8,[`state`,`questions`,`teams`])):(u(),s(`div`,vt,`Экран не подключён`))])]),l(`div`,{class:`team-block team-block-hover`,onClick:r[37]||=e=>E.value=!0},[...r[113]||=[l(`p`,{class:`place-image-plus`},`+`,-1)]]),(u(!0),s(b,null,d(U.value.teams,n=>(u(),s(`div`,{key:n.ID,class:`team-block`},[l(`div`,yt,[a(y(R),{justify:`space-between`},{default:f(()=>[l(`div`,bt,[l(`span`,xt,[m(S(n.name)+` `,1),n.captainEmail?(u(),s(`small`,St,` — `+S(n.captainEmail),1)):e(``,!0),n.participantsCount?(u(),s(`small`,Ct,` · Участников: `+S(n.participantsCount),1)):e(``,!0)]),n.captainEmail||n.participationStatus!==`pending`?(u(),s(`div`,wt,[m(S(Fe.find(e=>e.value===n.participationStatus)?.label),1),n.participationSource===`automatic`?(u(),s(`span`,Tt,` · автоматически`)):e(``,!0)])):e(``,!0),n.captainEmail?n.participationEmailError?(u(),s(`div`,Dt,` Ошибка отправки: `+S(n.participationEmailError),1)):n.participationEmailSent?(u(),s(`div`,Ot,`Письмо отправлено`)):e(``,!0):(u(),s(`div`,Et,`Почта капитана не указана`)),n.participationStatus===`cancelled`?e(``,!0):(u(),s(`div`,kt,` Поездки: `+S(n.actionsCount),1))]),a(y(R),{justify:`end`},{default:f(()=>[n.participationStatus===`cancelled`?e(``,!0):(u(),t(y(A),{key:0,onClick:e=>kn(On(n.ID,n.password),`Подсмотреть игру`)},{default:f(()=>[...r[114]||=[m(` QR `,-1)]]),_:1},8,[`onClick`])),n.participationStatus===`cancelled`?e(``,!0):(u(),t(y(A),{key:1,onClick:e=>fn(n.ID,n.password,!0)},{default:f(()=>[...r[115]||=[m(` Подсмотреть игру `,-1)]]),_:1},8,[`onClick`])),a(y(A),{type:`error`,ghost:``,onClick:e=>Tn(n)},{default:f(()=>[...r[116]||=[m(` Удалить `,-1)]]),_:1},8,[`onClick`])]),_:2},1024)]),_:2},1024),(u(!0),s(b,null,d(n.applications,e=>(u(),t(y(A),{key:e.name,class:`link-button`,onClick:t=>Sn(n,e)},{default:f(()=>[m(` Выдать: `+S(e.name),1)]),_:2},1032,[`onClick`]))),128))])]))),128))])]),a(y(O),{show:z.value,"onUpdate:show":r[38]||=e=>z.value=e,onAfterLeave:Z},{default:f(()=>[a(y(D),{style:{width:`min(600px, 94vw)`},title:`Привязать экран`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":f(()=>[a(y(A),{onClick:Gt},{default:f(()=>[...r[117]||=[m(` x `,-1)]]),_:1})]),default:f(()=>[a(y(L),{vertical:``},{default:f(()=>[l(`video`,{ref_key:`screenScannerVideo`,ref:V,class:`screen-scanner-video`,muted:``,playsinline:``},null,512),B.value?(u(),t(y(ge),{key:0,type:`error`},{default:f(()=>[m(S(B.value),1)]),_:1})):e(``,!0),!Te.value&&!H.value?(u(),t(y(A),{key:1,type:`primary`,onClick:Jt},{default:f(()=>[...r[118]||=[m(` Сканировать QR-код `,-1)]]),_:1})):e(``,!0),Te.value?(u(),t(y(A),{key:2,onClick:Z},{default:f(()=>[...r[119]||=[m(`Остановить камеру`,-1)]]),_:1})):e(``,!0),H.value?(u(),t(y(A),{key:3,type:`primary`,loading:``},{default:f(()=>[...r[120]||=[m(`Привязка…`,-1)]]),_:1})):e(``,!0)]),_:1})]),_:1})]),_:1},8,[`show`]),a(y(O),{show:ae.value,"onUpdate:show":r[45]||=e=>ae.value=e},{default:f(()=>[a(y(D),{style:{width:`600px`},title:`Настройки игры`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":f(()=>[a(y(A),{onClick:r[39]||=e=>gn()},{default:f(()=>[...r[121]||=[m(` x `,-1)]]),_:1})]),footer:f(()=>[a(y(R),{justify:`end`},{default:f(()=>[a(y(A),{onClick:r[44]||=e=>_n(),ghost:``},{default:f(()=>[...r[126]||=[m(` Сохранить изменения `,-1)]]),_:1})]),_:1})]),default:f(()=>[a(y(L),{vertical:``},{default:f(()=>[r[122]||=l(`p`,null,`Название`,-1),a(y(N),{value:w.value.name,"onUpdate:value":r[40]||=e=>w.value.name=e,type:`text`,placeholder:`Дело №0 "Следствие ведут овечки"`},null,8,[`value`]),r[123]||=l(`p`,{class:`settings-header`},`Формат игры`,-1),a(y(de),{value:w.value.format,"onUpdate:value":r[41]||=e=>w.value.format=e,options:[{label:`Online`,value:`online`},{label:`Offline`,value:`offline`}],"aria-label":`Формат игры`},null,8,[`value`]),r[124]||=l(`p`,{class:`settings-header`},`Описание`,-1),a(y(N),{value:w.value.description,"onUpdate:value":r[42]||=e=>w.value.description=e,type:`textarea`,placeholder:`Убийство пастуха...`},null,8,[`value`]),r[125]||=l(`p`,{class:`settings-header`},`Место проведения`,-1),a(y(N),{value:w.value.location,"onUpdate:value":r[43]||=e=>w.value.location=e,type:`text`,placeholder:`Оставьте пустым для онлайн-игры`},null,8,[`value`])]),_:1})]),_:1})]),_:1},8,[`show`]),a(y(O),{show:T.value,"onUpdate:show":r[48]||=e=>T.value=e},{default:f(()=>[a(y(D),{style:{width:`600px`},title:`Настройки игры`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":f(()=>[a(y(A),{onClick:r[46]||=e=>T.value=!1},{default:f(()=>[...r[127]||=[m(` x `,-1)]]),_:1})]),footer:f(()=>[a(y(R),{justify:`end`},{default:f(()=>[a(y(A),{onClick:r[47]||=e=>wn(),ghost:``},{default:f(()=>[...r[130]||=[m(` Выдать `,-1)]]),_:1})]),_:1})]),default:f(()=>[a(y(L),{vertical:``},{default:f(()=>[r[128]||=l(`p`,null,`Команда`,-1),l(`h3`,null,S(vn.value.name),1),r[129]||=l(`p`,null,`Улика`,-1),l(`h3`,null,S($.value.name),1),y(Oe)($.value)==`image`&&$.value.image?(u(),s(`div`,At,[l(`img`,{src:y(ke)($.value.image),class:`give-application-image`},null,8,jt)])):y(Oe)($.value)==`audio`&&$.value.image?(u(),s(`audio`,{key:1,src:y(ke)($.value.image),controls:``,preload:`none`,class:`give-application-audio`},null,8,Mt)):y(Oe)($.value)==`pdf`&&$.value.image?(u(),s(`a`,{key:2,href:y(ke)($.value.image),target:`_blank`,rel:`noopener`,class:`give-application-pdf-link`},` PDF `,8,Nt)):e(``,!0)]),_:1})]),_:1})]),_:1},8,[`show`]),a(y(O),{show:E.value,"onUpdate:show":r[54]||=e=>E.value=e},{default:f(()=>[a(y(D),{style:{width:`600px`},title:`Создание команды`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":f(()=>[a(y(A),{onClick:r[49]||=e=>E.value=!1},{default:f(()=>[...r[131]||=[m(` x `,-1)]]),_:1})]),footer:f(()=>[a(y(R),{justify:`end`},{default:f(()=>[a(y(A),{onClick:r[53]||=e=>Cn(),disabled:ce.value.length==0},{default:f(()=>[...r[132]||=[m(` Создать `,-1)]]),_:1},8,[`disabled`])]),_:1})]),default:f(()=>[a(y(L),{vertical:``},{default:f(()=>[a(y(N),{value:ce.value,"onUpdate:value":r[50]||=e=>ce.value=e,type:`text`,placeholder:`Три дебила`},null,8,[`value`]),a(y(N),{value:le.value,"onUpdate:value":r[51]||=e=>le.value=e,"input-props":{type:`email`,autocomplete:`email`},placeholder:`Почта капитана (необязательно)`,"aria-label":`Почта капитана (необязательно)`},null,8,[`value`]),a(y(Be),{value:k.value,"onUpdate:value":r[52]||=e=>k.value=e,min:1,max:8,precision:0,placeholder:`Количество игроков`,"aria-label":`Количество игроков`},null,8,[`value`])]),_:1})]),_:1})]),_:1},8,[`show`]),a(y(O),{show:oe.value,"onUpdate:show":r[58]||=e=>oe.value=e},{default:f(()=>[a(y(D),{style:{width:`600px`},title:`Удаление команды`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":f(()=>[a(y(A),{onClick:r[55]||=e=>oe.value=!1},{default:f(()=>[...r[133]||=[m(` x `,-1)]]),_:1})]),footer:f(()=>[a(y(R),{justify:`end`},{default:f(()=>[a(y(A),{onClick:r[57]||=e=>En(),disabled:yn.value!=bn.value.name},{default:f(()=>[...r[136]||=[m(` Удалить `,-1)]]),_:1},8,[`disabled`])]),_:1})]),default:f(()=>[a(y(L),{vertical:``},{default:f(()=>[l(`p`,null,[r[134]||=m(` Введите название команды `,-1),a(y(xe),{class:`name-text`,strong:``},{default:f(()=>[m(S(bn.value.name),1)]),_:1}),r[135]||=m(` чтобы удалить его `,-1)]),a(y(N),{value:yn.value,"onUpdate:value":r[56]||=e=>yn.value=e,type:`text`,placeholder:`Три дебила`},null,8,[`value`])]),_:1})]),_:1})]),_:1},8,[`show`]),a(y(O),{show:se.value,"onUpdate:show":r[62]||=e=>se.value=e},{default:f(()=>[a(y(D),{style:{width:`600px`},title:`Удаление игры`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":f(()=>[a(y(A),{onClick:r[59]||=e=>se.value=!1},{default:f(()=>[...r[137]||=[m(` x `,-1)]]),_:1})]),footer:f(()=>[a(y(R),{justify:`end`},{default:f(()=>[a(y(A),{onClick:r[61]||=e=>Dn(),disabled:ue.value!=U.value.name},{default:f(()=>[...r[140]||=[m(` Удалить `,-1)]]),_:1},8,[`disabled`])]),_:1})]),default:f(()=>[a(y(L),{vertical:``},{default:f(()=>[l(`p`,null,[r[138]||=m(` Введите название игры `,-1),a(y(xe),{class:`name-text`,strong:``},{default:f(()=>[m(S(U.value.name),1)]),_:1}),r[139]||=m(` чтобы удалить её `,-1)]),a(y(N),{value:ue.value,"onUpdate:value":r[60]||=e=>ue.value=e,type:`text`,placeholder:`Дело №0 "Следствие ведут овечки"`},null,8,[`value`])]),_:1})]),_:1})]),_:1},8,[`show`]),a(y(O),{show:M.value,"onUpdate:show":r[66]||=e=>M.value=e},{default:f(()=>[a(y(D),{style:{width:`min(94vw, 700px)`},title:`Выпуск билетов`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":f(()=>[a(y(A),{onClick:r[63]||=e=>M.value=!1},{default:f(()=>[...r[141]||=[m(` x `,-1)]]),_:1})]),default:f(()=>[a(y(L),{vertical:``},{default:f(()=>[a(y(Be),{value:me.value,"onUpdate:value":r[64]||=e=>me.value=e,min:1,max:100},null,8,[`value`]),a(y(A),{type:`primary`,loading:P.value,disabled:P.value,onClick:r[65]||=e=>jn()},{default:f(()=>[...r[142]||=[m(` Выпустить `,-1)]]),_:1},8,[`loading`,`disabled`]),(u(!0),s(b,null,d(he.value,e=>(u(),s(`div`,{key:e.ID,class:`issued-ticket`},[l(`div`,null,`Билет №`+S(e.ID),1),l(`a`,{href:e.URL,target:`_blank`,rel:`noreferrer`},`Открыть страницу билета`,8,Pt),a(y(A),{size:`small`,onClick:t=>kn(e.URL,`Билет №${e.ID}`)},{default:f(()=>[...r[143]||=[m(` Показать QR `,-1)]]),_:1},8,[`onClick`])]))),128))]),_:1})]),_:1})]),_:1},8,[`show`]),a(y(O),{show:fe.value,"onUpdate:show":r[68]||=e=>fe.value=e},{default:f(()=>[a(y(D),{style:{width:`600px`},title:pe.value,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":f(()=>[a(y(A),{onClick:r[67]||=e=>fe.value=!1},{default:f(()=>[...r[144]||=[m(` x `,-1)]]),_:1})]),footer:f(()=>[...r[145]||=[]]),default:f(()=>[a(y(L),{vertical:``},{default:f(()=>[l(`div`,Ft,[a(y(be),{value:j.value,size:300,padding:0},null,8,[`value`])])]),_:1})]),_:1},8,[`title`])]),_:1},8,[`show`]),a(y(O),{show:Ln.value,"onUpdate:show":r[71]||=e=>Ln.value=e},{default:f(()=>[a(y(D),{style:{width:`min(94vw, 900px)`},title:`Ответы команд`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`,"content-style":{maxHeight:`70vh`,overflow:`auto`}},{"header-extra":f(()=>[a(y(A),{onClick:r[69]||=e=>Ln.value=!1},{default:f(()=>[...r[146]||=[m(` x `,-1)]]),_:1})]),footer:f(()=>[a(y(R),{justify:`end`},{default:f(()=>[a(y(A),{onClick:r[70]||=e=>Qn(),disabled:Hn.value.length==0},{default:f(()=>[...r[149]||=[m(` Сохранить баллы `,-1)]]),_:1},8,[`disabled`])]),_:1})]),default:f(()=>[Hn.value.length==0?(u(),s(`div`,It,` Вопросы дела не заданы или команды ещё не отвечали. `)):e(``,!0),(u(!0),s(b,null,d(Hn.value,e=>(u(),s(`div`,{key:e.code,class:`answers-question-block`},[l(`p`,Lt,S(e.code)+`: `+S(e.text),1),l(`p`,Rt,[r[147]||=m(` Правильный ответ:`,-1),r[148]||=l(`br`,null,null,-1),l(`span`,zt,S(e.answer||`—`),1)]),(u(!0),s(b,null,d(Un.value,t=>(u(),s(`div`,{key:t.team?.ID,class:`answers-team-row`},[l(`div`,Bt,S(t.team?.name),1),l(`div`,Vt,S(Kn(t,e.code)||`—`),1),a(y(Be),{value:Wn.value[Gn(t.team?.ID,e.code)],"onUpdate:value":n=>qn(Gn(t.team?.ID,e.code),n),placeholder:`Балл`,class:`answers-score-input`},null,8,[`value`,`onUpdate:value`])]))),128))]))),128))]),_:1})]),_:1},8,[`show`]),a(y(O),{show:Rn.value,"onUpdate:show":r[73]||=e=>Rn.value=e},{default:f(()=>[a(y(D),{style:{width:`min(94vw, 800px)`},title:`Отзывы игры`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`,"content-style":{maxHeight:`70vh`,overflow:`auto`}},{"header-extra":f(()=>[a(y(A),{onClick:r[72]||=e=>Rn.value=!1},{default:f(()=>[...r[150]||=[m(` x `,-1)]]),_:1})]),default:f(()=>[a(y(R),{align:`center`,class:`reviews-summary`},{default:f(()=>[a(y(ye),{value:Bn.value,readonly:``,"allow-half":``},null,8,[`value`]),l(`span`,null,S(Vn.value?`${Bn.value.toFixed(1)} · ${Vn.value}`:`Пока нет отзывов`),1)]),_:1}),zn.value.length==0?(u(),s(`div`,Ht,`Отзывов пока нет.`)):e(``,!0),(u(!0),s(b,null,d(zn.value,n=>(u(),s(`div`,{key:n.ID,class:`review-row`},[a(y(R),{justify:`space-between`,align:`center`},{default:f(()=>[l(`strong`,null,S(n.teamName),1),a(y(F),null,{default:f(()=>[m(S(n.status),1)]),_:2},1024)]),_:2},1024),a(y(ye),{value:n.rating,readonly:``,size:`small`},null,8,[`value`]),l(`div`,null,`Сложность: `+S([``,`лёгкая`,`средняя`,`тяжёлая`][n.difficulty||0]),1),l(`p`,null,S(n.text),1),n.status==`pending`?(u(),t(y(R),{key:0,justify:`end`},{default:f(()=>[a(y(A),{type:`success`,onClick:e=>Zn(n,`approved`)},{default:f(()=>[...r[151]||=[m(`Одобрить`,-1)]]),_:1},8,[`onClick`]),a(y(A),{type:`error`,ghost:``,onClick:e=>Zn(n,`rejected`)},{default:f(()=>[...r[152]||=[m(`Отклонить`,-1)]]),_:1},8,[`onClick`])]),_:2},1024)):n.status==`approved`?(u(),t(y(R),{key:1,justify:`end`},{default:f(()=>[a(y(A),{type:`error`,ghost:``,onClick:e=>Zn(n,`hidden`)},{default:f(()=>[...r[153]||=[m(`Скрыть`,-1)]]),_:1},8,[`onClick`])]),_:2},1024)):e(``,!0)]))),128))]),_:1})]),_:1},8,[`show`]),a(we,{active:`games`})],64))}}),[[`__scopeId`,`data-v-330690a1`]]),Y=o({__name:`GameView`,setup(e){return(e,n)=>(u(),t(J))}});export{Y as default};