7 lines
57 KiB
JavaScript
7 lines
57 KiB
JavaScript
import{B as e,Bt as t,Ct as n,D as r,E as i,G as a,H as o,I as s,J as c,M as l,N as u,O as d,Q as f,T as p,Vt as m,X as h,at as g,ct as _,j as v,l as y,q as b,r as ee,rt as x,st as S,u as C,vt as w,w as T,xt as E,y as D,zt as O}from"./client-CmW03vy2.js";import{H as k,N as te,R as A,V as j,n as M,o as ne,r as N,t as P}from"./light-CU7ioAUB.js";import{d as re,t as F}from"./Card-DtY5Kv4W.js";import{t as I}from"./Modal-DJgtEO8l.js";import{t as ie}from"./use-merged-state-Ds49YDXB.js";import{n as ae,t as L}from"./Button-DuLGZXNV.js";import{n as oe,t as se}from"./Tabs-BoWI01pS.js";import{t as ce}from"./Select-B7XikpLi.js";import{n as le,r as R}from"./use-form-item-Dd4TQNvv.js";import{a as z,r as ue}from"./resolve-slot-DNJApg0C.js";import{r as de}from"./Suffix-CicjK2B1.js";import{t as fe}from"./Add-DvyOUwiL.js";import{t as B}from"./Input-QIg_CI3m.js";import{t as V}from"./Remove-C0w_ZvDQ.js";import{t as H}from"./Tag-SzWVk8n9.js";import{t as pe}from"./Alert-Byy2NOEo.js";import{n as me,r as he,t as U}from"./es-BkmQwXAV.js";import{t as W}from"./Space-8uRJkrEf.js";import{t as G}from"./Flex-BPsxaSAU.js";import{t as ge}from"./Rate-CFmIFwP5.js";import{t as _e}from"./QrCode-bhz89lbF.js";import{t as ve}from"./text-DlTtgyzs.js";import{S as ye,U as K,X as q,rt as J,tt as Y,w as be}from"./index-DVruj17R.js";import{t as xe}from"./HeaderMenu-CYpYLGGt.js";import{t as X}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as Se}from"./Settings-CE8FJXiJ.js";import{t as Ce}from"./binary_client-B3WlMzgo.js";import{n as we,r as Te}from"./application-BYkJn0HC.js";import{t as Ee}from"./useSimplePolling-CAz1OqVp.js";import{n as De,t as Oe}from"./datetime-BJNH0M1T.js";function ke(e){let{textColorDisabled:t}=e;return{iconColorDisabled:t}}var Ae=M({name:`InputNumber`,common:P,peers:{Button:ye,Input:be},self:ke}),je=j([k(`input-number-suffix`,`
|
||
display: inline-block;
|
||
margin-right: 10px;
|
||
`),k(`input-number-prefix`,`
|
||
display: inline-block;
|
||
margin-left: 10px;
|
||
`)]);function Me(e){return e==null||typeof e==`string`&&e.trim()===``?null:Number(e)}function Ne(e){return e.includes(`.`)&&(/^(-)?\d+.*(\.|0)$/.test(e)||/^-?\d*$/.test(e))||e===`-`||e===`-0`}function Pe(e){return e==null?!0:!Number.isNaN(e)}function Fe(e,t){return typeof e==`number`?t===void 0?String(e):e.toFixed(t):``}function Z(e){if(e===null)return null;if(typeof e==`number`)return e;{let t=Number(e);return Number.isNaN(t)?null:t}}var Q=800,Ie=100,Le=u({name:`InputNumber`,props:Object.assign(Object.assign({},N.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}=te(e),a=N(`InputNumber`,`-input-number`,je,Ae,e,n),{localeRef:s}=de(`InputNumber`),c=le(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:l,mergedDisabledRef:u,mergedStatusRef:d}=c,f=w(null),p=w(null),m=w(null),h=w(e.defaultValue),_=ie(E(e,`value`),h),v=w(``),y=e=>{let t=String(e).split(`.`)[1];return t?t.length:0},b=t=>{let n=[e.min,e.max,e.step,t].map(e=>e===void 0?0:y(e));return Math.max(...n)},ee=q(()=>{let{placeholder:t}=e;return t===void 0?s.value.placeholder:t}),x=q(()=>{let t=Z(e.step);return t===null||t===0?1:Math.abs(t)}),S=q(()=>{let t=Z(e.min);return t===null?null:t}),C=q(()=>{let t=Z(e.max);return t===null?null:t}),D=()=>{let{value:t}=_;if(Pe(t)){let{format:n,precision:r}=e;n?v.value=n(t):t===null||r===void 0||y(t)>r?v.value=Fe(t,void 0):v.value=Fe(t,r)}else v.value=String(t)};D();let O=t=>{let{value:n}=_;if(t===n){D();return}let{"onUpdate:value":r,onUpdateValue:i,onChange:a}=e,{nTriggerFormInput:o,nTriggerFormChange:s}=c;a&&R(a,t),i&&R(i,t),r&&R(r,t),h.value=t,o(),s()},k=({offset:t,doUpdateIfValid:n,fixPrecision:r,isInputing:i})=>{let{value:a}=v;if(i&&Ne(a))return!1;let o=(e.parse||Me)(a);if(o===null)return n&&O(null),null;if(Pe(o)){let a=y(o),{precision:s}=e;if(s!==void 0&&s<a&&!r)return!1;let c=Number.parseFloat((o+t).toFixed(s??b(o)));if(Pe(c)){let{value:t}=C,{value:r}=S;if(t!==null&&c>t){if(!n||i)return!1;c=t}if(r!==null&&c<r){if(!n||i)return!1;c=r}return e.validator&&!e.validator(c)?!1:(n&&O(c),c)}}return!1},j=q(()=>k({offset:0,doUpdateIfValid:!1,isInputing:!1,fixPrecision:!1})===!1),M=q(()=>{let{value:t}=_;if(e.validator&&t===null)return!1;let{value:n}=x;return k({offset:-n,doUpdateIfValid:!1,isInputing:!1,fixPrecision:!1})!==!1}),P=q(()=>{let{value:t}=_;if(e.validator&&t===null)return!1;let{value:n}=x;return k({offset:+n,doUpdateIfValid:!1,isInputing:!1,fixPrecision:!1})!==!1});function F(t){let{onFocus:n}=e,{nTriggerFormFocus:r}=c;n&&R(n,t),r()}function I(t){if(t.target===f.value?.wrapperElRef)return;let n=k({offset:0,doUpdateIfValid:!0,isInputing:!1,fixPrecision:!0});if(n!==!1){let e=f.value?.inputElRef;e&&(e.value=String(n||``)),_.value===n&&D()}else D();let{onBlur:r}=e,{nTriggerFormBlur:i}=c;r&&R(r,t),i(),o(()=>{D()})}function ae(t){let{onClear:n}=e;n&&R(n,t)}function L(){let{value:t}=P;if(!t){he();return}let{value:n}=_;if(n===null)e.validator||O(z());else{let{value:e}=x;k({offset:e,doUpdateIfValid:!0,isInputing:!1,fixPrecision:!0})}}function oe(){let{value:t}=M;if(!t){pe();return}let{value:n}=_;if(n===null)e.validator||O(z());else{let{value:e}=x;k({offset:-e,doUpdateIfValid:!0,isInputing:!1,fixPrecision:!0})}}let se=F,ce=I;function z(){if(e.validator)return null;let{value:t}=S,{value:n}=C;return t===null?n===null?0:Math.min(0,n):Math.max(0,t)}function ue(e){ae(e),O(null)}function fe(e){var t;m.value?.$el.contains(e.target)&&e.preventDefault(),p.value?.$el.contains(e.target)&&e.preventDefault(),(t=f.value)==null||t.activate()}let B=null,V=null,H=null;function pe(){H&&=(window.clearTimeout(H),null),B&&=(window.clearInterval(B),null)}let me=null;function he(){me&&=(window.clearTimeout(me),null),V&&=(window.clearInterval(V),null)}function U(){pe(),H=window.setTimeout(()=>{B=window.setInterval(()=>{oe()},Ie)},Q),re(`mouseup`,document,pe,{once:!0})}function W(){he(),me=window.setTimeout(()=>{V=window.setInterval(()=>{L()},Ie)},Q),re(`mouseup`,document,he,{once:!0})}let G=()=>{V||L()},ge=()=>{B||oe()};function _e(t){var n;if(t.key===`Enter`){if(t.target===f.value?.wrapperElRef)return;k({offset:0,doUpdateIfValid:!0,isInputing:!1,fixPrecision:!0})!==!1&&((n=f.value)==null||n.deactivate())}else if(t.key===`ArrowUp`){if(!P.value||e.keyboard.ArrowUp===!1)return;t.preventDefault(),k({offset:0,doUpdateIfValid:!0,isInputing:!1,fixPrecision:!0})!==!1&&L()}else if(t.key===`ArrowDown`){if(!M.value||e.keyboard.ArrowDown===!1)return;t.preventDefault(),k({offset:0,doUpdateIfValid:!0,isInputing:!1,fixPrecision:!0})!==!1&&oe()}}function ve(t){v.value=t,e.updateValueOnInput&&!e.format&&!e.parse&&e.precision===void 0&&k({offset:0,doUpdateIfValid:!0,isInputing:!0,fixPrecision:!1})}g(_,()=>{D()});let ye={focus:()=>f.value?.focus(),blur:()=>f.value?.blur(),select:()=>f.value?.select()},K=ne(`InputNumber`,r,n);return Object.assign(Object.assign({},ye),{rtlEnabled:K,inputInstRef:f,minusButtonInstRef:p,addButtonInstRef:m,mergedClsPrefix:n,mergedBordered:t,uncontrolledValue:h,mergedValue:_,mergedPlaceholder:ee,displayedValueInvalid:j,mergedSize:l,mergedDisabled:u,displayedValue:v,addable:P,minusable:M,mergedStatus:d,handleFocus:se,handleBlur:ce,handleClear:ue,handleMouseDown:fe,handleAddClick:G,handleMinusClick:ge,handleAddMousedown:W,handleMinusMousedown:U,handleKeyDown:_e,handleUpdateDisplayedValue:ve,mergedTheme:a,inputThemeOverrides:{paddingSmall:`0 8px 0 10px`,paddingMedium:`0 8px 0 12px`,paddingLarge:`0 8px 0 14px`},buttonThemeOverrides:T(()=>{let{self:{iconColorDisabled:e}}=a.value,[t,n,r,i]=A(e);return{textColorTextDisabled:`rgb(${t}, ${n}, ${r})`,opacityDisabled:`${i}`}})})},render(){let{mergedClsPrefix:e,$slots:t}=this,n=()=>s(ae,{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:()=>ue(t[`minus-icon`],()=>[s(K,{clsPrefix:e},{default:()=>s(V,null)})])}),r=()=>s(ae,{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:()=>ue(t[`add-icon`],()=>[s(K,{clsPrefix:e},{default:()=>s(fe,null)})])});return s(`div`,{class:[`${e}-input-number`,this.rtlEnabled&&`${e}-input-number--rtl`]},s(B,{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`?[n(),z(t.prefix,t=>t?s(`span`,{class:`${e}-input-number-prefix`},t):null)]:t.prefix?.call(t),suffix:()=>this.showButton?[z(t.suffix,t=>t?s(`span`,{class:`${e}-input-number-suffix`},t):null),this.buttonPlacement===`right`?n():null,r()]:t.suffix?.call(t)}))}}),Re={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},ze=u({name:`Flag`,render:function(e,t){return h(),d(`svg`,Re,t[0]||=[p(`path`,{d:`M6 30H4V2h24l-5.8 9l5.8 9H6zm0-12h18.33l-4.53-7l4.53-7H6z`,fill:`currentColor`},null,-1)])}}),Be={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},Ve=u({name:`Pause`,render:function(e,t){return h(),d(`svg`,Be,t[0]||=[p(`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),p(`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)])}}),He={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},Ue=u({name:`Play`,render:function(e,t){return h(),d(`svg`,He,t[0]||=[p(`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)])}}),We={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},Ge=u({name:`Reset`,render:function(e,t){return h(),d(`svg`,We,t[0]||=[p(`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)])}}),Ke={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},qe=u({name:`Trophy`,render:function(e,t){return h(),d(`svg`,Ke,t[0]||=[p(`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)])}}),Je={key:0,class:`timer-preview`},Ye=[`src`],Xe=[`src`],Ze={key:3,class:`preview-message`},Qe={key:4,class:`preview-message`},$e={key:5,class:`preview-message`},et={key:6,class:`preview-message`},tt={key:7,class:`preview-results`},nt=[`src`],rt=X(u({__name:`ScreenPreview`,props:{state:{},questions:{},teams:{}},setup(e){let n=e,i=w(Date.now()),a=w(0),o=w(Date.now()),s=w(),l=null,u=T(()=>{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}")`}:{}}),_=T(()=>n.state.timerState===`SCREEN_TIMER_STATE_RUNNING`?Math.max(0,a.value-(i.value-o.value)/1e3):a.value),v=T(()=>{let e=Math.floor(_.value/60),t=Math.floor(_.value%60);return`${String(e).padStart(2,`0`)}:${String(t).padStart(2,`0`)}`}),y=T(()=>Te(n.state.introAudio)),ee=T(()=>Te(n.state.conclusionVideo));return g(()=>[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`&&s.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(),s.value=n.state.timerState},{immediate:!0}),b(()=>{l=window.setInterval(()=>{i.value=Date.now()},250)}),c(()=>{l!=null&&window.clearInterval(l)}),(n,i)=>(h(),d(`div`,{class:`screen-preview`,style:t(u.value)},[e.state.mode===`SCREEN_MODE_TIMER`?(h(),d(`div`,Je,[p(`h2`,null,m(e.state.timerLabel||`Перерыв`),1),p(`strong`,null,m(v.value),1)])):e.state.mode===`SCREEN_MODE_INTRO`&&y.value?(h(),d(`audio`,{key:1,src:y.value,controls:``},null,8,Ye)):e.state.mode===`SCREEN_MODE_CONCLUSION`&&ee.value?(h(),d(`video`,{key:2,src:ee.value,autoplay:``,class:`preview-video`,loop:``,muted:``,playsinline:``},null,8,Xe)):e.state.mode===`SCREEN_MODE_CONCLUSION`?(h(),d(`div`,Ze,` Видео закрывашки не задано `)):e.state.mode===`SCREEN_MODE_INTRO_DONE`?(h(),d(`div`,Qe,`Успехов`)):e.state.mode===`SCREEN_MODE_CONCLUSION_DONE`?(h(),d(`div`,$e,` Спасибо за игру! `)):e.state.mode===`SCREEN_MODE_TEXT`?(h(),d(`div`,et,m(e.state.text),1)):e.state.mode===`SCREEN_MODE_RESULTS`?(h(),d(`div`,tt,[i[4]||=p(`h2`,null,`Результаты`,-1),p(`table`,null,[p(`thead`,null,[p(`tr`,null,[i[0]||=p(`th`,null,`Место`,-1),i[1]||=p(`th`,null,`Команда`,-1),(h(!0),d(D,null,f(e.questions,e=>(h(),d(`th`,{key:e.code},m(e.code),1))),128)),i[2]||=p(`th`,null,`Сумма`,-1),i[3]||=p(`th`,null,`Ходы`,-1)])]),p(`tbody`,null,[(h(!0),d(D,null,f(e.teams,t=>(h(),d(`tr`,{key:t.team?.ID},[p(`td`,null,m(t.place),1),p(`td`,null,m(t.team?.name),1),(h(!0),d(D,null,f(e.questions,e=>(h(),d(`td`,{key:e.code},m(t.answers?.find(t=>t.questionCode===e.code)?.score??0),1))),128)),p(`td`,null,m(t.totalScore),1),p(`td`,null,m(t.actionsCount),1)]))),128))])])])):e.state.coverImage?(h(),d(`img`,{key:8,src:e.state.coverImage,alt:`Обложка дела`,class:`preview-cover`},null,8,nt)):r(``,!0)],4))}}),[[`__scopeId`,`data-v-d5134fb8`]]),it={class:`map-preview-layout`},at={class:`map-block`},ot=[`onPointerdown`],st=[`onPointerdown`],ct={key:2},lt=[`onClick`],ut={class:`screen-preview-panel`},dt={key:1,class:`screen-preview-placeholder`},ft={class:`screen-plan`},pt={key:0,class:`screen-empty`},mt=X(u({__name:`GameMapPanel`,props:{mapItems:{},teams:{},screens:{},previewQuestions:{},previewTeams:{},screenPlan:{},screenPlanDraft:{},screenPlanDirty:{type:Boolean},screenPlanSaving:{type:Boolean},screenPlanMode:{},screenVolume:{},screenPosition:{}},emits:[`saveItem`,`giveApplication`,`addStep`,`edit`,`cancel`,`removeStep`,`moveStep`,`dirty`,`clearPlan`,`save`,`setStep`,`command`,`update:screenVolume`,`update:screenPosition`],setup(e,{emit:o}){let s=e,c=o,u=w(1),g=w({x:0,y:0}),y=T(()=>s.screens.find(e=>e.status===`connected`)||s.screens[0]),b=T(()=>new Map(s.teams.filter(e=>e.applications?.length).map(e=>[e.ID,e]))),ee=[{label:`Обложка`,value:`SCREEN_MODE_COVER`},{label:`Введение`,value:`SCREEN_MODE_INTRO`},{label:`Успехов`,value:`SCREEN_MODE_INTRO_DONE`},{label:`Закрывашка`,value:`SCREEN_MODE_CONCLUSION`},{label:`Спасибо за игру`,value:`SCREEN_MODE_CONCLUSION_DONE`},{label:`Результаты`,value:`SCREEN_MODE_RESULTS`},{label:`Таймер`,value:`SCREEN_MODE_TIMER`},{label:`Текст`,value:`SCREEN_MODE_TEXT`}],x,C;function E(e,t){x={item:e,startX:t.clientX,startY:t.clientY,itemX:e.x||0,itemY:e.y||0},window.addEventListener(`pointermove`,k),window.addEventListener(`pointerup`,te,{once:!0})}function k(e){if(!x)return;let t=x.item.kind===`team`?20:1;x.item.x=Math.round((x.itemX+(e.clientX-x.startX)/u.value)/t)*t,x.item.y=Math.round((x.itemY+(e.clientY-x.startY)/u.value)/t)*t}function te(){if(!x)return;let e=x.item;x=void 0,window.removeEventListener(`pointermove`,k),c(`saveItem`,e)}function A(e){e.hidden=!e.hidden,c(`saveItem`,e,e.hidden)}function j(e){u.value=Math.min(2,Math.max(.5,Number((u.value+e).toFixed(2))))}function M(){u.value=1,g.value={x:0,y:0}}function ne(e){e.button===0&&(C={startX:e.clientX,startY:e.clientY,offsetX:g.value.x,offsetY:g.value.y},window.addEventListener(`pointermove`,N),window.addEventListener(`pointerup`,P,{once:!0}))}function N(e){C&&(g.value={x:C.offsetX+e.clientX-C.startX,y:C.offsetY+e.clientY-C.startY})}function P(){C=void 0,window.removeEventListener(`pointermove`,N)}function re(e){e.preventDefault(),j(e.deltaY<0?.1:-.1)}return a(()=>{window.removeEventListener(`pointermove`,k),window.removeEventListener(`pointermove`,N)}),(a,o)=>(h(),d(`div`,it,[p(`div`,at,[l(n(G),{align:`center`,justify:`space-between`},{default:S(()=>[o[18]||=p(`p`,{class:`screens-title`},`Карта помещения`,-1),l(n(W),null,{default:S(()=>[l(n(L),{size:`small`,onClick:o[0]||=e=>j(-.1)},{default:S(()=>[...o[15]||=[v(`−`,-1)]]),_:1}),l(n(ve),null,{default:S(()=>[v(m(Math.round(u.value*100))+`%`,1)]),_:1}),l(n(L),{size:`small`,onClick:o[1]||=e=>j(.1)},{default:S(()=>[...o[16]||=[v(`+`,-1)]]),_:1}),l(n(L),{size:`small`,onClick:M},{default:S(()=>[...o[17]||=[v(`Сбросить`,-1)]]),_:1})]),_:1})]),_:1}),p(`div`,{class:`map-field`,onPointerdown:ne,onWheel:re},[p(`div`,{class:`map-canvas`,style:t({transform:`translate(${g.value.x}px, ${g.value.y}px) scale(${u.value})`})},[(h(!0),d(D,null,f(e.mapItems,e=>_((h(),d(`div`,{key:`${e.kind}-${e.itemID}`,class:O([`map-item`,[e.kind===`screen`?`map-screen`:e.kind===`organizer_desk`?`map-organizer-desk`:`map-team`,{"map-team-needs-applications":e.kind===`team`&&b.value.has(e.itemID)}]]),style:t({left:`${e.x||0}px`,top:`${e.y||0}px`}),onPointerdown:J(t=>e.kind!==`team`&&E(e,t),[`stop`])},[e.kind===`team`?(h(),d(`div`,{key:0,class:`map-team-handle`,onPointerdown:J(t=>E(e,t),[`stop`])},null,40,st)):r(``,!0),p(`span`,null,m(e.label),1),e.kind===`team`&&b.value.has(e.itemID)?(h(),i(n(W),{key:1,class:`map-team-applications`,vertical:``},{default:S(()=>[(h(!0),d(D,null,f(b.value.get(e.itemID)?.applications,t=>(h(),i(n(L),{key:t.name,size:`small`,onClick:n=>c(`giveApplication`,b.value.get(e.itemID),t)},{default:S(()=>[v(` Выдать: `+m(t.name),1)]),_:2},1032,[`onClick`]))),128))]),_:2},1024)):r(``,!0),e.kind===`screen`?(h(),d(`small`,ct,m(e.status)+m(e.soundEnabled?` · звук`:``),1)):r(``,!0),p(`button`,{class:`map-item-hide`,type:`button`,onPointerdown:o[2]||=J(()=>{},[`stop`]),onClick:J(t=>A(e),[`stop`])},` × `,40,lt)],46,ot)),[[Y,!e.hidden]])),128))],4)],32),e.mapItems.some(e=>e.hidden)?(h(),i(n(W),{key:0,class:`map-hidden-items`},{default:S(()=>[(h(!0),d(D,null,f(e.mapItems.filter(e=>e.hidden),e=>(h(),i(n(L),{key:`hidden-${e.kind}-${e.itemID}`,size:`small`,onClick:t=>A(e)},{default:S(()=>[v(` Добавить `+m(e.label),1)]),_:2},1032,[`onClick`]))),128))]),_:1})):r(``,!0)]),p(`aside`,ut,[o[41]||=p(`p`,{class:`screens-title`},`Превью экрана`,-1),y.value?.status===`connected`?(h(),i(rt,{key:0,state:y.value,questions:e.previewQuestions,teams:e.previewTeams},null,8,[`state`,`questions`,`teams`])):(h(),d(`div`,dt,`Экран не подключён`)),p(`div`,ft,[l(n(G),{align:`center`,justify:`space-between`},{default:S(()=>[o[23]||=p(`p`,{class:`screens-title`},`План экранов`,-1),l(n(W),null,{default:S(()=>[!e.screenPlan&&e.screenPlanMode===`use`?(h(),i(n(L),{key:0,size:`small`,onClick:o[3]||=e=>c(`addStep`)},{default:S(()=>[...o[19]||=[v(` Создать план `,-1)]]),_:1})):r(``,!0),e.screenPlan&&e.screenPlanMode===`use`?(h(),i(n(L),{key:1,size:`small`,onClick:o[4]||=e=>c(`edit`)},{default:S(()=>[...o[20]||=[v(` Редактировать `,-1)]]),_:1})):r(``,!0),e.screenPlanMode===`edit`?(h(),d(D,{key:2},[l(n(L),{size:`small`,disabled:e.screenPlanSaving,onClick:o[5]||=e=>c(`cancel`)},{default:S(()=>[...o[21]||=[v(` Отменить `,-1)]]),_:1},8,[`disabled`]),l(n(L),{size:`small`,type:`primary`,loading:e.screenPlanSaving,disabled:e.screenPlanSaving,onClick:o[6]||=e=>c(`save`)},{default:S(()=>[...o[22]||=[v(` Сохранить план `,-1)]]),_:1},8,[`loading`,`disabled`])],64)):r(``,!0)]),_:1})]),_:1}),!e.screenPlan&&e.screenPlanMode===`use`?(h(),d(`p`,pt,` План экранов ещё не создан. `)):e.screenPlanMode===`edit`?(h(),d(D,{key:1},[(h(!0),d(D,null,f(e.screenPlanDraft,(t,a)=>(h(),i(n(W),{key:a,align:`center`,wrap:``},{default:S(()=>[l(n(ve),null,{default:S(()=>[v(m(a+1),1)]),_:2},1024),l(n(ce),{value:t.mode,"onUpdate:value":[e=>t.mode=e,o[7]||=e=>c(`dirty`)],options:ee,disabled:e.screenPlanSaving,size:`small`,style:{width:`180px`}},null,8,[`value`,`onUpdate:value`,`disabled`]),t.mode===`SCREEN_MODE_TEXT`?(h(),i(n(B),{key:0,value:t.text,"onUpdate:value":[e=>t.text=e,o[8]||=e=>c(`dirty`)],disabled:e.screenPlanSaving,size:`small`,placeholder:`Текст экрана`,style:{"min-width":`240px`}},null,8,[`value`,`onUpdate:value`,`disabled`])):r(``,!0),t.mode===`SCREEN_MODE_TIMER`?(h(),d(D,{key:1},[l(n(B),{value:t.timerLabel,"onUpdate:value":[e=>t.timerLabel=e,o[9]||=e=>c(`dirty`)],disabled:e.screenPlanSaving,size:`small`,placeholder:`Надпись таймера`},null,8,[`value`,`onUpdate:value`,`disabled`]),l(n(Le),{value:t.timerDurationSeconds,"onUpdate:value":[e=>t.timerDurationSeconds=e,o[10]||=e=>c(`dirty`)],min:1,max:86400,disabled:e.screenPlanSaving,size:`small`,placeholder:`Секунды`},null,8,[`value`,`onUpdate:value`,`disabled`])],64)):r(``,!0),l(n(L),{size:`small`,disabled:e.screenPlanSaving||a===0,onClick:e=>c(`moveStep`,a,-1)},{default:S(()=>[...o[24]||=[v(` ↑ `,-1)]]),_:1},8,[`disabled`,`onClick`]),l(n(L),{size:`small`,disabled:e.screenPlanSaving||a===e.screenPlanDraft.length-1,onClick:e=>c(`moveStep`,a,1)},{default:S(()=>[...o[25]||=[v(` ↓ `,-1)]]),_:1},8,[`disabled`,`onClick`]),l(n(L),{size:`small`,type:`error`,ghost:``,disabled:e.screenPlanSaving,onClick:e=>c(`removeStep`,a)},{default:S(()=>[...o[26]||=[v(` Удалить `,-1)]]),_:1},8,[`disabled`,`onClick`])]),_:2},1024))),128)),l(n(W),null,{default:S(()=>[l(n(L),{size:`small`,disabled:e.screenPlanSaving,onClick:o[11]||=e=>c(`addStep`)},{default:S(()=>[...o[27]||=[v(` Добавить шаг `,-1)]]),_:1},8,[`disabled`]),e.screenPlanDraft.length?(h(),i(n(L),{key:0,size:`small`,disabled:e.screenPlanSaving,onClick:o[12]||=e=>c(`clearPlan`)},{default:S(()=>[...o[28]||=[v(` Удалить план `,-1)]]),_:1},8,[`disabled`])):r(``,!0)]),_:1})],64)):e.screenPlan?(h(!0),d(D,{key:2},f(e.screenPlan.steps||[],(t,a)=>(h(),i(n(W),{key:a,align:`center`,wrap:``},{default:S(()=>[l(n(ve),null,{default:S(()=>[v(m(a+1),1)]),_:2},1024),l(n(ve),null,{default:S(()=>[v(m(ee.find(e=>e.value===t.mode)?.label)+` `,1),t.mode===`SCREEN_MODE_TEXT`?(h(),d(D,{key:0},[v(`: `+m(t.text),1)],64)):t.mode===`SCREEN_MODE_TIMER`?(h(),d(D,{key:1},[v(` : `+m(t.timerLabel)+` (`+m(t.timerDurationSeconds)+` с) `,1)],64)):r(``,!0)]),_:2},1024),l(n(L),{size:`small`,type:e.screenPlan.currentStep===a?`primary`:`default`,disabled:e.screenPlan.currentStep===a,onClick:e=>c(`setStep`,a)},{default:S(()=>[...o[29]||=[v(` Показать `,-1)]]),_:1},8,[`type`,`disabled`,`onClick`]),e.screenPlan.currentStep===a?(h(),d(D,{key:0},[t.mode===`SCREEN_MODE_TIMER`?(h(),d(D,{key:0},[l(n(L),{size:`small`,onClick:e=>c(`command`,t.mode,`SCREEN_COMMAND_TIMER_START`)},{default:S(()=>[...o[30]||=[v(` Старт `,-1)]]),_:1},8,[`onClick`]),l(n(L),{size:`small`,onClick:e=>c(`command`,t.mode,`SCREEN_COMMAND_TIMER_PAUSE`)},{default:S(()=>[...o[31]||=[v(` Пауза `,-1)]]),_:1},8,[`onClick`]),l(n(L),{size:`small`,onClick:e=>c(`command`,t.mode,`SCREEN_COMMAND_TIMER_RESUME`)},{default:S(()=>[...o[32]||=[v(` Продолжить `,-1)]]),_:1},8,[`onClick`]),l(n(L),{size:`small`,onClick:e=>c(`command`,t.mode,`SCREEN_COMMAND_TIMER_RESET`)},{default:S(()=>[...o[33]||=[v(` Сбросить `,-1)]]),_:1},8,[`onClick`])],64)):t.mode===`SCREEN_MODE_INTRO`||t.mode===`SCREEN_MODE_CONCLUSION`?(h(),d(D,{key:1},[l(n(L),{size:`small`,onClick:e=>c(`command`,t.mode,`SCREEN_COMMAND_PLAY`)},{default:S(()=>[...o[34]||=[v(` Запуск `,-1)]]),_:1},8,[`onClick`]),l(n(L),{size:`small`,onClick:e=>c(`command`,t.mode,`SCREEN_COMMAND_PAUSE`)},{default:S(()=>[...o[35]||=[v(` Пауза `,-1)]]),_:1},8,[`onClick`]),l(n(L),{size:`small`,onClick:e=>c(`command`,t.mode,`SCREEN_COMMAND_RESUME`)},{default:S(()=>[...o[36]||=[v(` Продолжить `,-1)]]),_:1},8,[`onClick`]),l(n(L),{size:`small`,onClick:e=>c(`command`,t.mode,`SCREEN_COMMAND_STOP`)},{default:S(()=>[...o[37]||=[v(` Стоп `,-1)]]),_:1},8,[`onClick`]),l(n(L),{size:`small`,onClick:e=>c(`command`,t.mode,`SCREEN_COMMAND_REPLAY`)},{default:S(()=>[...o[38]||=[v(` Повтор `,-1)]]),_:1},8,[`onClick`]),l(n(Le),{value:e.screenVolume,min:0,max:100,step:5,size:`small`,"onUpdate:value":o[13]||=e=>c(`update:screenVolume`,e)},null,8,[`value`]),l(n(L),{size:`small`,onClick:e=>c(`command`,t.mode,`SCREEN_COMMAND_VOLUME`)},{default:S(()=>[...o[39]||=[v(` Громкость `,-1)]]),_:1},8,[`onClick`]),l(n(Le),{value:e.screenPosition,min:0,step:5,size:`small`,"onUpdate:value":o[14]||=e=>c(`update:screenPosition`,e)},null,8,[`value`]),l(n(L),{size:`small`,onClick:e=>c(`command`,t.mode,`SCREEN_COMMAND_SEEK`)},{default:S(()=>[...o[40]||=[v(` Перемотать `,-1)]]),_:1},8,[`onClick`])],64)):r(``,!0)],64)):r(``,!0)]),_:2},1024))),128)):r(``,!0)])])]))}}),[[`__scopeId`,`data-v-33602455`]]),ht=X(u({__name:`ScreenBindingModal`,props:e({binding:{type:Boolean}},{show:{type:Boolean,required:!0},showModifiers:{}}),emits:e([`scanned`],[`update:show`]),setup(e,{emit:t}){let s=x(e,`show`),c=t,u=w(``),d=w(),f=w(!1),_,y=0;function b(){cancelAnimationFrame(y),_?.getTracks().forEach(e=>e.stop()),_=void 0,f.value=!1}function ee(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 C(){let e=window.BarcodeDetector;if(!e||!navigator.mediaDevices?.getUserMedia){u.value=`Сканирование камерой не поддерживается в этом браузере.`;return}u.value=``;try{if(_=await navigator.mediaDevices.getUserMedia({video:{facingMode:`environment`}}),f.value=!0,await o(),!d.value)return;d.value.srcObject=_,await d.value.play();let t=new e,n=async()=>{if(!(!d.value||!_))try{let e=(await t.detect(d.value))[0]?.rawValue;if(e){let t=ee(e);if(t){b(),s.value=!1,c(`scanned`,t.screenID,t.accessToken);return}u.value=`Это не QR-код экрана.`}y=requestAnimationFrame(n)}catch{u.value=`Не удалось распознать QR-код.`,b()}};y=requestAnimationFrame(n)}catch{u.value=`Не удалось открыть камеру.`,b()}}function T(){b(),s.value=!1}return g(s,e=>{e?C():b()}),a(b),(t,a)=>(h(),i(n(I),{show:s.value,"onUpdate:show":a[0]||=e=>s.value=e},{default:S(()=>[l(n(F),{style:{width:`min(600px, 94vw)`},title:`Привязать экран`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":S(()=>[l(n(L),{onClick:T},{default:S(()=>[...a[1]||=[v(` x `,-1)]]),_:1})]),default:S(()=>[l(n(W),{vertical:``},{default:S(()=>[p(`video`,{ref_key:`scannerVideo`,ref:d,class:`screen-scanner-video`,muted:``,playsinline:``},null,512),u.value?(h(),i(n(pe),{key:0,type:`error`},{default:S(()=>[v(m(u.value),1)]),_:1})):r(``,!0),!f.value&&!e.binding?(h(),i(n(L),{key:1,type:`primary`,onClick:C},{default:S(()=>[...a[2]||=[v(` Сканировать QR-код `,-1)]]),_:1})):r(``,!0),f.value?(h(),i(n(L),{key:2,onClick:b},{default:S(()=>[...a[3]||=[v(`Остановить камеру`,-1)]]),_:1})):r(``,!0),e.binding?(h(),i(n(L),{key:3,type:`primary`,loading:``},{default:S(()=>[...a[4]||=[v(`Привязка…`,-1)]]),_:1})):r(``,!0)]),_:1})]),_:1})]),_:1},8,[`show`]))}}),[[`__scopeId`,`data-v-5f530845`]]),$={class:`screens-block`},gt={key:1,class:`screen-empty`},_t={class:`screen-status`},vt={key:0,class:`screen-error`},yt=X(u({__name:`GameScreensPanel`,props:{screens:{},screenBinding:{type:Boolean}},emits:[`bind`,`setSound`,`unbind`],setup(e,{emit:t}){let a=e,o=t,s=w(!1);return(t,c)=>(h(),d(D,null,[p(`div`,$,[l(n(G),{align:`center`,justify:`space-between`},{default:S(()=>[c[4]||=p(`p`,{class:`screens-title`},`Экраны`,-1),l(n(L),{size:`small`,type:`primary`,onClick:c[0]||=e=>s.value=!0},{default:S(()=>[...c[3]||=[v(` Привязать экран `,-1)]]),_:1})]),_:1}),e.screens.some(e=>e.status===`disconnected`)?(h(),i(n(pe),{key:0,type:`warning`,title:`Проверьте подключение экрана`},{default:S(()=>[...c[5]||=[v(` Один или несколько экранов не выходят на связь более минуты. `,-1)]]),_:1})):r(``,!0),e.screens.length===0?(h(),d(`p`,gt,`К игре пока не привязаны экраны.`)):(h(!0),d(D,{key:2},f(e.screens,e=>(h(),d(`div`,{key:e.ID,class:`screen-row`},[p(`div`,null,[p(`div`,null,`Экран `+m(e.ID),1),p(`div`,_t,m(e.status===`connected`?`Онлайн`:`Оффлайн`),1),e.error?(h(),d(`div`,vt,m(e.error),1)):r(``,!0)]),l(n(G),{justify:`end`},{default:S(()=>[e.soundEnabled?(h(),i(n(H),{key:0,type:`success`},{default:S(()=>[...c[6]||=[v(`Со звуком`,-1)]]),_:1})):(h(),i(n(L),{key:1,size:`small`,onClick:t=>o(`setSound`,e)},{default:S(()=>[...c[7]||=[v(`Назначить звук`,-1)]]),_:1},8,[`onClick`])),l(n(L),{size:`small`,type:`error`,ghost:``,onClick:t=>o(`unbind`,e)},{default:S(()=>[...c[8]||=[v(` Отвязать `,-1)]]),_:1},8,[`onClick`])]),_:2},1024)]))),128))]),l(ht,{show:s.value,"onUpdate:show":c[1]||=e=>s.value=e,binding:a.screenBinding,onScanned:c[2]||=(e,t)=>o(`bind`,e,t)},null,8,[`show`,`binding`])],64))}}),[[`__scopeId`,`data-v-1bd2e127`]]),bt={class:`team-content-block`},xt={class:`title-block`},St={class:`team-name-block`},Ct={key:0},wt={key:1},Tt={key:0},Et={key:0},Dt={key:1},Ot={key:2},kt={key:3},At={key:4},jt=X(u({__name:`GameTeamsPanel`,props:{teams:{},participationOptions:{}},emits:[`add`,`openQR`,`preview`,`delete`,`giveApplication`],setup(e,{emit:t}){let a=t;return(t,o)=>(h(),d(D,null,[p(`div`,{class:`team-block team-block-hover`,onClick:o[0]||=e=>a(`add`)},[...o[1]||=[p(`p`,{class:`place-image-plus`},`+`,-1)]]),(h(!0),d(D,null,f(e.teams,t=>(h(),d(`div`,{key:t.ID,class:`team-block`},[p(`div`,bt,[l(n(G),{justify:`space-between`},{default:S(()=>[p(`div`,xt,[p(`span`,St,[v(m(t.name)+` `,1),t.captainEmail?(h(),d(`small`,Ct,` — `+m(t.captainEmail),1)):r(``,!0),t.participantsCount?(h(),d(`small`,wt,` · Участников: `+m(t.participantsCount),1)):r(``,!0)]),t.captainEmail||t.participationStatus!==`pending`?(h(),d(`div`,Tt,[v(m(e.participationOptions.find(e=>e.value===t.participationStatus)?.label),1),t.participationSource===`automatic`?(h(),d(`span`,Et,` · автоматически`)):r(``,!0)])):r(``,!0),t.captainEmail?t.participationEmailError?(h(),d(`div`,Ot,` Ошибка отправки: `+m(t.participationEmailError),1)):t.participationEmailSent?(h(),d(`div`,kt,`Письмо отправлено`)):r(``,!0):(h(),d(`div`,Dt,`Почта капитана не указана`)),t.participationStatus===`cancelled`?r(``,!0):(h(),d(`div`,At,` Поездки: `+m(t.actionsCount),1))]),l(n(G),{justify:`end`},{default:S(()=>[t.participationStatus===`cancelled`?r(``,!0):(h(),i(n(L),{key:0,onClick:e=>a(`openQR`,t)},{default:S(()=>[...o[2]||=[v(`QR`,-1)]]),_:1},8,[`onClick`])),t.participationStatus===`cancelled`?r(``,!0):(h(),i(n(L),{key:1,onClick:e=>a(`preview`,t.ID,t.password)},{default:S(()=>[...o[3]||=[v(`Подсмотреть игру`,-1)]]),_:1},8,[`onClick`])),l(n(L),{type:`error`,ghost:``,onClick:e=>a(`delete`,t)},{default:S(()=>[...o[4]||=[v(`Удалить`,-1)]]),_:1},8,[`onClick`])]),_:2},1024)]),_:2},1024),(h(!0),d(D,null,f(t.applications,e=>(h(),i(n(L),{key:e.name,class:`link-button`,onClick:n=>a(`giveApplication`,t,e)},{default:S(()=>[v(` Выдать: `+m(e.name),1)]),_:2},1032,[`onClick`]))),128))])]))),128))],64))}}),[[`__scopeId`,`data-v-7fabab65`]]),Mt={class:`center-block-custom`},Nt={class:`width1200`},Pt={class:`settings-block`},Ft={key:0,class:`give-application-image-block`},It=[`src`],Lt=[`src`],Rt=[`href`],zt=[`href`],Bt={class:`qr-block`},Vt={key:0,class:`answers-empty`},Ht={class:`answers-question-title`},Ut={class:`answers-question-answer`},Wt={class:`correct-answer`},Gt={class:`answers-team-name`},Kt={class:`answers-team-answer`},qt={key:0,class:`answers-empty`},Jt=X(u({__name:`GamePage`,setup(e){let t=me(),a=Ce(),o=w(!1),s=C(),c=y(),u=c.params.id;function g(e){return[`game`,`teams`,`screens-map`].includes(e)}let _=typeof c.query.tab==`string`?c.query.tab:``,b=w(g(_)?_:`game`);async function x(e){g(e)&&(b.value=e,await s.replace({query:{...c.query,tab:e}}))}let E=he(),O=w(!1),k=w({name:``,description:``,format:`online`,location:``}),te=w(!1),A=w(!1),j=w(!1),M=w(!1),ne=w(``),N=w(``),P=w(1),re=w(``),ie=w(!1),ae=w(``),le=w(``),R=w(!1),z=w(1),ue=w([]),de=w(!1),fe=w(!1),V=w({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}),pe=[{label:`Ожидает ответа`,value:`pending`},{label:`Подтверждено`,value:`confirmed`},{label:`Отменено`,value:`cancelled`}],ye=T(()=>(V.value.teams||[]).filter(e=>e.participationStatus!==`cancelled`).length),K=w([]),q=w(),J=w([]),Y=w(!1),be=w(!1),X=w(`use`),ke=0,Ae=w([]),je=w([]),Me=w([]),Ne=w(!1),Pe=w(100),Fe=w(0);async function Z(e){let n=await t.GetGame({ID:e});V.value=n.game,V.value.teams=V.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(n<r)return 1;let i=e.name||``,a=t.name||``;return i>a?1:i<a?-1:0})}Z(Number(u));async function Q(){let e=await t.GetGameScreens({gameID:Number(u)});if(K.value=e.screens||[],(K.value.find(e=>e.status===`connected`)||K.value[0])?.mode===`SCREEN_MODE_RESULTS`){let e=await t.GetGameResults({gameID:Number(u)});Ae.value=e.questions||[],je.value=e.teams||[]}else Ae.value=[],je.value=[]}Q();function Ie(){return X.value===`edit`}async function Re(){if(console.log(`getScreenPlan`),Ie()||Y.value)return;console.log(`no skip getScreenPlan`);let e=++ke,n=await t.GetScreenPlan({gameID:Number(u)});e!==ke||Ie()||Y.value||(q.value=n.plan,J.value=n.plan?.steps?.map(e=>({...e}))||[])}Re();function Be(){J.value.push({mode:`SCREEN_MODE_TEXT`,text:`Новый экран`,timerLabel:`Перерыв`,timerDurationSeconds:600}),Y.value=!0,X.value=`edit`}function He(){q.value&&(J.value=q.value.steps?.map(e=>({...e}))||[],X.value=`edit`)}function We(){Y.value&&!window.confirm(`Отменить несохранённые изменения плана?`)||(J.value=q.value?.steps?.map(e=>({...e}))||[],Y.value=!1,X.value=`use`)}function Ke(e){J.value.splice(e,1),Y.value=!0}function Je(e,t){let n=e+t;if(n<0||n>=J.value.length)return;let[r]=J.value.splice(e,1);J.value.splice(n,0,r),Y.value=!0}function Ye(){Y.value=!0}function Xe(){J.value=[],Ye()}async function Ze(){if(!be.value){ke+=1,be.value=!0;try{let e=Math.min(q.value?.currentStep||0,Math.max(0,J.value.length-1)),n=await t.SaveScreenPlan({gameID:Number(u),steps:J.value,currentStep:e});q.value=n.plan,J.value=n.plan?.steps?.map(e=>({...e}))||[],Y.value=!1,X.value=`use`,E.success(n.plan?`План экранов сохранён`:`План экранов удалён`)}catch(e){E.error(e instanceof Error?e.message:`Не удалось сохранить план экранов`)}finally{be.value=!1}}}async function Qe(e){if(!(Y.value||!q.value))try{let n=await t.SetScreenPlanStep({gameID:Number(u),currentStep:e});q.value=n.plan,await Q()}catch(e){E.error(e instanceof Error?e.message:`Не удалось перейти на шаг плана`)}}async function $e(e,n){if(!(Y.value||e!==`SCREEN_MODE_TIMER`&&e!==`SCREEN_MODE_INTRO`&&e!==`SCREEN_MODE_CONCLUSION`))try{await t.SendScreenCommand({gameID:Number(u),command:n,positionMs:Math.max(0,Math.round(Fe.value*1e3)),volume:Math.max(0,Math.min(100,Math.round(Pe.value)))}),await Q()}catch(e){E.error(e instanceof Error?e.message:`Не удалось управлять экраном`)}}async function et(e,n){if(!fe.value){fe.value=!0;try{await t.BindScreen({screenID:e,accessToken:n,gameID:Number(u)}),E.success(`Экран привязан к игре`),await Q()}catch(e){E.error(e instanceof Error?e.message:`Не удалось привязать экран`)}finally{fe.value=!1}}}async function tt(){if(Ne.value)return;let e=await t.GetGameMap({gameID:Number(u)});Me.value=e.items||[]}tt();async function nt(e,n=e.hidden){Ne.value=!0;try{await t.UpdateGameMapItem({gameID:Number(u),kind:e.kind,itemID:e.itemID,x:Math.round(e.x||0),y:Math.round(e.y||0),hidden:n})}finally{Ne.value=!1}}async function rt(e,t=e.hidden){await nt(e,t),await tt()}async function it(e){await t.SetScreenSound({screenID:e.ID,soundEnabled:!0}),await Q()}async function at(e){await t.UnbindScreen({screenID:e.ID}),await Q()}async function ot(e,t,n=!1){let r=`/team-story/`+e+`?password=`+t;if(n){window.open(r,`_blank`);return}s.push(r)}async function st(){if(!(o.value||!V.value.teams?.length)){o.value=!0;try{let{blob:e,filename:t}=await a.downloadTeamQR(V.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){E.error(e instanceof Error?e.message:`Не удалось скачать QR команд`)}finally{o.value=!1}}}function ct(){s.push(`/games/`+u+`/results`)}function lt(){k.value={name:V.value.name||``,description:V.value.description||``,format:V.value.format||`online`,location:V.value.location||``},O.value=!0}function ut(){O.value=!1}async function dt(){await t.UpdateGame({ID:V.value.ID,name:k.value.name,description:k.value.description,format:k.value.format,location:k.value.location.trim(),startAt:V.value.startAt,scenarioID:V.value.scenario?.ID}),await Z(V.value.ID),O.value=!1}let ft=w({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}),pt=w(``),ht=w({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}),$=w({name:``,image:``,file_type:``}),gt=window.location.href;function _t(e,t){ft.value=e,$.value=t,te.value=!0}async function vt(){if(P.value<1||P.value>8){E.error(`Укажите от 1 до 8 игроков`);return}await t.AddTeam({gameID:V.value.ID,name:ne.value,captainEmail:N.value.trim(),participantsCount:P.value}),await Z(V.value.ID),A.value=!1,N.value=``,P.value=1}async function bt(){await t.GiveTeamApplications({ID:ft.value.ID,name:$.value.name}),await Z(V.value.ID),te.value=!1}async function xt(e){ht.value=e,j.value=!0}async function St(){await t.DeleteTeam({ID:ht.value.ID}),await Z(V.value.ID),j.value=!1}async function Ct(){await t.DeleteGame({ID:V.value.ID}),E.success(`Игра удалена`),s.push(`/games`)}function wt(e,t){return ee()+`/team-story/`+e+`?password=`+t}function Tt(e){Et(wt(e.ID,e.password),`Подсмотреть игру`)}async function Et(e,t){ae.value=e,le.value=t,ie.value=!0}function Dt(){z.value=1,ue.value=[],R.value=!0}async function Ot(){if(!(de.value||!V.value.ID)){de.value=!0;try{let e=await t.IssueGameTickets({gameID:V.value.ID,count:z.value});ue.value=e.tickets||[],E.success(`Выпущено билетов: ${ue.value.length}`)}catch(e){E.error(e instanceof Error?e.message:`Не удалось выпустить билеты`)}finally{de.value=!1}}}Ee(()=>{Z(Number(u)),Q(),Re(),tt()},2e3);async function kt(){await t.ResetGame({ID:V.value.ID}),await Z(V.value.ID)}async function At(){await t.StartGame({ID:V.value.ID}),await Z(V.value.ID)}async function Jt(){await t.PauseGame({ID:V.value.ID}),await Z(V.value.ID)}async function Yt(){await t.PlayGame({ID:V.value.ID}),await Z(V.value.ID)}async function Xt(){await t.FinishGame({ID:V.value.ID}),await Z(V.value.ID)}let Zt=w(!1),Qt=w(!1),$t=w([]),en=w(0),tn=w(0),nn=w([]),rn=w([]),an=w({});function on(e,t){return(e??``)+`:`+(t??``)}function sn(e,t){return(e.answers||[]).find(e=>e.questionCode==t)?.answer||``}function cn(e,t){an.value[e]=t===null?void 0:t}async function ln(){let e=await t.GetGameAnswers({gameID:Number(u)});nn.value=e.questions||[],rn.value=e.teams||[];let n={};for(let e of rn.value)for(let t of e.answers||[])n[on(e.team?.ID,t.questionCode)]=t.score;an.value=n}async function un(){Zt.value=!0,await ln()}async function dn(){Qt.value=!0;let e=await t.GetGameReviewsForModeration({gameID:Number(u)});$t.value=e.reviews||[],en.value=e.averageRating||0,tn.value=e.reviewsCount||0}async function fn(e,n){await t.ModerateGameReview({ID:e.ID,status:n}),await dn()}async function pn(){for(let e of nn.value)for(let n of rn.value){let r=an.value[on(n.team?.ID,e.code)];await t.SetTeamAnswerScore({ID:n.team?.ID,questionCode:e.code,score:r??void 0})}E.success(`Баллы сохранены`),await ln()}function mn(){let e=new Date;return new Date(e.getTime()-e.getTimezoneOffset()*6e4)}function hn(e,t){if(e==``)return`Игра ещё не началась`;let n=De(e),r=mn();t!=``&&(r=De(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),u=Math.floor(c/365);return u>0?`${u}г ${c%365}д`:l>0?`${l}мес ${c%30}д`:c>0?`${c}д ${s%24}ч`:s>0?`${s}ч ${o%60}м`:o>0?`${o}м ${a%60}с`:`${a}с`}let gn=w(``);return Ee(()=>{gn.value=hn(V.value.startedAt||``,V.value.endedAt||``)},1e3),(e,t)=>(h(),d(D,null,[p(`div`,Mt,[p(`div`,Nt,[l(n(se),{value:b.value,type:`line`,animated:``,"onUpdate:value":x},{default:S(()=>[l(n(oe),{name:`game`,tab:`Игра`},{default:S(()=>[p(`div`,Pt,[l(n(G),{justify:`space-between`},{default:S(()=>[l(n(W),null,{default:S(()=>[l(n(H),{bordered:!1,type:`info`},{default:S(()=>[v(` Участвуют команд: `+m(ye.value),1)]),_:1}),l(n(H),{type:`info`},{default:S(()=>[v(m(gn.value),1)]),_:1}),n(Oe)(V.value.startAt)?(h(),i(n(H),{key:0,type:`info`},{default:S(()=>[v(` Начало: `+m(n(Oe)(V.value.startAt)),1)]),_:1})):r(``,!0)]),_:1}),l(n(G),{justify:`end`},{default:S(()=>[l(n(L),{quaternary:``,onClick:t[0]||=e=>Et(n(gt),`Админка`)},{default:S(()=>[...t[51]||=[v(` QR `,-1)]]),_:1}),l(n(L),{quaternary:``,onClick:t[1]||=e=>Dt()},{default:S(()=>[...t[52]||=[v(` Выпустить билеты `,-1)]]),_:1}),l(n(L),{quaternary:``,onClick:t[2]||=e=>un()},{default:S(()=>[...t[53]||=[v(` Ответы команд `,-1)]]),_:1}),V.value.status==`finish`?(h(),i(n(L),{key:0,quaternary:``,onClick:t[3]||=e=>ct()},{default:S(()=>[l(n(U),{class:`settings-icon`},{default:S(()=>[l(n(qe))]),_:1}),t[54]||=v(` Итоги `,-1)]),_:1})):r(``,!0),ye.value?(h(),i(n(L),{key:1,quaternary:``,loading:o.value,disabled:o.value,onClick:t[4]||=e=>st()},{default:S(()=>[...t[55]||=[v(` QR команд `,-1)]]),_:1},8,[`loading`,`disabled`])):r(``,!0),l(n(L),{quaternary:``,onClick:t[5]||=e=>lt()},{default:S(()=>[l(n(U),{class:`settings-icon`},{default:S(()=>[l(n(Se))]),_:1}),t[56]||=v(` Настройки `,-1)]),_:1}),(V.value.teams?.length||0)==0?(h(),i(n(L),{key:2,type:`error`,quaternary:``,onClick:t[6]||=e=>M.value=!0},{default:S(()=>[...t[57]||=[v(` Удалить игру `,-1)]]),_:1})):r(``,!0),l(n(W),null,{default:S(()=>[V.value.status==`draft`?r(``,!0):(h(),i(n(L),{key:0,type:`info`,dashed:``,onClick:t[7]||=e=>kt()},{default:S(()=>[l(n(U),null,{default:S(()=>[l(n(Ge))]),_:1})]),_:1})),V.value.status==`draft`?(h(),i(n(L),{key:1,type:`info`,dashed:``,onClick:t[8]||=e=>At()},{default:S(()=>[l(n(U),null,{default:S(()=>[l(n(Ue))]),_:1})]),_:1})):r(``,!0),V.value.status==`pause`?(h(),i(n(L),{key:2,type:`info`,dashed:``,onClick:t[9]||=e=>Yt()},{default:S(()=>[l(n(U),null,{default:S(()=>[l(n(Ue))]),_:1})]),_:1})):r(``,!0),V.value.status==`run`?(h(),i(n(L),{key:3,type:`info`,dashed:``,onClick:t[10]||=e=>Jt()},{default:S(()=>[l(n(U),null,{default:S(()=>[l(n(Ve))]),_:1})]),_:1})):r(``,!0),V.value.status==`finish`?r(``,!0):(h(),i(n(L),{key:4,type:`info`,dashed:``,onClick:t[11]||=e=>Xt()},{default:S(()=>[l(n(U),null,{default:S(()=>[l(n(ze))]),_:1})]),_:1}))]),_:1})]),_:1})]),_:1})])]),_:1}),l(n(oe),{name:`teams`,tab:`Команды`},{default:S(()=>[l(n(H),{bordered:!1,type:`info`},{default:S(()=>[v(` Участвуют команд: `+m(ye.value),1)]),_:1}),l(jt,{teams:V.value.teams||[],"participation-options":pe,onAdd:t[12]||=e=>A.value=!0,onOpenQr:Tt,onPreview:t[13]||=(e,t)=>ot(e,t,!0),onDelete:xt,onGiveApplication:_t},null,8,[`teams`])]),_:1}),l(n(oe),{name:`screens-map`,tab:`Экраны и карта`},{default:S(()=>[l(yt,{screens:K.value,"screen-binding":fe.value,onBind:et,onSetSound:it,onUnbind:at},null,8,[`screens`,`screen-binding`]),l(mt,{"map-items":Me.value,teams:V.value.teams||[],screens:K.value,"preview-questions":Ae.value,"preview-teams":je.value,"screen-plan":q.value,"screen-plan-draft":J.value,"screen-plan-dirty":Y.value,"screen-plan-saving":be.value,"screen-plan-mode":X.value,"screen-volume":Pe.value,"screen-position":Fe.value,onSaveItem:rt,onGiveApplication:_t,onAddStep:Be,onEdit:He,onCancel:We,onRemoveStep:Ke,onMoveStep:Je,onDirty:Ye,onClearPlan:Xe,onSave:Ze,onSetStep:Qe,onCommand:$e,"onUpdate:screenVolume":t[14]||=e=>Pe.value=e??0,"onUpdate:screenPosition":t[15]||=e=>Fe.value=e??0},null,8,[`map-items`,`teams`,`screens`,`preview-questions`,`preview-teams`,`screen-plan`,`screen-plan-draft`,`screen-plan-dirty`,`screen-plan-saving`,`screen-plan-mode`,`screen-volume`,`screen-position`])]),_:1})]),_:1},8,[`value`])])]),l(n(I),{show:O.value,"onUpdate:show":t[22]||=e=>O.value=e},{default:S(()=>[l(n(F),{style:{width:`600px`},title:`Настройки игры`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":S(()=>[l(n(L),{onClick:t[16]||=e=>ut()},{default:S(()=>[...t[58]||=[v(` x `,-1)]]),_:1})]),footer:S(()=>[l(n(G),{justify:`end`},{default:S(()=>[l(n(L),{onClick:t[21]||=e=>dt(),ghost:``},{default:S(()=>[...t[63]||=[v(` Сохранить изменения `,-1)]]),_:1})]),_:1})]),default:S(()=>[l(n(W),{vertical:``},{default:S(()=>[t[59]||=p(`p`,null,`Название`,-1),l(n(B),{value:k.value.name,"onUpdate:value":t[17]||=e=>k.value.name=e,type:`text`,placeholder:`Дело №0 "Следствие ведут овечки"`},null,8,[`value`]),t[60]||=p(`p`,{class:`settings-header`},`Формат игры`,-1),l(n(ce),{value:k.value.format,"onUpdate:value":t[18]||=e=>k.value.format=e,options:[{label:`Online`,value:`online`},{label:`Offline`,value:`offline`}],"aria-label":`Формат игры`},null,8,[`value`]),t[61]||=p(`p`,{class:`settings-header`},`Описание`,-1),l(n(B),{value:k.value.description,"onUpdate:value":t[19]||=e=>k.value.description=e,type:`textarea`,placeholder:`Убийство пастуха...`},null,8,[`value`]),t[62]||=p(`p`,{class:`settings-header`},`Место проведения`,-1),l(n(B),{value:k.value.location,"onUpdate:value":t[20]||=e=>k.value.location=e,type:`text`,placeholder:`Оставьте пустым для онлайн-игры`},null,8,[`value`])]),_:1})]),_:1})]),_:1},8,[`show`]),l(n(I),{show:te.value,"onUpdate:show":t[25]||=e=>te.value=e},{default:S(()=>[l(n(F),{style:{width:`600px`},title:`Настройки игры`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":S(()=>[l(n(L),{onClick:t[23]||=e=>te.value=!1},{default:S(()=>[...t[64]||=[v(` x `,-1)]]),_:1})]),footer:S(()=>[l(n(G),{justify:`end`},{default:S(()=>[l(n(L),{onClick:t[24]||=e=>bt(),ghost:``},{default:S(()=>[...t[67]||=[v(` Выдать `,-1)]]),_:1})]),_:1})]),default:S(()=>[l(n(W),{vertical:``},{default:S(()=>[t[65]||=p(`p`,null,`Команда`,-1),p(`h3`,null,m(ft.value.name),1),t[66]||=p(`p`,null,`Улика`,-1),p(`h3`,null,m($.value.name),1),n(we)($.value)==`image`&&$.value.image?(h(),d(`div`,Ft,[p(`img`,{src:n(Te)($.value.image),class:`give-application-image`},null,8,It)])):n(we)($.value)==`audio`&&$.value.image?(h(),d(`audio`,{key:1,src:n(Te)($.value.image),controls:``,preload:`none`,class:`give-application-audio`},null,8,Lt)):n(we)($.value)==`pdf`&&$.value.image?(h(),d(`a`,{key:2,href:n(Te)($.value.image),target:`_blank`,rel:`noopener`,class:`give-application-pdf-link`},` PDF `,8,Rt)):r(``,!0)]),_:1})]),_:1})]),_:1},8,[`show`]),l(n(I),{show:A.value,"onUpdate:show":t[31]||=e=>A.value=e},{default:S(()=>[l(n(F),{style:{width:`600px`},title:`Создание команды`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":S(()=>[l(n(L),{onClick:t[26]||=e=>A.value=!1},{default:S(()=>[...t[68]||=[v(` x `,-1)]]),_:1})]),footer:S(()=>[l(n(G),{justify:`end`},{default:S(()=>[l(n(L),{onClick:t[30]||=e=>vt(),disabled:ne.value.length==0},{default:S(()=>[...t[69]||=[v(` Создать `,-1)]]),_:1},8,[`disabled`])]),_:1})]),default:S(()=>[l(n(W),{vertical:``},{default:S(()=>[l(n(B),{value:ne.value,"onUpdate:value":t[27]||=e=>ne.value=e,type:`text`,placeholder:`Три дебила`},null,8,[`value`]),l(n(B),{value:N.value,"onUpdate:value":t[28]||=e=>N.value=e,"input-props":{type:`email`,autocomplete:`email`},placeholder:`Почта капитана (необязательно)`,"aria-label":`Почта капитана (необязательно)`},null,8,[`value`]),l(n(Le),{value:P.value,"onUpdate:value":t[29]||=e=>P.value=e,min:1,max:8,precision:0,placeholder:`Количество игроков`,"aria-label":`Количество игроков`},null,8,[`value`])]),_:1})]),_:1})]),_:1},8,[`show`]),l(n(I),{show:j.value,"onUpdate:show":t[35]||=e=>j.value=e},{default:S(()=>[l(n(F),{style:{width:`600px`},title:`Удаление команды`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":S(()=>[l(n(L),{onClick:t[32]||=e=>j.value=!1},{default:S(()=>[...t[70]||=[v(` x `,-1)]]),_:1})]),footer:S(()=>[l(n(G),{justify:`end`},{default:S(()=>[l(n(L),{onClick:t[34]||=e=>St(),disabled:pt.value!=ht.value.name},{default:S(()=>[...t[73]||=[v(` Удалить `,-1)]]),_:1},8,[`disabled`])]),_:1})]),default:S(()=>[l(n(W),{vertical:``},{default:S(()=>[p(`p`,null,[t[71]||=v(` Введите название команды `,-1),l(n(ve),{class:`name-text`,strong:``},{default:S(()=>[v(m(ht.value.name),1)]),_:1}),t[72]||=v(` чтобы удалить его `,-1)]),l(n(B),{value:pt.value,"onUpdate:value":t[33]||=e=>pt.value=e,type:`text`,placeholder:`Три дебила`},null,8,[`value`])]),_:1})]),_:1})]),_:1},8,[`show`]),l(n(I),{show:M.value,"onUpdate:show":t[39]||=e=>M.value=e},{default:S(()=>[l(n(F),{style:{width:`600px`},title:`Удаление игры`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":S(()=>[l(n(L),{onClick:t[36]||=e=>M.value=!1},{default:S(()=>[...t[74]||=[v(` x `,-1)]]),_:1})]),footer:S(()=>[l(n(G),{justify:`end`},{default:S(()=>[l(n(L),{onClick:t[38]||=e=>Ct(),disabled:re.value!=V.value.name},{default:S(()=>[...t[77]||=[v(` Удалить `,-1)]]),_:1},8,[`disabled`])]),_:1})]),default:S(()=>[l(n(W),{vertical:``},{default:S(()=>[p(`p`,null,[t[75]||=v(` Введите название игры `,-1),l(n(ve),{class:`name-text`,strong:``},{default:S(()=>[v(m(V.value.name),1)]),_:1}),t[76]||=v(` чтобы удалить её `,-1)]),l(n(B),{value:re.value,"onUpdate:value":t[37]||=e=>re.value=e,type:`text`,placeholder:`Дело №0 "Следствие ведут овечки"`},null,8,[`value`])]),_:1})]),_:1})]),_:1},8,[`show`]),l(n(I),{show:R.value,"onUpdate:show":t[43]||=e=>R.value=e},{default:S(()=>[l(n(F),{style:{width:`min(94vw, 700px)`},title:`Выпуск билетов`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":S(()=>[l(n(L),{onClick:t[40]||=e=>R.value=!1},{default:S(()=>[...t[78]||=[v(` x `,-1)]]),_:1})]),default:S(()=>[l(n(W),{vertical:``},{default:S(()=>[l(n(Le),{value:z.value,"onUpdate:value":t[41]||=e=>z.value=e,min:1,max:100},null,8,[`value`]),l(n(L),{type:`primary`,loading:de.value,disabled:de.value,onClick:t[42]||=e=>Ot()},{default:S(()=>[...t[79]||=[v(` Выпустить `,-1)]]),_:1},8,[`loading`,`disabled`]),(h(!0),d(D,null,f(ue.value,e=>(h(),d(`div`,{key:e.ID,class:`issued-ticket`},[p(`div`,null,`Билет №`+m(e.ID),1),p(`a`,{href:e.URL,target:`_blank`,rel:`noreferrer`},`Открыть страницу билета`,8,zt),l(n(L),{size:`small`,onClick:t=>Et(e.URL,`Билет №${e.ID}`)},{default:S(()=>[...t[80]||=[v(` Показать QR `,-1)]]),_:1},8,[`onClick`])]))),128))]),_:1})]),_:1})]),_:1},8,[`show`]),l(n(I),{show:ie.value,"onUpdate:show":t[45]||=e=>ie.value=e},{default:S(()=>[l(n(F),{style:{width:`600px`},title:le.value,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":S(()=>[l(n(L),{onClick:t[44]||=e=>ie.value=!1},{default:S(()=>[...t[81]||=[v(` x `,-1)]]),_:1})]),footer:S(()=>[...t[82]||=[]]),default:S(()=>[l(n(W),{vertical:``},{default:S(()=>[p(`div`,Bt,[l(n(_e),{value:ae.value,size:300,padding:0},null,8,[`value`])])]),_:1})]),_:1},8,[`title`])]),_:1},8,[`show`]),l(n(I),{show:Zt.value,"onUpdate:show":t[48]||=e=>Zt.value=e},{default:S(()=>[l(n(F),{style:{width:`min(94vw, 900px)`},title:`Ответы команд`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`,"content-style":{maxHeight:`70vh`,overflow:`auto`}},{"header-extra":S(()=>[l(n(L),{onClick:t[46]||=e=>Zt.value=!1},{default:S(()=>[...t[83]||=[v(` x `,-1)]]),_:1})]),footer:S(()=>[l(n(G),{justify:`end`},{default:S(()=>[l(n(L),{onClick:t[47]||=e=>pn(),disabled:nn.value.length==0},{default:S(()=>[...t[86]||=[v(` Сохранить баллы `,-1)]]),_:1},8,[`disabled`])]),_:1})]),default:S(()=>[nn.value.length==0?(h(),d(`div`,Vt,` Вопросы дела не заданы или команды ещё не отвечали. `)):r(``,!0),(h(!0),d(D,null,f(nn.value,e=>(h(),d(`div`,{key:e.code,class:`answers-question-block`},[p(`p`,Ht,m(e.code)+`: `+m(e.text),1),p(`p`,Ut,[t[84]||=v(` Правильный ответ:`,-1),t[85]||=p(`br`,null,null,-1),p(`span`,Wt,m(e.answer||`—`),1)]),(h(!0),d(D,null,f(rn.value,t=>(h(),d(`div`,{key:t.team?.ID,class:`answers-team-row`},[p(`div`,Gt,m(t.team?.name),1),p(`div`,Kt,m(sn(t,e.code)||`—`),1),l(n(Le),{value:an.value[on(t.team?.ID,e.code)],"onUpdate:value":n=>cn(on(t.team?.ID,e.code),n),placeholder:`Балл`,class:`answers-score-input`},null,8,[`value`,`onUpdate:value`])]))),128))]))),128))]),_:1})]),_:1},8,[`show`]),l(n(I),{show:Qt.value,"onUpdate:show":t[50]||=e=>Qt.value=e},{default:S(()=>[l(n(F),{style:{width:`min(94vw, 800px)`},title:`Отзывы игры`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`,"content-style":{maxHeight:`70vh`,overflow:`auto`}},{"header-extra":S(()=>[l(n(L),{onClick:t[49]||=e=>Qt.value=!1},{default:S(()=>[...t[87]||=[v(` x `,-1)]]),_:1})]),default:S(()=>[l(n(G),{align:`center`,class:`reviews-summary`},{default:S(()=>[l(n(ge),{value:en.value,readonly:``,"allow-half":``},null,8,[`value`]),p(`span`,null,m(tn.value?`${en.value.toFixed(1)} · ${tn.value}`:`Пока нет отзывов`),1)]),_:1}),$t.value.length==0?(h(),d(`div`,qt,`Отзывов пока нет.`)):r(``,!0),(h(!0),d(D,null,f($t.value,e=>(h(),d(`div`,{key:e.ID,class:`review-row`},[l(n(G),{justify:`space-between`,align:`center`},{default:S(()=>[p(`strong`,null,m(e.teamName),1),l(n(H),null,{default:S(()=>[v(m(e.status),1)]),_:2},1024)]),_:2},1024),l(n(ge),{value:e.rating,readonly:``,size:`small`},null,8,[`value`]),p(`div`,null,`Сложность: `+m([``,`лёгкая`,`средняя`,`тяжёлая`][e.difficulty||0]),1),p(`p`,null,m(e.text),1),e.status==`pending`?(h(),i(n(G),{key:0,justify:`end`},{default:S(()=>[l(n(L),{type:`success`,onClick:t=>fn(e,`approved`)},{default:S(()=>[...t[88]||=[v(`Одобрить`,-1)]]),_:1},8,[`onClick`]),l(n(L),{type:`error`,ghost:``,onClick:t=>fn(e,`rejected`)},{default:S(()=>[...t[89]||=[v(`Отклонить`,-1)]]),_:1},8,[`onClick`])]),_:2},1024)):e.status==`approved`?(h(),i(n(G),{key:1,justify:`end`},{default:S(()=>[l(n(L),{type:`error`,ghost:``,onClick:t=>fn(e,`hidden`)},{default:S(()=>[...t[90]||=[v(`Скрыть`,-1)]]),_:1},8,[`onClick`])]),_:2},1024)):r(``,!0)]))),128))]),_:1})]),_:1},8,[`show`]),l(xe,{active:`games`})],64))}}),[[`__scopeId`,`data-v-37833c1f`]]),Yt=u({__name:`GameView`,setup(e){return(e,t)=>(h(),i(Jt))}});export{Yt as default}; |