generated from VLADIMIR/template_frontend
7 lines
34 KiB
JavaScript
7 lines
34 KiB
JavaScript
import{$ as e,A as t,D as n,Dt as r,E as i,Et as a,H as o,P as s,Q as c,S as l,T as u,Tt as ee,W as d,X as f,a as te,b as p,it as m,lt as h,o as g,p as _,st as ne,v as re,x as v,y}from"./vue-router-bPs2Bq2h.js";import{G as b,H as x,K as S,N as C,n as w,o as T,r as E,t as D}from"./light-BDe84dgP.js";import{D as ie,j as ae,l as oe,t as O}from"./Card-DAWa6XIj.js";import{a as k,r as A}from"./resolve-slot-Cp3m6n7Y.js";import{t as j}from"./Modal-NXz3bgl0.js";import{n as M,o as se,t as N}from"./Button-DqmpGKZD.js";import{t as P}from"./call-ChHlm4-m.js";import{t as F}from"./Add-DIWmYlsC.js";import{t as I}from"./Input-CDuXdFGU.js";import{t as ce}from"./Remove-DcWi6Jc0.js";import{t as L}from"./Tag-cC40qdIm.js";import{t as le}from"./use-message-r5RvDSbD.js";import{t as R}from"./Space-BwUb-oPz.js";import{t as z}from"./Flex-BYhQRlJO.js";import{t as ue}from"./QrCode-c3qDqmj4.js";import{t as B}from"./text-KcA3yacE.js";import{C as de,H as V,J as H,Q as U,et as W,x as G}from"./index-B1S6SUKx.js";import{i as fe,n as K,o as pe,r as q,t as me}from"./HeaderMenu-DOd51pLB.js";import{t as he}from"./Settings-CfqkfQL3.js";import{t as ge}from"./binary_client-CRmKf9n3.js";import{t as _e}from"./useSimplePolling-Dk-tGYmM.js";import{n as ve,r as ye}from"./application-Cn6gcvZk.js";import{n as be,t as xe}from"./datetime-BJNH0M1T.js";function J(e){let{textColorDisabled:t}=e;return{iconColorDisabled:t}}var Y=w({name:`InputNumber`,common:D,peers:{Button:G,Input:de},self:J}),Se=b([S(`input-number-suffix`,`
|
||
display: inline-block;
|
||
margin-right: 10px;
|
||
`),S(`input-number-prefix`,`
|
||
display: inline-block;
|
||
margin-left: 10px;
|
||
`)]);function Ce(e){return e==null||typeof e==`string`&&e.trim()===``?null:Number(e)}function we(e){return e.includes(`.`)&&(/^(-)?\d+.*(\.|0)$/.test(e)||/^-?\d*$/.test(e))||e===`-`||e===`-0`}function Te(e){return e==null?!0:!Number.isNaN(e)}function Ee(e,t){return typeof e==`number`?t===void 0?String(e):e.toFixed(t):``}function De(e){if(e===null)return null;if(typeof e==`number`)return e;{let t=Number(e);return Number.isNaN(t)?null:t}}var Oe=800,ke=100,Ae=n({name:`InputNumber`,props:Object.assign(Object.assign({},E.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}=C(e),a=E(`InputNumber`,`-input-number`,Se,Y,e,n),{localeRef:o}=oe(`InputNumber`),c=se(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:ee}=c,d=m(null),te=m(null),p=m(null),h=m(e.defaultValue),g=ie(ne(e,`value`),h),_=m(``),v=e=>{let t=String(e).split(`.`)[1];return t?t.length:0},y=t=>{let n=[e.min,e.max,e.step,t].map(e=>e===void 0?0:v(e));return Math.max(...n)},b=H(()=>{let{placeholder:t}=e;return t===void 0?o.value.placeholder:t}),S=H(()=>{let t=De(e.step);return t===null||t===0?1:Math.abs(t)}),w=H(()=>{let t=De(e.min);return t===null?null:t}),D=H(()=>{let t=De(e.max);return t===null?null:t}),O=()=>{let{value:t}=g;if(Te(t)){let{format:n,precision:r}=e;n?_.value=n(t):t===null||r===void 0||v(t)>r?_.value=Ee(t,void 0):_.value=Ee(t,r)}else _.value=String(t)};O();let k=t=>{let{value:n}=g;if(t===n){O();return}let{"onUpdate:value":r,onUpdateValue:i,onChange:a}=e,{nTriggerFormInput:o,nTriggerFormChange:s}=c;a&&P(a,t),i&&P(i,t),r&&P(r,t),h.value=t,o(),s()},A=({offset:t,doUpdateIfValid:n,fixPrecision:r,isInputing:i})=>{let{value:a}=_;if(i&&we(a))return!1;let o=(e.parse||Ce)(a);if(o===null)return n&&k(null),null;if(Te(o)){let a=v(o),{precision:s}=e;if(s!==void 0&&s<a&&!r)return!1;let c=Number.parseFloat((o+t).toFixed(s??y(o)));if(Te(c)){let{value:t}=D,{value:r}=w;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&&k(c),c)}}return!1},j=H(()=>A({offset:0,doUpdateIfValid:!1,isInputing:!1,fixPrecision:!1})===!1),M=H(()=>{let{value:t}=g;if(e.validator&&t===null)return!1;let{value:n}=S;return A({offset:-n,doUpdateIfValid:!1,isInputing:!1,fixPrecision:!1})!==!1}),N=H(()=>{let{value:t}=g;if(e.validator&&t===null)return!1;let{value:n}=S;return A({offset:+n,doUpdateIfValid:!1,isInputing:!1,fixPrecision:!1})!==!1});function F(t){let{onFocus:n}=e,{nTriggerFormFocus:r}=c;n&&P(n,t),r()}function I(t){if(t.target===d.value?.wrapperElRef)return;let n=A({offset:0,doUpdateIfValid:!0,isInputing:!1,fixPrecision:!0});if(n!==!1){let e=d.value?.inputElRef;e&&(e.value=String(n||``)),g.value===n&&O()}else O();let{onBlur:r}=e,{nTriggerFormBlur:i}=c;r&&P(r,t),i(),s(()=>{O()})}function ce(t){let{onClear:n}=e;n&&P(n,t)}function L(){let{value:t}=N;if(!t){K();return}let{value:n}=g;if(n===null)e.validator||k(ue());else{let{value:e}=S;A({offset:e,doUpdateIfValid:!0,isInputing:!1,fixPrecision:!0})}}function le(){let{value:t}=M;if(!t){G();return}let{value:n}=g;if(n===null)e.validator||k(ue());else{let{value:e}=S;A({offset:-e,doUpdateIfValid:!0,isInputing:!1,fixPrecision:!0})}}let R=F,z=I;function ue(){if(e.validator)return null;let{value:t}=w,{value:n}=D;return t===null?n===null?0:Math.min(0,n):Math.max(0,t)}function B(e){ce(e),k(null)}function de(e){var t;p.value?.$el.contains(e.target)&&e.preventDefault(),te.value?.$el.contains(e.target)&&e.preventDefault(),(t=d.value)==null||t.activate()}let V=null,U=null,W=null;function G(){W&&=(window.clearTimeout(W),null),V&&=(window.clearInterval(V),null)}let fe=null;function K(){fe&&=(window.clearTimeout(fe),null),U&&=(window.clearInterval(U),null)}function pe(){G(),W=window.setTimeout(()=>{V=window.setInterval(()=>{le()},ke)},Oe),ae(`mouseup`,document,G,{once:!0})}function q(){K(),fe=window.setTimeout(()=>{U=window.setInterval(()=>{L()},ke)},Oe),ae(`mouseup`,document,K,{once:!0})}let me=()=>{U||L()},he=()=>{V||le()};function ge(t){var n;if(t.key===`Enter`){if(t.target===d.value?.wrapperElRef)return;A({offset:0,doUpdateIfValid:!0,isInputing:!1,fixPrecision:!0})!==!1&&((n=d.value)==null||n.deactivate())}else if(t.key===`ArrowUp`){if(!N.value||e.keyboard.ArrowUp===!1)return;t.preventDefault(),A({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(),A({offset:0,doUpdateIfValid:!0,isInputing:!1,fixPrecision:!0})!==!1&&le()}}function _e(t){_.value=t,e.updateValueOnInput&&!e.format&&!e.parse&&e.precision===void 0&&A({offset:0,doUpdateIfValid:!0,isInputing:!0,fixPrecision:!1})}f(g,()=>{O()});let ve={focus:()=>d.value?.focus(),blur:()=>d.value?.blur(),select:()=>d.value?.select()},ye=T(`InputNumber`,r,n);return Object.assign(Object.assign({},ve),{rtlEnabled:ye,inputInstRef:d,minusButtonInstRef:te,addButtonInstRef:p,mergedClsPrefix:n,mergedBordered:t,uncontrolledValue:h,mergedValue:g,mergedPlaceholder:b,displayedValueInvalid:j,mergedSize:l,mergedDisabled:u,displayedValue:_,addable:N,minusable:M,mergedStatus:ee,handleFocus:R,handleBlur:z,handleClear:B,handleMouseDown:de,handleAddClick:me,handleMinusClick:he,handleAddMousedown:q,handleMinusMousedown:pe,handleKeyDown:ge,handleUpdateDisplayedValue:_e,mergedTheme:a,inputThemeOverrides:{paddingSmall:`0 8px 0 10px`,paddingMedium:`0 8px 0 12px`,paddingLarge:`0 8px 0 14px`},buttonThemeOverrides:re(()=>{let{self:{iconColorDisabled:e}}=a.value,[t,n,r,i]=x(e);return{textColorTextDisabled:`rgb(${t}, ${n}, ${r})`,opacityDisabled:`${i}`}})})},render(){let{mergedClsPrefix:e,$slots:n}=this,r=()=>t(M,{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:()=>A(n[`minus-icon`],()=>[t(V,{clsPrefix:e},{default:()=>t(ce,null)})])}),i=()=>t(M,{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:()=>A(n[`add-icon`],()=>[t(V,{clsPrefix:e},{default:()=>t(F,null)})])});return t(`div`,{class:[`${e}-input-number`,this.rtlEnabled&&`${e}-input-number--rtl`]},t(I,{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(),k(n.prefix,n=>n?t(`span`,{class:`${e}-input-number-prefix`},n):null)]:n.prefix?.call(n),suffix:()=>this.showButton?[k(n.suffix,n=>n?t(`span`,{class:`${e}-input-number-suffix`},n):null),this.buttonPlacement===`right`?r():null,i()]:n.suffix?.call(n)}))}}),je={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},Me=n({name:`Flag`,render:function(e,t){return o(),l(`svg`,je,t[0]||=[y(`path`,{d:`M6 30H4V2h24l-5.8 9l5.8 9H6zm0-12h18.33l-4.53-7l4.53-7H6z`,fill:`currentColor`},null,-1)])}}),Ne={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},Pe=n({name:`Pause`,render:function(e,t){return o(),l(`svg`,Ne,t[0]||=[y(`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),y(`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)])}}),Fe={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},Ie=n({name:`Play`,render:function(e,t){return o(),l(`svg`,Fe,t[0]||=[y(`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)])}}),Le={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},Re=n({name:`Reset`,render:function(e,t){return o(),l(`svg`,Le,t[0]||=[y(`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)])}}),ze={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},Be=n({name:`Trophy`,render:function(e,t){return o(),l(`svg`,ze,t[0]||=[y(`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)])}}),Ve={class:`center-block-custom`},He={class:`width1200`},Ue={class:`settings-block`},We={key:0,class:`screens-block`},Ge={class:`screen-status`},Ke={key:0,class:`screen-error`},qe={class:`map-block`},Je=[`onPointerdown`],Ye={key:0},Xe=[`onClick`],Ze={class:`team-content-block`},Qe={class:`title-block`},$e={class:`team-name-block`},et={key:0,class:`give-application-image-block`},tt=[`src`],nt=[`src`],rt=[`href`],it={class:`qr-block`},at={key:0,class:`answers-empty`},ot={class:`answers-question-title`},st={class:`answers-question-answer`},ct={class:`correct-answer`},lt={class:`answers-team-name`},ut={class:`answers-team-answer`},dt=K(n({__name:`GamePage`,setup(t){let n=fe(),s=ge(),f=m(!1),ne=g(),b=te().params.id,x=le(),S=m(!1),C=m({name:``,description:``}),w=m(!1),T=m(!1),E=m(!1),D=m(!1),ie=m(``),ae=m(``),oe=m(!1),k=m(``),A=m(``),M=m({id:void 0,name:void 0,description:void 0,startAt:void 0,status:void 0,scenario:void 0,teams:void 0}),se=m([]),P=m([]),F=m(!1),ce=m(100),de=m(0),V=re(()=>{let e=se.value.map(e=>e.mode).filter(Boolean);if(!(!e.length||e.some(t=>t!==e[0])))return e[0]}),H=m(1),G=m({x:0,y:0}),K,J;async function Y(e){let t=await n.GetGame({id:e});if(t.error!=``){x.error(t.error);return}M.value=t.game,M.value.teams=M.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})}Y(Number(b));async function Se(){let e=await n.GetGameScreens({gameId:Number(b)});e.error==``&&(se.value=e.screens||[])}Se();async function Ce(){if(K||F.value)return;let e=await n.GetGameMap({gameId:Number(b)});e.error==``&&(P.value=e.items||[])}Ce();async function we(e,t=e.hidden){F.value=!0;try{let r=await n.UpdateGameMapItem({gameId:Number(b),kind:e.kind,itemId:e.itemId,x:Math.round(e.x||0),y:Math.round(e.y||0),hidden:t});r.error!=``&&x.error(r.error||`Не удалось сохранить координаты`)}finally{F.value=!1}}function Te(e,t){K={item:e,startX:t.clientX,startY:t.clientY,itemX:e.x||0,itemY:e.y||0},window.addEventListener(`pointermove`,Ee),window.addEventListener(`pointerup`,De,{once:!0})}function Ee(e){K&&(K.item.x=Math.round(K.itemX+e.clientX-K.startX),K.item.y=Math.round(K.itemY+e.clientY-K.startY))}async function De(){if(!K)return;let e=K.item;K=void 0,window.removeEventListener(`pointermove`,Ee),await we(e),await Ce()}async function Oe(e){e.hidden=!e.hidden,await we(e)}function ke(e){H.value=Math.min(2,Math.max(.5,Number((H.value+e).toFixed(2))))}function je(){H.value=1,G.value={x:0,y:0}}function Ne(e){e.button===0&&(J={startX:e.clientX,startY:e.clientY,offsetX:G.value.x,offsetY:G.value.y},window.addEventListener(`pointermove`,Fe),window.addEventListener(`pointerup`,Le,{once:!0}))}function Fe(e){J&&(G.value={x:J.offsetX+e.clientX-J.startX,y:J.offsetY+e.clientY-J.startY})}function Le(){J=void 0,window.removeEventListener(`pointermove`,Fe)}function ze(e){e.preventDefault(),ke(e.deltaY<0?.1:-.1)}async function dt(e){let t=await n.SetScreenSound({screenId:e.id,soundEnabled:!0});if(t.error!=``){x.error(t.error);return}await Se()}async function ft(e){let t=await n.UnbindScreen({screenId:e.id});if(t.error!=``){x.error(t.error);return}await Se()}async function X(e){let t=await n.SetScreenMode({gameId:Number(b),mode:e});t.error!=``&&x.error(t.error||`Не удалось изменить режим экранов`)}async function Z(e){if((e===`SCREEN_COMMAND_PLAY`||e===`SCREEN_COMMAND_REPLAY`)&&!window.confirm(`Запустить медиа на всех экранах?`))return;let t=await n.SendScreenCommand({gameId:Number(b),command:e,positionMs:Math.max(0,Math.round(de.value*1e3)),volume:Math.max(0,Math.min(100,Math.round(ce.value)))});t.error!=``&&x.error(t.error||`Не удалось выполнить команду экранов`)}async function pt(e,t,n=!1){let r=`/team-story/`+e+`?password=`+t;if(n){window.open(r,`_blank`);return}ne.push(r)}async function mt(){if(!(f.value||!M.value.teams?.length)){f.value=!0;try{let{blob:e,filename:t}=await s.downloadTeamQR(M.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){x.error(e instanceof Error?e.message:`Не удалось скачать QR команд`)}finally{f.value=!1}}}function ht(){ne.push(`/games/`+b+`/results`)}function gt(){C.value={name:M.value.name||``,description:M.value.description||``},S.value=!0}function _t(){S.value=!1}async function vt(){let e=await n.UpdateGame({id:M.value.id,name:C.value.name,description:C.value.description,startAt:M.value.startAt,scenarioId:M.value.scenario?.id});if(e.error!=``){x.error(e.error);return}await Y(M.value.id),S.value=!1}let yt=m({id:0,name:``,status:``,password:``,actionsCount:0,applications:[]}),bt=m(``),xt=m({id:0,name:``,status:``,password:``,actionsCount:0,applications:[]}),Q=m({name:``,image:``,file_type:``}),St=window.location.href;function Ct(e,t){yt.value=e,Q.value=t,w.value=!0}async function wt(){let e=await n.AddTeam({gameId:M.value.id,name:ie.value});if(e.error!=``){x.error(e.error);return}await Y(M.value.id),T.value=!1}async function Tt(){let e=await n.GiveTeamApplications({id:yt.value.id,name:Q.value.name});if(e.error!=``){x.error(e.error);return}await Y(M.value.id),w.value=!1}async function Et(e){xt.value=e,E.value=!0}async function Dt(){let e=await n.DeleteTeam({id:xt.value.id});if(e.error!=``){x.error(e.error);return}await Y(M.value.id),E.value=!1}async function Ot(){let e=await n.DeleteGame({id:M.value.id});if(e.error!=``){x.error(e.error);return}x.success(`Игра удалена`),ne.push(`/games`)}function kt(e,t){return pe()+`/team-story/`+e+`?password=`+t}async function At(e,t){k.value=e,A.value=t,oe.value=!0}_e(()=>{Y(Number(b)),Se(),Ce()},2e3);async function jt(){let e=await n.ResetGame({id:M.value.id});if(e.error!=``){x.error(e.error);return}await Y(M.value.id)}async function Mt(){let e=await n.StartGame({id:M.value.id});if(e.error!=``){x.error(e.error);return}await Y(M.value.id)}async function Nt(){let e=await n.PauseGame({id:M.value.id});if(e.error!=``){x.error(e.error);return}await Y(M.value.id)}async function Pt(){let e=await n.PlayGame({id:M.value.id});if(e.error!=``){x.error(e.error);return}await Y(M.value.id)}async function Ft(){let e=await n.FinishGame({id:M.value.id});if(e.error!=``){x.error(e.error);return}await Y(M.value.id)}let It=m(!1),$=m([]),Lt=m([]),Rt=m({});function zt(e,t){return(e??``)+`:`+(t??``)}function Bt(e,t){return(e.answers||[]).find(e=>e.questionCode==t)?.answer||``}function Vt(e,t){Rt.value[e]=t===null?void 0:t}async function Ht(){let e=await n.GetGameAnswers({gameId:Number(b)});if(e.error!=``){x.error(e.error);return}$.value=e.questions||[],Lt.value=e.teams||[];let t={};for(let e of Lt.value)for(let n of e.answers||[])t[zt(e.team?.id,n.questionCode)]=n.score;Rt.value=t}async function Ut(){It.value=!0,await Ht()}async function Wt(){for(let e of $.value)for(let t of Lt.value){let r=Rt.value[zt(t.team?.id,e.code)],i=await n.SetTeamAnswerScore({id:t.team?.id,questionCode:e.code,score:r??void 0});if(i.error!=``){x.error(i.error);return}}x.success(`Баллы сохранены`),await Ht()}function Gt(){let e=new Date;return new Date(e.getTime()-e.getTimezoneOffset()*6e4)}function Kt(e,t){if(e==``)return`Игра ещё не началась`;let n=be(e),r=Gt();t!=``&&(r=be(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 qt=m(``);return _e(()=>{qt.value=Kt(M.value.startedAt||``,M.value.endedAt||``)},1e3),(t,n)=>(o(),l(_,null,[y(`div`,Ve,[y(`div`,He,[y(`div`,Ue,[i(h(z),{justify:`space-between`},{default:c(()=>[i(h(R),null,{default:c(()=>[i(h(L),{bordered:!1,type:`info`},{default:c(()=>[u(` Команд: `+r(M.value.teams?.length),1)]),_:1}),i(h(L),{type:`info`},{default:c(()=>[u(r(qt.value),1)]),_:1}),h(xe)(M.value.startAt)?(o(),p(h(L),{key:0,type:`info`},{default:c(()=>[u(` Начало: `+r(h(xe)(M.value.startAt)),1)]),_:1})):v(``,!0)]),_:1}),i(h(z),{justify:`end`},{default:c(()=>[i(h(N),{quaternary:``,onClick:n[0]||=e=>At(h(St),`Админка`)},{default:c(()=>[...n[55]||=[u(` QR `,-1)]]),_:1}),i(h(N),{quaternary:``,onClick:n[1]||=e=>Ut()},{default:c(()=>[...n[56]||=[u(` Ответы команд `,-1)]]),_:1}),M.value.status==`finish`?(o(),p(h(N),{key:0,quaternary:``,onClick:n[2]||=e=>ht()},{default:c(()=>[i(h(q),{class:`settings-icon`},{default:c(()=>[i(h(Be))]),_:1}),n[57]||=u(` Итоги `,-1)]),_:1})):v(``,!0),M.value.teams?.length?(o(),p(h(N),{key:1,quaternary:``,loading:f.value,disabled:f.value,onClick:n[3]||=e=>mt()},{default:c(()=>[...n[58]||=[u(` QR команд `,-1)]]),_:1},8,[`loading`,`disabled`])):v(``,!0),i(h(N),{quaternary:``,onClick:n[4]||=e=>gt()},{default:c(()=>[i(h(q),{class:`settings-icon`},{default:c(()=>[i(h(he))]),_:1}),n[59]||=u(` Настройки `,-1)]),_:1}),(M.value.teams?.length||0)==0?(o(),p(h(N),{key:2,type:`error`,quaternary:``,onClick:n[5]||=e=>D.value=!0},{default:c(()=>[...n[60]||=[u(` Удалить игру `,-1)]]),_:1})):v(``,!0),i(h(R),null,{default:c(()=>[M.value.status==`draft`?v(``,!0):(o(),p(h(N),{key:0,type:`info`,dashed:``,onClick:n[6]||=e=>jt()},{default:c(()=>[i(h(q),null,{default:c(()=>[i(h(Re))]),_:1})]),_:1})),M.value.status==`draft`?(o(),p(h(N),{key:1,type:`info`,dashed:``,onClick:n[7]||=e=>Mt()},{default:c(()=>[i(h(q),null,{default:c(()=>[i(h(Ie))]),_:1})]),_:1})):v(``,!0),M.value.status==`pause`?(o(),p(h(N),{key:2,type:`info`,dashed:``,onClick:n[8]||=e=>Pt()},{default:c(()=>[i(h(q),null,{default:c(()=>[i(h(Ie))]),_:1})]),_:1})):v(``,!0),M.value.status==`run`?(o(),p(h(N),{key:3,type:`info`,dashed:``,onClick:n[9]||=e=>Nt()},{default:c(()=>[i(h(q),null,{default:c(()=>[i(h(Pe))]),_:1})]),_:1})):v(``,!0),M.value.status==`finish`?v(``,!0):(o(),p(h(N),{key:4,type:`info`,dashed:``,onClick:n[10]||=e=>Ft()},{default:c(()=>[i(h(q),null,{default:c(()=>[i(h(Me))]),_:1})]),_:1}))]),_:1})]),_:1})]),_:1})]),se.value.length>0?(o(),l(`div`,We,[n[79]||=y(`p`,{class:`screens-title`},`Экраны`,-1),(o(!0),l(_,null,d(se.value,e=>(o(),l(`div`,{key:e.id,class:`screen-row`},[y(`div`,null,[y(`div`,null,`Экран `+r(e.id),1),y(`div`,Ge,r(e.status),1),e.error?(o(),l(`div`,Ke,r(e.error),1)):v(``,!0)]),i(h(z),{justify:`end`},{default:c(()=>[e.soundEnabled?(o(),p(h(L),{key:0,type:`success`},{default:c(()=>[...n[61]||=[u(`Со звуком`,-1)]]),_:1})):(o(),p(h(N),{key:1,size:`small`,onClick:t=>dt(e)},{default:c(()=>[...n[62]||=[u(`Назначить звук`,-1)]]),_:1},8,[`onClick`])),i(h(N),{size:`small`,type:`error`,ghost:``,onClick:t=>ft(e)},{default:c(()=>[...n[63]||=[u(`Отвязать`,-1)]]),_:1},8,[`onClick`])]),_:2},1024)]))),128)),i(h(R),{class:`screen-mode-controls`},{default:c(()=>[i(h(N),{size:`small`,type:V.value===`SCREEN_MODE_COVER`?`primary`:`default`,onClick:n[11]||=e=>X(`SCREEN_MODE_COVER`)},{default:c(()=>[...n[64]||=[u(`Обложка`,-1)]]),_:1},8,[`type`]),i(h(N),{size:`small`,type:V.value===`SCREEN_MODE_INTRO`?`primary`:`default`,onClick:n[12]||=e=>X(`SCREEN_MODE_INTRO`)},{default:c(()=>[...n[65]||=[u(`Введение`,-1)]]),_:1},8,[`type`]),i(h(N),{size:`small`,type:V.value===`SCREEN_MODE_INTRO_DONE`?`primary`:`default`,onClick:n[13]||=e=>X(`SCREEN_MODE_INTRO_DONE`)},{default:c(()=>[...n[66]||=[u(`Успехов`,-1)]]),_:1},8,[`type`]),i(h(N),{size:`small`,type:V.value===`SCREEN_MODE_CONCLUSION`?`primary`:`default`,onClick:n[14]||=e=>X(`SCREEN_MODE_CONCLUSION`)},{default:c(()=>[...n[67]||=[u(`Закрывашка`,-1)]]),_:1},8,[`type`]),i(h(N),{size:`small`,type:V.value===`SCREEN_MODE_CONCLUSION_DONE`?`primary`:`default`,onClick:n[15]||=e=>X(`SCREEN_MODE_CONCLUSION_DONE`)},{default:c(()=>[...n[68]||=[u(`Спасибо за игру!`,-1)]]),_:1},8,[`type`]),M.value.status===`finish`?(o(),p(h(N),{key:0,size:`small`,type:V.value===`SCREEN_MODE_RESULTS`?`primary`:`default`,onClick:n[16]||=e=>X(`SCREEN_MODE_RESULTS`)},{default:c(()=>[...n[69]||=[u(`Результаты`,-1)]]),_:1},8,[`type`])):v(``,!0)]),_:1}),i(h(R),{class:`screen-mode-controls`},{default:c(()=>[i(h(N),{size:`small`,onClick:n[17]||=e=>Z(`SCREEN_COMMAND_PLAY`)},{default:c(()=>[...n[70]||=[u(`Запуск`,-1)]]),_:1}),i(h(N),{size:`small`,onClick:n[18]||=e=>Z(`SCREEN_COMMAND_PAUSE`)},{default:c(()=>[...n[71]||=[u(`Пауза`,-1)]]),_:1}),i(h(N),{size:`small`,onClick:n[19]||=e=>Z(`SCREEN_COMMAND_RESUME`)},{default:c(()=>[...n[72]||=[u(`Продолжить`,-1)]]),_:1}),i(h(N),{size:`small`,onClick:n[20]||=e=>Z(`SCREEN_COMMAND_STOP`)},{default:c(()=>[...n[73]||=[u(`Стоп`,-1)]]),_:1}),i(h(N),{size:`small`,onClick:n[21]||=e=>Z(`SCREEN_COMMAND_REPLAY`)},{default:c(()=>[...n[74]||=[u(`Повтор`,-1)]]),_:1})]),_:1}),i(h(R),{class:`screen-mode-controls`,align:`center`},{default:c(()=>[i(h(B),null,{default:c(()=>[...n[75]||=[u(`Громкость`,-1)]]),_:1}),i(h(Ae),{value:ce.value,"onUpdate:value":n[22]||=e=>ce.value=e,min:0,max:100,step:5,size:`small`},null,8,[`value`]),i(h(N),{size:`small`,onClick:n[23]||=e=>Z(`SCREEN_COMMAND_VOLUME`)},{default:c(()=>[...n[76]||=[u(`Применить`,-1)]]),_:1}),i(h(B),null,{default:c(()=>[...n[77]||=[u(`Позиция, сек.`,-1)]]),_:1}),i(h(Ae),{value:de.value,"onUpdate:value":n[24]||=e=>de.value=e,min:0,step:5,size:`small`},null,8,[`value`]),i(h(N),{size:`small`,onClick:n[25]||=e=>Z(`SCREEN_COMMAND_SEEK`)},{default:c(()=>[...n[78]||=[u(`Перемотать`,-1)]]),_:1})]),_:1})])):v(``,!0),y(`div`,qe,[i(h(z),{align:`center`,justify:`space-between`},{default:c(()=>[n[83]||=y(`p`,{class:`screens-title`},`Карта помещения`,-1),i(h(R),null,{default:c(()=>[i(h(N),{size:`small`,onClick:n[26]||=e=>ke(-.1)},{default:c(()=>[...n[80]||=[u(`−`,-1)]]),_:1}),i(h(B),null,{default:c(()=>[u(r(Math.round(H.value*100))+`%`,1)]),_:1}),i(h(N),{size:`small`,onClick:n[27]||=e=>ke(.1)},{default:c(()=>[...n[81]||=[u(`+`,-1)]]),_:1}),i(h(N),{size:`small`,onClick:je},{default:c(()=>[...n[82]||=[u(`Сбросить`,-1)]]),_:1})]),_:1})]),_:1}),y(`div`,{class:`map-field`,onPointerdown:Ne,onWheel:ze},[y(`div`,{class:`map-canvas`,style:a({transform:`translate(${G.value.x}px, ${G.value.y}px) scale(${H.value})`})},[(o(!0),l(_,null,d(P.value,t=>e((o(),l(`div`,{key:`${t.kind}-${t.itemId}`,class:ee([`map-item`,t.kind===`screen`?`map-screen`:`map-team`]),style:a({left:`${t.x||0}px`,top:`${t.y||0}px`}),onPointerdown:W(e=>Te(t,e),[`stop`])},[y(`span`,null,r(t.label),1),t.kind===`screen`?(o(),l(`small`,Ye,r(t.status)+r(t.soundEnabled?` · звук`:``),1)):v(``,!0),y(`button`,{type:`button`,onPointerdown:n[28]||=W(()=>{},[`stop`]),onClick:W(e=>Oe(t),[`stop`])},`×`,40,Xe)],46,Je)),[[U,!t.hidden]])),128))],4)],32),P.value.some(e=>e.hidden)?(o(),p(h(R),{key:0,class:`map-hidden-items`},{default:c(()=>[(o(!0),l(_,null,d(P.value.filter(e=>e.hidden),e=>(o(),p(h(N),{key:`hidden-${e.kind}-${e.itemId}`,size:`small`,onClick:t=>Oe(e)},{default:c(()=>[u(` Добавить `+r(e.label),1)]),_:2},1032,[`onClick`]))),128))]),_:1})):v(``,!0)]),y(`div`,{class:`team-block team-block-hover`,onClick:n[29]||=e=>T.value=!0},[...n[84]||=[y(`p`,{class:`place-image-plus`},`+`,-1)]]),(o(!0),l(_,null,d(M.value.teams,e=>(o(),l(`div`,{key:e.id,class:`team-block`},[y(`div`,Ze,[i(h(z),{justify:`space-between`},{default:c(()=>[y(`div`,Qe,[y(`span`,$e,r(e.name),1),y(`div`,null,`Поездки: `+r(e.actionsCount),1)]),i(h(z),{justify:`end`},{default:c(()=>[i(h(N),{onClick:t=>At(kt(e.id,e.password),`Подсмотреть игру`)},{default:c(()=>[...n[85]||=[u(` QR `,-1)]]),_:1},8,[`onClick`]),i(h(N),{onClick:t=>pt(e.id,e.password,!0)},{default:c(()=>[...n[86]||=[u(` Подсмотреть игру `,-1)]]),_:1},8,[`onClick`]),i(h(N),{type:`error`,ghost:``,onClick:t=>Et(e)},{default:c(()=>[...n[87]||=[u(` Удалить `,-1)]]),_:1},8,[`onClick`])]),_:2},1024)]),_:2},1024),(o(!0),l(_,null,d(e.applications,t=>(o(),p(h(N),{key:t.name,class:`link-button`,onClick:n=>Ct(e,t)},{default:c(()=>[u(` Выдать: `+r(t.name),1)]),_:2},1032,[`onClick`]))),128))])]))),128))])]),i(h(j),{show:S.value,"onUpdate:show":n[34]||=e=>S.value=e},{default:c(()=>[i(h(O),{style:{width:`600px`},title:`Настройки игры`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":c(()=>[i(h(N),{onClick:n[30]||=e=>_t()},{default:c(()=>[...n[88]||=[u(` x `,-1)]]),_:1})]),footer:c(()=>[i(h(z),{justify:`end`},{default:c(()=>[i(h(N),{onClick:n[33]||=e=>vt(),ghost:``},{default:c(()=>[...n[91]||=[u(` Сохранить изменения `,-1)]]),_:1})]),_:1})]),default:c(()=>[i(h(R),{vertical:``},{default:c(()=>[n[89]||=y(`p`,null,`Название`,-1),i(h(I),{value:C.value.name,"onUpdate:value":n[31]||=e=>C.value.name=e,type:`text`,placeholder:`Дело №0 "Следствие ведут овечки"`},null,8,[`value`]),n[90]||=y(`p`,{class:`settings-header`},`Описание`,-1),i(h(I),{value:C.value.description,"onUpdate:value":n[32]||=e=>C.value.description=e,type:`textarea`,placeholder:`Убийство пастуха...`},null,8,[`value`])]),_:1})]),_:1})]),_:1},8,[`show`]),i(h(j),{show:w.value,"onUpdate:show":n[37]||=e=>w.value=e},{default:c(()=>[i(h(O),{style:{width:`600px`},title:`Настройки игры`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":c(()=>[i(h(N),{onClick:n[35]||=e=>w.value=!1},{default:c(()=>[...n[92]||=[u(` x `,-1)]]),_:1})]),footer:c(()=>[i(h(z),{justify:`end`},{default:c(()=>[i(h(N),{onClick:n[36]||=e=>Tt(),ghost:``},{default:c(()=>[...n[95]||=[u(` Выдать `,-1)]]),_:1})]),_:1})]),default:c(()=>[i(h(R),{vertical:``},{default:c(()=>[n[93]||=y(`p`,null,`Команда`,-1),y(`h3`,null,r(yt.value.name),1),n[94]||=y(`p`,null,`Улика`,-1),y(`h3`,null,r(Q.value.name),1),h(ve)(Q.value)==`image`&&Q.value.image?(o(),l(`div`,et,[y(`img`,{src:h(ye)(Q.value.image),class:`give-application-image`},null,8,tt)])):h(ve)(Q.value)==`audio`&&Q.value.image?(o(),l(`audio`,{key:1,src:h(ye)(Q.value.image),controls:``,preload:`none`,class:`give-application-audio`},null,8,nt)):h(ve)(Q.value)==`pdf`&&Q.value.image?(o(),l(`a`,{key:2,href:h(ye)(Q.value.image),target:`_blank`,rel:`noopener`,class:`give-application-pdf-link`},` PDF `,8,rt)):v(``,!0)]),_:1})]),_:1})]),_:1},8,[`show`]),i(h(j),{show:T.value,"onUpdate:show":n[41]||=e=>T.value=e},{default:c(()=>[i(h(O),{style:{width:`600px`},title:`Создание команды`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":c(()=>[i(h(N),{onClick:n[38]||=e=>T.value=!1},{default:c(()=>[...n[96]||=[u(` x `,-1)]]),_:1})]),footer:c(()=>[i(h(z),{justify:`end`},{default:c(()=>[i(h(N),{onClick:n[40]||=e=>wt(),disabled:ie.value.length==0},{default:c(()=>[...n[97]||=[u(` Создать `,-1)]]),_:1},8,[`disabled`])]),_:1})]),default:c(()=>[i(h(I),{value:ie.value,"onUpdate:value":n[39]||=e=>ie.value=e,type:`text`,placeholder:`Три дебила`},null,8,[`value`])]),_:1})]),_:1},8,[`show`]),i(h(j),{show:E.value,"onUpdate:show":n[45]||=e=>E.value=e},{default:c(()=>[i(h(O),{style:{width:`600px`},title:`Удаление команды`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":c(()=>[i(h(N),{onClick:n[42]||=e=>E.value=!1},{default:c(()=>[...n[98]||=[u(` x `,-1)]]),_:1})]),footer:c(()=>[i(h(z),{justify:`end`},{default:c(()=>[i(h(N),{onClick:n[44]||=e=>Dt(),disabled:bt.value!=xt.value.name},{default:c(()=>[...n[101]||=[u(` Удалить `,-1)]]),_:1},8,[`disabled`])]),_:1})]),default:c(()=>[i(h(R),{vertical:``},{default:c(()=>[y(`p`,null,[n[99]||=u(` Введите название команды `,-1),i(h(B),{class:`name-text`,strong:``},{default:c(()=>[u(r(xt.value.name),1)]),_:1}),n[100]||=u(` чтобы удалить его `,-1)]),i(h(I),{value:bt.value,"onUpdate:value":n[43]||=e=>bt.value=e,type:`text`,placeholder:`Три дебила`},null,8,[`value`])]),_:1})]),_:1})]),_:1},8,[`show`]),i(h(j),{show:D.value,"onUpdate:show":n[49]||=e=>D.value=e},{default:c(()=>[i(h(O),{style:{width:`600px`},title:`Удаление игры`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":c(()=>[i(h(N),{onClick:n[46]||=e=>D.value=!1},{default:c(()=>[...n[102]||=[u(` x `,-1)]]),_:1})]),footer:c(()=>[i(h(z),{justify:`end`},{default:c(()=>[i(h(N),{onClick:n[48]||=e=>Ot(),disabled:ae.value!=M.value.name},{default:c(()=>[...n[105]||=[u(` Удалить `,-1)]]),_:1},8,[`disabled`])]),_:1})]),default:c(()=>[i(h(R),{vertical:``},{default:c(()=>[y(`p`,null,[n[103]||=u(` Введите название игры `,-1),i(h(B),{class:`name-text`,strong:``},{default:c(()=>[u(r(M.value.name),1)]),_:1}),n[104]||=u(` чтобы удалить её `,-1)]),i(h(I),{value:ae.value,"onUpdate:value":n[47]||=e=>ae.value=e,type:`text`,placeholder:`Дело №0 "Следствие ведут овечки"`},null,8,[`value`])]),_:1})]),_:1})]),_:1},8,[`show`]),i(h(j),{show:oe.value,"onUpdate:show":n[51]||=e=>oe.value=e},{default:c(()=>[i(h(O),{style:{width:`600px`},title:A.value,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":c(()=>[i(h(N),{onClick:n[50]||=e=>oe.value=!1},{default:c(()=>[...n[106]||=[u(` x `,-1)]]),_:1})]),footer:c(()=>[...n[107]||=[]]),default:c(()=>[i(h(R),{vertical:``},{default:c(()=>[y(`div`,it,[i(h(ue),{value:k.value,size:300,padding:0},null,8,[`value`])])]),_:1})]),_:1},8,[`title`])]),_:1},8,[`show`]),i(h(j),{show:It.value,"onUpdate:show":n[54]||=e=>It.value=e},{default:c(()=>[i(h(O),{style:{width:`min(94vw, 900px)`},title:`Ответы команд`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`,"content-style":{maxHeight:`70vh`,overflow:`auto`}},{"header-extra":c(()=>[i(h(N),{onClick:n[52]||=e=>It.value=!1},{default:c(()=>[...n[108]||=[u(` x `,-1)]]),_:1})]),footer:c(()=>[i(h(z),{justify:`end`},{default:c(()=>[i(h(N),{onClick:n[53]||=e=>Wt(),disabled:$.value.length==0},{default:c(()=>[...n[111]||=[u(` Сохранить баллы `,-1)]]),_:1},8,[`disabled`])]),_:1})]),default:c(()=>[$.value.length==0?(o(),l(`div`,at,` Вопросы дела не заданы или команды ещё не отвечали. `)):v(``,!0),(o(!0),l(_,null,d($.value,e=>(o(),l(`div`,{key:e.code,class:`answers-question-block`},[y(`p`,ot,r(e.code)+`: `+r(e.text),1),y(`p`,st,[n[109]||=u(` Правильный ответ:`,-1),n[110]||=y(`br`,null,null,-1),y(`span`,ct,r(e.answer||`—`),1)]),(o(!0),l(_,null,d(Lt.value,t=>(o(),l(`div`,{key:t.team?.id,class:`answers-team-row`},[y(`div`,lt,r(t.team?.name),1),y(`div`,ut,r(Bt(t,e.code)||`—`),1),i(h(Ae),{value:Rt.value[zt(t.team?.id,e.code)],"onUpdate:value":n=>Vt(zt(t.team?.id,e.code),n),placeholder:`Балл`,class:`answers-score-input`},null,8,[`value`,`onUpdate:value`])]))),128))]))),128))]),_:1})]),_:1},8,[`show`]),i(me,{active:`games`})],64))}}),[[`__scopeId`,`data-v-21e18e4b`]]),ft=n({__name:`GameView`,setup(e){return(e,t)=>(o(),p(dt))}});export{ft as default}; |