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