Files
prod/frontend/dist/assets/GameView-CF2e2mkN.js
T
2026-10-17 15:06:20 +07:00

47 lines
93 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import{Ct as e,Dt as t,H as n,It as r,Jt as i,K as a,Kt as o,Ln as s,Mt as c,Ot as l,Pt as u,Q as d,Rn as f,Rt as p,St as m,U as h,Ut as g,Vt as ee,Wt as _,Xt as v,Y as y,Yt as te,Zt as ne,an as b,at as x,bt as S,d as C,en as w,f as T,g as re,gn as E,ht as D,it as O,kt as k,l as ie,nn as ae,nt as A,on as oe,ot as se,p as ce,pn as le,qt as ue,tt as de,u as fe,wt as j,xn as M,xt as N,yn as pe,zn as P}from"./client-Cs6K6NLD.js";import{d as F}from"./utils-DkuG9MlE.js";import{d as me,t as I}from"./Card-BmI8boJP.js";import{i as L,n as he,r as ge,t as _e}from"./ui-DBzU3myP.js";import{i as ve,w as ye}from"./Suffix-DcbthQAx.js";import{t as R}from"./Modal-BAT246iP.js";import{t as be}from"./use-merged-state-CMHY6wVS.js";import{n as xe,t as z}from"./Button-Cfbze3w7.js";import{n as Se,t as Ce}from"./Tabs-CpFSnvU4.js";import{t as we}from"./Select-BPMAWx2x.js";import{a as Te,c as B,i as Ee,o as De,s as Oe,t as V}from"./_plugin-vue_export-helper-DPScEKW6.js";import{t as ke}from"./Upload-B0Zb6lcn.js";import{n as Ae}from"./use-form-item-CBMiqYrw.js";import{t as je}from"./Add-D7BhOGxc.js";import{t as H}from"./Input-D0v1AwEb.js";import{n as U,t as Me}from"./Switch-BElklHW8.js";import{t as W}from"./Alert-1aioV9gL.js";import{t as G}from"./Space-BEEY1twD.js";import{t as K}from"./Flex-jAjHd21E.js";import{t as Ne}from"./Rate-CSQ8h5sq.js";import{t as Pe}from"./QrCode-MLgc5mzM.js";import{t as Fe}from"./Spin-CGN1vIpn.js";import{t as Ie}from"./text-BPqM45Xd.js";import{A as Le,D as Re,J as q,T as ze,ct as Be,i as Ve,k as He,lt as Ue,nt as We,o as Ge,r as Ke,tt as qe,ut as Je,z as Ye}from"./index-DxBGdySB.js";import{t as Xe}from"./HeaderMenu-D0fITA5K.js";import{t as Ze}from"./binary_client-0LC0VsRY.js";import{n as Qe,r as $e}from"./application-DsU8K_PG.js";import{n as et,t as tt}from"./datetime-BJNH0M1T.js";import{t as nt}from"./useDeviceContext-CagFYRDu.js";var rt=k({name:`ChevronLeft`,render(){return c(`svg`,{viewBox:`0 0 16 16`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`},c(`path`,{d:`M10.3536 3.14645C10.5488 3.34171 10.5488 3.65829 10.3536 3.85355L6.20711 8L10.3536 12.1464C10.5488 12.3417 10.5488 12.6583 10.3536 12.8536C10.1583 13.0488 9.84171 13.0488 9.64645 12.8536L5.14645 8.35355C4.95118 8.15829 4.95118 7.84171 5.14645 7.64645L9.64645 3.14645C9.84171 2.95118 10.1583 2.95118 10.3536 3.14645Z`,fill:`currentColor`}))}}),it=k({name:`ChevronRight`,render(){return c(`svg`,{viewBox:`0 0 16 16`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`},c(`path`,{d:`M5.64645 3.14645C5.45118 3.34171 5.45118 3.65829 5.64645 3.85355L9.79289 8L5.64645 12.1464C5.45118 12.3417 5.45118 12.6583 5.64645 12.8536C5.84171 13.0488 6.15829 13.0488 6.35355 12.8536L10.8536 8.35355C11.0488 8.15829 11.0488 7.84171 10.8536 7.64645L6.35355 3.14645C6.15829 2.95118 5.84171 2.95118 5.64645 3.14645Z`,fill:`currentColor`}))}}),at=A(`collapse`,`width: 100%;`,[A(`collapse-item`,`
font-size: var(--n-font-size);
color: var(--n-text-color);
transition:
color .3s var(--n-bezier),
border-color .3s var(--n-bezier);
margin: var(--n-item-margin);
`,[x(`disabled`,[O(`header`,`cursor: not-allowed;`,[O(`header-main`,`
color: var(--n-title-text-color-disabled);
`),A(`collapse-item-arrow`,`
color: var(--n-arrow-color-disabled);
`)])]),A(`collapse-item`,`margin-left: 32px;`),de(`&:first-child`,`margin-top: 0;`),de(`&:first-child >`,[O(`header`,`padding-top: 0;`)]),x(`left-arrow-placement`,[O(`header`,[A(`collapse-item-arrow`,`margin-right: 4px;`)])]),x(`right-arrow-placement`,[O(`header`,[A(`collapse-item-arrow`,`margin-left: 4px;`)])]),O(`content-wrapper`,[O(`content-inner`,`padding-top: 16px;`),Le({duration:`0.15s`})]),x(`active`,[O(`header`,[x(`active`,[A(`collapse-item-arrow`,`transform: rotate(90deg);`)])])]),de(`&:not(:first-child)`,`border-top: 1px solid var(--n-divider-color);`),se(`disabled`,[x(`trigger-area-main`,[O(`header`,[O(`header-main`,`cursor: pointer;`),A(`collapse-item-arrow`,`cursor: default;`)])]),x(`trigger-area-arrow`,[O(`header`,[A(`collapse-item-arrow`,`cursor: pointer;`)])]),x(`trigger-area-extra`,[O(`header`,[O(`header-extra`,`cursor: pointer;`)])])]),O(`header`,`
font-size: var(--n-title-font-size);
display: flex;
flex-wrap: nowrap;
align-items: center;
transition: color .3s var(--n-bezier);
position: relative;
padding: var(--n-title-padding);
color: var(--n-title-text-color);
`,[O(`header-main`,`
display: flex;
flex-wrap: nowrap;
align-items: center;
font-weight: var(--n-title-font-weight);
transition: color .3s var(--n-bezier);
flex: 1;
color: var(--n-title-text-color);
`),O(`header-extra`,`
display: flex;
align-items: center;
transition: color .3s var(--n-bezier);
color: var(--n-text-color);
`),A(`collapse-item-arrow`,`
display: flex;
transition:
transform .15s var(--n-bezier),
color .3s var(--n-bezier);
font-size: 18px;
color: var(--n-arrow-color);
`)])])]),ot=Object.assign(Object.assign({},ce.props),{defaultExpandedNames:{type:[Array,String],default:null},expandedNames:[Array,String],arrowPlacement:{type:String,default:`left`},accordion:{type:Boolean,default:!1},displayDirective:{type:String,default:`if`},triggerAreas:{type:Array,default:()=>[`main`,`extra`,`arrow`]},onItemHeaderClick:[Function,Array],"onUpdate:expandedNames":[Function,Array],onUpdateExpandedNames:[Function,Array],onExpandedNamesChange:{type:[Function,Array],validator:()=>!0,default:void 0}}),st=y(`n-collapse`),ct=k({name:`Collapse`,props:ot,slots:Object,setup(e,{slots:t}){let{mergedClsPrefixRef:r,inlineThemeDisabled:i,mergedRtlRef:a}=h(e),o=E(e.defaultExpandedNames),s=be(S(()=>e.expandedNames),o),c=ce(`Collapse`,`-collapse`,at,ze,e,r);function l(t){let{"onUpdate:expandedNames":n,onUpdateExpandedNames:r,onExpandedNamesChange:i}=e;r&&B(r,t),n&&B(n,t),i&&B(i,t),o.value=t}function u(t){let{onItemHeaderClick:n}=e;n&&B(n,t)}function d(t,n,r){let{accordion:i}=e,{value:a}=s;if(i)t?(l([n]),u({name:n,expanded:!0,event:r})):(l([]),u({name:n,expanded:!1,event:r}));else if(!Array.isArray(a))l([n]),u({name:n,expanded:!0,event:r});else{let e=a.slice(),t=e.findIndex(e=>n===e);~t?(e.splice(t,1),l(e),u({name:n,expanded:!1,event:r})):(e.push(n),l(e),u({name:n,expanded:!0,event:r}))}}ue(st,{props:e,mergedClsPrefixRef:r,expandedNamesRef:s,slots:t,toggleItem:d});let f=re(`Collapse`,a,r),p=S(()=>{let{common:{cubicBezierEaseInOut:e},self:{titleFontWeight:t,dividerColor:n,titlePadding:r,titleTextColor:i,titleTextColorDisabled:a,textColor:o,arrowColor:s,fontSize:l,titleFontSize:u,arrowColorDisabled:d,itemMargin:f}}=c.value;return{"--n-font-size":l,"--n-bezier":e,"--n-text-color":o,"--n-divider-color":n,"--n-title-padding":r,"--n-title-font-size":u,"--n-title-text-color":i,"--n-title-text-color-disabled":a,"--n-title-font-weight":t,"--n-arrow-color":s,"--n-arrow-color-disabled":d,"--n-item-margin":f}}),m=i?n(`collapse`,void 0,p,e):void 0;return{rtlEnabled:f,mergedTheme:c,mergedClsPrefix:r,cssVars:i?void 0:p,themeClass:m?.themeClass,onRender:m?.onRender}},render(){var e;return(e=this.onRender)==null||e.call(this),c(`div`,{class:[`${this.mergedClsPrefix}-collapse`,this.rtlEnabled&&`${this.mergedClsPrefix}-collapse--rtl`,this.themeClass],style:this.cssVars},this.$slots)}}),lt=k({name:`CollapseItemContent`,props:{displayDirective:{type:String,required:!0},show:Boolean,clsPrefix:{type:String,required:!0}},setup(e){return{onceTrue:ye(pe(e,`show`))}},render(){return c(Ye,null,{default:()=>{let{show:e,displayDirective:t,onceTrue:n,clsPrefix:r}=this,i=t===`show`&&n,a=c(`div`,{class:`${r}-collapse-item__content-wrapper`},c(`div`,{class:`${r}-collapse-item__content-inner`},this.$slots));return i?oe(a,[[Be,e]]):e?a:null}})}}),ut=k({name:`CollapseItem`,props:{title:String,name:[String,Number],disabled:Boolean,displayDirective:String},setup(e){let{mergedRtlRef:t}=h(e),n=We(),r=qe(()=>e.name??n),i=u(st);i||a(`collapse-item`,"`n-collapse-item` must be placed inside `n-collapse`.");let{expandedNamesRef:o,props:s,mergedClsPrefixRef:c,slots:l}=i,d=S(()=>{let{value:e}=o;if(Array.isArray(e)){let{value:t}=r;return!~e.findIndex(e=>e===t)}else if(e){let{value:t}=r;return t!==e}return!0});return{rtlEnabled:re(`Collapse`,t,c),collapseSlots:l,randomName:n,mergedClsPrefix:c,collapsed:d,triggerAreas:pe(s,`triggerAreas`),mergedDisplayDirective:S(()=>{let{displayDirective:t}=e;return t||s.displayDirective}),arrowPlacement:S(()=>s.arrowPlacement),handleClick(t){let n=`main`;F(t,`arrow`)&&(n=`arrow`),F(t,`extra`)&&(n=`extra`),s.triggerAreas.includes(n)&&i&&!e.disabled&&i.toggleItem(d.value,r.value,t)}}},render(){let{collapseSlots:e,$slots:t,arrowPlacement:n,collapsed:r,mergedDisplayDirective:i,mergedClsPrefix:a,disabled:o,triggerAreas:s}=this,l=Te(t.header,{collapsed:r},()=>[this.title]),u=t[`header-extra`]||e[`header-extra`],d=t.arrow||e.arrow;return c(`div`,{class:[`${a}-collapse-item`,`${a}-collapse-item--${n}-arrow-placement`,o&&`${a}-collapse-item--disabled`,!r&&`${a}-collapse-item--active`,s.map(e=>`${a}-collapse-item--trigger-area-${e}`)]},c(`div`,{class:[`${a}-collapse-item__header`,!r&&`${a}-collapse-item__header--active`]},c(`div`,{class:`${a}-collapse-item__header-main`,onClick:this.handleClick},n===`right`&&l,c(`div`,{class:`${a}-collapse-item-arrow`,key:+!this.rtlEnabled,"data-arrow":!0},Te(d,{collapsed:r},()=>[c(q,{clsPrefix:a},{default:()=>this.rtlEnabled?c(rt,null):c(it,null)})])),n===`left`&&l),Oe(u,{collapsed:r},e=>c(`div`,{class:`${a}-collapse-item__header-extra`,onClick:this.handleClick,"data-extra":!0},e))),c(lt,{clsPrefix:a,displayDirective:i,show:!r},t))}});function dt(e){let{textColorDisabled:t}=e;return{iconColorDisabled:t}}var ft=T({name:`InputNumber`,common:C,peers:{Button:Re,Input:He},self:dt}),pt=de([A(`input-number-suffix`,`
display: inline-block;
margin-right: 10px;
`),A(`input-number-prefix`,`
display: inline-block;
margin-left: 10px;
`)]);function mt(e){return e==null||typeof e==`string`&&e.trim()===``?null:Number(e)}function ht(e){return e.includes(`.`)&&(/^(-)?\d+.*(\.|0)$/.test(e)||/^-?\d*$/.test(e))||e===`-`||e===`-0`}function gt(e){return e==null?!0:!Number.isNaN(e)}function _t(e,t){return typeof e==`number`?t===void 0?String(e):e.toFixed(t):``}function vt(e){if(e===null)return null;if(typeof e==`number`)return e;{let t=Number(e);return Number.isNaN(t)?null:t}}var J=800,Y=100,yt=k({name:`InputNumber`,props:Object.assign(Object.assign({},ce.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}=h(e),a=ce(`InputNumber`,`-input-number`,pt,ft,e,n),{localeRef:o}=ve(`InputNumber`),s=Ae(e,{mergedSize:t=>{let{size:n}=e;if(n)return n;let{mergedSize:r}=t||{};return r?.value?r.value:i?.value?.InputNumber?.size||`medium`}}),{mergedSizeRef:c,mergedDisabledRef:l,mergedStatusRef:u}=s,f=E(null),m=E(null),g=E(null),ee=E(e.defaultValue),_=be(pe(e,`value`),ee),v=E(``),y=e=>{let t=String(e).split(`.`)[1];return t?t.length:0},te=t=>{let n=[e.min,e.max,e.step,t].map(e=>e===void 0?0:y(e));return Math.max(...n)},ne=qe(()=>{let{placeholder:t}=e;return t===void 0?o.value.placeholder:t}),b=qe(()=>{let t=vt(e.step);return t===null||t===0?1:Math.abs(t)}),x=qe(()=>{let t=vt(e.min);return t===null?null:t}),C=qe(()=>{let t=vt(e.max);return t===null?null:t}),w=()=>{let{value:t}=_;if(gt(t)){let{format:n,precision:r}=e;n?v.value=n(t):t===null||r===void 0||y(t)>r?v.value=_t(t,void 0):v.value=_t(t,r)}else v.value=String(t)};w();let T=t=>{let{value:n}=_;if(t===n){w();return}let{"onUpdate:value":r,onUpdateValue:i,onChange:a}=e,{nTriggerFormInput:o,nTriggerFormChange:c}=s;a&&B(a,t),i&&B(i,t),r&&B(r,t),ee.value=t,o(),c()},D=({offset:t,doUpdateIfValid:n,fixPrecision:r,isInputing:i})=>{let{value:a}=v;if(i&&ht(a))return!1;let o=(e.parse||mt)(a);if(o===null)return n&&T(null),null;if(gt(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??te(o)));if(gt(c)){let{value:t}=C,{value:r}=x;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&&T(c),c)}}return!1},O=qe(()=>D({offset:0,doUpdateIfValid:!1,isInputing:!1,fixPrecision:!1})===!1),k=qe(()=>{let{value:t}=_;if(e.validator&&t===null)return!1;let{value:n}=b;return D({offset:-n,doUpdateIfValid:!1,isInputing:!1,fixPrecision:!1})!==!1}),ie=qe(()=>{let{value:t}=_;if(e.validator&&t===null)return!1;let{value:n}=b;return D({offset:+n,doUpdateIfValid:!1,isInputing:!1,fixPrecision:!1})!==!1});function A(t){let{onFocus:n}=e,{nTriggerFormFocus:r}=s;n&&B(n,t),r()}function oe(t){if(t.target===f.value?.wrapperElRef)return;let n=D({offset:0,doUpdateIfValid:!0,isInputing:!1,fixPrecision:!0});if(n!==!1){let e=f.value?.inputElRef;e&&(e.value=String(n||``)),_.value===n&&w()}else w();let{onBlur:r}=e,{nTriggerFormBlur:i}=s;r&&B(r,t),i(),p(()=>{w()})}function se(t){let{onClear:n}=e;n&&B(n,t)}function le(){let{value:t}=ie;if(!t){ge();return}let{value:n}=_;if(n===null)e.validator||T(j());else{let{value:e}=b;D({offset:e,doUpdateIfValid:!0,isInputing:!1,fixPrecision:!0})}}function ue(){let{value:t}=k;if(!t){L();return}let{value:n}=_;if(n===null)e.validator||T(j());else{let{value:e}=b;D({offset:-e,doUpdateIfValid:!0,isInputing:!1,fixPrecision:!0})}}let de=A,fe=oe;function j(){if(e.validator)return null;let{value:t}=x,{value:n}=C;return t===null?n===null?0:Math.min(0,n):Math.max(0,t)}function M(e){se(e),T(null)}function N(e){var t;g.value?.$el.contains(e.target)&&e.preventDefault(),m.value?.$el.contains(e.target)&&e.preventDefault(),(t=f.value)==null||t.activate()}let P=null,F=null,I=null;function L(){I&&=(window.clearTimeout(I),null),P&&=(window.clearInterval(P),null)}let he=null;function ge(){he&&=(window.clearTimeout(he),null),F&&=(window.clearInterval(F),null)}function _e(){L(),I=window.setTimeout(()=>{P=window.setInterval(()=>{ue()},Y)},J),me(`mouseup`,document,L,{once:!0})}function ye(){ge(),he=window.setTimeout(()=>{F=window.setInterval(()=>{le()},Y)},J),me(`mouseup`,document,ge,{once:!0})}let R=()=>{F||le()},xe=()=>{P||ue()};function z(t){var n;if(t.key===`Enter`){if(t.target===f.value?.wrapperElRef)return;D({offset:0,doUpdateIfValid:!0,isInputing:!1,fixPrecision:!0})!==!1&&((n=f.value)==null||n.deactivate())}else if(t.key===`ArrowUp`){if(!ie.value||e.keyboard.ArrowUp===!1)return;t.preventDefault(),D({offset:0,doUpdateIfValid:!0,isInputing:!1,fixPrecision:!0})!==!1&&le()}else if(t.key===`ArrowDown`){if(!k.value||e.keyboard.ArrowDown===!1)return;t.preventDefault(),D({offset:0,doUpdateIfValid:!0,isInputing:!1,fixPrecision:!0})!==!1&&ue()}}function Se(t){v.value=t,e.updateValueOnInput&&!e.format&&!e.parse&&e.precision===void 0&&D({offset:0,doUpdateIfValid:!0,isInputing:!0,fixPrecision:!1})}ae(_,()=>{w()});let Ce={focus:()=>f.value?.focus(),blur:()=>f.value?.blur(),select:()=>f.value?.select()},we=re(`InputNumber`,r,n);return Object.assign(Object.assign({},Ce),{rtlEnabled:we,inputInstRef:f,minusButtonInstRef:m,addButtonInstRef:g,mergedClsPrefix:n,mergedBordered:t,uncontrolledValue:ee,mergedValue:_,mergedPlaceholder:ne,displayedValueInvalid:O,mergedSize:c,mergedDisabled:l,displayedValue:v,addable:ie,minusable:k,mergedStatus:u,handleFocus:de,handleBlur:fe,handleClear:M,handleMouseDown:N,handleAddClick:R,handleMinusClick:xe,handleAddMousedown:ye,handleMinusMousedown:_e,handleKeyDown:z,handleUpdateDisplayedValue:Se,mergedTheme:a,inputThemeOverrides:{paddingSmall:`0 8px 0 10px`,paddingMedium:`0 8px 0 12px`,paddingLarge:`0 8px 0 14px`},buttonThemeOverrides:S(()=>{let{self:{iconColorDisabled:e}}=a.value,[t,n,r,i]=d(e);return{textColorTextDisabled:`rgb(${t}, ${n}, ${r})`,opacityDisabled:`${i}`}})})},render(){let{mergedClsPrefix:e,$slots:t}=this,n=()=>c(xe,{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:()=>Ee(t[`minus-icon`],()=>[c(q,{clsPrefix:e},{default:()=>c(U,null)})])}),r=()=>c(xe,{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:()=>Ee(t[`add-icon`],()=>[c(q,{clsPrefix:e},{default:()=>c(je,null)})])});return c(`div`,{class:[`${e}-input-number`,this.rtlEnabled&&`${e}-input-number--rtl`]},c(H,{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(),De(t.prefix,t=>t?c(`span`,{class:`${e}-input-number-prefix`},t):null)]:t.prefix?.call(t),suffix:()=>this.showButton?[De(t.suffix,t=>t?c(`span`,{class:`${e}-input-number-suffix`},t):null),this.buttonPlacement===`right`?n():null,r()]:t.suffix?.call(t)}))}}),X={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},bt=k({name:`Flag`,render:function(e,t){return o(),j(`svg`,X,t[0]||=[N(`path`,{d:`M6 30H4V2h24l-5.8 9l5.8 9H6zm0-12h18.33l-4.53-7l4.53-7H6z`,fill:`currentColor`},null,-1)])}}),xt={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},St=k({name:`Pause`,render:function(e,t){return o(),j(`svg`,xt,t[0]||=[N(`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),N(`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)])}}),Ct={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},wt=k({name:`Play`,render:function(e,t){return o(),j(`svg`,Ct,t[0]||=[N(`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)])}}),Tt={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},Et=k({name:`Reset`,render:function(e,t){return o(),j(`svg`,Tt,t[0]||=[N(`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)])}}),Dt={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},Ot=k({name:`Trophy`,render:function(e,t){return o(),j(`svg`,Dt,t[0]||=[N(`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)])}}),kt=`/assets/icq-uh-oh-DjThHNEb.wav`,At={key:0,class:`timer-preview`},jt=[`src`],Mt=[`src`],Nt={key:3,class:`preview-message`},Pt={key:4,class:`preview-message`},Ft={key:5,class:`preview-message`},It={key:6,class:`preview-message`},Lt={key:7,class:`preview-results`},Rt=[`src`],zt=V(k({__name:`ScreenPreview`,props:{state:{},questions:{},teams:{}},setup(t){let n=t,r=E(Date.now()),a=E(0),s=E(Date.now()),c=E(),l=null,u=S(()=>{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}")`}:{}}),d=S(()=>n.state.timerState===`SCREEN_TIMER_STATE_RUNNING`?Math.max(0,a.value-(r.value-s.value)/1e3):a.value),p=S(()=>{let e=Math.floor(d.value/60),t=Math.floor(d.value%60);return`${String(e).padStart(2,`0`)}:${String(t).padStart(2,`0`)}`}),m=S(()=>$e(n.state.introAudio)),h=S(()=>$e(n.state.conclusionVideo));return ae(()=>[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`&&c.value===n.state.timerState){let t=Math.max(0,a.value-(Date.now()-s.value)/1e3);if(Math.abs(e-t)<=.5)return}a.value=e,s.value=Date.now(),c.value=n.state.timerState},{immediate:!0}),g(()=>{l=window.setInterval(()=>{r.value=Date.now()},250)}),_(()=>{l!=null&&window.clearInterval(l)}),(n,r)=>(o(),j(`div`,{class:`screen-preview`,style:f(u.value)},[t.state.mode===`SCREEN_MODE_TIMER`?(o(),j(`div`,At,[N(`h2`,null,P(t.state.timerLabel||`Перерыв`),1),N(`strong`,null,P(p.value),1)])):t.state.mode===`SCREEN_MODE_INTRO`&&m.value?(o(),j(`audio`,{key:1,src:m.value,controls:``},null,8,jt)):t.state.mode===`SCREEN_MODE_CONCLUSION`&&h.value?(o(),j(`video`,{key:2,src:h.value,autoplay:``,class:`preview-video`,loop:``,muted:``,playsinline:``},null,8,Mt)):t.state.mode===`SCREEN_MODE_CONCLUSION`?(o(),j(`div`,Nt,` Видео закрывашки не задано `)):t.state.mode===`SCREEN_MODE_INTRO_DONE`?(o(),j(`div`,Pt,`Успехов`)):t.state.mode===`SCREEN_MODE_CONCLUSION_DONE`?(o(),j(`div`,Ft,` Спасибо за игру! `)):t.state.mode===`SCREEN_MODE_TEXT`?(o(),j(`div`,It,P(t.state.text),1)):t.state.mode===`SCREEN_MODE_RESULTS`?(o(),j(`div`,Lt,[r[4]||=N(`h2`,null,`Результаты`,-1),N(`table`,null,[N(`thead`,null,[N(`tr`,null,[r[0]||=N(`th`,null,`Место`,-1),r[1]||=N(`th`,null,`Команда`,-1),(o(!0),j(D,null,i(t.questions,e=>(o(),j(`th`,{key:e.code},P(e.code),1))),128)),r[2]||=N(`th`,null,`Сумма`,-1),r[3]||=N(`th`,null,`Ходы`,-1)])]),N(`tbody`,null,[(o(!0),j(D,null,i(t.teams,e=>(o(),j(`tr`,{key:e.team?.ID},[N(`td`,null,P(e.place),1),N(`td`,null,P(e.team?.name),1),(o(!0),j(D,null,i(t.questions,t=>(o(),j(`td`,{key:t.code},P(e.answers?.find(e=>e.questionCode===t.code)?.score??0),1))),128)),N(`td`,null,P(e.totalScore),1),N(`td`,null,P(e.actionsCount),1)]))),128))])])])):t.state.coverImage?(o(),j(`img`,{key:8,src:t.state.coverImage,alt:`Обложка дела`,class:`preview-cover`},null,8,Rt)):e(``,!0)],4))}}),[[`__scopeId`,`data-v-d5134fb8`]]),Z=V(k({__name:`UiBlock`,props:{tag:{default:`div`}},setup(e){return(t,n)=>(o(),m(ne(e.tag),{class:`ui-block`},{default:b(()=>[te(t.$slots,`default`,{},void 0,!0)]),_:3}))}}),[[`__scopeId`,`data-v-80193f22`]]),Q={class:`map-preview-layout`},Bt=[`onPointerdown`],Vt=[`onPointerdown`],Ht={key:2},Ut=[`onClick`],Wt={key:1,class:`screen-preview-placeholder`},Gt={class:`screen-plan`},Kt={key:0,class:`screen-empty`},qt=20,Jt=V(k({__name:`GameMapPanel`,props:{mapItems:{},teams:{},screens:{},previewQuestions:{},previewTeams:{},screenPlan:{},screenPlanDraft:{},screenPlanDirty:{type:Boolean},screenPlanSaving:{type:Boolean},screenPlanMode:{},screenVolume:{},screenPosition:{}},emits:[`saveItem`,`dragging`,`giveApplication`,`addStep`,`edit`,`cancel`,`removeStep`,`moveStep`,`dirty`,`clearPlan`,`save`,`setStep`,`command`,`update:screenVolume`,`update:screenPosition`],setup(n,{emit:r}){let a=n,c=r,u=E(1),d=E({x:0,y:0}),p=E(),h=S(()=>a.screens.find(e=>e.status===`connected`)||a.screens[0]),g=S(()=>new Map(a.teams.filter(e=>e.applications?.length).map(e=>[e.ID,e]))),_=[{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`}],v,y;function te(e){let t=p.value;if(!t)return;let n=t.getBoundingClientRect();return{x:(e.clientX-n.left-t.clientLeft-d.value.x)/u.value,y:(e.clientY-n.top-t.clientTop-d.value.y)/u.value}}function ne(e,t){let n=te(t);n&&(v={item:e,offsetX:n.x-(e.x||0),offsetY:n.y-(e.y||0)},c(`dragging`,!0),window.addEventListener(`pointermove`,x),window.addEventListener(`pointerup`,C,{once:!0}),window.addEventListener(`pointercancel`,C,{once:!0}))}function x(e){if(!v)return;let t=te(e);t&&(v.item.x=Math.round((t.x-v.offsetX)/qt)*qt,v.item.y=Math.round((t.y-v.offsetY)/qt)*qt)}function C(){if(!v)return;let e=v.item;v=void 0,window.removeEventListener(`pointermove`,x),window.removeEventListener(`pointerup`,C),window.removeEventListener(`pointercancel`,C),c(`dragging`,!1),c(`saveItem`,e)}function w(e){e.hidden=!e.hidden,c(`saveItem`,e,e.hidden)}function T(e){u.value=Math.min(2,Math.max(.5,Number((u.value+e).toFixed(2))))}function re(){u.value=1,d.value={x:0,y:0}}function O(e){e.button===0&&(y={startX:e.clientX,startY:e.clientY,offsetX:d.value.x,offsetY:d.value.y},window.addEventListener(`pointermove`,k),window.addEventListener(`pointerup`,ie,{once:!0}))}function k(e){y&&(d.value={x:y.offsetX+e.clientX-y.startX,y:y.offsetY+e.clientY-y.startY})}function ie(){y=void 0,window.removeEventListener(`pointermove`,k)}function ae(e){e.preventDefault(),T(e.deltaY<0?.1:-.1)}return ee(()=>{v&&c(`dragging`,!1),window.removeEventListener(`pointermove`,x),window.removeEventListener(`pointerup`,C),window.removeEventListener(`pointercancel`,C),window.removeEventListener(`pointermove`,k),window.removeEventListener(`pointerup`,ie)}),(r,a)=>(o(),j(`div`,Q,[l(Z,null,{default:b(()=>[l(M(K),{align:`center`,justify:`space-between`,class:`screen-header`},{default:b(()=>[a[18]||=N(`p`,{class:`screens-title`},`Карта помещения`,-1),l(M(G),null,{default:b(()=>[l(M(z),{size:`small`,onClick:a[0]||=e=>T(-.1)},{default:b(()=>[...a[15]||=[t(`−`,-1)]]),_:1}),l(M(Ie),null,{default:b(()=>[t(P(Math.round(u.value*100))+`%`,1)]),_:1}),l(M(z),{size:`small`,onClick:a[1]||=e=>T(.1)},{default:b(()=>[...a[16]||=[t(`+`,-1)]]),_:1}),l(M(z),{size:`small`,onClick:re},{default:b(()=>[...a[17]||=[t(`Сбросить`,-1)]]),_:1})]),_:1})]),_:1}),N(`div`,{ref_key:`mapField`,ref:p,class:`map-field`,onPointerdown:O,onWheel:ae},[N(`div`,{class:`map-canvas`,style:f({transform:`translate(${d.value.x}px, ${d.value.y}px) scale(${u.value})`})},[(o(!0),j(D,null,i(n.mapItems,n=>oe((o(),j(`div`,{key:`${n.kind}-${n.itemID}`,class:s([`map-item`,[n.kind===`screen`?`map-screen`:n.kind===`organizer_desk`?`map-organizer-desk`:`map-team`,{"map-team-needs-applications":n.kind===`team`&&g.value.has(n.itemID)}]]),style:f({left:`${n.x||0}px`,top:`${n.y||0}px`}),onPointerdown:Je(e=>n.kind!==`team`&&ne(n,e),[`stop`])},[n.kind===`team`?(o(),j(`div`,{key:0,class:`map-team-handle`,onPointerdown:Je(e=>ne(n,e),[`stop`])},null,40,Vt)):e(``,!0),N(`span`,null,P(n.label),1),n.kind===`team`&&g.value.has(n.itemID)?(o(),m(M(G),{key:1,class:`map-team-applications`,vertical:``},{default:b(()=>[(o(!0),j(D,null,i(g.value.get(n.itemID)?.applications,e=>(o(),m(M(z),{key:e.name,size:`small`,onClick:t=>c(`giveApplication`,g.value.get(n.itemID),e)},{default:b(()=>[t(` Выдать: `+P(e.name),1)]),_:2},1032,[`onClick`]))),128))]),_:2},1024)):e(``,!0),n.kind===`screen`?(o(),j(`small`,Ht,P(n.status)+P(n.soundEnabled?` · звук`:``),1)):e(``,!0),N(`button`,{class:`map-item-hide`,type:`button`,onPointerdown:a[2]||=Je(()=>{},[`stop`]),onClick:Je(e=>w(n),[`stop`])},` × `,40,Ut)],46,Bt)),[[Be,!n.hidden]])),128))],4)],544),n.mapItems.some(e=>e.hidden)?(o(),m(M(G),{key:0,class:`map-hidden-items`},{default:b(()=>[(o(!0),j(D,null,i(n.mapItems.filter(e=>e.hidden),e=>(o(),m(M(z),{key:`hidden-${e.kind}-${e.itemID}`,size:`small`,onClick:t=>w(e)},{default:b(()=>[t(` Добавить `+P(e.label),1)]),_:2},1032,[`onClick`]))),128))]),_:1})):e(``,!0)]),_:1}),l(Z,{tag:`aside`,class:`screen-preview-panel`},{default:b(()=>[a[41]||=N(`p`,{class:`screens-title`},`Превью экрана`,-1),h.value?.status===`connected`?(o(),m(zt,{key:0,state:h.value,questions:n.previewQuestions,teams:n.previewTeams},null,8,[`state`,`questions`,`teams`])):(o(),j(`div`,Wt,`Экран не подключён`)),N(`div`,Gt,[l(M(K),{align:`center`,justify:`space-between`,class:`screen-header`},{default:b(()=>[a[23]||=N(`p`,{class:`screens-title`},`План экранов`,-1),l(M(G),null,{default:b(()=>[!n.screenPlan&&n.screenPlanMode===`use`?(o(),m(M(z),{key:0,size:`small`,onClick:a[3]||=e=>c(`addStep`)},{default:b(()=>[...a[19]||=[t(` Создать план `,-1)]]),_:1})):e(``,!0),n.screenPlan&&n.screenPlanMode===`use`?(o(),m(M(z),{key:1,size:`small`,onClick:a[4]||=e=>c(`edit`)},{default:b(()=>[...a[20]||=[t(` Редактировать `,-1)]]),_:1})):e(``,!0),n.screenPlanMode===`edit`?(o(),j(D,{key:2},[l(M(z),{size:`small`,disabled:n.screenPlanSaving,onClick:a[5]||=e=>c(`cancel`)},{default:b(()=>[...a[21]||=[t(` Отменить `,-1)]]),_:1},8,[`disabled`]),l(M(z),{size:`small`,type:`primary`,loading:n.screenPlanSaving,disabled:n.screenPlanSaving,onClick:a[6]||=e=>c(`save`)},{default:b(()=>[...a[22]||=[t(` Сохранить план `,-1)]]),_:1},8,[`loading`,`disabled`])],64)):e(``,!0)]),_:1})]),_:1}),!n.screenPlan&&n.screenPlanMode===`use`?(o(),j(`p`,Kt,` План экранов ещё не создан. `)):n.screenPlanMode===`edit`?(o(),j(D,{key:1},[(o(!0),j(D,null,i(n.screenPlanDraft,(r,i)=>(o(),m(M(G),{key:i,class:`screen-plan-step`,align:`center`,justify:`space-between`,wrap:``},{default:b(()=>[l(M(G),{align:`center`,wrap:``},{default:b(()=>[l(M(Ie),null,{default:b(()=>[t(P(i+1),1)]),_:2},1024),l(M(we),{value:r.mode,"onUpdate:value":[e=>r.mode=e,a[7]||=e=>c(`dirty`)],options:_,disabled:n.screenPlanSaving,size:`small`,style:{width:`180px`}},null,8,[`value`,`onUpdate:value`,`disabled`]),r.mode===`SCREEN_MODE_TEXT`?(o(),m(M(H),{key:0,value:r.text,"onUpdate:value":[e=>r.text=e,a[8]||=e=>c(`dirty`)],disabled:n.screenPlanSaving,size:`small`,placeholder:`Текст экрана`,style:{"min-width":`240px`}},null,8,[`value`,`onUpdate:value`,`disabled`])):e(``,!0),r.mode===`SCREEN_MODE_TIMER`?(o(),j(D,{key:1},[l(M(H),{value:r.timerLabel,"onUpdate:value":[e=>r.timerLabel=e,a[9]||=e=>c(`dirty`)],disabled:n.screenPlanSaving,size:`small`,placeholder:`Надпись таймера`},null,8,[`value`,`onUpdate:value`,`disabled`]),l(M(yt),{value:r.timerDurationSeconds,"onUpdate:value":[e=>r.timerDurationSeconds=e,a[10]||=e=>c(`dirty`)],min:1,max:86400,disabled:n.screenPlanSaving,size:`small`,placeholder:`Секунды`},null,8,[`value`,`onUpdate:value`,`disabled`])],64)):e(``,!0)]),_:2},1024),l(M(G),{class:`screen-plan-actions`},{default:b(()=>[l(M(z),{size:`small`,disabled:n.screenPlanSaving||i===0,onClick:e=>c(`moveStep`,i,-1)},{default:b(()=>[...a[24]||=[t(` ↑ `,-1)]]),_:1},8,[`disabled`,`onClick`]),l(M(z),{size:`small`,disabled:n.screenPlanSaving||i===n.screenPlanDraft.length-1,onClick:e=>c(`moveStep`,i,1)},{default:b(()=>[...a[25]||=[t(` ↓ `,-1)]]),_:1},8,[`disabled`,`onClick`]),l(M(z),{size:`small`,type:`error`,ghost:``,disabled:n.screenPlanSaving,onClick:e=>c(`removeStep`,i)},{default:b(()=>[...a[26]||=[t(` Удалить `,-1)]]),_:1},8,[`disabled`,`onClick`])]),_:2},1024)]),_:2},1024))),128)),l(M(G),null,{default:b(()=>[l(M(z),{size:`small`,disabled:n.screenPlanSaving,onClick:a[11]||=e=>c(`addStep`)},{default:b(()=>[...a[27]||=[t(` Добавить шаг `,-1)]]),_:1},8,[`disabled`]),n.screenPlanDraft.length?(o(),m(M(z),{key:0,size:`small`,disabled:n.screenPlanSaving,onClick:a[12]||=e=>c(`clearPlan`)},{default:b(()=>[...a[28]||=[t(` Удалить план `,-1)]]),_:1},8,[`disabled`])):e(``,!0)]),_:1})],64)):n.screenPlan?(o(!0),j(D,{key:2},i(n.screenPlan.steps||[],(r,i)=>(o(),m(M(G),{key:i,class:`screen-plan-step`,align:`center`,justify:`space-between`,wrap:``},{default:b(()=>[l(M(G),{align:`center`},{default:b(()=>[l(M(Ie),null,{default:b(()=>[t(P(i+1),1)]),_:2},1024),l(M(Ie),null,{default:b(()=>[t(P(_.find(e=>e.value===r.mode)?.label)+` `,1),r.mode===`SCREEN_MODE_TEXT`?(o(),j(D,{key:0},[t(`: `+P(r.text),1)],64)):r.mode===`SCREEN_MODE_TIMER`?(o(),j(D,{key:1},[t(` : `+P(r.timerLabel)+` (`+P(r.timerDurationSeconds)+` с) `,1)],64)):e(``,!0)]),_:2},1024)]),_:2},1024),l(M(G),{class:`screen-plan-actions`},{default:b(()=>[l(M(z),{size:`small`,type:n.screenPlan.currentStep===i?`primary`:`default`,disabled:n.screenPlan.currentStep===i,onClick:e=>c(`setStep`,i)},{default:b(()=>[...a[29]||=[t(` Показать `,-1)]]),_:1},8,[`type`,`disabled`,`onClick`]),n.screenPlan.currentStep===i?(o(),j(D,{key:0},[r.mode===`SCREEN_MODE_TIMER`?(o(),j(D,{key:0},[l(M(z),{size:`small`,onClick:e=>c(`command`,r.mode,`SCREEN_COMMAND_TIMER_START`)},{default:b(()=>[...a[30]||=[t(` Старт `,-1)]]),_:1},8,[`onClick`]),l(M(z),{size:`small`,onClick:e=>c(`command`,r.mode,`SCREEN_COMMAND_TIMER_PAUSE`)},{default:b(()=>[...a[31]||=[t(` Пауза `,-1)]]),_:1},8,[`onClick`]),l(M(z),{size:`small`,onClick:e=>c(`command`,r.mode,`SCREEN_COMMAND_TIMER_RESUME`)},{default:b(()=>[...a[32]||=[t(` Продолжить `,-1)]]),_:1},8,[`onClick`]),l(M(z),{size:`small`,onClick:e=>c(`command`,r.mode,`SCREEN_COMMAND_TIMER_RESET`)},{default:b(()=>[...a[33]||=[t(` Сбросить `,-1)]]),_:1},8,[`onClick`])],64)):r.mode===`SCREEN_MODE_INTRO`||r.mode===`SCREEN_MODE_CONCLUSION`?(o(),j(D,{key:1},[l(M(z),{size:`small`,onClick:e=>c(`command`,r.mode,`SCREEN_COMMAND_PLAY`)},{default:b(()=>[...a[34]||=[t(` Запуск `,-1)]]),_:1},8,[`onClick`]),l(M(z),{size:`small`,onClick:e=>c(`command`,r.mode,`SCREEN_COMMAND_PAUSE`)},{default:b(()=>[...a[35]||=[t(` Пауза `,-1)]]),_:1},8,[`onClick`]),l(M(z),{size:`small`,onClick:e=>c(`command`,r.mode,`SCREEN_COMMAND_RESUME`)},{default:b(()=>[...a[36]||=[t(` Продолжить `,-1)]]),_:1},8,[`onClick`]),l(M(z),{size:`small`,onClick:e=>c(`command`,r.mode,`SCREEN_COMMAND_STOP`)},{default:b(()=>[...a[37]||=[t(` Стоп `,-1)]]),_:1},8,[`onClick`]),l(M(z),{size:`small`,onClick:e=>c(`command`,r.mode,`SCREEN_COMMAND_REPLAY`)},{default:b(()=>[...a[38]||=[t(` Повтор `,-1)]]),_:1},8,[`onClick`]),l(M(yt),{value:n.screenVolume,min:0,max:100,step:5,size:`small`,"onUpdate:value":a[13]||=e=>c(`update:screenVolume`,e)},null,8,[`value`]),l(M(z),{size:`small`,onClick:e=>c(`command`,r.mode,`SCREEN_COMMAND_VOLUME`)},{default:b(()=>[...a[39]||=[t(` Громкость `,-1)]]),_:1},8,[`onClick`]),l(M(yt),{value:n.screenPosition,min:0,step:5,size:`small`,"onUpdate:value":a[14]||=e=>c(`update:screenPosition`,e)},null,8,[`value`]),l(M(z),{size:`small`,onClick:e=>c(`command`,r.mode,`SCREEN_COMMAND_SEEK`)},{default:b(()=>[...a[40]||=[t(` Перемотать `,-1)]]),_:1},8,[`onClick`])],64)):e(``,!0)],64)):e(``,!0)]),_:2},1024)]),_:2},1024))),128)):e(``,!0)])]),_:1})]))}}),[[`__scopeId`,`data-v-1e1af018`]]),Yt=V(k({__name:`ScreenBindingModal`,props:r({binding:{type:Boolean}},{show:{type:Boolean,required:!0},showModifiers:{}}),emits:r([`scanned`],[`update:show`]),setup(n,{emit:r}){let i=w(n,`show`),a=r,s=E(``),c=E(),u=E(!1),d,f=0;function h(){cancelAnimationFrame(f),d?.getTracks().forEach(e=>e.stop()),d=void 0,u.value=!1}function g(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 _(){let e=window.BarcodeDetector;if(!e||!navigator.mediaDevices?.getUserMedia){s.value=`Сканирование камерой не поддерживается в этом браузере.`;return}s.value=``;try{if(d=await navigator.mediaDevices.getUserMedia({video:{facingMode:`environment`}}),u.value=!0,await p(),!c.value)return;c.value.srcObject=d,await c.value.play();let t=new e,n=async()=>{if(!(!c.value||!d))try{let e=(await t.detect(c.value))[0]?.rawValue;if(e){let t=g(e);if(t){h(),i.value=!1,a(`scanned`,t.screenID,t.accessToken);return}s.value=`Это не QR-код экрана.`}f=requestAnimationFrame(n)}catch{s.value=`Не удалось распознать QR-код.`,h()}};f=requestAnimationFrame(n)}catch{s.value=`Не удалось открыть камеру.`,h()}}function v(){h(),i.value=!1}return ae(i,e=>{e?_():h()}),ee(h),(r,a)=>(o(),m(M(R),{show:i.value,"onUpdate:show":a[0]||=e=>i.value=e},{default:b(()=>[l(M(I),{style:{width:`min(600px, 94vw)`},title:`Привязать экран`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":b(()=>[l(M(z),{onClick:v},{default:b(()=>[...a[1]||=[t(` x `,-1)]]),_:1})]),default:b(()=>[l(M(G),{vertical:``},{default:b(()=>[N(`video`,{ref_key:`scannerVideo`,ref:c,class:`screen-scanner-video`,muted:``,playsinline:``},null,512),s.value?(o(),m(M(W),{key:0,type:`error`},{default:b(()=>[t(P(s.value),1)]),_:1})):e(``,!0),!u.value&&!n.binding?(o(),m(M(z),{key:1,type:`primary`,onClick:_},{default:b(()=>[...a[2]||=[t(` Сканировать QR-код `,-1)]]),_:1})):e(``,!0),u.value?(o(),m(M(z),{key:2,onClick:h},{default:b(()=>[...a[3]||=[t(`Остановить камеру`,-1)]]),_:1})):e(``,!0),n.binding?(o(),m(M(z),{key:3,type:`primary`,loading:``},{default:b(()=>[...a[4]||=[t(`Привязка…`,-1)]]),_:1})):e(``,!0)]),_:1})]),_:1})]),_:1},8,[`show`]))}}),[[`__scopeId`,`data-v-5f530845`]]),Xt={key:1,class:`screen-empty`},Zt={class:`screen-status`},Qt={key:0,class:`screen-error`},$t={key:0,class:`track-list`},en={key:0,class:`track-empty`},tn={class:`track-main`},nn={class:`track-number`},rn={class:`track-details`},an={class:`track-name`},on={class:`volume-control`},sn=V(k({__name:`GameScreensPanel`,props:{screens:{},screenBinding:{type:Boolean},playlists:{},music:{}},emits:[`bind`,`setSound`,`unbind`,`setMusic`,`createPlaylist`,`deletePlaylist`,`uploadTrack`,`deleteTrack`],setup(n,{emit:r}){let a=n,c=r,u=E(!1),d=E(``);function f(e){e.file.file&&c(`uploadTrack`,e.file.file)}function p(e){e!==a.music?.trackIndex&&c(`setMusic`,{trackIndex:e,positionMs:0})}return(r,h)=>{let g=v(`n-tag`);return o(),j(D,null,[l(Z,null,{default:b(()=>[l(M(K),{align:`center`,justify:`space-between`,class:`screen-header`},{default:b(()=>[h[13]||=N(`p`,{class:`screens-title`},`Экраны`,-1),l(M(z),{size:`small`,onClick:h[0]||=e=>u.value=!0},{default:b(()=>[...h[12]||=[t(` Привязать экран `,-1)]]),_:1})]),_:1}),n.screens.some(e=>e.status===`disconnected`)?(o(),m(M(W),{key:0,type:`warning`,title:`Проверьте подключение экрана`},{default:b(()=>[...h[14]||=[t(` Один или несколько экранов не выходят на связь более минуты. `,-1)]]),_:1})):e(``,!0),n.screens.length===0?(o(),j(`p`,Xt,`К игре пока не привязаны экраны.`)):(o(!0),j(D,{key:2},i(n.screens,n=>(o(),j(`div`,{key:n.ID,class:`screen-row`},[N(`div`,null,[N(`div`,null,`Экран `+P(n.ID),1),N(`div`,Zt,P(n.status===`connected`?`Онлайн`:`Оффлайн`),1),n.error?(o(),j(`div`,Qt,P(n.error),1)):e(``,!0)]),l(M(K),{justify:`end`},{default:b(()=>[n.soundEnabled?(o(),m(g,{key:0,type:`success`},{default:b(()=>[...h[15]||=[t(`Со звуком`,-1)]]),_:1})):(o(),m(M(z),{key:1,size:`small`,onClick:e=>c(`setSound`,n)},{default:b(()=>[...h[16]||=[t(`Назначить звук`,-1)]]),_:1},8,[`onClick`])),l(M(z),{size:`small`,type:`error`,ghost:``,onClick:e=>c(`unbind`,n)},{default:b(()=>[...h[17]||=[t(` Отвязать `,-1)]]),_:1},8,[`onClick`])]),_:2},1024)]))),128))]),_:1}),l(Yt,{show:u.value,"onUpdate:show":h[1]||=e=>u.value=e,binding:a.screenBinding,onScanned:h[2]||=(e,t)=>c(`bind`,e,t)},null,8,[`show`,`binding`]),l(Z,{class:`music-block`},{default:b(()=>[h[29]||=N(`p`,{class:`screens-title`},`Музыка`,-1),l(M(K),{align:`center`,wrap:``,class:`playlist-actions`},{default:b(()=>[l(M(H),{value:d.value,"onUpdate:value":h[3]||=e=>d.value=e,placeholder:`Новый плейлист`,style:{"max-width":`220px`}},null,8,[`value`]),l(M(z),{size:`small`,disabled:!d.value.trim(),onClick:h[4]||=e=>{c(`createPlaylist`,d.value.trim()),d.value=``}},{default:b(()=>[...h[18]||=[t(` Создать `,-1)]]),_:1},8,[`disabled`]),a.music?.playlist?.ID?(o(),m(M(z),{key:0,size:`small`,type:`error`,ghost:``,onClick:h[5]||=e=>c(`deletePlaylist`,a.music.playlist.ID)},{default:b(()=>[...h[19]||=[t(` Удалить плейлист `,-1)]]),_:1})):e(``,!0),l(M(ke),{accept:`.mp3,audio/mpeg`,"default-upload":!1,"show-file-list":!1,onChange:f},{default:b(()=>[l(M(z),{size:`small`},{default:b(()=>[...h[20]||=[t(`Добавить MP3`,-1)]]),_:1})]),_:1})]),_:1}),l(M(K),{align:`center`,wrap:``},{default:b(()=>[l(M(we),{value:a.music?.playlist?.ID,options:a.playlists.map(e=>({label:e.name,value:e.ID})),placeholder:`Плейлист`,clearable:``,style:{"min-width":`220px`},"onUpdate:value":h[6]||=e=>c(`setMusic`,{playlistID:e||0,trackIndex:0,playback:`MUSIC_PLAYBACK_STOPPED`})},null,8,[`value`,`options`]),a.music?.playlist?(o(),j(`div`,$t,[a.music.playlist.tracks?.length?e(``,!0):(o(),j(`p`,en,`В плейлисте пока нет треков.`)),(o(!0),j(D,null,i(a.music.playlist.tracks,(e,n)=>(o(),j(`div`,{key:e.ID,class:s([`track-row`,{"track-row-active":n===(a.music.trackIndex??0)}])},[N(`div`,tn,[N(`span`,nn,P(n+1),1),N(`span`,rn,[N(`span`,an,P(e.name||`Трек ${n+1}`),1)])]),l(M(K),{align:`center`,class:`track-actions`},{default:b(()=>[l(M(z),{size:`small`,type:n===(a.music.trackIndex??0)?`success`:`primary`,ghost:``,class:s({"track-switch-active":n===(a.music.trackIndex??0)}),onClick:e=>p(n)},{default:b(()=>[t(P(n===(a.music.trackIndex??0)?a.music.playback===`MUSIC_PLAYBACK_PLAYING`?`Играет`:`Выбран`:`Включить`),1)]),_:2},1032,[`type`,`class`,`onClick`]),l(M(z),{size:`small`,type:`error`,ghost:``,onClick:t=>c(`deleteTrack`,e.ID)},{default:b(()=>[...h[21]||=[t(` Удалить `,-1)]]),_:1},8,[`onClick`])]),_:2},1024)],2))),128))])):e(``,!0),l(M(z),{size:`small`,onClick:h[7]||=e=>c(`setMusic`,{playback:`MUSIC_PLAYBACK_PLAYING`})},{default:b(()=>[...h[22]||=[t(`Старт`,-1)]]),_:1}),l(M(z),{size:`small`,onClick:h[8]||=e=>c(`setMusic`,{playback:`MUSIC_PLAYBACK_PAUSED`})},{default:b(()=>[...h[23]||=[t(`Пауза`,-1)]]),_:1}),l(M(z),{size:`small`,onClick:h[9]||=e=>c(`setMusic`,{playback:`MUSIC_PLAYBACK_STOPPED`,positionMs:0})},{default:b(()=>[...h[24]||=[t(`Стоп`,-1)]]),_:1}),N(`div`,on,[h[26]||=N(`span`,{class:`volume-label`},`Громкость`,-1),l(M(yt),{value:a.music?.volume??100,min:0,max:100,step:5,size:`small`,"show-button":!0,"aria-label":`Громкость музыки`,class:`volume-input`,"onUpdate:value":h[10]||=e=>e!=null&&c(`setMusic`,{volume:e})},{suffix:b(()=>[...h[25]||=[t(`%`,-1)]]),_:1},8,[`value`])]),l(M(Me),{value:a.music?.loop,round:!1,"onUpdate:value":h[11]||=e=>c(`setMusic`,{loop:e})},{checked:b(()=>[...h[27]||=[t(`Loop`,-1)]]),unchecked:b(()=>[...h[28]||=[t(`Loop`,-1)]]),_:1},8,[`value`])]),_:1})]),_:1})],64)}}}),[[`__scopeId`,`data-v-c8e2dfff`]]),cn={key:0},ln={key:3},un={key:4},dn={key:0},fn={key:2},pn={key:0},mn={class:`device-details`},hn={key:0},gn={key:1},_n=V(k({__name:`GameStatePanel`,props:{devices:{},wifi:{},serverTime:{},isLoading:{type:Boolean},hasError:{type:Boolean},summary:{}},emits:[`reload`],setup(n){let r={browser:`Браузер`,organizer:`Организатор`,team:`Команда`,screen:`Экран`};return(a,s)=>(o(),j(D,null,[l(Z,null,{default:b(()=>[l(M(K),null,{default:b(()=>[l(M(L),{type:`success`},{default:b(()=>[t(`Доступны: `+P(n.summary.connected),1)]),_:1}),l(M(L),{type:`warning`},{default:b(()=>[t(`Нет связи: `+P(n.summary.disconnected),1)]),_:1}),l(M(L),null,{default:b(()=>[t(`Подключения: `+P(n.summary.connections),1)]),_:1})]),_:1}),n.serverTime?(o(),j(`p`,cn,`Последнее обновление: `+P(M(tt)(n.serverTime)),1)):e(``,!0),s[2]||=N(`p`,null,`«Нет связи» означает отсутствие heartbeat сайта. UUID обозначает браузерный профиль.`,-1),n.hasError?(o(),m(M(W),{key:1,type:`error`,title:`Не удалось обновить состояние`},{default:b(()=>[l(M(z),{loading:n.isLoading,onClick:s[0]||=e=>a.$emit(`reload`)},{default:b(()=>[...s[1]||=[t(`Повторить`,-1)]]),_:1},8,[`loading`])]),_:1})):e(``,!0),n.isLoading&&!n.serverTime?(o(),m(M(Fe),{key:2})):!n.hasError&&!n.serverTime&&!n.isLoading?(o(),j(`p`,ln,`Загружаем состояние…`)):n.serverTime&&!n.devices.length?(o(),j(`p`,un,`Устройства этой игры пока не зарегистрированы`)):e(``,!0)]),_:1}),l(Z,null,{default:b(()=>[s[4]||=N(`h3`,null,`Wi-Fi площадки`,-1),s[5]||=N(`p`,null,` Все Wi-Fi-клиенты Cudy, независимо от выбранной игры. MAC устройства и UUID браузера различаются. `,-1),n.wifi?.enabled?(o(),j(D,{key:1},[n.wifi.hasError?(o(),m(M(W),{key:0,type:`warning`,role:`alert`,title:`Не удалось обновить данные Cudy`})):e(``,!0),n.wifi.stale?(o(),m(M(L),{key:1,type:`warning`},{default:b(()=>[...s[3]||=[t(`Данные устарели`,-1)]]),_:1})):e(``,!0),n.wifi.collectedAt?(o(),j(`p`,fn,` Последний снимок Cudy: `+P(M(tt)(n.wifi.collectedAt)),1)):e(``,!0),n.wifi.collectedAt?(o(),j(D,{key:3},[N(`p`,null,`Wi-Fi-клиентов: `+P(n.wifi.clients?.length||0),1),n.wifi.clients?.length?e(``,!0):(o(),j(`p`,pn,`Wi-Fi-клиенты пока не подключены`)),(o(!0),j(D,null,i(n.wifi.clients,e=>(o(),j(`div`,{key:e.MAC,class:`connection device-details`},[N(`strong`,null,P(e.MAC),1),N(`p`,null,`IP: `+P(e.IP||`—`)+` · `+P(e.band),1),N(`p`,null,`Сигнал: `+P(e.signal===void 0?`Нет данных`:`${e.signal} dBm`),1)]))),128))],64)):e(``,!0)],64)):(o(),j(`p`,dn,`Сбор данных Cudy не настроен`))]),_:1}),(o(!0),j(D,null,i(n.devices,n=>(o(),m(Z,{key:n.ID},{default:b(()=>[N(`div`,mn,[N(`strong`,null,P(n.ID),1),N(`p`,null,[l(M(L),{type:n.connected?`success`:`warning`},{default:b(()=>[t(P(n.connected?`Доступно`:`Нет связи`),1)]),_:2},1032,[`type`])]),N(`p`,null,`Последнее обращение: `+P(M(tt)(n.lastSeenAt)||`—`),1),l(M(ct),null,{default:b(()=>[l(M(ut),{title:`Подключения`,name:n.ID||``},{default:b(()=>[(o(!0),j(D,null,i(n.connections,t=>(o(),j(`div`,{key:t.ID,class:`connection`},[N(`strong`,null,P(r[t.kind||``]||t.kind),1),t.teamID?(o(),j(`p`,hn,`ID команды: `+P(t.teamID),1)):e(``,!0),t.screenID?(o(),j(`p`,gn,`ID экрана: `+P(t.screenID),1)):e(``,!0),N(`p`,null,P(t.connected?`Доступно`:`Нет связи`),1),N(`p`,null,`Последнее обращение: `+P(M(tt)(t.lastSeenAt)||`—`),1),N(`p`,null,`IP: `+P(t.IP||`—`),1),N(`p`,null,`User-Agent: `+P(t.userAgent||`—`),1)]))),128))]),_:2},1032,[`name`])]),_:2},1024)])]),_:2},1024))),128))],64))}}),[[`__scopeId`,`data-v-a670747a`]]),vn={class:`team-content-block`},yn={class:`title-block`},bn={class:`team-name-block`},xn={key:0},Sn={key:1},Cn={key:0},wn={key:0},Tn={key:1},En={key:2},Dn={key:3},On={key:4},kn=V(k({__name:`GameTeamsPanel`,props:{teams:{},canPrintReceipts:{type:Boolean},participationOptions:{}},emits:[`add`,`open-qr`,`print`,`preview`,`delete`,`give-application`],setup(n,{emit:r}){let a=r;return(r,s)=>(o(),j(D,null,[l(Z,{class:`team-block-hover`,onClick:s[0]||=e=>a(`add`)},{default:b(()=>[...s[1]||=[N(`p`,{class:`place-image-plus`},`+`,-1)]]),_:1}),(o(!0),j(D,null,i(n.teams,r=>(o(),m(Z,{key:r.ID},{default:b(()=>[N(`div`,vn,[l(M(K),{justify:`space-between`},{default:b(()=>[N(`div`,yn,[N(`span`,bn,[t(P(r.name)+` `,1),r.captainEmail?(o(),j(`small`,xn,` — `+P(r.captainEmail),1)):e(``,!0),r.participantsCount?(o(),j(`small`,Sn,` · Участников: `+P(r.participantsCount),1)):e(``,!0)]),r.captainEmail||r.participationStatus!==`pending`?(o(),j(`div`,Cn,[t(P(n.participationOptions.find(e=>e.value===r.participationStatus)?.label),1),r.participationSource===`automatic`?(o(),j(`span`,wn,` · автоматически`)):e(``,!0)])):e(``,!0),r.captainEmail?r.participationEmailError?(o(),j(`div`,En,` Ошибка отправки: `+P(r.participationEmailError),1)):r.participationEmailSent?(o(),j(`div`,Dn,`Письмо отправлено`)):e(``,!0):(o(),j(`div`,Tn,`Почта капитана не указана`)),r.participationStatus===`cancelled`?e(``,!0):(o(),j(`div`,On,` Поездки: `+P(r.actionsCount),1))]),l(M(K),{justify:`end`},{default:b(()=>[n.canPrintReceipts&&r.participationStatus!==`cancelled`?(o(),m(M(z),{key:0,onClick:e=>a(`print`,r)},{default:b(()=>[...s[2]||=[t(` Печать чека `,-1)]]),_:1},8,[`onClick`])):e(``,!0),r.participationStatus===`cancelled`?e(``,!0):(o(),m(M(z),{key:1,onClick:e=>a(`open-qr`,r)},{default:b(()=>[...s[3]||=[t(`QR`,-1)]]),_:1},8,[`onClick`])),r.participationStatus===`cancelled`?e(``,!0):(o(),m(M(z),{key:2,onClick:e=>a(`preview`,r.ID,r.password)},{default:b(()=>[...s[4]||=[t(`Подсмотреть игру`,-1)]]),_:1},8,[`onClick`])),l(M(z),{type:`error`,ghost:``,onClick:e=>a(`delete`,r)},{default:b(()=>[...s[5]||=[t(`Удалить`,-1)]]),_:1},8,[`onClick`])]),_:2},1024)]),_:2},1024),(o(!0),j(D,null,i(r.applications,e=>(o(),m(M(z),{key:e.name,class:`link-button`,onClick:t=>a(`give-application`,r,e)},{default:b(()=>[t(` Выдать: `+P(e.name),1)]),_:2},1032,[`onClick`]))),128))])]),_:2},1024))),128))],64))}}),[[`__scopeId`,`data-v-70e02c3e`]]),$=[`src`,`alt`],An={key:2},jn=V(k({__name:`TeamReceiptModal`,props:{show:{type:Boolean},name:{},preview:{},preparationError:{},isPreparing:{type:Boolean},isPrinting:{type:Boolean}},emits:[`update:show`,`print`],setup(n,{emit:r}){let i=r;return(r,a)=>(o(),m(M(R),{show:n.show,"mask-closable":!n.isPrinting,"close-on-esc":!n.isPrinting,"onUpdate:show":a[2]||=e=>i(`update:show`,e)},{default:b(()=>[l(M(I),{class:`receipt-modal`,title:`Чек команды`,role:`dialog`,"aria-modal":`true`},{default:b(()=>[n.preparationError?(o(),m(M(W),{key:0,type:`error`},{default:b(()=>[t(P(n.preparationError),1)]),_:1})):n.preview?(o(),j(`img`,{key:1,class:`receipt-preview`,src:n.preview,alt:`Чек команды ${n.name}`},null,8,$)):n.isPreparing?(o(),j(`p`,An,`Подготовка чека…`)):e(``,!0),a[5]||=N(`p`,null,`Включите MXW01 рядом с сервером площадки. Сервер напечатает один чек.`,-1),l(M(K),{justify:`end`},{default:b(()=>[l(M(z),{disabled:n.isPrinting,onClick:a[0]||=e=>i(`update:show`,!1)},{default:b(()=>[...a[3]||=[t(`Закрыть`,-1)]]),_:1},8,[`disabled`]),l(M(z),{type:`primary`,loading:n.isPrinting,disabled:!n.preview||n.isPreparing||n.isPrinting,onClick:a[1]||=e=>i(`print`)},{default:b(()=>[...a[4]||=[t(`Печатать`,-1)]]),_:1},8,[`loading`,`disabled`])]),_:1})]),_:1})]),_:1},8,[`show`,`mask-closable`,`close-on-esc`]))}}),[[`__scopeId`,`data-v-f0b8d644`]]),Mn={key:0},Nn={key:1},Pn={key:2},Fn=V(k({__name:`TicketCheckModal`,props:{show:{type:Boolean,required:!0},showModifiers:{}},emits:[`update:show`],setup(n){let r=w(n,`show`),i=Ve(),a=ge(),s=E(``),c=E(),u=E(``),d=E(!1),f=E(),h=E(!1),g,_=0,v=S(()=>{try{return new URL(s.value.trim()).pathname.match(/\/tickets\/([^/]+)/)?.[1]||``}catch{return s.value.trim()}});async function y(){if(!(!v.value||d.value)){d.value=!0,u.value=``,c.value=void 0;try{let e=await i.GetTicket({token:v.value});e.ticket?c.value=e.ticket:u.value=`Билет не найден`}catch(e){u.value=e instanceof Error?e.message:`Не удалось проверить билет`}finally{d.value=!1}}}async function te(){if(!(!v.value||d.value)){d.value=!0,u.value=``;try{let e=await i.AcceptTicket({token:v.value});e.ticket?(c.value=e.ticket,a.success(`Билет принят`)):u.value=`Не удалось принять билет`}catch(e){u.value=e instanceof Error?e.message:`Не удалось принять билет`}finally{d.value=!1}}}async function ne(){let e=window.BarcodeDetector;if(!e||!navigator.mediaDevices?.getUserMedia){u.value=`Сканирование камерой не поддерживается. Введите ссылку вручную.`;return}u.value=``;try{if(g=await navigator.mediaDevices.getUserMedia({video:{facingMode:`environment`}}),h.value=!0,await p(),!f.value)return;f.value.srcObject=g,await f.value.play();let t=new e,n=async()=>{if(!(!h.value||!f.value))try{let e=(await t.detect(f.value))[0]?.rawValue;if(e){s.value=e,x(),await y();return}_=requestAnimationFrame(n)}catch{u.value=`Не удалось распознать QR-код.`,x()}};_=requestAnimationFrame(n)}catch{u.value=`Не удалось открыть камеру. Введите ссылку вручную.`,x()}}function x(){cancelAnimationFrame(_),g?.getTracks().forEach(e=>e.stop()),g=void 0,h.value=!1}function C(){x(),r.value=!1}return ae(r,e=>{e?ne():x()}),ee(x),(n,i)=>(o(),m(M(R),{show:r.value,"onUpdate:show":i[1]||=e=>r.value=e},{default:b(()=>[l(M(I),{style:{width:`min(600px, 94vw)`},title:`Проверка билета`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":b(()=>[l(M(z),{onClick:C},{default:b(()=>[...i[2]||=[t(` x `,-1)]]),_:1})]),default:b(()=>[l(M(G),{vertical:``},{default:b(()=>[h.value?(o(),j(`video`,{key:0,ref_key:`video`,ref:f,class:`ticket-scanner-video`,muted:``,playsinline:``},null,512)):e(``,!0),u.value?(o(),m(M(W),{key:1,type:`error`},{default:b(()=>[t(P(u.value),1)]),_:1})):e(``,!0),h.value?(o(),m(M(z),{key:3,onClick:x},{default:b(()=>[...i[4]||=[t(`Остановить камеру`,-1)]]),_:1})):(o(),m(M(z),{key:2,onClick:ne},{default:b(()=>[...i[3]||=[t(`Сканировать QR-код`,-1)]]),_:1})),l(M(H),{value:s.value,"onUpdate:value":i[0]||=e=>s.value=e,placeholder:`Или вставьте ссылку на билет`,onKeyup:Ue(y,[`enter`])},null,8,[`value`]),l(M(z),{type:`primary`,loading:d.value,onClick:y},{default:b(()=>[...i[5]||=[t(` Проверить билет `,-1)]]),_:1},8,[`loading`]),c.value?(o(),j(D,{key:4},[l(M(W),{type:c.value.status===`active`?`success`:`warning`},{default:b(()=>[t(P(c.value.gameName),1),i[6]||=N(`br`,null,null,-1),t(` Статус: `+P(c.value.status===`active`?`действителен`:`уже использован`)+` `,1),c.value.usedBy?(o(),j(`span`,Mn,` · `+P(c.value.usedBy),1)):e(``,!0),c.value.usedAt?(o(),j(`br`,Nn)):e(``,!0),c.value.usedAt?(o(),j(`span`,Pn,`Использован: `+P(M(tt)(c.value.usedAt)),1)):e(``,!0)]),_:1},8,[`type`]),c.value.status===`active`&&c.value.gameStatus!==`finish`?(o(),m(M(z),{key:0,type:`primary`,loading:d.value,onClick:te},{default:b(()=>[...i[7]||=[t(` Принять билет `,-1)]]),_:1},8,[`loading`])):e(``,!0)],64)):e(``,!0)]),_:1})]),_:1})]),_:1},8,[`show`]))}}),[[`__scopeId`,`data-v-fe322487`]]);function In(e,t){let n=Ve(),r=E([]),i=E(),a=E(),o=E(!1),s=E(!1),c=0,l=!1,u=!1,d=S(()=>({connected:r.value.filter(e=>e.connected).length,disconnected:r.value.filter(e=>!e.connected).length,connections:r.value.reduce((e,t)=>e+(t.connections?.length||0),0)}));async function f(){if(!t()||l||u)return;let d=c,p=e();u=!0,o.value=!0;try{let e=await n.GetDevices({gameID:p});if(l||!t()||d!==c)return;r.value=[...e.devices||[]].sort((e,t)=>Number(!!e.connected)-Number(!!t.connected)||(e.ID||``).localeCompare(t.ID||``)),i.value=e.wifi,a.value=e.serverTime,s.value=!1}catch{!l&&t()&&d===c&&(s.value=!0)}finally{u=!1,!l&&d===c&&(o.value=!1),!l&&t()&&d!==c&&f()}}return ae([e,t],([e],[n])=>{c++,o.value=!1,e!==n&&(r.value=[],i.value=void 0,a.value=void 0,s.value=!1),t()&&f()},{flush:`sync`}),Ke(()=>{f()},5e3),le(()=>{l=!0,c++}),{devices:r,wifi:i,serverTime:a,isLoading:o,hasError:s,summary:d,reload:f}}function Ln(e,t){let n=new Set(e.flatMap(e=>(e.applications||[]).map(t=>JSON.stringify([e.ID,t.name]))));return t.some(e=>e.applications?.some(t=>!n.has(JSON.stringify([e.ID,t.name]))))}var Rn={class:`center-block-custom`},zn={class:`width1200`},Bn={class:`game-tab-content`},Vn={key:5},Hn=[`href`],Un={class:`game-tab-content`},Wn={class:`game-tab-content`},Gn={class:`game-tab-content`},Kn={class:`game-tab-content`},qn={class:`qr-block`},Jn={class:`game-tab-content`},Yn={key:0,class:`answers-empty`},Xn={class:`answers-question-title`},Zn={class:`answers-question-answer`},Qn={class:`correct-answer`},$n={class:`answers-team-name`},er={class:`answers-team-answer`},tr={key:0,class:`give-application-image-block`},nr=[`src`],rr=[`src`],ir=[`href`],ar={class:`qr-block`},or={key:0,class:`answers-empty`},sr=`https://www.sberbank.ru/ru/choise_bank?requisiteNumber=79609361994&bankCode=100000000111`,cr=V(k({__name:`GamePage`,emits:[`resultsApplied`],setup(n,{emit:r}){let a=r,s=Ve(),c=Ze(),u=E(!1),d=E(!1),f=fe(),p=ie(),h=p.params.id;function ee(e){return[`settings`,`teams`,`screens`,`game`,`payment`,`answers`,`state`].includes(e)}let v=typeof p.query.tab==`string`?p.query.tab:``,y=E(ee(v)?v:`game`);async function te(e){!ee(e)||(e===`state`?!He.value:!U.value)||(y.value=e,await f.replace({query:{...p.query,tab:e}}))}function ne(e){(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),te(`state`))}let x=ge(),C=E({name:``,description:``,format:`online`,location:``}),w=E(!1),T=E(!1),re=E(!1),O=E(!1),k=E(!1),A=E(``),oe=E(``),se=E(1),ce=E(``),le=E(!1),ue=E(``),de=E(``),pe=E(!1),F=E({name:``,teamID:``}),me=E(!1),ve=E(!1),ye=E(``),be=E(``),xe=0,Te=E(!1),B=E(1),Ee=E([]),De=E(!1),Oe=E(!1),V=E({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,export:void 0}),Ae=Ge(),je=_e(),U=S(()=>Ae.hasAnyRole([`admin`,`organizer`,`author`])),Me=0,Fe=0,Le=!1,Re=!1,q,ze,Be=!1,He=S(()=>je.environment===`venue`&&Ae.hasAnyRole([`admin`,`organizer`,`developer`])),Ue=S(()=>He.value&&!U.value);nt(()=>U.value?{organizerGameID:Number(h)}:{});let{devices:We,wifi:qe,serverTime:Je,isLoading:Ye,hasError:rt,summary:it,reload:at}=In(()=>Number(p.params.id),()=>He.value&&y.value===`state`);ae([()=>p.query.tab,He,U],()=>{let e=typeof p.query.tab==`string`?p.query.tab:``;y.value=Ue.value?`state`:ee(e)&&(e!==`state`||He.value)?e:`game`,Ue.value&&e!==`state`&&f.replace({query:{...p.query,tab:`state`}})},{immediate:!0}),ae(Ue,e=>{e&&(V.value={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,export:void 0},Q(Number(h)))},{immediate:!0});let ot=S(()=>Number(V.value.ID)>0&&je.environment===`prod`&&Ae.hasAnyRole([`admin`,`organizer`,`developer`])),st=E(!1),ct=E(!1),lt=S(()=>je.environment===`venue`&&V.value.status===`finish`&&Ae.hasAnyRole([`admin`,`organizer`,`developer`])),ut=E(!1),dt=E(!1),ft=E([]),pt=E(``),mt=[{label:`Ожидает ответа`,value:`pending`},{label:`Подтверждено`,value:`confirmed`},{label:`Отменено`,value:`cancelled`}],ht=S(()=>(V.value.teams||[]).filter(e=>e.participationStatus!==`cancelled`).length),gt=E([]),_t=E([]),vt=E(),J=E(),Y=E([]),X=E(!1),xt=E(!1),Ct=E(`use`),Tt=0,Dt=E([]),At=E([]),jt=E([]),Mt=E(!1),Nt=E(!1),Pt=E(100),Ft=E(0);function It(e){Re||Be||(Be=!0,x.warning(`Не удалось включить звуковые уведомления о выдаче улик`),console.error(`Звуковое уведомление о выдаче улик`,e))}async function Lt(){if(!(!U.value||Re))try{q??=new AudioContext,q.state===`suspended`&&await q.resume();let e=q;ze??=fetch(kt).then(async t=>{if(!t.ok)throw Error(`Не удалось загрузить звук уведомления`);return e.decodeAudioData(await t.arrayBuffer())}),await ze}catch(e){ze=void 0,It(e)}}async function Rt(){if(!(!q||q.state!==`running`||!ze))try{let e=await ze;if(Re||q.state!==`running`)return;let t=q.createBufferSource();t.buffer=e,t.connect(q.destination),t.onended=()=>t.disconnect(),t.start()}catch(e){It(e)}}async function zt(){await Lt(),await Rt()}g(()=>{window.addEventListener(`click`,Lt),window.addEventListener(`keydown`,Lt)}),_(()=>{Re=!0,xe++,mr(),window.removeEventListener(`click`,Lt),window.removeEventListener(`keydown`,Lt),q?.close().catch(e=>{console.error(`Закрытие звуковых уведомлений`,e)})});async function Q(e){let t=++Me,n=U.value,r=await s.GetGame({ID:e});Re||n!==U.value||t<Fe||(Fe=t,U.value&&Le&&Ln(V.value.teams||[],r.game?.teams||[])&&Rt(),Le=!0,V.value=r.game,w.value||=(C.value={name:V.value.name||``,description:V.value.description||``,format:V.value.format||`online`,location:V.value.location||``},!0),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}))}U.value&&Q(Number(h));async function Bt(){let e=await s.GetGameScreens({gameID:Number(h)});if(gt.value=e.screens||[],(gt.value.find(e=>e.status===`connected`)||gt.value[0])?.mode===`SCREEN_MODE_RESULTS`){let e=await s.GetGameResults({gameID:Number(h)});Dt.value=e.questions||[],At.value=e.teams||[]}else Dt.value=[],At.value=[]}U.value&&Bt();async function Vt(){try{let e=await s.GetGameMusic({gameID:Number(h)});_t.value=e.playlists||[],vt.value=e.state}catch(e){x.error(e instanceof Error?e.message:`Не удалось получить музыку игры`)}}U.value&&Vt();function Ht(){return Ct.value===`edit`}async function Ut(){if(console.log(`getScreenPlan`),Ht()||X.value)return;console.log(`no skip getScreenPlan`);let e=++Tt,t=await s.GetScreenPlan({gameID:Number(h)});e!==Tt||Ht()||X.value||(J.value=t.plan,Y.value=t.plan?.steps?.map(e=>({...e}))||[])}U.value&&Ut();function Wt(){Y.value.push({mode:`SCREEN_MODE_TEXT`,text:`Новый экран`,timerLabel:`Перерыв`,timerDurationSeconds:600}),X.value=!0,Ct.value=`edit`}function Gt(){J.value&&(Y.value=J.value.steps?.map(e=>({...e}))||[],Ct.value=`edit`)}function Kt(){X.value&&!window.confirm(`Отменить несохранённые изменения плана?`)||(Y.value=J.value?.steps?.map(e=>({...e}))||[],X.value=!1,Ct.value=`use`)}function qt(e){Y.value.splice(e,1),X.value=!0}function Yt(e,t){let n=e+t;if(n<0||n>=Y.value.length)return;let[r]=Y.value.splice(e,1);Y.value.splice(n,0,r),X.value=!0}function Xt(){X.value=!0}function Zt(){Y.value=[],Xt()}async function Qt(){if(!xt.value){Tt+=1,xt.value=!0;try{let e=Math.min(J.value?.currentStep||0,Math.max(0,Y.value.length-1)),t=await s.SaveScreenPlan({gameID:Number(h),steps:Y.value,currentStep:e});J.value=t.plan,Y.value=t.plan?.steps?.map(e=>({...e}))||[],X.value=!1,Ct.value=`use`,x.success(t.plan?`План экранов сохранён`:`План экранов удалён`)}catch(e){x.error(e instanceof Error?e.message:`Не удалось сохранить план экранов`)}finally{xt.value=!1}}}async function $t(e){if(!(X.value||!J.value))try{let t=await s.SetScreenPlanStep({gameID:Number(h),currentStep:e});J.value=t.plan,await Bt()}catch(e){x.error(e instanceof Error?e.message:`Не удалось перейти на шаг плана`)}}async function en(e,t){if(!(X.value||e!==`SCREEN_MODE_TIMER`&&e!==`SCREEN_MODE_INTRO`&&e!==`SCREEN_MODE_CONCLUSION`))try{await s.SendScreenCommand({gameID:Number(h),command:t,positionMs:Math.max(0,Math.round(Ft.value*1e3)),volume:Math.max(0,Math.min(100,Math.round(Pt.value)))}),await Bt()}catch(e){x.error(e instanceof Error?e.message:`Не удалось управлять экраном`)}}async function tn(e,t){if(!Oe.value){Oe.value=!0;try{await s.BindScreen({screenID:e,accessToken:t,gameID:Number(h)}),x.success(`Экран привязан к игре`),await Bt()}catch(e){x.error(e instanceof Error?e.message:`Не удалось привязать экран`)}finally{Oe.value=!1}}}async function nn(){if(Mt.value||Nt.value)return;let e=await s.GetGameMap({gameID:Number(h)});Mt.value||Nt.value||(jt.value=e.items||[])}U.value&&nn();async function rn(e,t=e.hidden){Mt.value=!0;try{await s.UpdateGameMapItem({gameID:Number(h),kind:e.kind,itemID:e.itemID,x:Math.round(e.x||0),y:Math.round(e.y||0),hidden:t})}finally{Mt.value=!1}}async function an(e,t=e.hidden){await rn(e,t),await nn()}async function on(e){await s.SetScreenSound({screenID:e.ID,soundEnabled:!0}),await Bt()}async function cn(e){let t=vt.value;try{let n=await s.SetGameMusic({gameID:Number(h),playlistID:e.playlistID??t?.playlist?.ID??0,trackIndex:e.trackIndex??t?.trackIndex??0,positionMs:e.positionMs??t?.positionMs??0,volume:e.volume??t?.volume??100,loop:e.loop??t?.loop??!1,playback:e.playback??t?.playback??`MUSIC_PLAYBACK_STOPPED`});vt.value=n.state}catch(e){x.error(e instanceof Error?e.message:`Не удалось изменить музыку`)}}async function ln(e){try{await s.CreatePlaylist({name:e}),await Vt()}catch(e){x.error(e instanceof Error?e.message:`Не удалось создать плейлист`)}}async function un(e){try{await s.DeletePlaylist({ID:e}),await Vt()}catch(e){x.error(e instanceof Error?e.message:`Не удалось удалить плейлист`)}}async function dn(e){let t=vt.value?.playlist?.ID;if(!t){x.warning(`Сначала выберите плейлист`);return}try{let n=pn(new Uint8Array(await e.arrayBuffer()));await s.UploadPlaylistTrack({playlistID:t,name:e.name,filename:e.name,data:n}),await Vt()}catch(e){x.error(e instanceof Error?e.message:`Не удалось загрузить MP3`)}}async function fn(e){let t=vt.value?.playlist?.ID;if(t)try{await s.DeletePlaylistTrack({playlistID:t,trackID:e}),await Vt()}catch(e){x.error(e instanceof Error?e.message:`Не удалось удалить трек`)}}function pn(e){let t=``;for(let n=0;n<e.length;n+=32768)t+=String.fromCharCode(...e.subarray(n,n+32768));return btoa(t)}async function mn(e){await s.UnbindScreen({screenID:e.ID}),await Bt()}async function hn(e,t,n=!1){let r=`/team-story/`+e+`?password=`+t;if(n){window.open(r,`_blank`);return}f.push(r)}async function gn(){if(!(!ot.value||st.value||V.value.export?.state===`preparing`||V.value.export?.state===`ready`||V.value.status!==`draft`)){st.value=!0;try{let e=await s.StartGameExport({ID:V.value.ID});V.value.export=e.export}catch(e){x.error(e instanceof Error?e.message:`Не удалось подготовить пакет`)}finally{st.value=!1}}}async function vn(){if(!(!ot.value||ct.value||V.value.export?.state!==`ready`)){ct.value=!0;try{let{blob:e,filename:t}=await c.downloadGamePackage(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){x.error(e instanceof Error?e.message:`Не удалось скачать пакет`)}finally{ct.value=!1}}}function yn({fileList:e}){dt.value||(ft.value=e.slice(-1),pt.value=``)}async function bn(){if(!(!lt.value||ut.value)){ut.value=!0;try{let{blob:e,filename:t}=await c.downloadGameResultsPackage(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){x.error(e instanceof Error?e.message:`Не удалось скачать результаты`)}finally{ut.value=!1}}}async function xn(){if(!ot.value||dt.value)return;let e=ft.value[0]?.file;if(!e||e.size===0){pt.value=`Выберите непустой ZIP-файл`;return}if(!e.name.toLowerCase().endsWith(`.zip`)){pt.value=`Выберите файл с расширением .zip`;return}if(e.size>1024**3){pt.value=`Размер пакета не должен превышать 1 ГиБ`;return}dt.value=!0,pt.value=``;try{await c.applyGameResultsPackage(V.value.ID,e),x.success(`Результаты приняты`),a(`resultsApplied`)}catch(e){pt.value=e instanceof Error?e.message:`Не удалось применить результаты`}finally{dt.value=!1}}async function Sn(){let e=V.value.ID;if(!(!U.value||!e||d.value)){d.value=!0;try{let{blob:t,filename:n}=await c.downloadGamePrintMaterials(e),r=URL.createObjectURL(t),i=document.createElement(`a`);i.href=r,i.download=n,document.body.appendChild(i),i.click(),i.remove(),setTimeout(()=>URL.revokeObjectURL(r),1e3)}catch(e){x.error(e instanceof Error?e.message:`Не удалось скачать материалы для печати`)}finally{d.value=!1}}}async function Cn(){if(!(u.value||!V.value.teams?.length)){u.value=!0;try{let{blob:e,filename:t}=await c.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){x.error(e instanceof Error?e.message:`Не удалось скачать QR команд`)}finally{u.value=!1}}}function wn(){f.push(`/games/`+h+`/results`)}async function Tn(){await s.UpdateGame({ID:V.value.ID,name:C.value.name,description:C.value.description,format:C.value.format,location:C.value.location.trim(),startAt:V.value.startAt,scenarioID:V.value.scenario?.ID}),await Q(V.value.ID)}let En=E({ID:``,name:``,status:``,password:``,actionsCount:0,applications:[],captainEmail:void 0,participantsCount:void 0,participationStatus:void 0,participationSource:void 0,participationEmailError:void 0,participationEmailSent:void 0}),Dn=E(``),On=E({ID:``,name:``,status:``,password:``,actionsCount:0,applications:[],captainEmail:void 0,participantsCount:void 0,participationStatus:void 0,participationSource:void 0,participationEmailError:void 0,participationEmailSent:void 0}),$=E({name:``,image:``,file_type:``}),An=window.location.href;function Mn(e,t){En.value=e,$.value=t,T.value=!0}async function Nn(){if(se.value<1||se.value>8){x.error(`Укажите от 1 до 8 игроков`);return}await s.AddTeam({gameID:V.value.ID,name:A.value,captainEmail:oe.value.trim(),participantsCount:se.value}),await Q(V.value.ID),re.value=!1,oe.value=``,se.value=1}async function Pn(){await s.GiveTeamApplications({ID:En.value.ID,name:$.value.name}),await Q(V.value.ID),T.value=!1}async function cr(e){On.value=e,O.value=!0}async function lr(){await s.DeleteTeam({ID:On.value.ID}),await Q(V.value.ID),O.value=!1}async function ur(){await s.DeleteGame({ID:V.value.ID}),x.success(`Игра удалена`),f.push(`/games`)}function dr(e,t){let n=new URL(`/team-story/${e}`,window.location.origin);return n.searchParams.set(`password`,t),n.toString()}function fr(e){_r(dr(e.ID,e.password),`Подсмотреть игру`)}function pr(e){if(je.environment!==`venue`||!e.ID||!e.name||e.participationStatus===`cancelled`){x.error(`У команды нет данных для печати чека`);return}F.value={name:e.name,teamID:e.ID},pe.value=!0}ae([pe,()=>F.value.teamID,U,()=>je.environment],hr);function mr(){ye.value&&URL.revokeObjectURL(ye.value),ye.value=``}async function hr(){let e=++xe;if(mr(),be.value=``,ve.value=!1,!(!pe.value||!U.value||je.environment!==`venue`)){ve.value=!0;try{let{blob:t}=await c.downloadTeamReceipt(Number(h),F.value.teamID);e===xe&&(ye.value=URL.createObjectURL(t))}catch(t){e===xe&&(be.value=t instanceof Error?t.message:`Не удалось подготовить чек`)}finally{e===xe&&(ve.value=!1)}}}async function gr(){if(!(!ye.value||me.value||ve.value)){me.value=!0;try{await s.PrintTeamReceipt({gameID:Number(h),teamID:F.value.teamID}),x.success(`Чек напечатан`)}catch(e){x.error(e instanceof Error?e.message:`Не удалось напечатать чек`)}finally{me.value=!1}}}async function _r(e,t){ue.value=e,de.value=t,le.value=!0}async function vr(){if(!(De.value||!V.value.ID)){De.value=!0;try{let e=await s.IssueGameTickets({gameID:V.value.ID,count:B.value});Ee.value=e.tickets||[],x.success(`Выпущено билетов: ${Ee.value.length}`)}catch(e){x.error(e instanceof Error?e.message:`Не удалось выпустить билеты`)}finally{De.value=!1}}}Ke(()=>{!U.value||dt.value||(Q(Number(h)),Bt(),Vt(),Ut(),nn())},2e3);async function yr(){await s.ResetGame({ID:V.value.ID}),await Q(V.value.ID)}async function br(){await s.StartGame({ID:V.value.ID}),await Q(V.value.ID)}async function xr(){await s.PauseGame({ID:V.value.ID}),await Q(V.value.ID)}async function Sr(){await s.PlayGame({ID:V.value.ID}),await Q(V.value.ID)}async function Cr(){await s.FinishGame({ID:V.value.ID}),await Q(V.value.ID)}let wr=E(!1),Tr=E([]),Er=E(0),Dr=E(0),Or=E([]),kr=E([]),Ar=E({});function jr(e,t){return(e??``)+`:`+(t??``)}function Mr(e,t){return(e.answers||[]).find(e=>e.questionCode==t)?.answer||``}function Nr(e,t){Ar.value[e]=t===null?void 0:t}async function Pr(){let e=await s.GetGameAnswers({gameID:Number(h)});Or.value=e.questions||[],kr.value=e.teams||[];let t={};for(let e of kr.value)for(let n of e.answers||[])t[jr(e.team?.ID,n.questionCode)]=n.score;Ar.value=t}async function Fr(){wr.value=!0;let e=await s.GetGameReviewsForModeration({gameID:Number(h)});Tr.value=e.reviews||[],Er.value=e.averageRating||0,Dr.value=e.reviewsCount||0}async function Ir(e,t){await s.ModerateGameReview({ID:e.ID,status:t}),await Fr()}async function Lr(){for(let e of Or.value)for(let t of kr.value){let n=Ar.value[jr(t.team?.ID,e.code)];await s.SetTeamAnswerScore({ID:t.team?.ID,questionCode:e.code,score:n??void 0})}x.success(`Баллы сохранены`),await Pr()}ae([U,y],([e,t])=>{e&&t===`answers`&&Pr()},{immediate:!0});function Rr(){let e=new Date;return new Date(e.getTime()-e.getTimezoneOffset()*6e4)}function zr(e,t){if(e==``)return`Игра ещё не началась`;let n=et(e),r=Rr();t!=``&&(r=et(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 Br=E(``);return Ke(()=>{Br.value=zr(V.value.startedAt||``,V.value.endedAt||``)},1e3),(n,r)=>(o(),j(D,null,[N(`div`,Rn,[N(`div`,zn,[U.value&&(V.value.export?.state===`preparing`||V.value.export?.state===`ready`)?(o(),m(Z,{key:0},{default:b(()=>[l(M(W),{type:`info`,title:V.value.export.state===`ready`?`Игра в офлайн-режиме`:`Подготовка офлайн-пакета`},{default:b(()=>[t(P(V.value.export.state===`ready`?`Изменения на онлайн-сервере не синхронизируются с офлайн-площадкой.`:`Создаётся пакет для офлайн-площадки.`),1)]),_:1},8,[`title`])]),_:1})):e(``,!0),Ue.value?(o(),m(Z,{key:1},{default:b(()=>[N(`h2`,null,P(V.value.name),1)]),_:1})):e(``,!0),l(M(Ce),{value:y.value,type:`line`,animated:``,"onUpdate:value":te},{default:b(()=>[U.value?(o(),m(M(Se),{key:0,name:`settings`,tab:`Настройки`},{default:b(()=>[N(`div`,Bn,[l(Z,null,{default:b(()=>[l(M(K),{justify:`end`},{default:b(()=>[l(M(z),{loading:d.value,disabled:!V.value.ID||d.value,onClick:Sn},{default:b(()=>[...r[46]||=[t(` Скачать материалы для печати `,-1)]]),_:1},8,[`loading`,`disabled`]),l(M(z),{quaternary:``,onClick:r[0]||=e=>_r(M(An),`Админка`)},{default:b(()=>[...r[47]||=[t(`QR`,-1)]]),_:1}),V.value.status==`finish`?(o(),m(M(z),{key:0,quaternary:``,onClick:r[1]||=e=>wn()},{default:b(()=>[l(M(he),{class:`settings-icon`},{default:b(()=>[l(M(Ot))]),_:1}),r[48]||=t(` Итоги `,-1)]),_:1})):e(``,!0),(V.value.teams?.length||0)==0?(o(),m(M(z),{key:1,type:`error`,quaternary:``,onClick:r[2]||=e=>k.value=!0},{default:b(()=>[...r[49]||=[t(` Удалить игру `,-1)]]),_:1})):e(``,!0)]),_:1})]),_:1}),l(Z,null,{default:b(()=>[r[55]||=N(`p`,{class:`screens-title`},`Настройки игры`,-1),l(M(G),{vertical:``},{default:b(()=>[r[50]||=N(`p`,null,`Название`,-1),l(M(H),{value:C.value.name,"onUpdate:value":r[3]||=e=>C.value.name=e,type:`text`,placeholder:`Дело №0 "Следствие ведут овечки"`},null,8,[`value`]),r[51]||=N(`p`,{class:`settings-header`},`Формат игры`,-1),l(M(we),{value:C.value.format,"onUpdate:value":r[4]||=e=>C.value.format=e,options:[{label:`Online`,value:`online`},{label:`Offline`,value:`offline`}],"aria-label":`Формат игры`},null,8,[`value`]),r[52]||=N(`p`,{class:`settings-header`},`Описание`,-1),l(M(H),{value:C.value.description,"onUpdate:value":r[5]||=e=>C.value.description=e,type:`textarea`,placeholder:`Убийство пастуха...`},null,8,[`value`]),r[53]||=N(`p`,{class:`settings-header`},`Место проведения`,-1),l(M(H),{value:C.value.location,"onUpdate:value":r[6]||=e=>C.value.location=e,type:`text`,placeholder:`Оставьте пустым для онлайн-игры`},null,8,[`value`])]),_:1}),l(M(K),{justify:`end`,class:`settings-actions`},{default:b(()=>[l(M(z),{onClick:r[7]||=e=>Tn()},{default:b(()=>[...r[54]||=[t(`Сохранить изменения`,-1)]]),_:1})]),_:1})]),_:1}),lt.value?(o(),m(Z,{key:0},{default:b(()=>[l(M(z),{loading:ut.value,disabled:ut.value,onClick:bn},{default:b(()=>[...r[56]||=[t(` Скачать результаты `,-1)]]),_:1},8,[`loading`,`disabled`])]),_:1})):e(``,!0),ot.value?(o(),m(Z,{key:1},{default:b(()=>[r[60]||=N(`p`,{class:`screens-title`},`Возврат результатов с площадки`,-1),l(M(G),{vertical:``},{default:b(()=>[l(M(W),{type:`warning`},{default:b(()=>[...r[57]||=[t(` Команды, билеты, результаты и игровой сценарий будут заменены данными пакета. Онлайн-правки этих данных потеряются. Оформление и музыка сохраняются. `,-1)]]),_:1}),l(M(ke),{"file-list":ft.value,"default-upload":!1,max:1,accept:`.zip`,disabled:dt.value,onChange:yn},{default:b(()=>[l(M(z),{disabled:dt.value},{default:b(()=>[...r[58]||=[t(`Выбрать ZIP результатов`,-1)]]),_:1},8,[`disabled`])]),_:1},8,[`file-list`,`disabled`]),pt.value?(o(),m(M(W),{key:0,type:`error`,role:`alert`},{default:b(()=>[t(P(pt.value),1)]),_:1})):e(``,!0),l(M(z),{loading:dt.value,disabled:dt.value||!ft.value.length,onClick:xn},{default:b(()=>[...r[59]||=[t(` Применить ZIP и перезаписать результаты `,-1)]]),_:1},8,[`loading`,`disabled`])]),_:1})]),_:1})):e(``,!0),ot.value?(o(),m(Z,{key:2},{default:b(()=>[r[65]||=N(`p`,{class:`screens-title`},`Передача игры на площадку`,-1),l(M(G),{vertical:``},{default:b(()=>[r[64]||=N(`p`,null,` Пакет содержит снимок на момент подготовки. Последующие онлайн-изменения в него не попадут. Готовность пакета не подтверждает импорт на площадку. `,-1),V.value.export?.state===`preparing`?(o(),m(M(W),{key:0,type:`info`,role:`status`},{default:b(()=>[...r[61]||=[t(`Подготовка пакета…`,-1)]]),_:1})):V.value.export?.state===`ready`?(o(),m(M(W),{key:1,type:`success`,role:`status`},{default:b(()=>[...r[62]||=[t(`Пакет готов`,-1)]]),_:1})):V.value.export?.state===`failed`?(o(),m(M(W),{key:2,type:`error`,role:`alert`},{default:b(()=>[t(P(V.value.export.failure||`Не удалось подготовить пакет`),1)]),_:1})):e(``,!0),V.value.export?.state===`ready`?(o(),m(M(z),{key:3,loading:ct.value,disabled:ct.value,onClick:vn},{default:b(()=>[...r[63]||=[t(`Скачать пакет`,-1)]]),_:1},8,[`loading`,`disabled`])):(o(),m(M(z),{key:4,loading:st.value||V.value.export?.state===`preparing`,disabled:st.value||V.value.export?.state===`preparing`||V.value.status!==`draft`,onClick:gn},{default:b(()=>[t(P(V.value.export?.state===`failed`?`Повторить подготовку`:`Подготовить пакет`),1)]),_:1},8,[`loading`,`disabled`])),V.value.status&&V.value.status!==`draft`?(o(),j(`p`,Vn,` Подготовка доступна до старта игры. `)):e(``,!0)]),_:1})]),_:1})):e(``,!0),l(Z,null,{default:b(()=>[r[68]||=N(`p`,{class:`screens-title`},`Выпуск билетов`,-1),l(M(G),{vertical:``},{default:b(()=>[l(M(yt),{value:B.value,"onUpdate:value":r[8]||=e=>B.value=e,min:1,max:100},null,8,[`value`]),(o(!0),j(D,null,i(Ee.value,e=>(o(),j(`div`,{key:e.ID,class:`issued-ticket`},[N(`div`,null,`Билет №`+P(e.ID),1),N(`a`,{href:e.URL,class:`payment-link`,target:`_blank`,rel:`noreferrer`},` Открыть страницу билета `,8,Hn),l(M(z),{size:`small`,onClick:t=>_r(e.URL,`Билет №${e.ID}`)},{default:b(()=>[...r[66]||=[t(` Показать QR `,-1)]]),_:1},8,[`onClick`])]))),128))]),_:1}),l(M(K),{justify:`end`,class:`settings-actions`},{default:b(()=>[l(M(z),{loading:De.value,disabled:De.value,onClick:r[9]||=e=>vr()},{default:b(()=>[...r[67]||=[t(` Выпустить `,-1)]]),_:1},8,[`loading`,`disabled`])]),_:1})]),_:1})])]),_:1})):e(``,!0),U.value?(o(),m(M(Se),{key:1,name:`teams`,tab:`Команды`},{default:b(()=>[N(`div`,Un,[l(M(K),{justify:`space-between`,align:`center`},{default:b(()=>[l(M(L),{bordered:!1,type:`info`},{default:b(()=>[t(` Участвуют команд: `+P(ht.value),1)]),_:1}),ht.value?(o(),m(M(z),{key:0,quaternary:``,loading:u.value,disabled:u.value,onClick:r[10]||=e=>Cn()},{default:b(()=>[...r[69]||=[t(` QR команд `,-1)]]),_:1},8,[`loading`,`disabled`])):e(``,!0)]),_:1}),l(kn,{teams:V.value.teams||[],"can-print-receipts":M(je).environment===`venue`,"participation-options":mt,onAdd:r[11]||=e=>re.value=!0,onOpenQr:fr,onPrint:pr,onPreview:r[12]||=(e,t)=>hn(e,t,!0),onDelete:cr,onGiveApplication:Mn},null,8,[`teams`,`can-print-receipts`])])]),_:1})):e(``,!0),U.value?(o(),m(M(Se),{key:2,name:`screens`,tab:`Экраны`},{default:b(()=>[N(`div`,Wn,[l(sn,{screens:gt.value,"screen-binding":Oe.value,playlists:_t.value,music:vt.value,onBind:tn,onSetSound:on,onUnbind:mn,onSetMusic:cn,onCreatePlaylist:ln,onDeletePlaylist:un,onUploadTrack:dn,onDeleteTrack:fn},null,8,[`screens`,`screen-binding`,`playlists`,`music`])])]),_:1})):e(``,!0),U.value?(o(),m(M(Se),{key:3,name:`game`,tab:`Игра`},{default:b(()=>[N(`div`,Gn,[l(Z,null,{default:b(()=>[l(M(K),{justify:`space-between`},{default:b(()=>[l(M(G),null,{default:b(()=>[l(M(L),{type:`info`},{default:b(()=>[t(P(Br.value),1)]),_:1}),M(tt)(V.value.startAt)?(o(),m(M(L),{key:0,type:`info`},{default:b(()=>[t(` Начало: `+P(M(tt)(V.value.startAt)),1)]),_:1})):e(``,!0)]),_:1}),l(M(K),{justify:`end`},{default:b(()=>[l(M(z),{onClick:zt},{default:b(()=>[...r[70]||=[t(`Проверить звук`,-1)]]),_:1}),V.value.status==`draft`?e(``,!0):(o(),m(M(z),{key:0,type:`info`,dashed:``,"aria-label":`Сбросить игру`,onClick:r[13]||=e=>yr()},{default:b(()=>[l(M(he),null,{default:b(()=>[l(M(Et))]),_:1})]),_:1})),V.value.status==`draft`?(o(),m(M(z),{key:1,type:`info`,dashed:``,"aria-label":`Начать игру`,onClick:r[14]||=e=>br()},{default:b(()=>[l(M(he),null,{default:b(()=>[l(M(wt))]),_:1})]),_:1})):e(``,!0),V.value.status==`pause`?(o(),m(M(z),{key:2,type:`info`,dashed:``,"aria-label":`Продолжить игру`,onClick:r[15]||=e=>Sr()},{default:b(()=>[l(M(he),null,{default:b(()=>[l(M(wt))]),_:1})]),_:1})):e(``,!0),V.value.status==`run`?(o(),m(M(z),{key:3,type:`info`,dashed:``,"aria-label":`Поставить игру на паузу`,onClick:r[16]||=e=>xr()},{default:b(()=>[l(M(he),null,{default:b(()=>[l(M(St))]),_:1})]),_:1})):e(``,!0),V.value.status==`finish`?e(``,!0):(o(),m(M(z),{key:4,type:`info`,dashed:``,"aria-label":`Завершить игру`,onClick:r[17]||=e=>Cr()},{default:b(()=>[l(M(he),null,{default:b(()=>[l(M(bt))]),_:1})]),_:1}))]),_:1})]),_:1})]),_:1}),l(Jt,{"map-items":jt.value,teams:V.value.teams||[],screens:gt.value,"preview-questions":Dt.value,"preview-teams":At.value,"screen-plan":J.value,"screen-plan-draft":Y.value,"screen-plan-dirty":X.value,"screen-plan-saving":xt.value,"screen-plan-mode":Ct.value,"screen-volume":Pt.value,"screen-position":Ft.value,onSaveItem:an,onDragging:r[18]||=e=>Nt.value=e,onGiveApplication:Mn,onAddStep:Wt,onEdit:Gt,onCancel:Kt,onRemoveStep:qt,onMoveStep:Yt,onDirty:Xt,onClearPlan:Zt,onSave:Qt,onSetStep:$t,onCommand:en,"onUpdate:screenVolume":r[19]||=e=>Pt.value=e??0,"onUpdate:screenPosition":r[20]||=e=>Ft.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})):e(``,!0),U.value?(o(),m(M(Se),{key:4,name:`payment`,tab:`Оплата`},{default:b(()=>[N(`div`,Kn,[l(Z,null,{default:b(()=>[l(M(K),{align:`center`,justify:`space-between`},{default:b(()=>[r[72]||=N(`p`,{class:`screens-title`},`Билеты`,-1),l(M(z),{size:`small`,onClick:r[21]||=e=>Te.value=!0},{default:b(()=>[...r[71]||=[t(` Проверить билет `,-1)]]),_:1})]),_:1})]),_:1}),l(Z,null,{default:b(()=>[r[73]||=N(`p`,{class:`screens-title`},`Оплата игры`,-1),N(`div`,qn,[l(M(Pe),{value:sr,size:300,padding:0})]),N(`p`,null,[N(`a`,{href:sr,class:`payment-link`,target:`_blank`,rel:`noreferrer`},` Открыть ссылку оплаты `)])]),_:1})])]),_:1})):e(``,!0),U.value?(o(),m(M(Se),{key:5,name:`answers`,tab:`Проверка ответов`},{default:b(()=>[N(`div`,Jn,[Or.value.length==0?(o(),j(`div`,Yn,` Вопросы дела не заданы или команды ещё не отвечали. `)):e(``,!0),(o(!0),j(D,null,i(Or.value,e=>(o(),m(Z,{key:e.code},{default:b(()=>[N(`p`,Xn,P(e.code)+`: `+P(e.text),1),N(`p`,Zn,[r[74]||=t(` Правильный ответ:`,-1),r[75]||=N(`br`,null,null,-1),N(`span`,Qn,P(e.answer||`—`),1)]),(o(!0),j(D,null,i(kr.value,t=>(o(),j(`div`,{key:t.team?.ID,class:`answers-team-row`},[N(`div`,$n,P(t.team?.name),1),N(`div`,er,P(Mr(t,e.code)||`—`),1),l(M(yt),{value:Ar.value[jr(t.team?.ID,e.code)],"onUpdate:value":n=>Nr(jr(t.team?.ID,e.code),n),placeholder:`Балл`,class:`answers-score-input`},null,8,[`value`,`onUpdate:value`])]))),128))]),_:2},1024))),128)),l(M(K),{justify:`end`},{default:b(()=>[l(M(z),{onClick:r[22]||=e=>Lr(),disabled:Or.value.length==0},{default:b(()=>[...r[76]||=[t(` Сохранить баллы `,-1)]]),_:1},8,[`disabled`])]),_:1})])]),_:1})):e(``,!0),He.value?(o(),m(M(Se),{key:6,name:`state`,tab:`Состояние`,"tab-props":{tabindex:0,role:`tab`,"aria-selected":y.value===`state`,onKeydown:ne}},{default:b(()=>[l(_n,{devices:M(We),wifi:M(qe),"server-time":M(Je),"is-loading":M(Ye),"has-error":M(rt),summary:M(it),onReload:M(at)},null,8,[`devices`,`wifi`,`server-time`,`is-loading`,`has-error`,`summary`,`onReload`])]),_:1},8,[`tab-props`])):e(``,!0)]),_:1},8,[`value`])])]),U.value?(o(),m(Fn,{key:0,show:Te.value,"onUpdate:show":r[23]||=e=>Te.value=e},null,8,[`show`])):e(``,!0),U.value&&M(je).environment===`venue`?(o(),m(jn,{key:1,show:pe.value,"onUpdate:show":r[24]||=e=>pe.value=e,name:F.value.name,preview:ye.value,"preparation-error":be.value,"is-preparing":ve.value,"is-printing":me.value,onPrint:gr},null,8,[`show`,`name`,`preview`,`preparation-error`,`is-preparing`,`is-printing`])):e(``,!0),U.value?(o(),m(M(R),{key:2,show:T.value,"onUpdate:show":r[27]||=e=>T.value=e},{default:b(()=>[l(M(I),{style:{width:`600px`},title:`Настройки игры`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":b(()=>[l(M(z),{onClick:r[25]||=e=>T.value=!1},{default:b(()=>[...r[77]||=[t(` x `,-1)]]),_:1})]),footer:b(()=>[l(M(K),{justify:`end`},{default:b(()=>[l(M(z),{onClick:r[26]||=e=>Pn(),ghost:``},{default:b(()=>[...r[80]||=[t(` Выдать `,-1)]]),_:1})]),_:1})]),default:b(()=>[l(M(G),{vertical:``},{default:b(()=>[r[78]||=N(`p`,null,`Команда`,-1),N(`h3`,null,P(En.value.name),1),r[79]||=N(`p`,null,`Улика`,-1),N(`h3`,null,P($.value.name),1),M(Qe)($.value)==`image`&&$.value.image?(o(),j(`div`,tr,[N(`img`,{src:M($e)($.value.image),class:`give-application-image`},null,8,nr)])):M(Qe)($.value)==`audio`&&$.value.image?(o(),j(`audio`,{key:1,src:M($e)($.value.image),controls:``,preload:`none`,class:`give-application-audio`},null,8,rr)):M(Qe)($.value)==`pdf`&&$.value.image?(o(),j(`a`,{key:2,href:M($e)($.value.image),target:`_blank`,rel:`noopener`,class:`give-application-pdf-link`},` PDF `,8,ir)):e(``,!0)]),_:1})]),_:1})]),_:1},8,[`show`])):e(``,!0),U.value?(o(),m(M(R),{key:3,show:re.value,"onUpdate:show":r[33]||=e=>re.value=e},{default:b(()=>[l(M(I),{style:{width:`600px`},title:`Создание команды`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":b(()=>[l(M(z),{onClick:r[28]||=e=>re.value=!1},{default:b(()=>[...r[81]||=[t(` x `,-1)]]),_:1})]),footer:b(()=>[l(M(K),{justify:`end`},{default:b(()=>[l(M(z),{onClick:r[32]||=e=>Nn(),disabled:A.value.length==0},{default:b(()=>[...r[82]||=[t(` Создать `,-1)]]),_:1},8,[`disabled`])]),_:1})]),default:b(()=>[l(M(G),{vertical:``},{default:b(()=>[l(M(H),{value:A.value,"onUpdate:value":r[29]||=e=>A.value=e,type:`text`,placeholder:`Три дебила`},null,8,[`value`]),l(M(H),{value:oe.value,"onUpdate:value":r[30]||=e=>oe.value=e,"input-props":{type:`email`,autocomplete:`email`},placeholder:`Почта капитана (необязательно)`,"aria-label":`Почта капитана (необязательно)`},null,8,[`value`]),l(M(yt),{value:se.value,"onUpdate:value":r[31]||=e=>se.value=e,min:1,max:8,precision:0,placeholder:`Количество игроков`,"aria-label":`Количество игроков`},null,8,[`value`])]),_:1})]),_:1})]),_:1},8,[`show`])):e(``,!0),U.value?(o(),m(M(R),{key:4,show:O.value,"onUpdate:show":r[37]||=e=>O.value=e},{default:b(()=>[l(M(I),{style:{width:`600px`},title:`Удаление команды`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":b(()=>[l(M(z),{onClick:r[34]||=e=>O.value=!1},{default:b(()=>[...r[83]||=[t(` x `,-1)]]),_:1})]),footer:b(()=>[l(M(K),{justify:`end`},{default:b(()=>[l(M(z),{onClick:r[36]||=e=>lr(),disabled:Dn.value!=On.value.name},{default:b(()=>[...r[86]||=[t(` Удалить `,-1)]]),_:1},8,[`disabled`])]),_:1})]),default:b(()=>[l(M(G),{vertical:``},{default:b(()=>[N(`p`,null,[r[84]||=t(` Введите название команды `,-1),l(M(Ie),{class:`name-text`,strong:``},{default:b(()=>[t(P(On.value.name),1)]),_:1}),r[85]||=t(` чтобы удалить его `,-1)]),l(M(H),{value:Dn.value,"onUpdate:value":r[35]||=e=>Dn.value=e,type:`text`,placeholder:`Три дебила`},null,8,[`value`])]),_:1})]),_:1})]),_:1},8,[`show`])):e(``,!0),U.value?(o(),m(M(R),{key:5,show:k.value,"onUpdate:show":r[41]||=e=>k.value=e},{default:b(()=>[l(M(I),{style:{width:`600px`},title:`Удаление игры`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":b(()=>[l(M(z),{onClick:r[38]||=e=>k.value=!1},{default:b(()=>[...r[87]||=[t(` x `,-1)]]),_:1})]),footer:b(()=>[l(M(K),{justify:`end`},{default:b(()=>[l(M(z),{onClick:r[40]||=e=>ur(),disabled:ce.value!=V.value.name},{default:b(()=>[...r[90]||=[t(` Удалить `,-1)]]),_:1},8,[`disabled`])]),_:1})]),default:b(()=>[l(M(G),{vertical:``},{default:b(()=>[N(`p`,null,[r[88]||=t(` Введите название игры `,-1),l(M(Ie),{class:`name-text`,strong:``},{default:b(()=>[t(P(V.value.name),1)]),_:1}),r[89]||=t(` чтобы удалить её `,-1)]),l(M(H),{value:ce.value,"onUpdate:value":r[39]||=e=>ce.value=e,type:`text`,placeholder:`Дело №0 "Следствие ведут овечки"`},null,8,[`value`])]),_:1})]),_:1})]),_:1},8,[`show`])):e(``,!0),U.value?(o(),m(M(R),{key:6,show:le.value,"onUpdate:show":r[43]||=e=>le.value=e},{default:b(()=>[l(M(I),{style:{width:`600px`},title:de.value,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":b(()=>[l(M(z),{onClick:r[42]||=e=>le.value=!1},{default:b(()=>[...r[91]||=[t(` x `,-1)]]),_:1})]),footer:b(()=>[...r[92]||=[]]),default:b(()=>[l(M(G),{vertical:``},{default:b(()=>[N(`div`,ar,[l(M(Pe),{value:ue.value,size:300,padding:0},null,8,[`value`])])]),_:1})]),_:1},8,[`title`])]),_:1},8,[`show`])):e(``,!0),U.value?(o(),m(M(R),{key:7,show:wr.value,"onUpdate:show":r[45]||=e=>wr.value=e},{default:b(()=>[l(M(I),{style:{width:`min(94vw, 800px)`},title:`Отзывы игры`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`,"content-style":{maxHeight:`70vh`,overflow:`auto`}},{"header-extra":b(()=>[l(M(z),{onClick:r[44]||=e=>wr.value=!1},{default:b(()=>[...r[93]||=[t(` x `,-1)]]),_:1})]),default:b(()=>[l(M(K),{align:`center`,class:`reviews-summary`},{default:b(()=>[l(M(Ne),{value:Er.value,readonly:``,"allow-half":``},null,8,[`value`]),N(`span`,null,P(Dr.value?`${Er.value.toFixed(1)} · ${Dr.value}`:`Пока нет отзывов`),1)]),_:1}),Tr.value.length==0?(o(),j(`div`,or,`Отзывов пока нет.`)):e(``,!0),(o(!0),j(D,null,i(Tr.value,n=>(o(),j(`div`,{key:n.ID,class:`review-row`},[l(M(K),{justify:`space-between`,align:`center`},{default:b(()=>[N(`strong`,null,P(n.teamName),1),l(M(L),null,{default:b(()=>[t(P(n.status),1)]),_:2},1024)]),_:2},1024),l(M(Ne),{value:n.rating,readonly:``,size:`small`},null,8,[`value`]),N(`div`,null,`Сложность: `+P([``,`лёгкая`,`средняя`,`тяжёлая`][n.difficulty||0]),1),N(`p`,null,P(n.text),1),n.status==`pending`?(o(),m(M(K),{key:0,justify:`end`},{default:b(()=>[l(M(z),{type:`success`,onClick:e=>Ir(n,`approved`)},{default:b(()=>[...r[94]||=[t(`Одобрить`,-1)]]),_:1},8,[`onClick`]),l(M(z),{type:`error`,ghost:``,onClick:e=>Ir(n,`rejected`)},{default:b(()=>[...r[95]||=[t(`Отклонить`,-1)]]),_:1},8,[`onClick`])]),_:2},1024)):n.status==`approved`?(o(),m(M(K),{key:1,justify:`end`},{default:b(()=>[l(M(z),{type:`error`,ghost:``,onClick:e=>Ir(n,`hidden`)},{default:b(()=>[...r[96]||=[t(`Скрыть`,-1)]]),_:1},8,[`onClick`])]),_:2},1024)):e(``,!0)]))),128))]),_:1})]),_:1},8,[`show`])):e(``,!0),l(Xe,{active:`games`})],64))}}),[[`__scopeId`,`data-v-43de8566`]]),lr=k({__name:`GameView`,setup(e){let t=E(0),n=ie();return(e,r)=>(o(),m(cr,{key:`${M(n).params.id}-${t.value}`,onResultsApplied:r[0]||=e=>t.value++}))}});export{lr as default};