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-lOiq7Q_J.js";import{d as F}from"./utils-CAgtASNj.js";import{d as me,t as I}from"./Card-Cjki8E-V.js";import{i as L,n as he,r as ge,t as _e}from"./ui-GnK2cvI_.js";import{i as ve,w as ye}from"./Suffix-vbkLTDDW.js";import{t as R}from"./Modal-THVgLpGV.js";import{t as be}from"./use-merged-state-DtwURtxQ.js";import{n as xe,t as z}from"./Button-DfvYTndQ.js";import{n as Se,t as Ce}from"./Tabs-D2eRj8cp.js";import{t as we}from"./Select-B3fBZ2rx.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-DFB8HrqU.js";import{t as ke}from"./Upload-CnkL1t4d.js";import{n as Ae}from"./use-form-item-Bx8Y8eAa.js";import{t as je}from"./Add-B3pQEvfy.js";import{t as H}from"./Input-CIaNJLrA.js";import{n as U,t as Me}from"./Switch-GJoFp8gP.js";import{t as W}from"./Alert-CkPrF7-5.js";import{t as G}from"./Space-DWKcwC4-.js";import{t as K}from"./Flex-BB8sb381.js";import{t as Ne}from"./Rate-DoHcEwPI.js";import{t as Pe}from"./QrCode-DwT9G7ka.js";import{t as Fe}from"./Spin-DzFKdOrR.js";import{t as Ie}from"./text-D0st0Ftb.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-C3-4MRIk.js";import{t as Xe}from"./HeaderMenu-nydA6gJC.js";import{t as Ze}from"./binary_client-CQV3BQaH.js";import{n as Qe,r as $e}from"./application-CT4iECRt.js";import{n as et,t as tt}from"./datetime-BJNH0M1T.js";import{t as nt}from"./useDeviceContext-DrZWG3Q_.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}})}}),J=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 ut(e){let{textColorDisabled:t}=e;return{iconColorDisabled:t}}var dt=T({name:`InputNumber`,common:C,peers:{Button:Re,Input:He},self:ut}),ft=de([A(`input-number-suffix`,` display: inline-block; margin-right: 10px; `),A(`input-number-prefix`,` display: inline-block; margin-left: 10px; `)]);function pt(e){return e==null||typeof e==`string`&&e.trim()===``?null:Number(e)}function mt(e){return e.includes(`.`)&&(/^(-)?\d+.*(\.|0)$/.test(e)||/^-?\d*$/.test(e))||e===`-`||e===`-0`}function ht(e){return e==null?!0:!Number.isNaN(e)}function gt(e,t){return typeof e==`number`?t===void 0?String(e):e.toFixed(t):``}function _t(e){if(e===null)return null;if(typeof e==`number`)return e;{let t=Number(e);return Number.isNaN(t)?null:t}}var vt=800,yt=100,bt=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`,ft,dt,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=_t(e.step);return t===null||t===0?1:Math.abs(t)}),x=qe(()=>{let t=_t(e.min);return t===null?null:t}),C=qe(()=>{let t=_t(e.max);return t===null?null:t}),w=()=>{let{value:t}=_;if(ht(t)){let{format:n,precision:r}=e;n?v.value=n(t):t===null||r===void 0||y(t)>r?v.value=gt(t,void 0):v.value=gt(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&&mt(a))return!1;let o=(e.parse||pt)(a);if(o===null)return n&&T(null),null;if(ht(o)){let a=y(o),{precision:s}=e;if(s!==void 0&&st){if(!n||i)return!1;c=t}if(r!==null&&cD({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()},yt)},vt),me(`mouseup`,document,L,{once:!0})}function ye(){ge(),he=window.setTimeout(()=>{F=window.setInterval(()=>{le()},yt)},vt),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)}))}}),xt={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},St=k({name:`Flag`,render:function(e,t){return o(),j(`svg`,xt,t[0]||=[N(`path`,{d:`M6 30H4V2h24l-5.8 9l5.8 9H6zm0-12h18.33l-4.53-7l4.53-7H6z`,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:`Pause`,render:function(e,t){return o(),j(`svg`,Ct,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)])}}),Tt={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},Et=k({name:`Play`,render:function(e,t){return o(),j(`svg`,Tt,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)])}}),Y={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},Dt=k({name:`Reset`,render:function(e,t){return o(),j(`svg`,Y,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)])}}),X={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`,X,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`]]),Bt={class:`map-preview-layout`},Vt=[`onPointerdown`],Ht=[`onPointerdown`],Ut={key:2},Q=[`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`,Bt,[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,Ht)):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`,Ut,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,Q)],46,Vt)),[[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(bt),{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(bt),{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(bt),{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(bt),{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(J),{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`]]),An=[`src`,`alt`],jn={key:2},Mn=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,An)):n.isPreparing?(o(),j(`p`,jn,`Подготовка чека…`)):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`]]),Nn={key:0},Pn={key:1},Fn={key:2},In=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`,Nn,` · `+P(c.value.usedBy),1)):e(``,!0),c.value.usedAt?(o(),j(`br`,Pn)):e(``,!0),c.value.usedAt?(o(),j(`span`,Fn,`Использован: `+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 Ln(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 Rn(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 zn={class:`center-block-custom`},Bn={class:`width1200`},Vn={class:`game-tab-content`},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}=Ln(()=>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(()=>ot.value&&(V.value.export?.state===`preparing`||V.value.export?.state===`ready`)),J=E(!1),ut=E(!1),dt=E(``),ft=S(()=>je.environment===`venue`&&V.value.status===`finish`&&Ae.hasAnyRole([`admin`,`organizer`,`developer`])),pt=E(!1),mt=E(!1),ht=E([]),gt=E(``),_t=[{label:`Ожидает ответа`,value:`pending`},{label:`Подтверждено`,value:`confirmed`},{label:`Отменено`,value:`cancelled`}],vt=S(()=>(V.value.teams||[]).filter(e=>e.participationStatus!==`cancelled`).length),yt=E([]),xt=E([]),Ct=E(),Tt=E(),Y=E([]),X=E(!1),At=E(!1),jt=E(`use`),Mt=0,Nt=E([]),Pt=E([]),Ft=E([]),It=E(!1),Lt=E(!1),Rt=E(100),zt=E(0);function Bt(e){Re||Be||(Be=!0,x.warning(`Не удалось включить звуковые уведомления о выдаче улик`),console.error(`Звуковое уведомление о выдаче улик`,e))}async function Vt(){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,Bt(e)}}async function Ht(){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){Bt(e)}}async function Ut(){await Vt(),await Ht()}g(()=>{window.addEventListener(`click`,Vt),window.addEventListener(`keydown`,Vt)}),_(()=>{Re=!0,xe++,yr(),window.removeEventListener(`click`,Vt),window.removeEventListener(`keydown`,Vt),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{let n=0;(e.applications?.length||0)>0&&(n=1);let r=0;if((t.applications?.length||0)>0&&(r=1),n>r)return-1;if(na?1:ie.status===`connected`)||yt.value[0])?.mode===`SCREEN_MODE_RESULTS`){let e=await s.GetGameResults({gameID:Number(h)});Nt.value=e.questions||[],Pt.value=e.teams||[]}else Nt.value=[],Pt.value=[]}U.value&&Wt();async function Gt(){try{let e=await s.GetGameMusic({gameID:Number(h)});xt.value=e.playlists||[],Ct.value=e.state}catch(e){x.error(e instanceof Error?e.message:`Не удалось получить музыку игры`)}}U.value&&Gt();function Kt(){return jt.value===`edit`}async function qt(){if(console.log(`getScreenPlan`),Kt()||X.value)return;console.log(`no skip getScreenPlan`);let e=++Mt,t=await s.GetScreenPlan({gameID:Number(h)});e!==Mt||Kt()||X.value||(Tt.value=t.plan,Y.value=t.plan?.steps?.map(e=>({...e}))||[])}U.value&&qt();function Yt(){Y.value.push({mode:`SCREEN_MODE_TEXT`,text:`Новый экран`,timerLabel:`Перерыв`,timerDurationSeconds:600}),X.value=!0,jt.value=`edit`}function Xt(){Tt.value&&(Y.value=Tt.value.steps?.map(e=>({...e}))||[],jt.value=`edit`)}function Zt(){X.value&&!window.confirm(`Отменить несохранённые изменения плана?`)||(Y.value=Tt.value?.steps?.map(e=>({...e}))||[],X.value=!1,jt.value=`use`)}function Qt(e){Y.value.splice(e,1),X.value=!0}function $t(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 en(){X.value=!0}function tn(){Y.value=[],en()}async function nn(){if(!At.value){Mt+=1,At.value=!0;try{let e=Math.min(Tt.value?.currentStep||0,Math.max(0,Y.value.length-1)),t=await s.SaveScreenPlan({gameID:Number(h),steps:Y.value,currentStep:e});Tt.value=t.plan,Y.value=t.plan?.steps?.map(e=>({...e}))||[],X.value=!1,jt.value=`use`,x.success(t.plan?`План экранов сохранён`:`План экранов удалён`)}catch(e){x.error(e instanceof Error?e.message:`Не удалось сохранить план экранов`)}finally{At.value=!1}}}async function rn(e){if(!(X.value||!Tt.value))try{let t=await s.SetScreenPlanStep({gameID:Number(h),currentStep:e});Tt.value=t.plan,await Wt()}catch(e){x.error(e instanceof Error?e.message:`Не удалось перейти на шаг плана`)}}async function an(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(zt.value*1e3)),volume:Math.max(0,Math.min(100,Math.round(Rt.value)))}),await Wt()}catch(e){x.error(e instanceof Error?e.message:`Не удалось управлять экраном`)}}async function on(e,t){if(!Oe.value){Oe.value=!0;try{await s.BindScreen({screenID:e,accessToken:t,gameID:Number(h)}),x.success(`Экран привязан к игре`),await Wt()}catch(e){x.error(e instanceof Error?e.message:`Не удалось привязать экран`)}finally{Oe.value=!1}}}async function cn(){if(It.value||Lt.value)return;let e=await s.GetGameMap({gameID:Number(h)});It.value||Lt.value||(Ft.value=e.items||[])}U.value&&cn();async function ln(e,t=e.hidden){It.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{It.value=!1}}async function un(e,t=e.hidden){await ln(e,t),await cn()}async function dn(e){await s.SetScreenSound({screenID:e.ID,soundEnabled:!0}),await Wt()}async function fn(e){let t=Ct.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`});Ct.value=n.state}catch(e){x.error(e instanceof Error?e.message:`Не удалось изменить музыку`)}}async function pn(e){try{await s.CreatePlaylist({name:e}),await Gt()}catch(e){x.error(e instanceof Error?e.message:`Не удалось создать плейлист`)}}async function mn(e){try{await s.DeletePlaylist({ID:e}),await Gt()}catch(e){x.error(e instanceof Error?e.message:`Не удалось удалить плейлист`)}}async function hn(e){let t=Ct.value?.playlist?.ID;if(!t){x.warning(`Сначала выберите плейлист`);return}try{let n=vn(new Uint8Array(await e.arrayBuffer()));await s.UploadPlaylistTrack({playlistID:t,name:e.name,filename:e.name,data:n}),await Gt()}catch(e){x.error(e instanceof Error?e.message:`Не удалось загрузить MP3`)}}async function gn(e){let t=Ct.value?.playlist?.ID;if(t)try{await s.DeletePlaylistTrack({playlistID:t,trackID:e}),await Gt()}catch(e){x.error(e instanceof Error?e.message:`Не удалось удалить трек`)}}function vn(e){let t=``;for(let n=0;nURL.revokeObjectURL(n),1e3)}catch(e){x.error(e instanceof Error?e.message:`Не удалось скачать пакет`)}finally{ct.value=!1}}}function Tn({fileList:e}){mt.value||(ht.value=e.slice(-1),gt.value=``)}async function En(){if(!(!ft.value||pt.value)){pt.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{pt.value=!1}}}async function Dn(){if(!ot.value||mt.value)return;let e=ht.value[0]?.file;if(!e||e.size===0){gt.value=`Выберите непустой ZIP-файл`;return}if(!e.name.toLowerCase().endsWith(`.zip`)){gt.value=`Выберите файл с расширением .zip`;return}if(e.size>1024**3){gt.value=`Размер пакета не должен превышать 1 ГиБ`;return}mt.value=!0,gt.value=``;try{await c.applyGameResultsPackage(V.value.ID,e),x.success(`Результаты приняты`),a(`resultsApplied`)}catch(e){gt.value=e instanceof Error?e.message:`Не удалось применить результаты`}finally{mt.value=!1}}async function On(){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 An(){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 jn(){f.push(`/games/`+h+`/results`)}async function Nn(){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 Pn=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}),Fn=E(``),cr=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:``}),lr=window.location.href;function ur(e,t){Pn.value=e,$.value=t,T.value=!0}async function dr(){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 fr(){await s.GiveTeamApplications({ID:Pn.value.ID,name:$.value.name}),await Q(V.value.ID),T.value=!1}async function pr(e){cr.value=e,O.value=!0}async function mr(){await s.DeleteTeam({ID:cr.value.ID}),await Q(V.value.ID),O.value=!1}async function hr(){await s.DeleteGame({ID:V.value.ID}),x.success(`Игра удалена`),f.push(`/games`)}function gr(e,t){let n=new URL(`/team-story/${e}`,window.location.origin);return n.searchParams.set(`password`,t),n.toString()}function _r(e){Sr(gr(e.ID,e.password),`Подсмотреть игру`)}function vr(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],br);function yr(){ye.value&&URL.revokeObjectURL(ye.value),ye.value=``}async function br(){let e=++xe;if(yr(),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 xr(){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 Sr(e,t){ue.value=e,de.value=t,le.value=!0}async function Cr(){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||mt.value||(Q(Number(h)),Wt(),Gt(),qt(),cn())},2e3);async function wr(){await s.ResetGame({ID:V.value.ID}),await Q(V.value.ID)}async function Tr(){await s.StartGame({ID:V.value.ID}),await Q(V.value.ID)}async function Er(){await s.PauseGame({ID:V.value.ID}),await Q(V.value.ID)}async function Dr(){await s.PlayGame({ID:V.value.ID}),await Q(V.value.ID)}async function Or(){await s.FinishGame({ID:V.value.ID}),await Q(V.value.ID)}let kr=E(!1),Ar=E([]),jr=E(0),Mr=E(0),Nr=E([]),Pr=E([]),Fr=E({});function Ir(e,t){return(e??``)+`:`+(t??``)}function Lr(e,t){return(e.answers||[]).find(e=>e.questionCode==t)?.answer||``}function Rr(e,t){Fr.value[e]=t===null?void 0:t}async function zr(){let e=await s.GetGameAnswers({gameID:Number(h)});Nr.value=e.questions||[],Pr.value=e.teams||[];let t={};for(let e of Pr.value)for(let n of e.answers||[])t[Ir(e.team?.ID,n.questionCode)]=n.score;Fr.value=t}async function Br(){kr.value=!0;let e=await s.GetGameReviewsForModeration({gameID:Number(h)});Ar.value=e.reviews||[],jr.value=e.averageRating||0,Mr.value=e.reviewsCount||0}async function Vr(e,t){await s.ModerateGameReview({ID:e.ID,status:t}),await Br()}async function Hr(){for(let e of Nr.value)for(let t of Pr.value){let n=Fr.value[Ir(t.team?.ID,e.code)];await s.SetTeamAnswerScore({ID:t.team?.ID,questionCode:e.code,score:n??void 0})}x.success(`Баллы сохранены`),await zr()}ae([U,y],([e,t])=>{e&&t===`answers`&&zr()},{immediate:!0});function Ur(){let e=new Date;return new Date(e.getTime()-e.getTimezoneOffset()*6e4)}function Wr(e,t){if(e==``)return`Игра ещё не началась`;let n=et(e),r=Ur();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 Gr=E(``);return Ke(()=>{Gr.value=Wr(V.value.startedAt||``,V.value.endedAt||``)},1e3),(n,r)=>(o(),j(D,null,[N(`div`,zn,[N(`div`,Bn,[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`,Vn,[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:On},{default:b(()=>[...r[48]||=[t(` Скачать материалы для печати `,-1)]]),_:1},8,[`loading`,`disabled`]),l(M(z),{quaternary:``,onClick:r[0]||=e=>Sr(M(lr),`Админка`)},{default:b(()=>[...r[49]||=[t(`QR`,-1)]]),_:1}),V.value.status==`finish`?(o(),m(M(z),{key:0,quaternary:``,onClick:r[1]||=e=>jn()},{default:b(()=>[l(M(he),{class:`settings-icon`},{default:b(()=>[l(M(Ot))]),_:1}),r[50]||=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[51]||=[t(` Удалить игру `,-1)]]),_:1})):e(``,!0)]),_:1})]),_:1}),l(Z,null,{default:b(()=>[r[57]||=N(`p`,{class:`screens-title`},`Настройки игры`,-1),l(M(G),{vertical:``},{default:b(()=>[r[52]||=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[53]||=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[54]||=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[55]||=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=>Nn()},{default:b(()=>[...r[56]||=[t(`Сохранить изменения`,-1)]]),_:1})]),_:1})]),_:1}),ft.value?(o(),m(Z,{key:0},{default:b(()=>[l(M(z),{loading:pt.value,disabled:pt.value,onClick:En},{default:b(()=>[...r[58]||=[t(` Скачать результаты `,-1)]]),_:1},8,[`loading`,`disabled`])]),_:1})):e(``,!0),ot.value?(o(),m(Z,{key:1},{default:b(()=>[r[62]||=N(`p`,{class:`screens-title`},`Возврат результатов с площадки`,-1),l(M(G),{vertical:``},{default:b(()=>[l(M(W),{type:`warning`},{default:b(()=>[...r[59]||=[t(` Команды, билеты, результаты и игровой сценарий будут заменены данными пакета. Онлайн-правки этих данных потеряются. Оформление и музыка сохраняются. `,-1)]]),_:1}),l(M(ke),{"file-list":ht.value,"default-upload":!1,max:1,accept:`.zip`,disabled:mt.value,onChange:Tn},{default:b(()=>[l(M(z),{disabled:mt.value},{default:b(()=>[...r[60]||=[t(`Выбрать ZIP результатов`,-1)]]),_:1},8,[`disabled`])]),_:1},8,[`file-list`,`disabled`]),gt.value?(o(),m(M(W),{key:0,type:`error`,role:`alert`},{default:b(()=>[t(P(gt.value),1)]),_:1})):e(``,!0),l(M(z),{loading:mt.value,disabled:mt.value||!ht.value.length,onClick:Dn},{default:b(()=>[...r[61]||=[t(` Применить ZIP и перезаписать результаты `,-1)]]),_:1},8,[`loading`,`disabled`])]),_:1})]),_:1})):e(``,!0),ot.value?(o(),m(Z,{key:2},{default:b(()=>[r[70]||=N(`p`,{class:`screens-title`},`Передача игры на площадку`,-1),l(M(G),{vertical:``},{default:b(()=>[r[68]||=N(`p`,null,` Пакет содержит снимок на момент подготовки. Последующие онлайн-изменения в него не попадут. На площадке игра начнётся с нуля: ходы, ответы и баллы в пакет не входят. Статус и прогресс игры на сервере сохраняются. Готовность пакета не подтверждает импорт на площадку. `,-1),V.value.export?.state===`preparing`?(o(),m(M(W),{key:0,type:`info`,role:`status`},{default:b(()=>[...r[63]||=[t(`Подготовка пакета…`,-1)]]),_:1})):V.value.export?.state===`ready`?(o(),m(M(W),{key:1,type:`success`,role:`status`},{default:b(()=>[...r[64]||=[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:wn},{default:b(()=>[...r[65]||=[t(`Скачать пакет`,-1)]]),_:1},8,[`loading`,`disabled`])):e(``,!0),l(M(z),{loading:st.value,disabled:st.value||J.value,onClick:xn},{default:b(()=>[...r[66]||=[t(` Подготовить новый пакет `,-1)]]),_:1},8,[`loading`,`disabled`]),r[69]||=N(`p`,null,` Новый пакет заменяет текущую подготовку. Результаты ранее скачанных пакетов можно загрузить позже. `,-1),lt.value?(o(),m(M(z),{key:4,type:`warning`,loading:J.value,disabled:st.value||J.value,onClick:Sn},{default:b(()=>[...r[67]||=[t(` Сбросить локальный режим `,-1)]]),_:1},8,[`loading`,`disabled`])):e(``,!0)]),_:1})]),_:1})):e(``,!0),l(Z,null,{default:b(()=>[r[73]||=N(`p`,{class:`screens-title`},`Выпуск билетов`,-1),l(M(G),{vertical:``},{default:b(()=>[l(M(bt),{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=>Sr(e.URL,`Билет №${e.ID}`)},{default:b(()=>[...r[71]||=[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=>Cr()},{default:b(()=>[...r[72]||=[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(vt.value),1)]),_:1}),vt.value?(o(),m(M(z),{key:0,quaternary:``,loading:u.value,disabled:u.value,onClick:r[10]||=e=>An()},{default:b(()=>[...r[74]||=[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":_t,onAdd:r[11]||=e=>re.value=!0,onOpenQr:_r,onPrint:vr,onPreview:r[12]||=(e,t)=>bn(e,t,!0),onDelete:pr,onGiveApplication:ur},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:yt.value,"screen-binding":Oe.value,playlists:xt.value,music:Ct.value,onBind:on,onSetSound:dn,onUnbind:yn,onSetMusic:fn,onCreatePlaylist:pn,onDeletePlaylist:mn,onUploadTrack:hn,onDeleteTrack:gn},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(Gr.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:Ut},{default:b(()=>[...r[75]||=[t(`Проверить звук`,-1)]]),_:1}),V.value.status==`draft`?e(``,!0):(o(),m(M(z),{key:0,type:`info`,dashed:``,"aria-label":`Сбросить игру`,onClick:r[13]||=e=>wr()},{default:b(()=>[l(M(he),null,{default:b(()=>[l(M(Dt))]),_:1})]),_:1})),V.value.status==`draft`?(o(),m(M(z),{key:1,type:`info`,dashed:``,"aria-label":`Начать игру`,onClick:r[14]||=e=>Tr()},{default:b(()=>[l(M(he),null,{default:b(()=>[l(M(Et))]),_:1})]),_:1})):e(``,!0),V.value.status==`pause`?(o(),m(M(z),{key:2,type:`info`,dashed:``,"aria-label":`Продолжить игру`,onClick:r[15]||=e=>Dr()},{default:b(()=>[l(M(he),null,{default:b(()=>[l(M(Et))]),_:1})]),_:1})):e(``,!0),V.value.status==`run`?(o(),m(M(z),{key:3,type:`info`,dashed:``,"aria-label":`Поставить игру на паузу`,onClick:r[16]||=e=>Er()},{default:b(()=>[l(M(he),null,{default:b(()=>[l(M(wt))]),_: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=>Or()},{default:b(()=>[l(M(he),null,{default:b(()=>[l(M(St))]),_:1})]),_:1}))]),_:1})]),_:1})]),_:1}),l(Jt,{"map-items":Ft.value,teams:V.value.teams||[],screens:yt.value,"preview-questions":Nt.value,"preview-teams":Pt.value,"screen-plan":Tt.value,"screen-plan-draft":Y.value,"screen-plan-dirty":X.value,"screen-plan-saving":At.value,"screen-plan-mode":jt.value,"screen-volume":Rt.value,"screen-position":zt.value,onSaveItem:un,onDragging:r[18]||=e=>Lt.value=e,onGiveApplication:ur,onAddStep:Yt,onEdit:Xt,onCancel:Zt,onRemoveStep:Qt,onMoveStep:$t,onDirty:en,onClearPlan:tn,onSave:nn,onSetStep:rn,onCommand:an,"onUpdate:screenVolume":r[19]||=e=>Rt.value=e??0,"onUpdate:screenPosition":r[20]||=e=>zt.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[77]||=N(`p`,{class:`screens-title`},`Билеты`,-1),l(M(z),{size:`small`,onClick:r[21]||=e=>Te.value=!0},{default:b(()=>[...r[76]||=[t(` Проверить билет `,-1)]]),_:1})]),_:1})]),_:1}),l(Z,null,{default:b(()=>[r[78]||=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,[Nr.value.length==0?(o(),j(`div`,Yn,` Вопросы дела не заданы или команды ещё не отвечали. `)):e(``,!0),(o(!0),j(D,null,i(Nr.value,e=>(o(),m(Z,{key:e.code},{default:b(()=>[N(`p`,Xn,P(e.code)+`: `+P(e.text),1),N(`p`,Zn,[r[79]||=t(` Правильный ответ:`,-1),r[80]||=N(`br`,null,null,-1),N(`span`,Qn,P(e.answer||`—`),1)]),(o(!0),j(D,null,i(Pr.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(Lr(t,e.code)||`—`),1),l(M(bt),{value:Fr.value[Ir(t.team?.ID,e.code)],"onUpdate:value":n=>Rr(Ir(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=>Hr(),disabled:Nr.value.length==0},{default:b(()=>[...r[81]||=[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`])])]),ot.value?(o(),m(M(R),{key:0,show:ut.value,"onUpdate:show":r[24]||=e=>ut.value=e,"mask-closable":!J.value,"close-on-esc":!J.value},{default:b(()=>[l(M(I),{class:`reset-local-mode-modal`,bordered:!1,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`reset-local-mode-title`,"aria-describedby":`reset-local-mode-description`},{header:b(()=>[...r[82]||=[N(`span`,{id:`reset-local-mode-title`},`Сбросить локальный режим?`,-1)]]),footer:b(()=>[l(M(K),{justify:`end`},{default:b(()=>[l(M(z),{disabled:J.value,onClick:r[23]||=e=>ut.value=!1},{default:b(()=>[...r[83]||=[t(` Отмена `,-1)]]),_:1},8,[`disabled`]),l(M(z),{type:`warning`,loading:J.value,disabled:J.value,onClick:Cn},{default:b(()=>[...r[84]||=[t(` Вернуть в обычный режим `,-1)]]),_:1},8,[`loading`,`disabled`])]),_:1})]),default:b(()=>[r[85]||=N(`p`,{id:`reset-local-mode-description`},` Игра вернётся в обычный режим на сервере. Данные игры сохранятся. Локальная площадка продолжит работать отдельно; её результаты можно будет загрузить позже. `,-1)]),_:1})]),_:1},8,[`show`,`mask-closable`,`close-on-esc`])):e(``,!0),U.value?(o(),m(In,{key:1,show:Te.value,"onUpdate:show":r[25]||=e=>Te.value=e},null,8,[`show`])):e(``,!0),U.value&&M(je).environment===`venue`?(o(),m(Mn,{key:2,show:pe.value,"onUpdate:show":r[26]||=e=>pe.value=e,name:F.value.name,preview:ye.value,"preparation-error":be.value,"is-preparing":ve.value,"is-printing":me.value,onPrint:xr},null,8,[`show`,`name`,`preview`,`preparation-error`,`is-preparing`,`is-printing`])):e(``,!0),U.value?(o(),m(M(R),{key:3,show:T.value,"onUpdate:show":r[29]||=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[27]||=e=>T.value=!1},{default:b(()=>[...r[86]||=[t(` x `,-1)]]),_:1})]),footer:b(()=>[l(M(K),{justify:`end`},{default:b(()=>[l(M(z),{onClick:r[28]||=e=>fr(),ghost:``},{default:b(()=>[...r[89]||=[t(` Выдать `,-1)]]),_:1})]),_:1})]),default:b(()=>[l(M(G),{vertical:``},{default:b(()=>[r[87]||=N(`p`,null,`Команда`,-1),N(`h3`,null,P(Pn.value.name),1),r[88]||=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:4,show:re.value,"onUpdate:show":r[35]||=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[30]||=e=>re.value=!1},{default:b(()=>[...r[90]||=[t(` x `,-1)]]),_:1})]),footer:b(()=>[l(M(K),{justify:`end`},{default:b(()=>[l(M(z),{onClick:r[34]||=e=>dr(),disabled:A.value.length==0},{default:b(()=>[...r[91]||=[t(` Создать `,-1)]]),_:1},8,[`disabled`])]),_:1})]),default:b(()=>[l(M(G),{vertical:``},{default:b(()=>[l(M(H),{value:A.value,"onUpdate:value":r[31]||=e=>A.value=e,type:`text`,placeholder:`Три дебила`},null,8,[`value`]),l(M(H),{value:oe.value,"onUpdate:value":r[32]||=e=>oe.value=e,"input-props":{type:`email`,autocomplete:`email`},placeholder:`Почта капитана (необязательно)`,"aria-label":`Почта капитана (необязательно)`},null,8,[`value`]),l(M(bt),{value:se.value,"onUpdate:value":r[33]||=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:5,show:O.value,"onUpdate:show":r[39]||=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[36]||=e=>O.value=!1},{default:b(()=>[...r[92]||=[t(` x `,-1)]]),_:1})]),footer:b(()=>[l(M(K),{justify:`end`},{default:b(()=>[l(M(z),{onClick:r[38]||=e=>mr(),disabled:Fn.value!=cr.value.name},{default:b(()=>[...r[95]||=[t(` Удалить `,-1)]]),_:1},8,[`disabled`])]),_:1})]),default:b(()=>[l(M(G),{vertical:``},{default:b(()=>[N(`p`,null,[r[93]||=t(` Введите название команды `,-1),l(M(Ie),{class:`name-text`,strong:``},{default:b(()=>[t(P(cr.value.name),1)]),_:1}),r[94]||=t(` чтобы удалить его `,-1)]),l(M(H),{value:Fn.value,"onUpdate:value":r[37]||=e=>Fn.value=e,type:`text`,placeholder:`Три дебила`},null,8,[`value`])]),_:1})]),_:1})]),_:1},8,[`show`])):e(``,!0),U.value?(o(),m(M(R),{key:6,show:k.value,"onUpdate:show":r[43]||=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[40]||=e=>k.value=!1},{default:b(()=>[...r[96]||=[t(` x `,-1)]]),_:1})]),footer:b(()=>[l(M(K),{justify:`end`},{default:b(()=>[l(M(z),{onClick:r[42]||=e=>hr(),disabled:ce.value!=V.value.name},{default:b(()=>[...r[99]||=[t(` Удалить `,-1)]]),_:1},8,[`disabled`])]),_:1})]),default:b(()=>[l(M(G),{vertical:``},{default:b(()=>[N(`p`,null,[r[97]||=t(` Введите название игры `,-1),l(M(Ie),{class:`name-text`,strong:``},{default:b(()=>[t(P(V.value.name),1)]),_:1}),r[98]||=t(` чтобы удалить её `,-1)]),l(M(H),{value:ce.value,"onUpdate:value":r[41]||=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:7,show:le.value,"onUpdate:show":r[45]||=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[44]||=e=>le.value=!1},{default:b(()=>[...r[100]||=[t(` x `,-1)]]),_:1})]),footer:b(()=>[...r[101]||=[]]),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:8,show:kr.value,"onUpdate:show":r[47]||=e=>kr.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[46]||=e=>kr.value=!1},{default:b(()=>[...r[102]||=[t(` x `,-1)]]),_:1})]),default:b(()=>[l(M(K),{align:`center`,class:`reviews-summary`},{default:b(()=>[l(M(Ne),{value:jr.value,readonly:``,"allow-half":``},null,8,[`value`]),N(`span`,null,P(Mr.value?`${jr.value.toFixed(1)} · ${Mr.value}`:`Пока нет отзывов`),1)]),_:1}),Ar.value.length==0?(o(),j(`div`,or,`Отзывов пока нет.`)):e(``,!0),(o(!0),j(D,null,i(Ar.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=>Vr(n,`approved`)},{default:b(()=>[...r[103]||=[t(`Одобрить`,-1)]]),_:1},8,[`onClick`]),l(M(z),{type:`error`,ghost:``,onClick:e=>Vr(n,`rejected`)},{default:b(()=>[...r[104]||=[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=>Vr(n,`hidden`)},{default:b(()=>[...r[105]||=[t(`Скрыть`,-1)]]),_:1},8,[`onClick`])]),_:2},1024)):e(``,!0)]))),128))]),_:1})]),_:1},8,[`show`])):e(``,!0),l(Xe,{active:`games`})],64))}}),[[`__scopeId`,`data-v-85b26b06`]]),$=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{$ as default};