Files
prod/frontend/dist/assets/GameView-NKhn9iva.js
T
2026-10-23 00:47:15 +07:00

295 lines
133 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{Bn as e,Ct as t,Dt as n,Gt as r,H as i,Ht as a,It as o,Jt as s,K as c,Mt as l,Ot as u,Pt as d,Q as f,Qt as p,Rn as m,Rt as h,Sn as g,St as _,U as v,Vt as y,Wt as b,Xt as x,Y as S,Yt as C,_n as w,at as T,bn as E,bt as D,ct as O,d as k,f as A,g as j,ht as M,it as N,kt as P,l as ee,lt as te,mn as ne,nt as F,on as I,ot as re,p as ie,qt as L,rn as ae,sn as oe,st as se,tn as ce,tt as R,u as le,wt as z,xt as B,zn as ue}from"./client-CH0l_cyC.js";import{a as de,i as fe,o as pe,t as me}from"./Follower-4w-363-w.js";import{d as he}from"./utils-BB9JBSFe.js";import{d as ge,s as _e,t as ve,u as ye}from"./Card-DjcBu_v7.js";import{i as be,n as V,r as xe,t as Se}from"./ui-B_BA7Vji.js";import{i as Ce,n as H,w as we}from"./Suffix-CRTlP-Ws.js";import{t as Te}from"./Modal-mUfSTQ7o.js";import{t as Ee}from"./use-merged-state-D6emBXqb.js";import{n as U,t as W}from"./Button-BMgek43e.js";import{n as De,t as Oe}from"./Popover-BbM5D4o4.js";import{t as ke}from"./keep-BUS8yZfy.js";import{n as Ae,t as je}from"./Tabs-DG3n7kz0.js";import{t as Me}from"./Select-4Yv-WbCq.js";import{a as Ne,c as G,i as Pe,o as Fe,s as Ie,t as K}from"./_plugin-vue_export-helper-CMIJnODt.js";import{t as Le}from"./Upload-D_5GdpUQ.js";import{n as Re}from"./use-form-item-C11oxFRc.js";import{t as ze}from"./Add-G0WSV2_4.js";import{t as Be}from"./Input-DdwnIcOG.js";import{t as Ve}from"./Remove-DbovAgsO.js";import{t as q}from"./Alert-BzXxjK-u.js";import{t as J}from"./Space-Dy_tMixZ.js";import{t as Y}from"./Flex-C_BJmXKG.js";import{t as He}from"./Rate-Dofo0reF.js";import{t as Ue}from"./QrCode-BXmEXBUo.js";import{t as We}from"./Spin-Cu5Fhupb.js";import{t as Ge}from"./text-FgplMRKC.js";import{A as Ke,G as qe,H as Je,M as Ye,N as Xe,O as Ze,Z as Qe,at as $e,ct as et,dt as tt,ft as nt,h as rt,i as it,it as X,nt as at,o as ot,p as st,pt as ct,r as lt,rt as ut,u as dt}from"./index-BUAj036d.js";import{t as ft}from"./HeaderMenu-COgMoHOg.js";import{t as pt}from"./binary_client-Clrcir3F.js";import{n as mt,r as ht}from"./application-BB_PwA08.js";import{n as gt,t as _t}from"./datetime-BJNH0M1T.js";import{t as vt}from"./useDeviceContext-BGBv-MLg.js";var yt=P({name:`ChevronLeft`,render(){return l(`svg`,{viewBox:`0 0 16 16`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`},l(`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`}))}}),bt=P({name:`ChevronRight`,render(){return l(`svg`,{viewBox:`0 0 16 16`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`},l(`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`}))}}),Z=F(`collapse`,`width: 100%;`,[F(`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);
`,[T(`disabled`,[N(`header`,`cursor: not-allowed;`,[N(`header-main`,`
color: var(--n-title-text-color-disabled);
`),F(`collapse-item-arrow`,`
color: var(--n-arrow-color-disabled);
`)])]),F(`collapse-item`,`margin-left: 32px;`),R(`&:first-child`,`margin-top: 0;`),R(`&:first-child >`,[N(`header`,`padding-top: 0;`)]),T(`left-arrow-placement`,[N(`header`,[F(`collapse-item-arrow`,`margin-right: 4px;`)])]),T(`right-arrow-placement`,[N(`header`,[F(`collapse-item-arrow`,`margin-left: 4px;`)])]),N(`content-wrapper`,[N(`content-inner`,`padding-top: 16px;`),Xe({duration:`0.15s`})]),T(`active`,[N(`header`,[T(`active`,[F(`collapse-item-arrow`,`transform: rotate(90deg);`)])])]),R(`&:not(:first-child)`,`border-top: 1px solid var(--n-divider-color);`),re(`disabled`,[T(`trigger-area-main`,[N(`header`,[N(`header-main`,`cursor: pointer;`),F(`collapse-item-arrow`,`cursor: default;`)])]),T(`trigger-area-arrow`,[N(`header`,[F(`collapse-item-arrow`,`cursor: pointer;`)])]),T(`trigger-area-extra`,[N(`header`,[N(`header-extra`,`cursor: pointer;`)])])]),N(`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);
`,[N(`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);
`),N(`header-extra`,`
display: flex;
align-items: center;
transition: color .3s var(--n-bezier);
color: var(--n-text-color);
`),F(`collapse-item-arrow`,`
display: flex;
transition:
transform .15s var(--n-bezier),
color .3s var(--n-bezier);
font-size: 18px;
color: var(--n-arrow-color);
`)])])]),xt=Object.assign(Object.assign({},ie.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=S(`n-collapse`),Q=P({name:`Collapse`,props:xt,slots:Object,setup(e,{slots:t}){let{mergedClsPrefixRef:n,inlineThemeDisabled:r,mergedRtlRef:a}=v(e),o=w(e.defaultExpandedNames),c=Ee(D(()=>e.expandedNames),o),l=ie(`Collapse`,`-collapse`,Z,Ze,e,n);function u(t){let{"onUpdate:expandedNames":n,onUpdateExpandedNames:r,onExpandedNamesChange:i}=e;r&&G(r,t),n&&G(n,t),i&&G(i,t),o.value=t}function d(t){let{onItemHeaderClick:n}=e;n&&G(n,t)}function f(t,n,r){let{accordion:i}=e,{value:a}=c;if(i)t?(u([n]),d({name:n,expanded:!0,event:r})):(u([]),d({name:n,expanded:!1,event:r}));else if(!Array.isArray(a))u([n]),d({name:n,expanded:!0,event:r});else{let e=a.slice(),t=e.findIndex(e=>n===e);~t?(e.splice(t,1),u(e),d({name:n,expanded:!1,event:r})):(e.push(n),u(e),d({name:n,expanded:!0,event:r}))}}s(St,{props:e,mergedClsPrefixRef:n,expandedNamesRef:c,slots:t,toggleItem:f});let p=j(`Collapse`,a,n),m=D(()=>{let{common:{cubicBezierEaseInOut:e},self:{titleFontWeight:t,dividerColor:n,titlePadding:r,titleTextColor:i,titleTextColorDisabled:a,textColor:o,arrowColor:s,fontSize:c,titleFontSize:u,arrowColorDisabled:d,itemMargin:f}}=l.value;return{"--n-font-size":c,"--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}}),h=r?i(`collapse`,void 0,m,e):void 0;return{rtlEnabled:p,mergedTheme:l,mergedClsPrefix:n,cssVars:r?void 0:m,themeClass:h?.themeClass,onRender:h?.onRender}},render(){var e;return(e=this.onRender)==null||e.call(this),l(`div`,{class:[`${this.mergedClsPrefix}-collapse`,this.rtlEnabled&&`${this.mergedClsPrefix}-collapse--rtl`,this.themeClass],style:this.cssVars},this.$slots)}}),Ct=P({name:`CollapseItemContent`,props:{displayDirective:{type:String,required:!0},show:Boolean,clsPrefix:{type:String,required:!0}},setup(e){return{onceTrue:we(E(e,`show`))}},render(){return l(Je,null,{default:()=>{let{show:e,displayDirective:t,onceTrue:n,clsPrefix:r}=this,i=t===`show`&&n,a=l(`div`,{class:`${r}-collapse-item__content-wrapper`},l(`div`,{class:`${r}-collapse-item__content-inner`},this.$slots));return i?oe(a,[[tt,e]]):e?a:null}})}}),wt=P({name:`CollapseItem`,props:{title:String,name:[String,Number],disabled:Boolean,displayDirective:String},setup(e){let{mergedRtlRef:t}=v(e),n=$e(),r=X(()=>e.name??n),i=d(St);i||c(`collapse-item`,"`n-collapse-item` must be placed inside `n-collapse`.");let{expandedNamesRef:a,props:o,mergedClsPrefixRef:s,slots:l}=i,u=D(()=>{let{value:e}=a;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:j(`Collapse`,t,s),collapseSlots:l,randomName:n,mergedClsPrefix:s,collapsed:u,triggerAreas:E(o,`triggerAreas`),mergedDisplayDirective:D(()=>{let{displayDirective:t}=e;return t||o.displayDirective}),arrowPlacement:D(()=>o.arrowPlacement),handleClick(t){let n=`main`;he(t,`arrow`)&&(n=`arrow`),he(t,`extra`)&&(n=`extra`),o.triggerAreas.includes(n)&&i&&!e.disabled&&i.toggleItem(u.value,r.value,t)}}},render(){let{collapseSlots:e,$slots:t,arrowPlacement:n,collapsed:r,mergedDisplayDirective:i,mergedClsPrefix:a,disabled:o,triggerAreas:s}=this,c=Ne(t.header,{collapsed:r},()=>[this.title]),u=t[`header-extra`]||e[`header-extra`],d=t.arrow||e.arrow;return l(`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}`)]},l(`div`,{class:[`${a}-collapse-item__header`,!r&&`${a}-collapse-item__header--active`]},l(`div`,{class:`${a}-collapse-item__header-main`,onClick:this.handleClick},n===`right`&&c,l(`div`,{class:`${a}-collapse-item-arrow`,key:+!this.rtlEnabled,"data-arrow":!0},Ne(d,{collapsed:r},()=>[l(Qe,{clsPrefix:a},{default:()=>this.rtlEnabled?l(yt,null):l(bt,null)})])),n===`left`&&c),Ie(u,{collapsed:r},e=>l(`div`,{class:`${a}-collapse-item__header-extra`,onClick:this.handleClick,"data-extra":!0},e))),l(Ct,{clsPrefix:a,displayDirective:i,show:!r},t))}});function Tt(e){let{textColorDisabled:t}=e;return{iconColorDisabled:t}}var Et=A({name:`InputNumber`,common:k,peers:{Button:Ke,Input:Ye},self:Tt});function Dt(e){let{railColor:t,primaryColor:n,baseColor:r,cardColor:i,modalColor:a,popoverColor:o,borderRadius:s,fontSize:c,opacityDisabled:l}=e;return Object.assign(Object.assign({},st),{fontSize:c,markFontSize:c,railColor:t,railColorHover:t,fillColor:n,fillColorHover:n,opacityDisabled:l,handleColor:`#FFF`,dotColor:i,dotColorModal:a,dotColorPopover:o,handleBoxShadow:`0 1px 4px 0 rgba(0, 0, 0, 0.3), inset 0 0 1px 0 rgba(0, 0, 0, 0.05)`,handleBoxShadowHover:`0 1px 4px 0 rgba(0, 0, 0, 0.3), inset 0 0 1px 0 rgba(0, 0, 0, 0.05)`,handleBoxShadowActive:`0 1px 4px 0 rgba(0, 0, 0, 0.3), inset 0 0 1px 0 rgba(0, 0, 0, 0.05)`,handleBoxShadowFocus:`0 1px 4px 0 rgba(0, 0, 0, 0.3), inset 0 0 1px 0 rgba(0, 0, 0, 0.05)`,indicatorColor:`rgba(0, 0, 0, .85)`,indicatorBoxShadow:`0 2px 8px 0 rgba(0, 0, 0, 0.12)`,indicatorTextColor:r,indicatorBorderRadius:s,dotBorder:`2px solid ${t}`,dotBorderActive:`2px solid ${n}`,dotBoxShadow:``})}var Ot={name:`Slider`,common:k,self:Dt},kt=R([F(`input-number-suffix`,`
display: inline-block;
margin-right: 10px;
`),F(`input-number-prefix`,`
display: inline-block;
margin-left: 10px;
`)]);function At(e){return e==null||typeof e==`string`&&e.trim()===``?null:Number(e)}function jt(e){return e.includes(`.`)&&(/^(-)?\d+.*(\.|0)$/.test(e)||/^-?\d*$/.test(e))||e===`-`||e===`-0`}function Mt(e){return e==null?!0:!Number.isNaN(e)}function Nt(e,t){return typeof e==`number`?t===void 0?String(e):e.toFixed(t):``}function Pt(e){if(e===null)return null;if(typeof e==`number`)return e;{let t=Number(e);return Number.isNaN(t)?null:t}}var Ft=800,It=100,Lt=P({name:`InputNumber`,props:Object.assign(Object.assign({},ie.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}=v(e),a=ie(`InputNumber`,`-input-number`,kt,Et,e,n),{localeRef:o}=Ce(`InputNumber`),s=Re(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,d=w(null),p=w(null),m=w(null),g=w(e.defaultValue),_=Ee(E(e,`value`),g),y=w(``),b=e=>{let t=String(e).split(`.`)[1];return t?t.length:0},x=t=>{let n=[e.min,e.max,e.step,t].map(e=>e===void 0?0:b(e));return Math.max(...n)},S=X(()=>{let{placeholder:t}=e;return t===void 0?o.value.placeholder:t}),C=X(()=>{let t=Pt(e.step);return t===null||t===0?1:Math.abs(t)}),T=X(()=>{let t=Pt(e.min);return t===null?null:t}),O=X(()=>{let t=Pt(e.max);return t===null?null:t}),k=()=>{let{value:t}=_;if(Mt(t)){let{format:n,precision:r}=e;n?y.value=n(t):t===null||r===void 0||b(t)>r?y.value=Nt(t,void 0):y.value=Nt(t,r)}else y.value=String(t)};k();let A=t=>{let{value:n}=_;if(t===n){k();return}let{"onUpdate:value":r,onUpdateValue:i,onChange:a}=e,{nTriggerFormInput:o,nTriggerFormChange:c}=s;a&&G(a,t),i&&G(i,t),r&&G(r,t),g.value=t,o(),c()},M=({offset:t,doUpdateIfValid:n,fixPrecision:r,isInputing:i})=>{let{value:a}=y;if(i&&jt(a))return!1;let o=(e.parse||At)(a);if(o===null)return n&&A(null),null;if(Mt(o)){let a=b(o),{precision:s}=e;if(s!==void 0&&s<a&&!r)return!1;let c=Number.parseFloat((o+t).toFixed(s??x(o)));if(Mt(c)){let{value:t}=O,{value:r}=T;if(t!==null&&c>t){if(!n||i)return!1;c=t}if(r!==null&&c<r){if(!n||i)return!1;c=r}return e.validator&&!e.validator(c)?!1:(n&&A(c),c)}}return!1},N=X(()=>M({offset:0,doUpdateIfValid:!1,isInputing:!1,fixPrecision:!1})===!1),P=X(()=>{let{value:t}=_;if(e.validator&&t===null)return!1;let{value:n}=C;return M({offset:-n,doUpdateIfValid:!1,isInputing:!1,fixPrecision:!1})!==!1}),ee=X(()=>{let{value:t}=_;if(e.validator&&t===null)return!1;let{value:n}=C;return M({offset:+n,doUpdateIfValid:!1,isInputing:!1,fixPrecision:!1})!==!1});function te(t){let{onFocus:n}=e,{nTriggerFormFocus:r}=s;n&&G(n,t),r()}function ne(t){if(t.target===d.value?.wrapperElRef)return;let n=M({offset:0,doUpdateIfValid:!0,isInputing:!1,fixPrecision:!0});if(n!==!1){let e=d.value?.inputElRef;e&&(e.value=String(n||``)),_.value===n&&k()}else k();let{onBlur:r}=e,{nTriggerFormBlur:i}=s;r&&G(r,t),i(),h(()=>{k()})}function F(t){let{onClear:n}=e;n&&G(n,t)}function I(){let{value:t}=ee;if(!t){fe();return}let{value:n}=_;if(n===null)e.validator||A(se());else{let{value:e}=C;M({offset:e,doUpdateIfValid:!0,isInputing:!1,fixPrecision:!0})}}function re(){let{value:t}=P;if(!t){ue();return}let{value:n}=_;if(n===null)e.validator||A(se());else{let{value:e}=C;M({offset:-e,doUpdateIfValid:!0,isInputing:!1,fixPrecision:!0})}}let L=te,oe=ne;function se(){if(e.validator)return null;let{value:t}=T,{value:n}=O;return t===null?n===null?0:Math.min(0,n):Math.max(0,t)}function ce(e){F(e),A(null)}function R(e){var t;m.value?.$el.contains(e.target)&&e.preventDefault(),p.value?.$el.contains(e.target)&&e.preventDefault(),(t=d.value)==null||t.activate()}let le=null,z=null,B=null;function ue(){B&&=(window.clearTimeout(B),null),le&&=(window.clearInterval(le),null)}let de=null;function fe(){de&&=(window.clearTimeout(de),null),z&&=(window.clearInterval(z),null)}function pe(){ue(),B=window.setTimeout(()=>{le=window.setInterval(()=>{re()},It)},Ft),ge(`mouseup`,document,ue,{once:!0})}function me(){fe(),de=window.setTimeout(()=>{z=window.setInterval(()=>{I()},It)},Ft),ge(`mouseup`,document,fe,{once:!0})}let he=()=>{z||I()},_e=()=>{le||re()};function ve(t){var n;if(t.key===`Enter`){if(t.target===d.value?.wrapperElRef)return;M({offset:0,doUpdateIfValid:!0,isInputing:!1,fixPrecision:!0})!==!1&&((n=d.value)==null||n.deactivate())}else if(t.key===`ArrowUp`){if(!ee.value||e.keyboard.ArrowUp===!1)return;t.preventDefault(),M({offset:0,doUpdateIfValid:!0,isInputing:!1,fixPrecision:!0})!==!1&&I()}else if(t.key===`ArrowDown`){if(!P.value||e.keyboard.ArrowDown===!1)return;t.preventDefault(),M({offset:0,doUpdateIfValid:!0,isInputing:!1,fixPrecision:!0})!==!1&&re()}}function ye(t){y.value=t,e.updateValueOnInput&&!e.format&&!e.parse&&e.precision===void 0&&M({offset:0,doUpdateIfValid:!0,isInputing:!0,fixPrecision:!1})}ae(_,()=>{k()});let be={focus:()=>d.value?.focus(),blur:()=>d.value?.blur(),select:()=>d.value?.select()},V=j(`InputNumber`,r,n);return Object.assign(Object.assign({},be),{rtlEnabled:V,inputInstRef:d,minusButtonInstRef:p,addButtonInstRef:m,mergedClsPrefix:n,mergedBordered:t,uncontrolledValue:g,mergedValue:_,mergedPlaceholder:S,displayedValueInvalid:N,mergedSize:c,mergedDisabled:l,displayedValue:y,addable:ee,minusable:P,mergedStatus:u,handleFocus:L,handleBlur:oe,handleClear:ce,handleMouseDown:R,handleAddClick:he,handleMinusClick:_e,handleAddMousedown:me,handleMinusMousedown:pe,handleKeyDown:ve,handleUpdateDisplayedValue:ye,mergedTheme:a,inputThemeOverrides:{paddingSmall:`0 8px 0 10px`,paddingMedium:`0 8px 0 12px`,paddingLarge:`0 8px 0 14px`},buttonThemeOverrides:D(()=>{let{self:{iconColorDisabled:e}}=a.value,[t,n,r,i]=f(e);return{textColorTextDisabled:`rgb(${t}, ${n}, ${r})`,opacityDisabled:`${i}`}})})},render(){let{mergedClsPrefix:e,$slots:t}=this,n=()=>l(U,{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:()=>Pe(t[`minus-icon`],()=>[l(Qe,{clsPrefix:e},{default:()=>l(Ve,null)})])}),r=()=>l(U,{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:()=>Pe(t[`add-icon`],()=>[l(Qe,{clsPrefix:e},{default:()=>l(ze,null)})])});return l(`div`,{class:[`${e}-input-number`,this.rtlEnabled&&`${e}-input-number--rtl`]},l(Be,{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(),Fe(t.prefix,t=>t?l(`span`,{class:`${e}-input-number-prefix`},t):null)]:t.prefix?.call(t),suffix:()=>this.showButton?[Fe(t.suffix,t=>t?l(`span`,{class:`${e}-input-number-suffix`},t):null),this.buttonPlacement===`right`?n():null,r()]:t.suffix?.call(t)}))}}),Rt=S(`n-popconfirm`),zt={positiveText:String,negativeText:String,showIcon:{type:Boolean,default:!0},onPositiveClick:{type:Function,required:!0},onNegativeClick:{type:Function,required:!0}},Bt=_e(zt),Vt=P({name:`NPopconfirmPanel`,props:zt,setup(e){let{localeRef:t}=Ce(`Popconfirm`),{inlineThemeDisabled:n}=v(),{mergedClsPrefixRef:r,mergedThemeRef:a,props:o}=d(Rt),s=D(()=>{let{common:{cubicBezierEaseInOut:e},self:{fontSize:t,iconSize:n,iconColor:r}}=a.value;return{"--n-bezier":e,"--n-font-size":t,"--n-icon-size":n,"--n-icon-color":r}}),c=n?i(`popconfirm-panel`,void 0,s,o):void 0;return Object.assign(Object.assign({},Ce(`Popconfirm`)),{mergedClsPrefix:r,cssVars:n?void 0:s,localizedPositiveText:D(()=>e.positiveText||t.value.positiveText),localizedNegativeText:D(()=>e.negativeText||t.value.negativeText),positiveButtonProps:E(o,`positiveButtonProps`),negativeButtonProps:E(o,`negativeButtonProps`),handlePositiveClick(t){e.onPositiveClick(t)},handleNegativeClick(t){e.onNegativeClick(t)},themeClass:c?.themeClass,onRender:c?.onRender})},render(){var e;let{mergedClsPrefix:t,showIcon:n,$slots:r}=this,i=Pe(r.action,()=>this.negativeText===null&&this.positiveText===null?[]:[this.negativeText!==null&&l(W,Object.assign({size:`small`,onClick:this.handleNegativeClick},this.negativeButtonProps),{default:()=>this.localizedNegativeText}),this.positiveText!==null&&l(W,Object.assign({size:`small`,type:`primary`,onClick:this.handlePositiveClick},this.positiveButtonProps),{default:()=>this.localizedPositiveText})]);return(e=this.onRender)==null||e.call(this),l(`div`,{class:[`${t}-popconfirm__panel`,this.themeClass],style:this.cssVars},Fe(r.default,e=>n||e?l(`div`,{class:`${t}-popconfirm__body`},n?l(`div`,{class:`${t}-popconfirm__icon`},Pe(r.icon,()=>[l(Qe,{clsPrefix:t},{default:()=>l(qe,null)})])):null,e):null),i?l(`div`,{class:[`${t}-popconfirm__action`]},i):null)}}),Ht=F(`popconfirm`,[N(`body`,`
font-size: var(--n-font-size);
display: flex;
align-items: center;
flex-wrap: nowrap;
position: relative;
`,[N(`icon`,`
display: flex;
font-size: var(--n-icon-size);
color: var(--n-icon-color);
transition: color .3s var(--n-bezier);
margin: 0 8px 0 0;
`)]),N(`action`,`
display: flex;
justify-content: flex-end;
`,[R(`&:not(:first-child)`,`margin-top: 8px`),F(`button`,[R(`&:not(:last-child)`,`margin-right: 8px;`)])])]),Ut=P({name:`Popconfirm`,props:Object.assign(Object.assign(Object.assign({},ie.props),De),{positiveText:String,negativeText:String,showIcon:{type:Boolean,default:!0},trigger:{type:String,default:`click`},positiveButtonProps:Object,negativeButtonProps:Object,onPositiveClick:Function,onNegativeClick:Function}),slots:Object,__popover__:!0,setup(e){let{mergedClsPrefixRef:t}=v(),n=ie(`Popconfirm`,`-popconfirm`,Ht,rt,e,t),r=w(null);function i(t){if(!r.value?.getMergedShow())return;let{onPositiveClick:n,"onUpdate:show":i}=e;Promise.resolve(n?n(t):!0).then(e=>{var t;e!==!1&&((t=r.value)==null||t.setShow(!1),i&&G(i,!1))})}function a(t){if(!r.value?.getMergedShow())return;let{onNegativeClick:n,"onUpdate:show":i}=e;Promise.resolve(n?n(t):!0).then(e=>{var t;e!==!1&&((t=r.value)==null||t.setShow(!1),i&&G(i,!1))})}return s(Rt,{mergedThemeRef:n,mergedClsPrefixRef:t,props:e}),{setShow(e){var t;(t=r.value)==null||t.setShow(e)},syncPosition(){var e;(e=r.value)==null||e.syncPosition()},mergedTheme:n,popoverInstRef:r,handlePositiveClick:i,handleNegativeClick:a}},render(){let{$slots:e,$props:t,mergedTheme:n}=this;return l(Oe,Object.assign({},at(t,Bt),{theme:n.peers.Popover,themeOverrides:n.peerOverrides.Popover,internalExtraClass:[`popconfirm`],ref:`popoverInstRef`}),{trigger:e.trigger,default:()=>{let n=ke(t,Bt);return l(Vt,Object.assign({},n,{onPositiveClick:this.handlePositiveClick,onNegativeClick:this.handleNegativeClick}),e)}})}}),Wt=R([F(`slider`,`
display: block;
padding: calc((var(--n-handle-size) - var(--n-rail-height)) / 2) 0;
position: relative;
z-index: 0;
width: 100%;
cursor: pointer;
user-select: none;
-webkit-user-select: none;
`,[T(`reverse`,[F(`slider-handles`,[F(`slider-handle-wrapper`,`
transform: translate(50%, -50%);
`)]),F(`slider-dots`,[F(`slider-dot`,`
transform: translateX(50%, -50%);
`)]),T(`vertical`,[F(`slider-handles`,[F(`slider-handle-wrapper`,`
transform: translate(-50%, -50%);
`)]),F(`slider-marks`,[F(`slider-mark`,`
transform: translateY(calc(-50% + var(--n-dot-height) / 2));
`)]),F(`slider-dots`,[F(`slider-dot`,`
transform: translateX(-50%) translateY(0);
`)])])]),T(`vertical`,`
box-sizing: content-box;
padding: 0 calc((var(--n-handle-size) - var(--n-rail-height)) / 2);
width: var(--n-rail-width-vertical);
height: 100%;
`,[F(`slider-handles`,`
top: calc(var(--n-handle-size) / 2);
right: 0;
bottom: calc(var(--n-handle-size) / 2);
left: 0;
`,[F(`slider-handle-wrapper`,`
top: unset;
left: 50%;
transform: translate(-50%, 50%);
`)]),F(`slider-rail`,`
height: 100%;
`,[N(`fill`,`
top: unset;
right: 0;
bottom: unset;
left: 0;
`)]),T(`with-mark`,`
width: var(--n-rail-width-vertical);
margin: 0 32px 0 8px;
`),F(`slider-marks`,`
top: calc(var(--n-handle-size) / 2);
right: unset;
bottom: calc(var(--n-handle-size) / 2);
left: 22px;
font-size: var(--n-mark-font-size);
`,[F(`slider-mark`,`
transform: translateY(50%);
white-space: nowrap;
`)]),F(`slider-dots`,`
top: calc(var(--n-handle-size) / 2);
right: unset;
bottom: calc(var(--n-handle-size) / 2);
left: 50%;
`,[F(`slider-dot`,`
transform: translateX(-50%) translateY(50%);
`)])]),T(`disabled`,`
cursor: not-allowed;
opacity: var(--n-opacity-disabled);
`,[F(`slider-handle`,`
cursor: not-allowed;
`)]),T(`with-mark`,`
width: 100%;
margin: 8px 0 32px 0;
`),R(`&:hover`,[F(`slider-rail`,{backgroundColor:`var(--n-rail-color-hover)`},[N(`fill`,{backgroundColor:`var(--n-fill-color-hover)`})]),F(`slider-handle`,{boxShadow:`var(--n-handle-box-shadow-hover)`})]),T(`active`,[F(`slider-rail`,{backgroundColor:`var(--n-rail-color-hover)`},[N(`fill`,{backgroundColor:`var(--n-fill-color-hover)`})]),F(`slider-handle`,{boxShadow:`var(--n-handle-box-shadow-hover)`})]),F(`slider-marks`,`
position: absolute;
top: 18px;
left: calc(var(--n-handle-size) / 2);
right: calc(var(--n-handle-size) / 2);
`,[F(`slider-mark`,`
position: absolute;
transform: translateX(-50%);
white-space: nowrap;
`)]),F(`slider-rail`,`
width: 100%;
position: relative;
height: var(--n-rail-height);
background-color: var(--n-rail-color);
transition: background-color .3s var(--n-bezier);
border-radius: calc(var(--n-rail-height) / 2);
`,[N(`fill`,`
position: absolute;
top: 0;
bottom: 0;
border-radius: calc(var(--n-rail-height) / 2);
transition: background-color .3s var(--n-bezier);
background-color: var(--n-fill-color);
`)]),F(`slider-handles`,`
position: absolute;
top: 0;
right: calc(var(--n-handle-size) / 2);
bottom: 0;
left: calc(var(--n-handle-size) / 2);
`,[F(`slider-handle-wrapper`,`
outline: none;
position: absolute;
top: 50%;
transform: translate(-50%, -50%);
cursor: pointer;
display: flex;
`,[F(`slider-handle`,`
height: var(--n-handle-size);
width: var(--n-handle-size);
border-radius: 50%;
overflow: hidden;
transition: box-shadow .2s var(--n-bezier), background-color .3s var(--n-bezier);
background-color: var(--n-handle-color);
box-shadow: var(--n-handle-box-shadow);
`,[R(`&:hover`,`
box-shadow: var(--n-handle-box-shadow-hover);
`)]),R(`&:focus`,[F(`slider-handle`,`
box-shadow: var(--n-handle-box-shadow-focus);
`,[R(`&:hover`,`
box-shadow: var(--n-handle-box-shadow-active);
`)])])])]),F(`slider-dots`,`
position: absolute;
top: 50%;
left: calc(var(--n-handle-size) / 2);
right: calc(var(--n-handle-size) / 2);
`,[T(`transition-disabled`,[F(`slider-dot`,`transition: none;`)]),F(`slider-dot`,`
transition:
border-color .3s var(--n-bezier),
box-shadow .3s var(--n-bezier),
background-color .3s var(--n-bezier);
position: absolute;
transform: translate(-50%, -50%);
height: var(--n-dot-height);
width: var(--n-dot-width);
border-radius: var(--n-dot-border-radius);
overflow: hidden;
box-sizing: border-box;
border: var(--n-dot-border);
background-color: var(--n-dot-color);
`,[T(`active`,`border: var(--n-dot-border-active);`)])])]),F(`slider-handle-indicator`,`
font-size: var(--n-font-size);
padding: 6px 10px;
border-radius: var(--n-indicator-border-radius);
color: var(--n-indicator-text-color);
background-color: var(--n-indicator-color);
box-shadow: var(--n-indicator-box-shadow);
`,[H()]),F(`slider-handle-indicator`,`
font-size: var(--n-font-size);
padding: 6px 10px;
border-radius: var(--n-indicator-border-radius);
color: var(--n-indicator-text-color);
background-color: var(--n-indicator-color);
box-shadow: var(--n-indicator-box-shadow);
`,[T(`top`,`
margin-bottom: 12px;
`),T(`right`,`
margin-left: 12px;
`),T(`bottom`,`
margin-top: 12px;
`),T(`left`,`
margin-right: 12px;
`),H()]),O(F(`slider`,[F(`slider-dot`,`background-color: var(--n-dot-color-modal);`)])),te(F(`slider`,[F(`slider-dot`,`background-color: var(--n-dot-color-popover);`)]))]);function Gt(e){return window.TouchEvent&&e instanceof window.TouchEvent}function Kt(){let e=new Map;return a(()=>{e.clear()}),[e,t=>n=>{e.set(t,n)}]}var qt=0,Jt=P({name:`Slider`,props:Object.assign(Object.assign({},ie.props),{to:pe.propTo,defaultValue:{type:[Number,Array],default:0},marks:Object,disabled:{type:Boolean,default:void 0},formatTooltip:Function,keyboard:{type:Boolean,default:!0},min:{type:Number,default:0},max:{type:Number,default:100},step:{type:[Number,String],default:1},range:Boolean,value:[Number,Array],placement:String,showTooltip:{type:Boolean,default:void 0},tooltip:{type:Boolean,default:!0},vertical:Boolean,reverse:Boolean,"onUpdate:value":[Function,Array],onUpdateValue:[Function,Array],onDragstart:[Function],onDragend:[Function]}),slots:Object,setup(e){let{mergedClsPrefixRef:t,namespaceRef:n,inlineThemeDisabled:r}=v(e),a=ie(`Slider`,`-slider`,Wt,Ot,e,t),o=w(null),[s,c]=Kt(),[l,u]=Kt(),d=w(new Set),f=Re(e),{mergedDisabledRef:p}=f,m=D(()=>{let{step:t}=e;if(Number(t)<=0||t===`mark`)return 0;let n=t.toString(),r=0;return n.includes(`.`)&&(r=n.length-n.indexOf(`.`)-1),r}),g=w(e.defaultValue),_=Ee(E(e,`value`),g),b=D(()=>{let{value:t}=_;return(e.range?t:[t]).map(ce)}),x=D(()=>b.value.length>2),S=D(()=>e.placement===void 0?e.vertical?`right`:`top`:e.placement),C=D(()=>{let{marks:t}=e;return t?Object.keys(t).map(Number.parseFloat):null}),T=w(-1),O=w(-1),k=w(-1),A=w(!1),j=w(!1),M=D(()=>{let{vertical:t,reverse:n}=e;return t?n?`top`:`bottom`:n?`right`:`left`}),N=D(()=>{if(x.value)return;let t=b.value,n=R(e.range?Math.min(...t):e.min),r=R(e.range?Math.max(...t):t[0]),{value:i}=M;return e.vertical?{[i]:`${n}%`,height:`${r-n}%`}:{[i]:`${n}%`,width:`${r-n}%`}}),P=D(()=>{let t=[],{marks:n}=e;if(n){let r=b.value.slice();r.sort((e,t)=>e-t);let{value:i}=M,{value:a}=x,{range:o}=e,s=a?()=>!1:e=>o?e>=r[0]&&e<=r[r.length-1]:e<=r[0];for(let e of Object.keys(n)){let r=Number(e);t.push({active:s(r),key:r,label:n[e],style:{[i]:`${R(r)}%`}})}}return t});function ee(e,t){let n=R(e),{value:r}=M;return{[r]:`${n}%`,zIndex:+(t===T.value)}}function te(t){return e.showTooltip||k.value===t||T.value===t&&A.value}function ne(e){return A.value?!(T.value===e&&O.value===e):!0}function F(e){var t;~e&&(T.value=e,(t=s.get(e))==null||t.focus())}function I(){l.forEach((e,t)=>{te(t)&&e.syncPosition()})}function re(t){let{"onUpdate:value":n,onUpdateValue:r}=e,{nTriggerFormInput:i,nTriggerFormChange:a}=f;r&&G(r,t),n&&G(n,t),g.value=t,i(),a()}function L(t){let{range:n}=e;if(n){if(Array.isArray(t)){let{value:e}=b;t.join()!==e.join()&&re(t)}}else Array.isArray(t)||b.value[0]!==t&&re(t)}function oe(t,n){if(e.range){let e=b.value.slice();e.splice(n,1,t),L(e)}else L(t)}function se(t,n,r){let i=r!==void 0;r||=t-n>0?1:-1;let a=C.value||[],{step:o}=e;if(o===`mark`){let e=B(t,a.concat(n),i?r:void 0);return e?e.value:n}if(o<=0)return n;let{value:s}=m,c;if(i){let e=Number((n/o).toFixed(s)),t=Math.floor(e),i=e>t?t:t-1,l=e<t?t:t+1;c=B(n,[Number((i*o).toFixed(s)),Number((l*o).toFixed(s)),...a],r)}else{let e=z(t);c=B(t,[...a,e])}return c?ce(c.value):n}function ce(t){return Math.min(e.max,Math.max(e.min,t))}function R(t){let{max:n,min:r}=e;return(t-r)/(n-r)*100}function le(t){let{max:n,min:r}=e;return r+(n-r)*t}function z(t){let{step:n,min:r}=e;if(Number(n)<=0||n===`mark`)return t;let i=Math.round((t-r)/n)*n+r;return Number(i.toFixed(m.value))}function B(e,t=C.value,n){if(!t?.length)return null;let r=null,i=-1;for(;++i<t.length;){let a=t[i]-e,o=Math.abs(a);(n===void 0||a*n>0)&&(r===null||o<r.distance)&&(r={index:i,distance:o,value:t[i]})}return r}function ue(t){let n=o.value;if(!n)return;let r=Gt(t)?t.touches[0]:t,i=n.getBoundingClientRect(),a;return a=e.vertical?(i.bottom-r.clientY)/i.height:(r.clientX-i.left)/i.width,e.reverse&&(a=1-a),le(a)}function de(t){if(p.value||!e.keyboard)return;let{vertical:n,reverse:r}=e;switch(t.key){case`ArrowUp`:t.preventDefault(),fe(n&&r?-1:1);break;case`ArrowRight`:t.preventDefault(),fe(!n&&r?-1:1);break;case`ArrowDown`:t.preventDefault(),fe(n&&r?1:-1);break;case`ArrowLeft`:t.preventDefault(),fe(!n&&r?1:-1);break}}function fe(t){let n=T.value;if(n===-1)return;let{step:r}=e,i=b.value[n];oe(se(Number(r)<=0||r===`mark`?i:i+r*t,i,t>0?1:-1),n)}function me(t){if(p.value||!Gt(t)&&t.button!==qt)return;let n=ue(t);if(n===void 0)return;let r=b.value.slice(),i=e.range?B(n,r)?.index??-1:0;i!==-1&&(t.preventDefault(),F(i),he(),oe(se(n,b.value[i]),i))}function he(){A.value||(A.value=!0,e.onDragstart&&G(e.onDragstart),ge(`touchend`,document,be),ge(`mouseup`,document,be),ge(`touchmove`,document,ve),ge(`mousemove`,document,ve))}function _e(){A.value&&(A.value=!1,e.onDragend&&G(e.onDragend),ye(`touchend`,document,be),ye(`mouseup`,document,be),ye(`touchmove`,document,ve),ye(`mousemove`,document,ve))}function ve(e){let{value:t}=T;if(!A.value||t===-1){_e();return}let n=ue(e);n!==void 0&&oe(se(n,b.value[t]),t)}function be(){_e()}function V(e){T.value=e,p.value||(k.value=e)}function xe(e){T.value===e&&(T.value=-1,_e()),k.value===e&&(k.value=-1)}function Se(e){k.value=e}function Ce(e){k.value===e&&(k.value=-1)}ae(T,(e,t)=>void h(()=>O.value=t)),ae(_,()=>{if(e.marks){if(j.value)return;j.value=!0,h(()=>{j.value=!1})}h(I)}),y(()=>{_e()});let H=D(()=>{let{self:{markFontSize:e,railColor:t,railColorHover:n,fillColor:r,fillColorHover:i,handleColor:o,opacityDisabled:s,dotColor:c,dotColorModal:l,handleBoxShadow:u,handleBoxShadowHover:d,handleBoxShadowActive:f,handleBoxShadowFocus:p,dotBorder:m,dotBoxShadow:h,railHeight:g,railWidthVertical:_,handleSize:v,dotHeight:y,dotWidth:b,dotBorderRadius:x,fontSize:S,dotBorderActive:C,dotColorPopover:w},common:{cubicBezierEaseInOut:T}}=a.value;return{"--n-bezier":T,"--n-dot-border":m,"--n-dot-border-active":C,"--n-dot-border-radius":x,"--n-dot-box-shadow":h,"--n-dot-color":c,"--n-dot-color-modal":l,"--n-dot-color-popover":w,"--n-dot-height":y,"--n-dot-width":b,"--n-fill-color":r,"--n-fill-color-hover":i,"--n-font-size":S,"--n-handle-box-shadow":u,"--n-handle-box-shadow-active":f,"--n-handle-box-shadow-focus":p,"--n-handle-box-shadow-hover":d,"--n-handle-color":o,"--n-handle-size":v,"--n-opacity-disabled":s,"--n-rail-color":t,"--n-rail-color-hover":n,"--n-rail-height":g,"--n-rail-width-vertical":_,"--n-mark-font-size":e}}),we=r?i(`slider`,void 0,H,e):void 0,Te=D(()=>{let{self:{fontSize:e,indicatorColor:t,indicatorBoxShadow:n,indicatorTextColor:r,indicatorBorderRadius:i}}=a.value;return{"--n-font-size":e,"--n-indicator-border-radius":i,"--n-indicator-box-shadow":n,"--n-indicator-color":t,"--n-indicator-text-color":r}}),U=r?i(`slider-indicator`,void 0,Te,e):void 0;return{mergedClsPrefix:t,namespace:n,uncontrolledValue:g,mergedValue:_,mergedDisabled:p,mergedPlacement:S,isMounted:ut(),adjustedTo:pe(e),dotTransitionDisabled:j,markInfos:P,isShowTooltip:te,shouldKeepTooltipTransition:ne,handleRailRef:o,setHandleRefs:c,setFollowerRefs:u,fillStyle:N,getHandleStyle:ee,activeIndex:T,arrifiedValues:b,followerEnabledIndexSet:d,handleRailMouseDown:me,handleHandleFocus:V,handleHandleBlur:xe,handleHandleMouseEnter:Se,handleHandleMouseLeave:Ce,handleRailKeyDown:de,indicatorCssVars:r?void 0:Te,indicatorThemeClass:U?.themeClass,indicatorOnRender:U?.onRender,cssVars:r?void 0:H,themeClass:we?.themeClass,onRender:we?.onRender}},render(){var e;let{mergedClsPrefix:t,themeClass:n,formatTooltip:r}=this;return(e=this.onRender)==null||e.call(this),l(`div`,{class:[`${t}-slider`,n,{[`${t}-slider--disabled`]:this.mergedDisabled,[`${t}-slider--active`]:this.activeIndex!==-1,[`${t}-slider--with-mark`]:this.marks,[`${t}-slider--vertical`]:this.vertical,[`${t}-slider--reverse`]:this.reverse}],style:this.cssVars,onKeydown:this.handleRailKeyDown,onMousedown:this.handleRailMouseDown,onTouchstart:this.handleRailMouseDown},l(`div`,{class:`${t}-slider-rail`},l(`div`,{class:`${t}-slider-rail__fill`,style:this.fillStyle}),this.marks?l(`div`,{class:[`${t}-slider-dots`,this.dotTransitionDisabled&&`${t}-slider-dots--transition-disabled`]},this.markInfos.map(e=>l(`div`,{key:e.key,class:[`${t}-slider-dot`,{[`${t}-slider-dot--active`]:e.active}],style:e.style}))):null,l(`div`,{ref:`handleRailRef`,class:`${t}-slider-handles`},this.arrifiedValues.map((e,n)=>{let i=this.isShowTooltip(n);return l(de,null,{default:()=>[l(fe,null,{default:()=>l(`div`,{ref:this.setHandleRefs(n),class:`${t}-slider-handle-wrapper`,tabindex:this.mergedDisabled?-1:0,role:`slider`,"aria-valuenow":e,"aria-valuemin":this.min,"aria-valuemax":this.max,"aria-orientation":this.vertical?`vertical`:`horizontal`,"aria-disabled":this.disabled,style:this.getHandleStyle(e,n),onFocus:()=>{this.handleHandleFocus(n)},onBlur:()=>{this.handleHandleBlur(n)},onMouseenter:()=>{this.handleHandleMouseEnter(n)},onMouseleave:()=>{this.handleHandleMouseLeave(n)}},Pe(this.$slots.thumb,()=>[l(`div`,{class:`${t}-slider-handle`})]))}),this.tooltip&&l(me,{ref:this.setFollowerRefs(n),show:i,to:this.adjustedTo,enabled:this.showTooltip&&!this.range||this.followerEnabledIndexSet.has(n),teleportDisabled:this.adjustedTo===pe.tdkey,placement:this.mergedPlacement,containerClass:this.namespace},{default:()=>l(et,{name:`fade-in-scale-up-transition`,appear:this.isMounted,css:this.shouldKeepTooltipTransition(n),onEnter:()=>{this.followerEnabledIndexSet.add(n)},onAfterLeave:()=>{this.followerEnabledIndexSet.delete(n)}},{default:()=>{var n;return i?((n=this.indicatorOnRender)==null||n.call(this),l(`div`,{class:[`${t}-slider-handle-indicator`,this.indicatorThemeClass,`${t}-slider-handle-indicator--${this.mergedPlacement}`],style:this.indicatorCssVars},typeof r==`function`?r(e):e)):null}})})]})})),this.marks?l(`div`,{class:`${t}-slider-marks`},this.markInfos.map(e=>l(`div`,{key:e.key,class:`${t}-slider-mark`,style:e.style},typeof e.label==`function`?e.label():e.label))):null))}}),Yt=R([F(`table`,`
font-size: var(--n-font-size);
font-variant-numeric: tabular-nums;
line-height: var(--n-line-height);
width: 100%;
border-radius: var(--n-border-radius) var(--n-border-radius) 0 0;
text-align: left;
border-collapse: separate;
border-spacing: 0;
overflow: hidden;
background-color: var(--n-td-color);
border-color: var(--n-merged-border-color);
transition:
background-color .3s var(--n-bezier),
border-color .3s var(--n-bezier),
color .3s var(--n-bezier);
--n-merged-border-color: var(--n-border-color);
`,[R(`th`,`
white-space: nowrap;
transition:
background-color .3s var(--n-bezier),
border-color .3s var(--n-bezier),
color .3s var(--n-bezier);
text-align: inherit;
padding: var(--n-th-padding);
vertical-align: inherit;
text-transform: none;
border: 0px solid var(--n-merged-border-color);
font-weight: var(--n-th-font-weight);
color: var(--n-th-text-color);
background-color: var(--n-th-color);
border-bottom: 1px solid var(--n-merged-border-color);
border-right: 1px solid var(--n-merged-border-color);
`,[R(`&:last-child`,`
border-right: 0px solid var(--n-merged-border-color);
`)]),R(`td`,`
transition:
background-color .3s var(--n-bezier),
border-color .3s var(--n-bezier),
color .3s var(--n-bezier);
padding: var(--n-td-padding);
color: var(--n-td-text-color);
background-color: var(--n-td-color);
border: 0px solid var(--n-merged-border-color);
border-right: 1px solid var(--n-merged-border-color);
border-bottom: 1px solid var(--n-merged-border-color);
`,[R(`&:last-child`,`
border-right: 0px solid var(--n-merged-border-color);
`)]),T(`bordered`,`
border: 1px solid var(--n-merged-border-color);
border-radius: var(--n-border-radius);
`,[R(`tr`,[R(`&:last-child`,[R(`td`,`
border-bottom: 0 solid var(--n-merged-border-color);
`)])])]),T(`single-line`,[R(`th`,`
border-right: 0px solid var(--n-merged-border-color);
`),R(`td`,`
border-right: 0px solid var(--n-merged-border-color);
`)]),T(`single-column`,[R(`tr`,[R(`&:not(:last-child)`,[R(`td`,`
border-bottom: 0px solid var(--n-merged-border-color);
`)])])]),T(`striped`,[R(`tr:nth-of-type(even)`,[R(`td`,`background-color: var(--n-td-color-striped)`)])]),re(`bottom-bordered`,[R(`tr`,[R(`&:last-child`,[R(`td`,`
border-bottom: 0px solid var(--n-merged-border-color);
`)])])])]),O(F(`table`,`
background-color: var(--n-td-color-modal);
--n-merged-border-color: var(--n-border-color-modal);
`,[R(`th`,`
background-color: var(--n-th-color-modal);
`),R(`td`,`
background-color: var(--n-td-color-modal);
`)])),te(F(`table`,`
background-color: var(--n-td-color-popover);
--n-merged-border-color: var(--n-border-color-popover);
`,[R(`th`,`
background-color: var(--n-th-color-popover);
`),R(`td`,`
background-color: var(--n-td-color-popover);
`)]))]),Xt=P({name:`Table`,props:Object.assign(Object.assign({},ie.props),{bordered:{type:Boolean,default:!0},bottomBordered:{type:Boolean,default:!0},singleLine:{type:Boolean,default:!0},striped:Boolean,singleColumn:Boolean,size:String}),setup(e){let{mergedClsPrefixRef:t,inlineThemeDisabled:n,mergedRtlRef:r,mergedComponentPropsRef:a}=v(e),o=D(()=>e.size||a?.value?.Table?.size||`medium`),s=ie(`Table`,`-table`,Yt,dt,e,t),c=j(`Table`,r,t),l=D(()=>{let e=o.value,{self:{borderColor:t,tdColor:n,tdColorModal:r,tdColorPopover:i,thColor:a,thColorModal:c,thColorPopover:l,thTextColor:u,tdTextColor:d,borderRadius:f,thFontWeight:p,lineHeight:m,borderColorModal:h,borderColorPopover:g,tdColorStriped:_,tdColorStripedModal:v,tdColorStripedPopover:y,[se(`fontSize`,e)]:b,[se(`tdPadding`,e)]:x,[se(`thPadding`,e)]:S},common:{cubicBezierEaseInOut:C}}=s.value;return{"--n-bezier":C,"--n-td-color":n,"--n-td-color-modal":r,"--n-td-color-popover":i,"--n-td-text-color":d,"--n-border-color":t,"--n-border-color-modal":h,"--n-border-color-popover":g,"--n-border-radius":f,"--n-font-size":b,"--n-th-color":a,"--n-th-color-modal":c,"--n-th-color-popover":l,"--n-th-font-weight":p,"--n-th-text-color":u,"--n-line-height":m,"--n-td-padding":x,"--n-th-padding":S,"--n-td-color-striped":_,"--n-td-color-striped-modal":v,"--n-td-color-striped-popover":y}}),u=n?i(`table`,D(()=>o.value[0]),l,e):void 0;return{rtlEnabled:c,mergedClsPrefix:t,cssVars:n?void 0:l,themeClass:u?.themeClass,onRender:u?.onRender}},render(){var e;let{mergedClsPrefix:t}=this;return(e=this.onRender)==null||e.call(this),l(`table`,{class:[`${t}-table`,this.themeClass,{[`${t}-table--rtl`]:this.rtlEnabled,[`${t}-table--bottom-bordered`]:this.bottomBordered,[`${t}-table--bordered`]:this.bordered,[`${t}-table--single-line`]:this.singleLine,[`${t}-table--single-column`]:this.singleColumn,[`${t}-table--striped`]:this.striped}],style:this.cssVars},this.$slots)}}),Zt={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},Qt=P({name:`Edit`,render:function(e,t){return L(),z(`svg`,Zt,t[0]||=[B(`path`,{d:`M2 26h28v2H2z`,fill:`currentColor`},null,-1),B(`path`,{d:`M25.4 9c.8-.8.8-2 0-2.8l-3.6-3.6c-.8-.8-2-.8-2.8 0l-15 15V24h6.4l15-15zm-5-5L24 7.6l-3 3L17.4 7l3-3zM6 22v-3.6l10-10l3.6 3.6l-10 10H6z`,fill:`currentColor`},null,-1)])}}),$t={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},en=P({name:`Flag`,render:function(e,t){return L(),z(`svg`,$t,t[0]||=[B(`path`,{d:`M6 30H4V2h24l-5.8 9l5.8 9H6zm0-12h18.33l-4.53-7l4.53-7H6z`,fill:`currentColor`},null,-1)])}}),tn={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},nn=P({name:`Pause`,render:function(e,t){return L(),z(`svg`,tn,t[0]||=[B(`path`,{d:`M12 8v16H8V8h4m0-2H8a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h4a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2z`,fill:`currentColor`},null,-1),B(`path`,{d:`M24 8v16h-4V8h4m0-2h-4a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h4a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2z`,fill:`currentColor`},null,-1)])}}),rn={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},an=P({name:`Play`,render:function(e,t){return L(),z(`svg`,rn,t[0]||=[B(`path`,{d:`M7 28a1 1 0 0 1-1-1V5a1 1 0 0 1 1.482-.876l20 11a1 1 0 0 1 0 1.752l-20 11A1 1 0 0 1 7 28zM8 6.69V25.31L24.925 16z`,fill:`currentColor`},null,-1)])}}),on={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},sn=P({name:`Repeat`,render:function(e,t){return L(),z(`svg`,on,t[0]||=[B(`path`,{d:`M6 6h20.172l-3.586-3.586L24 1l6 6l-6 6l-1.414-1.414L26.172 8H6v7H4V8a2.002 2.002 0 0 1 2-2z`,fill:`currentColor`},null,-1),B(`path`,{d:`M9.414 20.414L5.828 24H26v-7h2v7a2.002 2.002 0 0 1-2 2H5.828l3.586 3.586L8 31l-6-6l6-6z`,fill:`currentColor`},null,-1)])}}),cn={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},ln=P({name:`Reset`,render:function(e,t){return L(),z(`svg`,cn,t[0]||=[B(`path`,{d:`M18 28A12 12 0 1 0 6 16v6.2l-3.6-3.6L1 20l6 6l6-6l-1.4-1.4L8 22.2V16a10 10 0 1 1 10 10z`,fill:`currentColor`},null,-1)])}}),un={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},dn=P({name:`Stop`,render:function(e,t){return L(),z(`svg`,un,t[0]||=[B(`path`,{d:`M24 8v16H8V8h16m0-2H8a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2z`,fill:`currentColor`},null,-1)])}}),fn={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},pn=P({name:`Trophy`,render:function(e,t){return L(),z(`svg`,fn,t[0]||=[B(`path`,{d:`M26 7h-2V6a2.002 2.002 0 0 0-2-2H10a2.002 2.002 0 0 0-2 2v1H6a2.002 2.002 0 0 0-2 2v3a4.005 4.005 0 0 0 4 4h.322A8.169 8.169 0 0 0 15 21.934V26h-5v2h12v-2h-5v-4.069A7.966 7.966 0 0 0 23.74 16H24a4.005 4.005 0 0 0 4-4V9a2.002 2.002 0 0 0-2-2zM8 14a2.002 2.002 0 0 1-2-2V9h2zm14 0a6 6 0 0 1-6.186 5.997A6.2 6.2 0 0 1 10 13.707V6h12zm4-2a2.002 2.002 0 0 1-2 2V9h2z`,fill:`currentColor`},null,-1)])}}),mn=`/assets/icq-uh-oh-DjThHNEb.wav`,$=K(P({__name:`UiBlock`,props:{tag:{default:`div`}},setup(e){return(t,n)=>(L(),_(p(e.tag),{class:`ui-block`},{default:I(()=>[x(t.$slots,`default`,{},void 0,!0)]),_:3}))}}),[[`__scopeId`,`data-v-80193f22`]]),hn=[`onPointerdown`],gn=[`onPointerdown`],_n={key:2},vn=[`onClick`],yn=20,bn=K(P({__name:`GameMapPanel`,props:{mapItems:{},teams:{}},emits:[`saveItem`,`dragging`,`giveApplication`],setup(r,{emit:i}){let a=r,o=i,s=w(1),c=w({x:0,y:0}),l=w(),d=D(()=>new Map(a.teams.filter(e=>e.applications?.length).map(e=>[e.ID,e]))),f,p;function h(e){let t=l.value;if(!t)return;let n=t.getBoundingClientRect();return{x:(e.clientX-n.left-t.clientLeft-c.value.x)/s.value,y:(e.clientY-n.top-t.clientTop-c.value.y)/s.value}}function v(e,t){let n=h(t);n&&(f={item:e,offsetX:n.x-(e.x||0),offsetY:n.y-(e.y||0)},o(`dragging`,!0),window.addEventListener(`pointermove`,b),window.addEventListener(`pointerup`,x,{once:!0}),window.addEventListener(`pointercancel`,x,{once:!0}))}function b(e){if(!f)return;let t=h(e);t&&(f.item.x=Math.round((t.x-f.offsetX)/yn)*yn,f.item.y=Math.round((t.y-f.offsetY)/yn)*yn)}function x(){if(!f)return;let e=f.item;f=void 0,window.removeEventListener(`pointermove`,b),window.removeEventListener(`pointerup`,x),window.removeEventListener(`pointercancel`,x),o(`dragging`,!1),o(`saveItem`,e)}function S(e){e.hidden=!e.hidden,o(`saveItem`,e,e.hidden)}function T(e){s.value=Math.min(2,Math.max(.5,Number((s.value+e).toFixed(2))))}function E(){s.value=1,c.value={x:0,y:0}}function O(e){e.button===0&&(p={startX:e.clientX,startY:e.clientY,offsetX:c.value.x,offsetY:c.value.y},window.addEventListener(`pointermove`,k),window.addEventListener(`pointerup`,A,{once:!0}))}function k(e){p&&(c.value={x:p.offsetX+e.clientX-p.startX,y:p.offsetY+e.clientY-p.startY})}function A(){p=void 0,window.removeEventListener(`pointermove`,k)}function j(e){e.preventDefault(),T(e.deltaY<0?.1:-.1)}return y(()=>{f&&o(`dragging`,!1),window.removeEventListener(`pointermove`,b),window.removeEventListener(`pointerup`,x),window.removeEventListener(`pointercancel`,x),window.removeEventListener(`pointermove`,k),window.removeEventListener(`pointerup`,A)}),(i,a)=>(L(),_($,null,{default:I(()=>[u(g(Y),{align:`center`,justify:`space-between`,class:`screen-header`},{default:I(()=>[a[6]||=B(`p`,{class:`screens-title`},`Карта помещения`,-1),u(g(J),null,{default:I(()=>[u(g(W),{size:`small`,onClick:a[0]||=e=>T(-.1)},{default:I(()=>[...a[3]||=[n(`−`,-1)]]),_:1}),u(g(Ge),null,{default:I(()=>[n(e(Math.round(s.value*100))+`%`,1)]),_:1}),u(g(W),{size:`small`,onClick:a[1]||=e=>T(.1)},{default:I(()=>[...a[4]||=[n(`+`,-1)]]),_:1}),u(g(W),{size:`small`,onClick:E},{default:I(()=>[...a[5]||=[n(`Сбросить`,-1)]]),_:1})]),_:1})]),_:1}),B(`div`,{ref_key:`mapField`,ref:l,class:`map-field`,onPointerdown:O,onWheel:j},[B(`div`,{class:`map-canvas`,style:ue({transform:`translate(${c.value.x}px, ${c.value.y}px) scale(${s.value})`})},[(L(!0),z(M,null,C(r.mapItems,r=>oe((L(),z(`div`,{key:`${r.kind}-${r.itemID}`,class:m([`map-item`,[r.kind===`screen`?`map-screen`:r.kind===`organizer_desk`?`map-organizer-desk`:`map-team`,{"map-team-needs-applications":r.kind===`team`&&d.value.has(r.itemID)}]]),style:ue({left:`${r.x||0}px`,top:`${r.y||0}px`}),onPointerdown:ct(e=>r.kind!==`team`&&v(r,e),[`stop`])},[r.kind===`team`?(L(),z(`div`,{key:0,class:`map-team-handle`,onPointerdown:ct(e=>v(r,e),[`stop`])},null,40,gn)):t(``,!0),B(`span`,null,e(r.label),1),r.kind===`team`&&d.value.has(r.itemID)?(L(),_(g(J),{key:1,class:`map-team-applications`,vertical:``},{default:I(()=>[(L(!0),z(M,null,C(d.value.get(r.itemID)?.applications,t=>(L(),_(g(W),{key:t.name,size:`small`,onClick:e=>o(`giveApplication`,d.value.get(r.itemID),t)},{default:I(()=>[n(` Выдать: `+e(t.name),1)]),_:2},1032,[`onClick`]))),128))]),_:2},1024)):t(``,!0),r.kind===`screen`?(L(),z(`small`,_n,e(r.status)+e(r.soundEnabled?` · звук`:``),1)):t(``,!0),B(`button`,{class:`map-item-hide`,type:`button`,onPointerdown:a[2]||=ct(()=>{},[`stop`]),onClick:ct(e=>S(r),[`stop`])},` × `,40,vn)],46,hn)),[[tt,!r.hidden]])),128))],4)],544),r.mapItems.some(e=>e.hidden)?(L(),_(g(J),{key:0,class:`map-hidden-items`},{default:I(()=>[(L(!0),z(M,null,C(r.mapItems.filter(e=>e.hidden),t=>(L(),_(g(W),{key:`hidden-${t.kind}-${t.itemID}`,size:`small`,onClick:e=>S(t)},{default:I(()=>[n(` Добавить `+e(t.label),1)]),_:2},1032,[`onClick`]))),128))]),_:1})):t(``,!0)]),_:1}))}}),[[`__scopeId`,`data-v-5e2f9943`]]),xn={key:0},Sn={key:2},Cn={class:`playlist-picker`},wn={key:0,role:`status`},Tn={class:`music-volume`},En={key:1},Dn={key:2},On=[`aria-current`],kn=K(P({__name:`GameMusicPlanPanel`,props:{playlists:{},music:{},isBusy:{type:Boolean}},emits:[`setMusic`,`createPlaylist`,`renamePlaylist`,`reorderTracks`,`deletePlaylist`,`uploadTrack`,`deleteTrack`],setup(r,{emit:i}){let a=r,o=i,s=w(!1),c=w(null),l=w(``),d=w(``),f=w(a.music?.volume??100),p=w(``),h=w([]),v=w([]),y=D(()=>a.playlists.find(e=>e.ID===c.value)),b=D(()=>a.playlists.map(e=>({label:e.name,value:e.ID}))),x=D(()=>JSON.stringify(h.value)!==JSON.stringify(v.value)),S=D(()=>l.value!==p.value),T=D(()=>!!y.value&&JSON.stringify(y.value.tracks?.map(e=>e.ID)??[])!==JSON.stringify(v.value)),E=D(()=>!!a.music?.playlist?.tracks?.length&&!a.isBusy),O=D(()=>a.music?.playback===`MUSIC_PLAYBACK_PLAYING`),k=D(()=>O.value?`Пауза`:a.music?.playback===`MUSIC_PLAYBACK_PAUSED`?`Продолжить`:`Старт`),A=D(()=>a.music?.playlist?.tracks?.[a.music.trackIndex??0]);function j(){y.value||(c.value=null),l.value=y.value?.name??``,p.value=l.value,h.value=y.value?.tracks?.flatMap(e=>e.ID==null?[]:[e.ID])??[],v.value=[...h.value]}function N(){c.value=a.music?.playlist?.ID??a.playlists[0]?.ID??null,j(),s.value=!0}function P(){(x.value||S.value)&&!window.confirm(`Отменить несохранённые изменения плейлиста?`)||(j(),s.value=!1)}function ee(e,t){let n=e+t;if(n<0||n>=h.value.length)return;let[r]=h.value.splice(e,1);r!==void 0&&h.value.splice(n,0,r)}function te(e){c.value&&e.file.file&&o(`uploadTrack`,c.value,e.file.file)}function ne(e){e!==(a.music?.trackIndex??0)&&o(`setMusic`,{trackIndex:e,positionMs:0})}return ae(()=>a.music?.volume,e=>{f.value=e??100}),ae(c,j),ae(()=>a.playlists,(e,t)=>{if(!s.value)return;let n=e.find(e=>!t.some(t=>t.ID===e.ID));if(n&&a.isBusy&&n.name===d.value.trim()&&!x.value&&!S.value){c.value=n.ID??null,d.value=``,j();return}if(!y.value){if(x.value||S.value)return;c.value=null,j();return}(!S.value||l.value.trim()===y.value.name)&&(l.value=y.value.name??``,p.value=l.value);let r=y.value.tracks?.flatMap(e=>e.ID==null?[]:[e.ID])??[];(!x.value||JSON.stringify(r)===JSON.stringify(h.value))&&(h.value=r,v.value=[...r])}),(i,a)=>(L(),_($,{class:`music-panel`,"data-testid":`music-plan`},{default:I(()=>[u(g(J),{justify:`space-between`,align:`center`},{default:I(()=>[a[17]||=B(`h3`,null,`План музыки`,-1),s.value?(L(),_(g(W),{key:1,size:`small`,disabled:r.isBusy,onClick:P},{default:I(()=>[...a[16]||=[n(`Готово`,-1)]]),_:1},8,[`disabled`])):(L(),_(g(W),{key:0,size:`small`,square:``,"aria-label":`Редактировать музыку`,title:`Редактировать музыку`,disabled:r.isBusy,onClick:N},{default:I(()=>[u(g(V),{size:18},{default:I(()=>[u(g(Qt))]),_:1})]),_:1},8,[`disabled`]))]),_:1}),s.value?(L(),_(g(J),{key:0,vertical:``,class:`music-content`,"data-testid":`music-editor`},{default:I(()=>[u(g(J),{wrap:!1},{default:I(()=>[u(g(Be),{value:d.value,"onUpdate:value":a[0]||=e=>d.value=e,placeholder:`Новый плейлист`,"aria-label":`Название нового плейлиста`,disabled:r.isBusy},null,8,[`value`,`disabled`]),u(g(W),{disabled:r.isBusy||!d.value.trim(),onClick:a[1]||=e=>o(`createPlaylist`,d.value.trim())},{default:I(()=>[...a[18]||=[n(`Создать`,-1)]]),_:1},8,[`disabled`])]),_:1}),u(g(Me),{value:c.value,"onUpdate:value":a[2]||=e=>c.value=e,options:b.value,placeholder:`Плейлист для редактирования`,disabled:r.isBusy||x.value||S.value,"input-props":{"aria-label":`Плейлист для редактирования`}},null,8,[`value`,`options`,`disabled`]),r.playlists.length?t(``,!0):(L(),z(`p`,xn,`Плейлистов пока нет.`)),c.value&&!y.value?(L(),_(g(q),{key:1,type:`warning`},{default:I(()=>[a[20]||=n(` Плейлист удалён на сервере. Несохранённый черновик сохранён до отмены. `,-1),u(g(W),{size:`small`,disabled:r.isBusy,onClick:j},{default:I(()=>[...a[19]||=[n(`Загрузить актуальный список`,-1)]]),_:1},8,[`disabled`])]),_:1})):t(``,!0),y.value&&c.value?(L(),z(M,{key:2},[a[31]||=B(`label`,{for:`music-playlist-name`},`Название плейлиста`,-1),u(g(Be),{value:l.value,"onUpdate:value":a[3]||=e=>l.value=e,disabled:r.isBusy,"input-props":{id:`music-playlist-name`}},null,8,[`value`,`disabled`]),u(g(J),null,{default:I(()=>[u(g(W),{size:`small`,disabled:r.isBusy||!l.value.trim()||!S.value,onClick:a[4]||=e=>o(`renamePlaylist`,c.value,l.value.trim())},{default:I(()=>[...a[21]||=[n(`Сохранить название`,-1)]]),_:1},8,[`disabled`]),u(g(Le),{accept:`.mp3,audio/mpeg`,"default-upload":!1,"show-file-list":!1,disabled:r.isBusy||x.value||T.value,onChange:te},{default:I(()=>[u(g(W),{size:`small`,disabled:r.isBusy||x.value||T.value},{default:I(()=>[...a[22]||=[n(`Добавить MP3`,-1)]]),_:1},8,[`disabled`])]),_:1},8,[`disabled`]),u(g(W),{size:`small`,disabled:r.isBusy||x.value||T.value||!h.value.length,onClick:a[5]||=e=>o(`setMusic`,{playlistID:c.value??void 0,trackIndex:0,positionMs:0,playback:`MUSIC_PLAYBACK_STOPPED`})},{default:I(()=>[...a[23]||=[n(`Использовать в игре`,-1)]]),_:1},8,[`disabled`]),u(g(Ut),{onPositiveClick:a[6]||=e=>o(`deletePlaylist`,c.value)},{trigger:I(()=>[u(g(W),{size:`small`,type:`error`,ghost:``,disabled:r.isBusy||x.value||S.value},{default:I(()=>[...a[24]||=[n(`Удалить плейлист`,-1)]]),_:1},8,[`disabled`])]),default:I(()=>[n(` Удалить плейлист «`+e(y.value.name)+`»? `,1)]),_:1})]),_:1}),T.value?(L(),_(g(q),{key:0,type:`warning`},{default:I(()=>[...a[25]||=[n(`Порядок или состав треков изменился на сервере. Загрузите актуальный список перед сохранением.`,-1)]]),_:1})):t(``,!0),x.value||S.value||T.value?(L(),_(g(J),{key:1},{default:I(()=>[u(g(W),{size:`small`,disabled:r.isBusy||!x.value||T.value,onClick:a[7]||=e=>o(`reorderTracks`,c.value,[...h.value])},{default:I(()=>[...a[26]||=[n(`Сохранить порядок`,-1)]]),_:1},8,[`disabled`]),u(g(W),{size:`small`,disabled:r.isBusy,onClick:j},{default:I(()=>[n(e(T.value?`Загрузить актуальный список`:`Отменить изменения`),1)]),_:1},8,[`disabled`])]),_:1})):t(``,!0),h.value.length?t(``,!0):(L(),z(`p`,Sn,`Треков пока нет.`)),(L(!0),z(M,null,C(h.value,(t,i)=>(L(),z(`div`,{key:t,class:`track-row`},[B(`span`,null,e(i+1)+`. `+e(y.value.tracks?.find(e=>e.ID===t)?.name??`Трек удалён на сервере`),1),u(g(J),null,{default:I(()=>[u(g(W),{size:`small`,disabled:r.isBusy||T.value||i===0,"aria-label":`Поднять трек ${i+1}`,onClick:e=>ee(i,-1)},{default:I(()=>[...a[27]||=[n(`↑`,-1)]]),_:1},8,[`disabled`,`aria-label`,`onClick`]),u(g(W),{size:`small`,disabled:r.isBusy||T.value||i===h.value.length-1,"aria-label":`Опустить трек ${i+1}`,onClick:e=>ee(i,1)},{default:I(()=>[...a[28]||=[n(`↓`,-1)]]),_:1},8,[`disabled`,`aria-label`,`onClick`]),u(g(Ut),{onPositiveClick:e=>o(`deleteTrack`,c.value,t)},{trigger:I(()=>[u(g(W),{size:`small`,type:`error`,ghost:``,disabled:r.isBusy||x.value||T.value},{default:I(()=>[...a[29]||=[n(`Удалить`,-1)]]),_:1},8,[`disabled`])]),default:I(()=>[a[30]||=n(` Удалить трек из плейлиста? `,-1)]),_:1},8,[`onPositiveClick`])]),_:2},1024)]))),128))],64)):t(``,!0)]),_:1})):(L(),_(g(J),{key:1,vertical:``,class:`music-content`},{default:I(()=>[B(`div`,Cn,[u(g(Me),{value:r.music?.playlist?.ID,options:b.value,clearable:``,placeholder:`Выберите плейлист`,disabled:r.isBusy,"input-props":{"aria-label":`Музыка игры`},"onUpdate:value":a[8]||=e=>o(`setMusic`,{playlistID:e??0,trackIndex:0,positionMs:0,playback:`MUSIC_PLAYBACK_STOPPED`})},null,8,[`value`,`options`,`disabled`]),u(g(W),{square:``,type:r.music?.loop?`primary`:`default`,"aria-pressed":r.music?.loop??!1,"aria-label":`Повторять плейлист`,title:`Повторять плейлист`,disabled:r.isBusy,onClick:a[9]||=e=>o(`setMusic`,{loop:!r.music?.loop})},{default:I(()=>[u(g(V),{size:18},{default:I(()=>[u(g(sn))]),_:1})]),_:1},8,[`type`,`aria-pressed`,`disabled`])]),A.value?(L(),z(`p`,wn,e(A.value.name)+` · `+e(O.value?`Играет`:r.music?.playback===`MUSIC_PLAYBACK_PAUSED`?`Пауза`:`Остановлено`),1)):t(``,!0),u(g(J),{align:`center`},{default:I(()=>[u(g(W),{square:``,"aria-label":k.value,title:k.value,disabled:!E.value,onClick:a[10]||=e=>o(`setMusic`,{playback:O.value?`MUSIC_PLAYBACK_PAUSED`:`MUSIC_PLAYBACK_PLAYING`})},{default:I(()=>[u(g(V),{size:18},{default:I(()=>[O.value?(L(),_(g(nn),{key:0})):(L(),_(g(an),{key:1}))]),_:1})]),_:1},8,[`aria-label`,`title`,`disabled`]),u(g(W),{square:``,"aria-label":`Стоп`,title:`Стоп`,disabled:!E.value,onClick:a[11]||=e=>o(`setMusic`,{playback:`MUSIC_PLAYBACK_STOPPED`,positionMs:0})},{default:I(()=>[u(g(V),{size:18},{default:I(()=>[u(g(dn))]),_:1})]),_:1},8,[`disabled`]),u(g(W),{square:``,"aria-label":`Сначала`,title:`Сначала`,disabled:!E.value,onClick:a[12]||=e=>o(`setMusic`,{playback:`MUSIC_PLAYBACK_PLAYING`,positionMs:0})},{default:I(()=>[u(g(V),{size:18},{default:I(()=>[u(g(ln))]),_:1})]),_:1},8,[`disabled`]),B(`div`,Tn,[a[32]||=B(`span`,{id:`music-volume-label`},`Громкость`,-1),u(g(Jt),{value:f.value,min:0,max:100,disabled:r.isBusy||!r.music?.playlist,"aria-labelledby":`music-volume-label`,"format-tooltip":e=>`${e}%`,"onUpdate:value":a[13]||=e=>f.value=e,onDragend:a[14]||=e=>o(`setMusic`,{volume:f.value}),onKeyup:a[15]||=e=>o(`setMusic`,{volume:f.value})},null,8,[`value`,`disabled`,`format-tooltip`])])]),_:1}),r.music?.playlist?r.music.playlist.tracks?.length?t(``,!0):(L(),z(`p`,Dn,`В плейлисте пока нет треков.`)):(L(),z(`p`,En,`Выберите плейлист для игры.`)),(L(!0),z(M,null,C(r.music?.playlist?.tracks??[],(t,i)=>(L(),z(`div`,{key:t.ID,class:m([`track-row`,{"track-current":i===(r.music?.trackIndex??0)}]),"aria-current":i===(r.music?.trackIndex??0)?`true`:void 0},[B(`span`,null,e(i+1)+`. `+e(t.name),1),u(g(W),{size:`small`,disabled:r.isBusy||i===(r.music?.trackIndex??0),onClick:e=>ne(i)},{default:I(()=>[n(e(i===(r.music?.trackIndex??0)?`Выбран`:`Выбрать`),1)]),_:2},1032,[`disabled`,`onClick`])],10,On))),128))]),_:1}))]),_:1}))}}),[[`__scopeId`,`data-v-90299531`]]),An={key:0,class:`timer-preview`},jn={key:1,class:`preview-message`},Mn=[`src`,`autoplay`,`loop`],Nn={key:3,class:`preview-message`},Pn={key:4,class:`preview-message`},Fn={key:5,class:`preview-results`},In=[`src`],Ln={key:7,class:`preview-message`},Rn=K(P({__name:`ScreenPreview`,props:{state:{},questions:{},teams:{},isThumbnail:{type:Boolean}},setup(t){let n=t,i=w(Date.now()),a=w(0),o=w(Date.now()),s=w(),c=null,l=D(()=>{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}")`}:{}}),u=D(()=>n.state.timerState===`SCREEN_TIMER_STATE_RUNNING`?Math.max(0,a.value-(i.value-o.value)/1e3):a.value),d=D(()=>{let e=Math.floor(u.value/60),t=Math.floor(u.value%60);return`${String(e).padStart(2,`0`)}:${String(t).padStart(2,`0`)}`}),f=D(()=>ht(n.state.introAudio)),p=D(()=>ht(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`&&s.value===n.state.timerState){let t=Math.max(0,a.value-(Date.now()-o.value)/1e3);if(Math.abs(e-t)<=.5)return}a.value=e,o.value=Date.now(),s.value=n.state.timerState},{immediate:!0}),b(()=>{n.isThumbnail||(c=window.setInterval(()=>{i.value=Date.now()},250))}),r(()=>{c!=null&&window.clearInterval(c)}),(n,r)=>(L(),z(`div`,{class:m([`screen-preview`,{"screen-thumbnail":t.isThumbnail}]),style:ue(l.value)},[t.state.mode===`SCREEN_MODE_TIMER`?(L(),z(`div`,An,[B(`h2`,null,e(t.state.timerLabel||`Перерыв`),1),B(`strong`,null,e(d.value),1)])):t.state.mode===`SCREEN_MODE_INTRO`?(L(),z(`div`,jn,e(f.value?`Аудиозапись введения`:`Введение не задано`),1)):t.state.mode===`SCREEN_MODE_CONCLUSION`&&p.value?(L(),z(`video`,{key:2,src:p.value,autoplay:!t.isThumbnail,preload:`metadata`,class:`preview-video`,loop:!t.isThumbnail,muted:``,playsinline:``},null,8,Mn)):t.state.mode===`SCREEN_MODE_CONCLUSION`?(L(),z(`div`,Nn,` Видео закрывашки не задано `)):t.state.mode===`SCREEN_MODE_TEXT`?(L(),z(`div`,Pn,e(t.state.text),1)):t.state.mode===`SCREEN_MODE_RESULTS`?(L(),z(`div`,Fn,[r[4]||=B(`h2`,null,`Результаты`,-1),B(`table`,null,[B(`thead`,null,[B(`tr`,null,[r[0]||=B(`th`,null,`Место`,-1),r[1]||=B(`th`,null,`Команда`,-1),(L(!0),z(M,null,C(t.questions,t=>(L(),z(`th`,{key:t.code},e(t.code),1))),128)),r[2]||=B(`th`,null,`Сумма`,-1),r[3]||=B(`th`,null,`Ходы`,-1)])]),B(`tbody`,null,[(L(!0),z(M,null,C(t.teams,n=>(L(),z(`tr`,{key:n.team?.ID},[B(`td`,null,e(n.place),1),B(`td`,null,e(n.team?.name),1),(L(!0),z(M,null,C(t.questions,t=>(L(),z(`td`,{key:t.code},e(n.answers?.find(e=>e.questionCode===t.code)?.score??0),1))),128)),B(`td`,null,e(n.totalScore),1),B(`td`,null,e(n.actionsCount),1)]))),128))])])])):t.state.coverImage?(L(),z(`img`,{key:6,src:t.state.coverImage,alt:`Обложка дела`,class:`preview-cover`},null,8,In)):(L(),z(`div`,Ln,e(t.state.gameName||`Обложка не задана`),1))],6))}}),[[`__scopeId`,`data-v-9ae1bd90`]]),zn={key:0},Bn={class:`plan-steps`},Vn=[`aria-current`],Hn={class:`step-preview`,"aria-hidden":`true`},Un={class:`step-content`},Wn=[`for`],Gn=[`for`],Kn={class:`step-heading`},qn=[`id`],Jn=K(P({__name:`GameScreenPlanPanel`,props:{screens:{},previewQuestions:{},previewTeams:{},screenPlan:{},screenPlanDraft:{},screenPlanSaving:{type:Boolean},screenPlanMode:{},screenVolume:{},isBusy:{type:Boolean}},emits:[`addStep`,`edit`,`cancel`,`removeStep`,`moveStep`,`dirty`,`clearPlan`,`save`,`setStep`,`command`,`update:screenVolume`],setup(r,{emit:i}){let a=r,o=i,s=D(()=>a.screens.find(e=>e.status===`connected`)||a.screens[0]),c=D(()=>s.value?.mode===`SCREEN_MODE_INTRO`?!!s.value.introAudio:!!s.value?.conclusionVideo),l=D(()=>a.screens.some(e=>e.status===`connected`)),d=D(()=>a.screenPlanSaving||a.isBusy),f=D(()=>a.screenPlanMode===`edit`?a.screenPlanDraft:a.screenPlan?.steps??[]),h=D(()=>s.value?.timerState===`SCREEN_TIMER_STATE_RUNNING`?{label:`Пауза`,command:`SCREEN_COMMAND_TIMER_PAUSE`,icon:nn}:s.value?.timerState===`SCREEN_TIMER_STATE_PAUSED`?{label:`Продолжить`,command:`SCREEN_COMMAND_TIMER_RESUME`,icon:an}:{label:`Старт`,command:`SCREEN_COMMAND_TIMER_START`,icon:an}),v=[{label:`Запуск`,command:`SCREEN_COMMAND_PLAY`,icon:an},{label:`Пауза`,command:`SCREEN_COMMAND_PAUSE`,icon:nn},{label:`Продолжить`,command:`SCREEN_COMMAND_RESUME`,icon:an},{label:`Стоп`,command:`SCREEN_COMMAND_STOP`,icon:dn},{label:`Сначала`,command:`SCREEN_COMMAND_REPLAY`,icon:ln}],y=[{label:`Обложка`,value:`SCREEN_MODE_COVER`},{label:`Введение`,value:`SCREEN_MODE_INTRO`},{label:`Закрывашка`,value:`SCREEN_MODE_CONCLUSION`},{label:`Результаты`,value:`SCREEN_MODE_RESULTS`},{label:`Таймер`,value:`SCREEN_MODE_TIMER`},{label:`Текст`,value:`SCREEN_MODE_TEXT`}];function b(e){return{...s.value,...e,timerState:`SCREEN_TIMER_STATE_STOPPED`,timerRemainingSeconds:e.timerDurationSeconds}}return(i,a)=>(L(),_($,{class:`screen-plan-panel`,"data-testid":`screen-plan`},{default:I(()=>[u(g(J),{align:`center`,justify:`space-between`},{default:I(()=>[a[14]||=B(`h3`,null,`План экранов`,-1),u(g(J),null,{default:I(()=>[r.screenPlanMode===`use`&&!r.screenPlan?(L(),_(g(W),{key:0,size:`small`,disabled:d.value,onClick:a[0]||=e=>o(`addStep`)},{default:I(()=>[...a[11]||=[n(`Создать план`,-1)]]),_:1},8,[`disabled`])):r.screenPlanMode===`use`?(L(),_(g(W),{key:1,size:`small`,square:``,"aria-label":`Редактировать план экранов`,title:`Редактировать план экранов`,disabled:d.value,onClick:a[1]||=e=>o(`edit`)},{default:I(()=>[u(g(V),{size:18},{default:I(()=>[u(g(Qt))]),_:1})]),_:1},8,[`disabled`])):(L(),z(M,{key:2},[u(g(W),{size:`small`,disabled:d.value,onClick:a[2]||=e=>o(`cancel`)},{default:I(()=>[...a[12]||=[n(`Отменить`,-1)]]),_:1},8,[`disabled`]),u(g(W),{size:`small`,type:`primary`,loading:r.screenPlanSaving,disabled:d.value,onClick:a[3]||=e=>o(`save`)},{default:I(()=>[...a[13]||=[n(`Сохранить план`,-1)]]),_:1},8,[`loading`,`disabled`])],64))]),_:1})]),_:1}),f.value.length?t(``,!0):(L(),z(`p`,zn,e(r.screenPlanMode===`edit`?`Добавьте шаги или сохраните пустой план для удаления.`:`План экранов ещё не создан.`),1)),B(`div`,Bn,[(L(!0),z(M,null,C(f.value,(i,s)=>(L(),z(`div`,{key:s,class:m([`plan-step`,{"plan-step-current":r.screenPlanMode===`use`&&r.screenPlan?.currentStep===s}]),"aria-current":r.screenPlanMode===`use`&&r.screenPlan?.currentStep===s?`step`:void 0},[B(`div`,Hn,[u(Rn,{state:b(i),questions:r.previewQuestions,teams:r.previewTeams,"is-thumbnail":``},null,8,[`state`,`questions`,`teams`])]),B(`div`,Un,[r.screenPlanMode===`edit`?(L(),z(M,{key:0},[u(g(J),{align:`center`},{default:I(()=>[B(`span`,null,e(s+1),1),u(g(W),{size:`small`,disabled:d.value||s===0,"aria-label":`Поднять шаг ${s+1}`,onClick:e=>o(`moveStep`,s,-1)},{default:I(()=>[...a[15]||=[n(`↑`,-1)]]),_:1},8,[`disabled`,`aria-label`,`onClick`]),u(g(W),{size:`small`,disabled:d.value||s===f.value.length-1,"aria-label":`Опустить шаг ${s+1}`,onClick:e=>o(`moveStep`,s,1)},{default:I(()=>[...a[16]||=[n(`↓`,-1)]]),_:1},8,[`disabled`,`aria-label`,`onClick`]),u(g(W),{size:`small`,type:`error`,ghost:``,disabled:d.value,onClick:e=>o(`removeStep`,s)},{default:I(()=>[...a[17]||=[n(`Удалить`,-1)]]),_:1},8,[`disabled`,`onClick`])]),_:2},1024),u(g(Me),{value:i.mode,"onUpdate:value":[e=>i.mode=e,a[4]||=e=>o(`dirty`)],options:y,disabled:d.value,"input-props":{"aria-label":`Режим шага ${s+1}`}},null,8,[`value`,`onUpdate:value`,`disabled`,`input-props`]),i.mode===`SCREEN_MODE_TEXT`?(L(),_(g(Be),{key:0,value:i.text,"onUpdate:value":[e=>i.text=e,a[5]||=e=>o(`dirty`)],type:`textarea`,placeholder:`Текст экрана`,disabled:d.value,"input-props":{"aria-label":`Текст шага ${s+1}`}},null,8,[`value`,`onUpdate:value`,`disabled`,`input-props`])):t(``,!0),i.mode===`SCREEN_MODE_TIMER`?(L(),z(M,{key:1},[B(`label`,{for:`timer-label-${s}`},`Надпись таймера`,8,Wn),u(g(Be),{value:i.timerLabel,"onUpdate:value":[e=>i.timerLabel=e,a[6]||=e=>o(`dirty`)],disabled:d.value,"input-props":{id:`timer-label-${s}`}},null,8,[`value`,`onUpdate:value`,`disabled`,`input-props`]),B(`label`,{for:`timer-duration-${s}`},`Длительность в секундах`,8,Gn),u(g(Lt),{value:i.timerDurationSeconds,"onUpdate:value":[e=>i.timerDurationSeconds=e,a[7]||=e=>o(`dirty`)],min:1,max:86400,disabled:d.value,"input-props":{id:`timer-duration-${s}`}},null,8,[`value`,`onUpdate:value`,`disabled`,`input-props`])],64)):t(``,!0)],64)):(L(),z(M,{key:1},[B(`div`,Kn,[B(`span`,null,[n(e(s+1)+`. `+e(y.find(e=>e.value===i.mode)?.label),1),i.mode===`SCREEN_MODE_TEXT`?(L(),z(M,{key:0},[n(`: `+e(i.text),1)],64)):t(``,!0),i.mode===`SCREEN_MODE_TIMER`?(L(),z(M,{key:1},[n(`: `+e(i.timerLabel)+` (`+e(i.timerDurationSeconds)+` с)`,1)],64)):t(``,!0)]),u(g(W),{size:`small`,disabled:d.value||r.screenPlan?.currentStep===s||!l.value,onClick:e=>o(`setStep`,s)},{default:I(()=>[n(e(r.screenPlan?.currentStep===s?`Показан`:`Показать`),1)]),_:2},1032,[`disabled`,`onClick`])]),r.screenPlan?.currentStep===s?(L(),z(M,{key:0},[i.mode===`SCREEN_MODE_TIMER`?(L(),_(g(J),{key:0},{default:I(()=>[u(g(W),{square:``,"aria-label":h.value.label,title:h.value.label,disabled:d.value||!l.value,onClick:e=>o(`command`,i.mode,h.value.command)},{default:I(()=>[u(g(V),{size:18},{default:I(()=>[(L(),_(p(h.value.icon)))]),_:1})]),_:1},8,[`aria-label`,`title`,`disabled`,`onClick`]),u(g(W),{square:``,"aria-label":`Сбросить таймер`,title:`Сбросить таймер`,disabled:d.value||!l.value,onClick:e=>o(`command`,i.mode,`SCREEN_COMMAND_TIMER_RESET`)},{default:I(()=>[u(g(V),{size:18},{default:I(()=>[u(g(ln))]),_:1})]),_:1},8,[`disabled`,`onClick`])]),_:2},1024)):i.mode===`SCREEN_MODE_INTRO`||i.mode===`SCREEN_MODE_CONCLUSION`?(L(),z(M,{key:1},[u(g(J),null,{default:I(()=>[(L(),z(M,null,C(v,e=>u(g(W),{key:e.command,square:``,"aria-label":e.label,title:e.label,disabled:d.value||!l.value||!c.value,onClick:t=>o(`command`,i.mode,e.command)},{default:I(()=>[u(g(V),{size:18},{default:I(()=>[(L(),_(p(e.icon)))]),_:2},1024)]),_:2},1032,[`aria-label`,`title`,`disabled`,`onClick`])),64))]),_:2},1024),B(`label`,{id:`main-volume-${s}`},`Громкость`,8,qn),u(g(Jt),{value:r.screenVolume,min:0,max:100,disabled:d.value||!l.value,"aria-labelledby":`main-volume-${s}`,"format-tooltip":e=>`${e}%`,"onUpdate:value":a[8]||=e=>o(`update:screenVolume`,e),onDragend:e=>o(`command`,i.mode,`SCREEN_COMMAND_VOLUME`),onKeyup:e=>o(`command`,i.mode,`SCREEN_COMMAND_VOLUME`)},null,8,[`value`,`disabled`,`aria-labelledby`,`format-tooltip`,`onDragend`,`onKeyup`])],64)):t(``,!0)],64)):t(``,!0)],64))])],10,Vn))),128))]),r.screenPlanMode===`edit`?(L(),_(g(J),{key:1},{default:I(()=>[u(g(W),{size:`small`,disabled:d.value,onClick:a[9]||=e=>o(`addStep`)},{default:I(()=>[...a[18]||=[n(`Добавить шаг`,-1)]]),_:1},8,[`disabled`]),u(g(W),{size:`small`,disabled:d.value||!f.value.length,onClick:a[10]||=e=>o(`clearPlan`)},{default:I(()=>[...a[19]||=[n(`Удалить план`,-1)]]),_:1},8,[`disabled`])]),_:1})):t(``,!0)]),_:1}))}}),[[`__scopeId`,`data-v-b90defbb`]]),Yn=K(P({__name:`ScreenBindingModal`,props:o({binding:{type:Boolean}},{show:{type:Boolean,required:!0},showModifiers:{}}),emits:o([`scanned`],[`update:show`]),setup(r,{emit:i}){let a=ce(r,`show`),o=i,s=w(``),c=w(),l=w(!1),d,f=0;function p(){cancelAnimationFrame(f),d?.getTracks().forEach(e=>e.stop()),d=void 0,l.value=!1}function m(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 v(){let e=window.BarcodeDetector;if(!e||!navigator.mediaDevices?.getUserMedia){s.value=`Сканирование камерой не поддерживается в этом браузере.`;return}s.value=``;try{if(d=await navigator.mediaDevices.getUserMedia({video:{facingMode:`environment`}}),l.value=!0,await h(),!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=m(e);if(t){p(),a.value=!1,o(`scanned`,t.screenID,t.accessToken);return}s.value=`Это не QR-код экрана.`}f=requestAnimationFrame(n)}catch{s.value=`Не удалось распознать QR-код.`,p()}};f=requestAnimationFrame(n)}catch{s.value=`Не удалось открыть камеру.`,p()}}function b(){p(),a.value=!1}return ae(a,e=>{e?v():p()}),y(p),(i,o)=>(L(),_(g(Te),{show:a.value,"onUpdate:show":o[0]||=e=>a.value=e},{default:I(()=>[u(g(ve),{style:{width:`min(600px, 94vw)`},title:`Привязать экран`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":I(()=>[u(g(W),{onClick:b},{default:I(()=>[...o[1]||=[n(` x `,-1)]]),_:1})]),default:I(()=>[u(g(J),{vertical:``},{default:I(()=>[B(`video`,{ref_key:`scannerVideo`,ref:c,class:`screen-scanner-video`,muted:``,playsinline:``},null,512),s.value?(L(),_(g(q),{key:0,type:`error`},{default:I(()=>[n(e(s.value),1)]),_:1})):t(``,!0),!l.value&&!r.binding?(L(),_(g(W),{key:1,type:`primary`,onClick:v},{default:I(()=>[...o[2]||=[n(` Сканировать QR-код `,-1)]]),_:1})):t(``,!0),l.value?(L(),_(g(W),{key:2,onClick:p},{default:I(()=>[...o[3]||=[n(`Остановить камеру`,-1)]]),_:1})):t(``,!0),r.binding?(L(),_(g(W),{key:3,type:`primary`,loading:``},{default:I(()=>[...o[4]||=[n(`Привязка…`,-1)]]),_:1})):t(``,!0)]),_:1})]),_:1})]),_:1},8,[`show`]))}}),[[`__scopeId`,`data-v-5f530845`]]),Xn={key:1,class:`screen-empty`},Zn={class:`screen-status`},Qn={key:0,class:`screen-error`},$n=K(P({__name:`GameScreensPanel`,props:{screens:{},screenBinding:{type:Boolean},isBusy:{type:Boolean}},emits:[`bind`,`setSound`,`unbind`],setup(r,{emit:i}){let a=r,o=i,s=w(!1);return(i,c)=>(L(),z(M,null,[u($,null,{default:I(()=>[u(g(Y),{align:`center`,justify:`space-between`,class:`screen-header`},{default:I(()=>[c[4]||=B(`p`,{class:`screens-title`},`Экраны`,-1),u(g(W),{size:`small`,disabled:r.isBusy||r.screenBinding,onClick:c[0]||=e=>s.value=!0},{default:I(()=>[...c[3]||=[n(` Привязать экран `,-1)]]),_:1},8,[`disabled`])]),_:1}),r.screens.some(e=>e.status===`disconnected`)?(L(),_(g(q),{key:0,type:`warning`,title:`Проверьте подключение экрана`},{default:I(()=>[...c[5]||=[n(` Один или несколько экранов не выходят на связь более минуты. `,-1)]]),_:1})):t(``,!0),r.screens.length===0?(L(),z(`p`,Xn,`К игре пока не привязаны экраны.`)):(L(!0),z(M,{key:2},C(r.screens,i=>(L(),z(`div`,{key:i.ID,class:`screen-row`},[B(`div`,null,[B(`div`,null,`Экран `+e(i.ID),1),B(`div`,Zn,e(i.status===`connected`?`Онлайн`:`Оффлайн`),1),i.error?(L(),z(`div`,Qn,e(i.error),1)):t(``,!0)]),u(g(Y),{justify:`end`},{default:I(()=>[i.soundEnabled?(L(),_(g(be),{key:0,type:`success`},{default:I(()=>[...c[6]||=[n(`Со звуком`,-1)]]),_:1})):(L(),_(g(W),{key:1,size:`small`,disabled:r.isBusy,onClick:e=>o(`setSound`,i)},{default:I(()=>[...c[7]||=[n(`Назначить звук`,-1)]]),_:1},8,[`disabled`,`onClick`])),u(g(W),{size:`small`,type:`error`,ghost:``,disabled:r.isBusy,onClick:e=>o(`unbind`,i)},{default:I(()=>[...c[8]||=[n(` Отвязать `,-1)]]),_:1},8,[`disabled`,`onClick`])]),_:2},1024)]))),128))]),_:1}),u(Yn,{show:s.value,"onUpdate:show":c[1]||=e=>s.value=e,binding:a.screenBinding,onScanned:c[2]||=(e,t)=>o(`bind`,e,t)},null,8,[`show`,`binding`])],64))}}),[[`__scopeId`,`data-v-361cce15`]]),er={key:0},tr={key:3},nr={key:4},rr={key:0},ir={key:2},ar={key:0},or={class:`device-details`},sr={key:0},cr={key:1},lr=K(P({__name:`GameStatePanel`,props:{devices:{},wifi:{},serverTime:{},isLoading:{type:Boolean},hasError:{type:Boolean},summary:{}},emits:[`reload`],setup(r){let i={browser:`Браузер`,organizer:`Организатор`,team:`Команда`,screen:`Экран`};return(a,o)=>(L(),z(M,null,[u($,null,{default:I(()=>[u(g(Y),null,{default:I(()=>[u(g(be),{type:`success`},{default:I(()=>[n(`Доступны: `+e(r.summary.connected),1)]),_:1}),u(g(be),{type:`warning`},{default:I(()=>[n(`Нет связи: `+e(r.summary.disconnected),1)]),_:1}),u(g(be),null,{default:I(()=>[n(`Подключения: `+e(r.summary.connections),1)]),_:1})]),_:1}),r.serverTime?(L(),z(`p`,er,`Последнее обновление: `+e(g(_t)(r.serverTime)),1)):t(``,!0),o[2]||=B(`p`,null,`«Нет связи» означает отсутствие heartbeat сайта. UUID обозначает браузерный профиль.`,-1),r.hasError?(L(),_(g(q),{key:1,type:`error`,title:`Не удалось обновить состояние`},{default:I(()=>[u(g(W),{loading:r.isLoading,onClick:o[0]||=e=>a.$emit(`reload`)},{default:I(()=>[...o[1]||=[n(`Повторить`,-1)]]),_:1},8,[`loading`])]),_:1})):t(``,!0),r.isLoading&&!r.serverTime?(L(),_(g(We),{key:2})):!r.hasError&&!r.serverTime&&!r.isLoading?(L(),z(`p`,tr,`Загружаем состояние…`)):r.serverTime&&!r.devices.length?(L(),z(`p`,nr,`Устройства этой игры пока не зарегистрированы`)):t(``,!0)]),_:1}),u($,null,{default:I(()=>[o[4]||=B(`h3`,null,`Wi-Fi площадки`,-1),o[5]||=B(`p`,null,` Все Wi-Fi-клиенты Cudy, независимо от выбранной игры. MAC устройства и UUID браузера различаются. `,-1),r.wifi?.enabled?(L(),z(M,{key:1},[r.wifi.hasError?(L(),_(g(q),{key:0,type:`warning`,role:`alert`,title:`Не удалось обновить данные Cudy`})):t(``,!0),r.wifi.stale?(L(),_(g(be),{key:1,type:`warning`},{default:I(()=>[...o[3]||=[n(`Данные устарели`,-1)]]),_:1})):t(``,!0),r.wifi.collectedAt?(L(),z(`p`,ir,` Последний снимок Cudy: `+e(g(_t)(r.wifi.collectedAt)),1)):t(``,!0),r.wifi.collectedAt?(L(),z(M,{key:3},[B(`p`,null,`Wi-Fi-клиентов: `+e(r.wifi.clients?.length||0),1),r.wifi.clients?.length?t(``,!0):(L(),z(`p`,ar,`Wi-Fi-клиенты пока не подключены`)),(L(!0),z(M,null,C(r.wifi.clients,t=>(L(),z(`div`,{key:t.MAC,class:`connection device-details`},[B(`strong`,null,e(t.MAC),1),B(`p`,null,`IP: `+e(t.IP||`—`)+` · `+e(t.band),1),B(`p`,null,`Сигнал: `+e(t.signal===void 0?`Нет данных`:`${t.signal} dBm`),1)]))),128))],64)):t(``,!0)],64)):(L(),z(`p`,rr,`Сбор данных Cudy не настроен`))]),_:1}),(L(!0),z(M,null,C(r.devices,r=>(L(),_($,{key:r.ID},{default:I(()=>[B(`div`,or,[B(`strong`,null,e(r.ID),1),B(`p`,null,[u(g(be),{type:r.connected?`success`:`warning`},{default:I(()=>[n(e(r.connected?`Доступно`:`Нет связи`),1)]),_:2},1032,[`type`])]),B(`p`,null,`Последнее обращение: `+e(g(_t)(r.lastSeenAt)||`—`),1),u(g(Q),null,{default:I(()=>[u(g(wt),{title:`Подключения`,name:r.ID||``},{default:I(()=>[(L(!0),z(M,null,C(r.connections,n=>(L(),z(`div`,{key:n.ID,class:`connection`},[B(`strong`,null,e(i[n.kind||``]||n.kind),1),n.teamID?(L(),z(`p`,sr,`ID команды: `+e(n.teamID),1)):t(``,!0),n.screenID?(L(),z(`p`,cr,`ID экрана: `+e(n.screenID),1)):t(``,!0),B(`p`,null,e(n.connected?`Доступно`:`Нет связи`),1),B(`p`,null,`Последнее обращение: `+e(g(_t)(n.lastSeenAt)||`—`),1),B(`p`,null,`IP: `+e(n.IP||`—`),1),B(`p`,null,`User-Agent: `+e(n.userAgent||`—`),1)]))),128))]),_:2},1032,[`name`])]),_:2},1024)])]),_:2},1024))),128))],64))}}),[[`__scopeId`,`data-v-a670747a`]]),ur={class:`team-content-block`},dr={class:`title-block`},fr={class:`team-name-block`},pr={key:0},mr={key:1},hr={key:0},gr={key:0},_r={key:1},vr={key:2},yr={key:3},br={key:4},xr=K(P({__name:`GameTeamsPanel`,props:{teams:{},canPrintReceipts:{type:Boolean},participationOptions:{}},emits:[`add`,`open-qr`,`print`,`preview`,`delete`,`give-application`],setup(r,{emit:i}){let a=i;return(i,o)=>(L(),z(M,null,[u($,{class:`team-block-hover`,onClick:o[0]||=e=>a(`add`)},{default:I(()=>[...o[1]||=[B(`p`,{class:`place-image-plus`},`+`,-1)]]),_:1}),(L(!0),z(M,null,C(r.teams,i=>(L(),_($,{key:i.ID},{default:I(()=>[B(`div`,ur,[u(g(Y),{justify:`space-between`},{default:I(()=>[B(`div`,dr,[B(`span`,fr,[n(e(i.name)+` `,1),i.captainEmail?(L(),z(`small`,pr,` — `+e(i.captainEmail),1)):t(``,!0),i.participantsCount?(L(),z(`small`,mr,` · Участников: `+e(i.participantsCount),1)):t(``,!0)]),i.captainEmail||i.participationStatus!==`pending`?(L(),z(`div`,hr,[n(e(r.participationOptions.find(e=>e.value===i.participationStatus)?.label),1),i.participationSource===`automatic`?(L(),z(`span`,gr,` · автоматически`)):t(``,!0)])):t(``,!0),i.captainEmail?i.participationEmailError?(L(),z(`div`,vr,` Ошибка отправки: `+e(i.participationEmailError),1)):i.participationEmailSent?(L(),z(`div`,yr,`Письмо отправлено`)):t(``,!0):(L(),z(`div`,_r,`Почта капитана не указана`)),i.participationStatus===`cancelled`?t(``,!0):(L(),z(`div`,br,` Поездки: `+e(i.actionsCount),1))]),u(g(Y),{justify:`end`},{default:I(()=>[r.canPrintReceipts&&i.participationStatus!==`cancelled`?(L(),_(g(W),{key:0,onClick:e=>a(`print`,i)},{default:I(()=>[...o[2]||=[n(` Печать чека `,-1)]]),_:1},8,[`onClick`])):t(``,!0),i.participationStatus===`cancelled`?t(``,!0):(L(),_(g(W),{key:1,onClick:e=>a(`open-qr`,i)},{default:I(()=>[...o[3]||=[n(`QR`,-1)]]),_:1},8,[`onClick`])),i.participationStatus===`cancelled`?t(``,!0):(L(),_(g(W),{key:2,onClick:e=>a(`preview`,i.ID,i.password)},{default:I(()=>[...o[4]||=[n(`Подсмотреть игру`,-1)]]),_:1},8,[`onClick`])),u(g(W),{type:`error`,ghost:``,onClick:e=>a(`delete`,i)},{default:I(()=>[...o[5]||=[n(`Удалить`,-1)]]),_:1},8,[`onClick`])]),_:2},1024)]),_:2},1024),(L(!0),z(M,null,C(i.applications,t=>(L(),_(g(W),{key:t.name,class:`link-button`,onClick:e=>a(`give-application`,i,t)},{default:I(()=>[n(` Выдать: `+e(t.name),1)]),_:2},1032,[`onClick`]))),128))])]),_:2},1024))),128))],64))}}),[[`__scopeId`,`data-v-70e02c3e`]]),Sr=[`src`,`alt`],Cr={key:2},wr=K(P({__name:`TeamReceiptModal`,props:{show:{type:Boolean},name:{},preview:{},preparationError:{},isPreparing:{type:Boolean},isPrinting:{type:Boolean}},emits:[`update:show`,`print`],setup(r,{emit:i}){let a=i;return(i,o)=>(L(),_(g(Te),{show:r.show,"mask-closable":!r.isPrinting,"close-on-esc":!r.isPrinting,"onUpdate:show":o[2]||=e=>a(`update:show`,e)},{default:I(()=>[u(g(ve),{class:`receipt-modal`,title:`Чек команды`,role:`dialog`,"aria-modal":`true`},{default:I(()=>[r.preparationError?(L(),_(g(q),{key:0,type:`error`},{default:I(()=>[n(e(r.preparationError),1)]),_:1})):r.preview?(L(),z(`img`,{key:1,class:`receipt-preview`,src:r.preview,alt:`Чек команды ${r.name}`},null,8,Sr)):r.isPreparing?(L(),z(`p`,Cr,`Подготовка чека…`)):t(``,!0),o[5]||=B(`p`,null,`Включите MXW01 рядом с сервером площадки. Сервер напечатает один чек.`,-1),u(g(Y),{justify:`end`},{default:I(()=>[u(g(W),{disabled:r.isPrinting,onClick:o[0]||=e=>a(`update:show`,!1)},{default:I(()=>[...o[3]||=[n(`Закрыть`,-1)]]),_:1},8,[`disabled`]),u(g(W),{type:`primary`,loading:r.isPrinting,disabled:!r.preview||r.isPreparing||r.isPrinting,onClick:o[1]||=e=>a(`print`)},{default:I(()=>[...o[4]||=[n(`Печатать`,-1)]]),_:1},8,[`loading`,`disabled`])]),_:1})]),_:1})]),_:1},8,[`show`,`mask-closable`,`close-on-esc`]))}}),[[`__scopeId`,`data-v-f0b8d644`]]),Tr={key:0},Er={key:1},Dr={key:2},Or=K(P({__name:`TicketCheckModal`,props:{show:{type:Boolean,required:!0},showModifiers:{}},emits:[`update:show`],setup(r){let i=ce(r,`show`),a=it(),o=xe(),s=w(``),c=w(),l=w(``),d=w(!1),f=w(),p=w(!1),m,v=0,b=D(()=>{try{return new URL(s.value.trim()).pathname.match(/\/tickets\/([^/]+)/)?.[1]||``}catch{return s.value.trim()}});async function x(){if(!(!b.value||d.value)){d.value=!0,l.value=``,c.value=void 0;try{let e=await a.GetTicket({token:b.value});e.ticket?c.value=e.ticket:l.value=`Билет не найден`}catch(e){l.value=e instanceof Error?e.message:`Не удалось проверить билет`}finally{d.value=!1}}}async function S(){if(!(!b.value||d.value)){d.value=!0,l.value=``;try{let e=await a.AcceptTicket({token:b.value});e.ticket?(c.value=e.ticket,o.success(`Билет принят`)):l.value=`Не удалось принять билет`}catch(e){l.value=e instanceof Error?e.message:`Не удалось принять билет`}finally{d.value=!1}}}async function C(){let e=window.BarcodeDetector;if(!e||!navigator.mediaDevices?.getUserMedia){l.value=`Сканирование камерой не поддерживается. Введите ссылку вручную.`;return}l.value=``;try{if(m=await navigator.mediaDevices.getUserMedia({video:{facingMode:`environment`}}),p.value=!0,await h(),!f.value)return;f.value.srcObject=m,await f.value.play();let t=new e,n=async()=>{if(!(!p.value||!f.value))try{let e=(await t.detect(f.value))[0]?.rawValue;if(e){s.value=e,T(),await x();return}v=requestAnimationFrame(n)}catch{l.value=`Не удалось распознать QR-код.`,T()}};v=requestAnimationFrame(n)}catch{l.value=`Не удалось открыть камеру. Введите ссылку вручную.`,T()}}function T(){cancelAnimationFrame(v),m?.getTracks().forEach(e=>e.stop()),m=void 0,p.value=!1}function E(){T(),i.value=!1}return ae(i,e=>{e?C():T()}),y(T),(r,a)=>(L(),_(g(Te),{show:i.value,"onUpdate:show":a[1]||=e=>i.value=e},{default:I(()=>[u(g(ve),{style:{width:`min(600px, 94vw)`},title:`Проверка билета`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":I(()=>[u(g(W),{onClick:E},{default:I(()=>[...a[2]||=[n(` x `,-1)]]),_:1})]),default:I(()=>[u(g(J),{vertical:``},{default:I(()=>[p.value?(L(),z(`video`,{key:0,ref_key:`video`,ref:f,class:`ticket-scanner-video`,muted:``,playsinline:``},null,512)):t(``,!0),l.value?(L(),_(g(q),{key:1,type:`error`},{default:I(()=>[n(e(l.value),1)]),_:1})):t(``,!0),p.value?(L(),_(g(W),{key:3,onClick:T},{default:I(()=>[...a[4]||=[n(`Остановить камеру`,-1)]]),_:1})):(L(),_(g(W),{key:2,onClick:C},{default:I(()=>[...a[3]||=[n(`Сканировать QR-код`,-1)]]),_:1})),u(g(Be),{value:s.value,"onUpdate:value":a[0]||=e=>s.value=e,placeholder:`Или вставьте ссылку на билет`,onKeyup:nt(x,[`enter`])},null,8,[`value`]),u(g(W),{type:`primary`,loading:d.value,onClick:x},{default:I(()=>[...a[5]||=[n(` Проверить билет `,-1)]]),_:1},8,[`loading`]),c.value?(L(),z(M,{key:4},[u(g(q),{type:c.value.status===`active`?`success`:`warning`},{default:I(()=>[n(e(c.value.gameName),1),a[6]||=B(`br`,null,null,-1),n(` Статус: `+e(c.value.status===`active`?`действителен`:`уже использован`)+` `,1),c.value.usedBy?(L(),z(`span`,Tr,` · `+e(c.value.usedBy),1)):t(``,!0),c.value.usedAt?(L(),z(`br`,Er)):t(``,!0),c.value.usedAt?(L(),z(`span`,Dr,`Использован: `+e(g(_t)(c.value.usedAt)),1)):t(``,!0)]),_:1},8,[`type`]),c.value.status===`active`&&c.value.gameStatus!==`finish`?(L(),_(g(W),{key:0,type:`primary`,loading:d.value,onClick:S},{default:I(()=>[...a[7]||=[n(` Принять билет `,-1)]]),_:1},8,[`loading`])):t(``,!0)],64)):t(``,!0)]),_:1})]),_:1})]),_:1},8,[`show`]))}}),[[`__scopeId`,`data-v-fe322487`]]);function kr(e,t){let n=it(),r=w([]),i=w(),a=w(),o=w(!1),s=w(!1),c=0,l=!1,u=!1,d=D(()=>({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`}),lt(()=>{f()},5e3),ne(()=>{l=!0,c++}),{devices:r,wifi:i,serverTime:a,isLoading:o,hasError:s,summary:d,reload:f}}function Ar(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 jr={class:`center-block-custom`},Mr={class:`width1200`},Nr={class:`game-tab-content`},Pr=[`href`],Fr={class:`game-tab-content`},Ir={key:1,role:`status`},Lr={class:`screen-overview`},Rr={key:1,class:`screen-preview-placeholder`},zr={class:`presentation-grid`},Br={class:`game-tab-content`},Vr={class:`game-tab-content`},Hr={class:`qr-block`},Ur={class:`game-tab-content`},Wr={key:2},Gr={key:3,class:`answer-results-scroll`},Kr={key:0,class:`answers-empty`},qr={class:`answers-team-name`},Jr={class:`answers-question-title`},Yr={class:`answers-question-answer`},Xr={class:`correct-answer`},Zr={class:`answers-team-row`},Qr={class:`answers-team-answer`},$r={key:0,class:`give-application-image-block`},ei=[`src`],ti=[`src`],ni=[`href`],ri={class:`qr-block`},ii={key:0,class:`answers-empty`},ai=`https://www.sberbank.ru/ru/choise_bank?requisiteNumber=79609361994&bankCode=100000000111`,oi=K(P({__name:`GamePage`,emits:[`resultsApplied`],setup(i,{emit:a}){let o=a,s=it(),c=pt(),l=w(!1),d=w(!1),f=le(),p=ee(),m=p.params.id;function h(e){return[`settings`,`screens`,`game`,`payment`,`answers`,`state`].includes(e)}let v=typeof p.query.tab==`string`?p.query.tab:``,y=w(h(v)?v:`game`);async function x(e){!h(e)||(e===`state`?!Ie.value:!U.value)||(y.value=e,await f.replace({query:{...p.query,tab:e}}))}function S(e){(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),x(`state`))}let T=xe(),E=w({name:``,description:``,format:`online`,location:``,wifiName:``,wifiPassword:``}),O=w(!1),k=w(!1),A=w(!1),j=w(!1),N=w(!1),P=w(!1),te=w(``),ne=w(``),F=w(1),re=w(``),ie=w(!1),oe=w(``),se=w(``),ce=w(!1),R=w({name:``,teamID:``}),ue=w(!1),de=w(!1),fe=w(``),pe=w(``),me=0,he=w(!1),ge=w(1),_e=w([]),ye=w(!1),Ce=w(!1),H=w({ID:void 0,name:void 0,description:void 0,startAt:void 0,status:void 0,format:void 0,location:void 0,scenario:void 0,teams:void 0,export:void 0,wifiName:void 0,wifiPassword:void 0}),we=ot(),Ee=Se(),U=D(()=>we.hasAnyRole([`admin`,`organizer`,`author`])),De=0,Oe=0,ke=!1,Ne=!1,G,Pe,Fe=!1,Ie=D(()=>Ee.environment===`venue`&&we.hasAnyRole([`admin`,`organizer`,`developer`])),K=D(()=>Ie.value&&!U.value);vt(()=>U.value?{organizerGameID:Number(m)}:{});let{devices:Re,wifi:ze,serverTime:Ve,isLoading:We,hasError:Ke,summary:qe,reload:Je}=kr(()=>Number(p.params.id),()=>Ie.value&&y.value===`state`);ae([()=>p.query.tab,Ie,U],()=>{let e=typeof p.query.tab==`string`?p.query.tab:``;y.value=K.value?`state`:h(e)&&(e!==`state`||Ie.value)?e:`game`,K.value&&e!==`state`&&f.replace({query:{...p.query,tab:`state`}})},{immediate:!0}),ae(K,e=>{e&&(H.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,wifiName:void 0,wifiPassword:void 0},Ut(Number(m)))},{immediate:!0});let Ye=D(()=>Number(H.value.ID)>0&&Ee.environment===`prod`&&we.hasAnyRole([`admin`,`organizer`,`developer`])),Xe=w(!1),Ze=w(!1),Qe=D(()=>Ye.value&&(H.value.export?.state===`preparing`||H.value.export?.state===`ready`)),$e=w(!1),et=w(!1),tt=w(``),nt=D(()=>Ee.environment===`venue`&&H.value.status===`finish`&&we.hasAnyRole([`admin`,`organizer`,`developer`])),rt=w(!1),X=w(!1),at=w([]),st=w(``),ct=[{label:`Ожидает ответа`,value:`pending`},{label:`Подтверждено`,value:`confirmed`},{label:`Отменено`,value:`cancelled`}],ut=D(()=>(H.value.teams||[]).filter(e=>e.participationStatus!==`cancelled`).length),dt=w([]),yt=w([]),bt=w(),Z=w(!1),xt=0,St=Date.now(),Q=w(!1),Ct=w(!0),wt=w(``),Tt=w(),Et=w([]),Dt=w(!1),Ot=w(!1),kt=w(`use`),At=0,jt=w([]),Mt=w([]),Nt=w([]),Pt=w(!1),Ft=w(!1),It=w(100),Rt=D(()=>dt.value.find(e=>e.status===`connected`)||dt.value[0]);ae(()=>Rt.value?.volume,e=>{It.value=e??100});function zt(e){Ne||Fe||(Fe=!0,T.warning(`Не удалось включить звуковые уведомления о выдаче улик`),console.error(`Звуковое уведомление о выдаче улик`,e))}async function Bt(){if(!(!U.value||Ne))try{G??=new AudioContext,G.state===`suspended`&&await G.resume();let e=G;Pe??=fetch(mn).then(async t=>{if(!t.ok)throw Error(`Не удалось загрузить звук уведомления`);return e.decodeAudioData(await t.arrayBuffer())}),await Pe}catch(e){Pe=void 0,zt(e)}}async function Vt(){if(!(!G||G.state!==`running`||!Pe))try{let e=await Pe;if(Ne||G.state!==`running`)return;let t=G.createBufferSource();t.buffer=e,t.connect(G.destination),t.onended=()=>t.disconnect(),t.start()}catch(e){zt(e)}}async function Ht(){await Bt(),await Vt()}b(()=>{window.addEventListener(`click`,Bt),window.addEventListener(`keydown`,Bt)}),r(()=>{Ne=!0,me++,rr(),window.removeEventListener(`click`,Bt),window.removeEventListener(`keydown`,Bt),G?.close().catch(e=>{console.error(`Закрытие звуковых уведомлений`,e)})});async function Ut(e){let t=++De,n=U.value,r=await s.GetGame({ID:e});Ne||n!==U.value||t<Oe||(Oe=t,U.value&&ke&&Ar(H.value.teams||[],r.game?.teams||[])&&Vt(),ke=!0,H.value=r.game,k.value||=(E.value={name:H.value.name||``,description:H.value.description||``,format:H.value.format||`online`,location:H.value.location||``,wifiName:H.value.wifiName||``,wifiPassword:H.value.wifiPassword||``},!0),H.value.teams=H.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&&Ut(Number(m));async function Wt(){try{let e=await s.GetGameScreens({gameID:Number(m)});if(dt.value=e.screens||[],wt.value=``,(kt.value===`edit`?Et.value:Tt.value?.steps)?.some(e=>e.mode===`SCREEN_MODE_RESULTS`)||Rt.value?.mode===`SCREEN_MODE_RESULTS`){let e=await s.GetGameResults({gameID:Number(m)});jt.value=e.questions||[],Mt.value=e.teams||[]}}catch(e){wt.value=e instanceof Error?e.message:`Не удалось получить состояние экранов`}finally{Ct.value=!1}}U.value&&Wt();async function Gt(e=!1){if(Z.value&&!e)return;let t=++xt;try{let e=await s.GetGameMusic({gameID:Number(m)});if(t!==xt)return;yt.value=e.playlists||[],bt.value=e.state,St=Date.now()}catch(e){T.error(e instanceof Error?e.message:`Не удалось получить музыку игры`)}}U.value&&Gt();function Kt(){return kt.value===`edit`}async function qt(){if(Kt()||Dt.value||Q.value)return;let e=++At;try{let t=await s.GetScreenPlan({gameID:Number(m)});if(e!==At||Kt()||Q.value||Dt.value)return;Tt.value=t.plan,Et.value=t.plan?.steps?.map(e=>({...e}))||[]}catch(e){T.error(e instanceof Error?e.message:`Не удалось получить план экранов`)}}U.value&&qt();function Jt(){Et.value.push({mode:`SCREEN_MODE_TEXT`,text:`Новый экран`,timerLabel:`Перерыв`,timerDurationSeconds:600}),Dt.value=!0,kt.value=`edit`}function Yt(){Tt.value&&(Et.value=Tt.value.steps?.map(e=>({...e}))||[],kt.value=`edit`)}function Zt(){Dt.value&&!window.confirm(`Отменить несохранённые изменения плана?`)||(Et.value=Tt.value?.steps?.map(e=>({...e}))||[],Dt.value=!1,kt.value=`use`)}function Qt(e){Et.value.splice(e,1),Dt.value=!0}function $t(e,t){let n=e+t;if(n<0||n>=Et.value.length)return;let[r]=Et.value.splice(e,1);Et.value.splice(n,0,r),Dt.value=!0}function tn(){Dt.value=!0}function rn(){Et.value=[],tn()}async function on(){if(Ot.value)return;let e=Et.value.findIndex(e=>e.mode===`SCREEN_MODE_TEXT`&&!e.text?.trim()||e.mode===`SCREEN_MODE_TIMER`&&(!Number.isInteger(e.timerDurationSeconds)||(e.timerDurationSeconds??0)<1||(e.timerDurationSeconds??0)>86400));if(e!==-1){T.error(`Проверьте текст или длительность таймера в шаге ${e+1}`);return}At+=1,Ot.value=!0;try{let e=Math.min(Tt.value?.currentStep||0,Math.max(0,Et.value.length-1)),t=await s.SaveScreenPlan({gameID:Number(m),steps:Et.value,currentStep:e});Tt.value=t.plan,Et.value=t.plan?.steps?.map(e=>({...e}))||[],Dt.value=!1,kt.value=`use`,T.success(t.plan?`План экранов сохранён`:`План экранов удалён`)}catch(e){T.error(e instanceof Error?e.message:`Не удалось сохранить план экранов`)}finally{Ot.value=!1}}async function sn(e){if(!(Dt.value||!Tt.value||Q.value||Ot.value)){Q.value=!0,At+=1;try{let t=await s.SetScreenPlanStep({gameID:Number(m),currentStep:e});Tt.value=t.plan,await Wt()}catch(e){T.error(e instanceof Error?e.message:`Не удалось перейти на шаг плана`)}finally{Q.value=!1}}}async function cn(e,t){if(!(Q.value||Ot.value||Dt.value||e!==`SCREEN_MODE_TIMER`&&e!==`SCREEN_MODE_INTRO`&&e!==`SCREEN_MODE_CONCLUSION`)){Q.value=!0;try{await s.SendScreenCommand({gameID:Number(m),command:t,positionMs:0,volume:Math.max(0,Math.min(100,Math.round(It.value)))}),await Wt()}catch(e){T.error(e instanceof Error?e.message:`Не удалось управлять экраном`)}finally{Q.value=!1}}}async function un(e,t){if(!Ce.value){Ce.value=!0;try{await s.BindScreen({screenID:e,accessToken:t,gameID:Number(m),initializeAudio:!1}),T.success(`Экран привязан к игре`),await Wt()}catch(e){T.error(e instanceof Error?e.message:`Не удалось привязать экран`)}finally{Ce.value=!1}}}async function dn(){if(Pt.value||Ft.value)return;let e=await s.GetGameMap({gameID:Number(m)});Pt.value||Ft.value||(Nt.value=e.items||[])}U.value&&dn();async function fn(e,t=e.hidden){Pt.value=!0;try{await s.UpdateGameMapItem({gameID:Number(m),kind:e.kind,itemID:e.itemID,x:Math.round(e.x||0),y:Math.round(e.y||0),hidden:t})}finally{Pt.value=!1}}async function hn(e,t=e.hidden){await fn(e,t),await dn()}async function gn(e){if(!Q.value){Q.value=!0;try{await s.SetScreenSound({screenID:e.ID,soundEnabled:!0}),await Wt()}catch(e){T.error(e instanceof Error?e.message:`Не удалось назначить звук`)}finally{Q.value=!1}}}async function _n(e){if(Z.value)return;Z.value=!0,xt+=1;let t=bt.value;try{let n=await s.SetGameMusic({gameID:Number(m),playlistID:e.playlistID??t?.playlist?.ID??0,trackIndex:e.trackIndex??t?.trackIndex??0,positionMs:e.positionMs??(t?.positionMs??0)+(t?.playback===`MUSIC_PLAYBACK_PLAYING`?Math.max(0,Date.now()-St):0),volume:e.volume??t?.volume??100,loop:e.loop??t?.loop??!1,playback:e.playback??t?.playback??`MUSIC_PLAYBACK_STOPPED`});bt.value=n.state,St=Date.now()}catch(e){T.error(e instanceof Error?e.message:`Не удалось изменить музыку`)}finally{Z.value=!1}}async function vn(e){if(!(Z.value||!e.trim())){Z.value=!0,xt+=1;try{await s.CreatePlaylist({name:e.trim()}),await Gt(!0)}catch(e){T.error(e instanceof Error?e.message:`Не удалось создать плейлист`)}finally{Z.value=!1}}}async function yn(e,t){if(!(Z.value||!t.trim())){Z.value=!0,xt+=1;try{await s.UpdatePlaylist({ID:e,name:t.trim()}),await Gt(!0)}catch(e){T.error(e instanceof Error?e.message:`Не удалось переименовать плейлист`)}finally{Z.value=!1}}}async function xn(e,t){if(!Z.value){Z.value=!0,xt+=1;try{await s.ReorderPlaylistTracks({playlistID:e,trackIDs:t}),await Gt(!0)}catch(e){T.error(e instanceof Error?e.message:`Не удалось сохранить порядок треков`)}finally{Z.value=!1}}}async function Sn(e){if(!Z.value){Z.value=!0,xt+=1;try{await s.DeletePlaylist({ID:e}),await Gt(!0)}catch(e){T.error(e instanceof Error?e.message:`Не удалось удалить плейлист`)}finally{Z.value=!1}}}async function Cn(e,t){if(!Z.value){if(!/\.mp3$/i.test(t.name)||t.size===0||t.size>64*1024*1024){T.error(`Выберите непустой MP3 размером до 64 МиБ`);return}Z.value=!0,xt+=1;try{let n=Tn(new Uint8Array(await t.arrayBuffer()));await s.UploadPlaylistTrack({playlistID:e,name:t.name,filename:t.name,data:n}),await Gt(!0)}catch(e){T.error(e instanceof Error?e.message:`Не удалось загрузить MP3`)}finally{Z.value=!1}}}async function wn(e,t){if(!Z.value){Z.value=!0,xt+=1;try{await s.DeletePlaylistTrack({playlistID:e,trackID:t}),await Gt(!0)}catch(e){T.error(e instanceof Error?e.message:`Не удалось удалить трек`)}finally{Z.value=!1}}}function Tn(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 En(e){if(!Q.value){Q.value=!0;try{await s.UnbindScreen({screenID:e.ID}),await Wt()}catch(e){T.error(e instanceof Error?e.message:`Не удалось отвязать экран`)}finally{Q.value=!1}}}async function Dn(e,t,n=!1){let r=`/team-story/`+e+`?password=`+t;if(n){window.open(r,`_blank`);return}f.push(r)}async function On(){if(!(!Ye.value||Xe.value||$e.value)){Xe.value=!0;try{let e=await s.StartGameExport({ID:H.value.ID});H.value.export=e.export}catch(e){T.error(e instanceof Error?e.message:`Не удалось подготовить пакет`)}finally{Xe.value=!1}}}function An(){!Qe.value||Xe.value||$e.value||(tt.value=H.value.export?.ID||``,et.value=!0)}async function jn(){if(!(!Ye.value||!tt.value||$e.value)){$e.value=!0;try{await s.ResetGameLocalMode({ID:H.value.ID,exportID:tt.value}),et.value=!1,await Ut(Number(H.value.ID)),T.success(`Локальный режим сброшен`)}catch(e){T.error(e instanceof Error?e.message:`Не удалось сбросить локальный режим`)}finally{$e.value=!1}}}async function Mn(){if(!(!Ye.value||Ze.value||H.value.export?.state!==`ready`)){Ze.value=!0;try{let{blob:e,filename:t}=await c.downloadGamePackage(H.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){T.error(e instanceof Error?e.message:`Не удалось скачать пакет`)}finally{Ze.value=!1}}}function Nn({fileList:e}){X.value||(at.value=e.slice(-1),st.value=``)}async function Pn(){if(!(!nt.value||rt.value)){rt.value=!0;try{let{blob:e,filename:t}=await c.downloadGameResultsPackage(H.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){T.error(e instanceof Error?e.message:`Не удалось скачать результаты`)}finally{rt.value=!1}}}async function Fn(){if(!Ye.value||X.value)return;let e=at.value[0]?.file;if(!e||e.size===0){st.value=`Выберите непустой ZIP-файл`;return}if(!e.name.toLowerCase().endsWith(`.zip`)){st.value=`Выберите файл с расширением .zip`;return}if(e.size>1024**3){st.value=`Размер пакета не должен превышать 1 ГиБ`;return}X.value=!0,st.value=``;try{await c.applyGameResultsPackage(H.value.ID,e),T.success(`Результаты приняты`),o(`resultsApplied`)}catch(e){st.value=e instanceof Error?e.message:`Не удалось применить результаты`}finally{X.value=!1}}async function In(){let e=H.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){T.error(e instanceof Error?e.message:`Не удалось скачать материалы для печати`)}finally{d.value=!1}}}async function Ln(){if(!(l.value||!H.value.teams?.length)){l.value=!0;try{let{blob:e,filename:t}=await c.downloadTeamQR(H.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){T.error(e instanceof Error?e.message:`Не удалось скачать QR команд`)}finally{l.value=!1}}}function zn(){f.push(`/games/`+m+`/results`)}async function Bn(){if(!O.value){if(new TextEncoder().encode(E.value.wifiName).length>32||/[\p{Cc}\p{Cf}\p{Zl}\p{Zp}]/u.test(E.value.wifiName)){T.error(`Название Wi-Fi — до 32 байт UTF-8, без управляющих символов`);return}if(!/^[\x20-\x7e]{0,64}$/.test(E.value.wifiPassword)){T.error(`Пароль Wi-Fi — до 64 печатных ASCII-символов`);return}O.value=!0;try{await s.UpdateGame({ID:H.value.ID,name:E.value.name,description:E.value.description,format:E.value.format,location:E.value.location.trim(),wifiName:E.value.wifiName,wifiPassword:E.value.wifiPassword,startAt:H.value.startAt,scenarioID:H.value.scenario?.ID}),await Ut(H.value.ID),T.success(`Настройки игры сохранены`)}catch(e){T.error(e instanceof Error?e.message:`Не удалось сохранить настройки игры`)}finally{O.value=!1}}}let Vn=w({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}),Hn=w(``),Un=w({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}),Wn=w({name:``,image:``,file_type:``}),Gn=window.location.href;function Kn(e,t){Vn.value=e,Wn.value=t,A.value=!0}async function qn(){if(F.value<1||F.value>8){T.error(`Укажите от 1 до 8 игроков`);return}await s.AddTeam({gameID:H.value.ID,name:te.value,captainEmail:ne.value.trim(),participantsCount:F.value}),await Ut(H.value.ID),j.value=!1,ne.value=``,F.value=1}async function Yn(){await s.GiveTeamApplications({ID:Vn.value.ID,name:Wn.value.name}),await Ut(H.value.ID),A.value=!1}async function Xn(e){Un.value=e,N.value=!0}async function Zn(){await s.DeleteTeam({ID:Un.value.ID}),await Ut(H.value.ID),N.value=!1}async function Qn(){await s.DeleteGame({ID:H.value.ID}),T.success(`Игра удалена`),f.push(`/games`)}function er(e,t){let n=new URL(`/team-story/${e}`,window.location.origin);return n.searchParams.set(`password`,t),n.toString()}function tr(e){or(er(e.ID,e.password),`Подсмотреть игру`)}function nr(e){if(Ee.environment!==`venue`||!e.ID||!e.name||e.participationStatus===`cancelled`){T.error(`У команды нет данных для печати чека`);return}R.value={name:e.name,teamID:e.ID},ce.value=!0}ae([ce,()=>R.value.teamID,U,()=>Ee.environment],ir);function rr(){fe.value&&URL.revokeObjectURL(fe.value),fe.value=``}async function ir(){let e=++me;if(rr(),pe.value=``,de.value=!1,!(!ce.value||!U.value||Ee.environment!==`venue`)){de.value=!0;try{let{blob:t}=await c.downloadTeamReceipt(Number(m),R.value.teamID);e===me&&(fe.value=URL.createObjectURL(t))}catch(t){e===me&&(pe.value=t instanceof Error?t.message:`Не удалось подготовить чек`)}finally{e===me&&(de.value=!1)}}}async function ar(){if(!(!fe.value||ue.value||de.value)){ue.value=!0;try{await s.PrintTeamReceipt({gameID:Number(m),teamID:R.value.teamID}),T.success(`Чек напечатан`)}catch(e){T.error(e instanceof Error?e.message:`Не удалось напечатать чек`)}finally{ue.value=!1}}}async function or(e,t){oe.value=e,se.value=t,ie.value=!0}async function sr(){if(!(ye.value||!H.value.ID)){ye.value=!0;try{let e=await s.IssueGameTickets({gameID:H.value.ID,count:ge.value});_e.value=e.tickets||[],T.success(`Выпущено билетов: ${_e.value.length}`)}catch(e){T.error(e instanceof Error?e.message:`Не удалось выпустить билеты`)}finally{ye.value=!1}}}lt(()=>{!U.value||X.value||(Ut(Number(m)),Wt(),Gt(),qt(),dn())},2e3);async function cr(){await s.ResetGame({ID:H.value.ID}),await Ut(H.value.ID)}async function ur(){await s.StartGame({ID:H.value.ID}),await Ut(H.value.ID)}async function dr(){await s.PauseGame({ID:H.value.ID}),await Ut(H.value.ID)}async function fr(){await s.PlayGame({ID:H.value.ID}),await Ut(H.value.ID)}async function pr(){await s.FinishGame({ID:H.value.ID}),await Ut(H.value.ID)}let mr=w(!1),hr=w([]),gr=w(0),_r=w(0),vr=w([]),yr=w([]),br=w([]),Sr=w([]),Cr=w(!1),Tr=w(!1);async function Er(){Cr.value=!0,Tr.value=!1;try{let e=await s.GetGameResults({gameID:Number(m)});br.value=e.questions||[],Sr.value=e.teams||[]}catch(e){Tr.value=!0,console.error(`Не удалось загрузить таблицу результатов`,e)}finally{Cr.value=!1}}let Dr=w({});function oi(e,t){return(e??``)+`:`+(t??``)}function si(e,t){return(e.answers||[]).find(e=>e.questionCode==t)?.answer||``}function ci(e,t){Dr.value[e]=t===null?void 0:t}async function li(){let e=await s.GetGameAnswers({gameID:Number(m)});vr.value=e.questions||[],yr.value=e.teams||[];let t={};for(let e of yr.value)for(let n of e.answers||[])t[oi(e.team?.ID,n.questionCode)]=n.score;Dr.value=t,await Er()}async function ui(){mr.value=!0;let e=await s.GetGameReviewsForModeration({gameID:Number(m)});hr.value=e.reviews||[],gr.value=e.averageRating||0,_r.value=e.reviewsCount||0}async function di(e,t){await s.ModerateGameReview({ID:e.ID,status:t}),await ui()}async function fi(){for(let e of vr.value)for(let t of yr.value){let n=Dr.value[oi(t.team?.ID,e.code)];await s.SetTeamAnswerScore({ID:t.team?.ID,questionCode:e.code,score:n??void 0})}T.success(`Баллы сохранены`),await li()}ae([U,y],([e,t])=>{e&&t===`answers`&&li()},{immediate:!0});function pi(){let e=new Date;return new Date(e.getTime()-e.getTimezoneOffset()*6e4)}function mi(e,t){if(e==``)return`Игра ещё не началась`;let n=gt(e),r=pi();t!=``&&(r=gt(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 hi=w(``);return lt(()=>{hi.value=mi(H.value.startedAt||``,H.value.endedAt||``)},1e3),(r,i)=>(L(),z(M,null,[B(`div`,jr,[B(`div`,Mr,[U.value&&(H.value.export?.state===`preparing`||H.value.export?.state===`ready`)?(L(),_($,{key:0},{default:I(()=>[u(g(q),{type:`info`,title:H.value.export.state===`ready`?`Игра в офлайн-режиме`:`Подготовка офлайн-пакета`},{default:I(()=>[n(e(H.value.export.state===`ready`?`Изменения на онлайн-сервере не синхронизируются с офлайн-площадкой.`:`Создаётся пакет для офлайн-площадки.`),1)]),_:1},8,[`title`])]),_:1})):t(``,!0),K.value?(L(),_($,{key:1},{default:I(()=>[B(`h2`,null,e(H.value.name),1)]),_:1})):t(``,!0),u(g(je),{value:y.value,type:`line`,animated:``,"onUpdate:value":x},{default:I(()=>[U.value?(L(),_(g(Ae),{key:0,name:`settings`,tab:`Настройки`},{default:I(()=>[B(`div`,Nr,[u($,null,{default:I(()=>[u(g(Y),{justify:`end`},{default:I(()=>[u(g(W),{loading:d.value,disabled:!H.value.ID||d.value,onClick:In},{default:I(()=>[...i[49]||=[n(` Скачать материалы для печати `,-1)]]),_:1},8,[`loading`,`disabled`]),u(g(W),{quaternary:``,onClick:i[0]||=e=>or(g(Gn),`Админка`)},{default:I(()=>[...i[50]||=[n(`QR`,-1)]]),_:1}),H.value.status==`finish`?(L(),_(g(W),{key:0,quaternary:``,onClick:i[1]||=e=>zn()},{default:I(()=>[u(g(V),{class:`settings-icon`},{default:I(()=>[u(g(pn))]),_:1}),i[51]||=n(` Итоги `,-1)]),_:1})):t(``,!0),(H.value.teams?.length||0)==0?(L(),_(g(W),{key:1,type:`error`,quaternary:``,onClick:i[2]||=e=>P.value=!0},{default:I(()=>[...i[52]||=[n(` Удалить игру `,-1)]]),_:1})):t(``,!0)]),_:1})]),_:1}),u($,null,{default:I(()=>[i[60]||=B(`p`,{class:`screens-title`},`Настройки игры`,-1),u(g(J),{vertical:``},{default:I(()=>[i[53]||=B(`p`,null,`Название`,-1),u(g(Be),{value:E.value.name,"onUpdate:value":i[3]||=e=>E.value.name=e,type:`text`,placeholder:`Дело №0 "Следствие ведут овечки"`},null,8,[`value`]),i[54]||=B(`p`,{class:`settings-header`},`Формат игры`,-1),u(g(Me),{value:E.value.format,"onUpdate:value":i[4]||=e=>E.value.format=e,options:[{label:`Online`,value:`online`},{label:`Offline`,value:`offline`}],"aria-label":`Формат игры`},null,8,[`value`]),i[55]||=B(`p`,{class:`settings-header`},`Описание`,-1),u(g(Be),{value:E.value.description,"onUpdate:value":i[5]||=e=>E.value.description=e,type:`textarea`,placeholder:`Убийство пастуха...`},null,8,[`value`]),i[56]||=B(`p`,{class:`settings-header`},`Место проведения`,-1),u(g(Be),{value:E.value.location,"onUpdate:value":i[6]||=e=>E.value.location=e,type:`text`,placeholder:`Оставьте пустым для онлайн-игры`},null,8,[`value`]),i[57]||=B(`p`,{class:`settings-header`},`Wi-Fi для игроков`,-1),u(g(Be),{value:E.value.wifiName,"onUpdate:value":i[7]||=e=>E.value.wifiName=e,"aria-label":`Название сети Wi-Fi`,placeholder:`Название сети Wi-Fi`},null,8,[`value`]),u(g(Be),{value:E.value.wifiPassword,"onUpdate:value":i[8]||=e=>E.value.wifiPassword=e,"aria-label":`Пароль Wi-Fi`,type:`password`,"show-password-on":`click`,placeholder:`Без пароля — оставьте пустым`,maxlength:64},null,8,[`value`]),i[58]||=B(`p`,null,` Название сети и пароль будут напечатаны рядом с QR-кодом команды в PDF и чеках. Оставьте название сети пустым, чтобы убрать инструкцию. `,-1)]),_:1}),u(g(Y),{justify:`end`,class:`settings-actions`},{default:I(()=>[u(g(W),{loading:O.value,disabled:O.value,onClick:i[9]||=e=>Bn()},{default:I(()=>[...i[59]||=[n(`Сохранить изменения`,-1)]]),_:1},8,[`loading`,`disabled`])]),_:1})]),_:1}),nt.value?(L(),_($,{key:0},{default:I(()=>[u(g(W),{loading:rt.value,disabled:rt.value,onClick:Pn},{default:I(()=>[...i[61]||=[n(` Скачать результаты `,-1)]]),_:1},8,[`loading`,`disabled`])]),_:1})):t(``,!0),Ye.value?(L(),_($,{key:1},{default:I(()=>[i[65]||=B(`p`,{class:`screens-title`},`Возврат результатов с площадки`,-1),u(g(J),{vertical:``},{default:I(()=>[u(g(q),{type:`warning`},{default:I(()=>[...i[62]||=[n(` Команды, билеты, результаты и игровой сценарий будут заменены данными пакета. Онлайн-правки этих данных потеряются. Оформление и музыка сохраняются. `,-1)]]),_:1}),u(g(Le),{"file-list":at.value,"default-upload":!1,max:1,accept:`.zip`,disabled:X.value,onChange:Nn},{default:I(()=>[u(g(W),{disabled:X.value},{default:I(()=>[...i[63]||=[n(`Выбрать ZIP результатов`,-1)]]),_:1},8,[`disabled`])]),_:1},8,[`file-list`,`disabled`]),st.value?(L(),_(g(q),{key:0,type:`error`,role:`alert`},{default:I(()=>[n(e(st.value),1)]),_:1})):t(``,!0),u(g(W),{loading:X.value,disabled:X.value||!at.value.length,onClick:Fn},{default:I(()=>[...i[64]||=[n(` Применить ZIP и перезаписать результаты `,-1)]]),_:1},8,[`loading`,`disabled`])]),_:1})]),_:1})):t(``,!0),Ye.value?(L(),_($,{key:2},{default:I(()=>[i[73]||=B(`p`,{class:`screens-title`},`Передача игры на площадку`,-1),u(g(J),{vertical:``},{default:I(()=>[i[71]||=B(`p`,null,` Пакет содержит снимок на момент подготовки. Последующие онлайн-изменения в него не попадут. На площадке игра начнётся с нуля: ходы, ответы и баллы в пакет не входят. Статус и прогресс игры на сервере сохраняются. Готовность пакета не подтверждает импорт на площадку. `,-1),H.value.export?.state===`preparing`?(L(),_(g(q),{key:0,type:`info`,role:`status`},{default:I(()=>[...i[66]||=[n(`Подготовка пакета…`,-1)]]),_:1})):H.value.export?.state===`ready`?(L(),_(g(q),{key:1,type:`success`,role:`status`},{default:I(()=>[...i[67]||=[n(`Пакет готов`,-1)]]),_:1})):H.value.export?.state===`failed`?(L(),_(g(q),{key:2,type:`error`,role:`alert`},{default:I(()=>[n(e(H.value.export.failure||`Не удалось подготовить пакет`),1)]),_:1})):t(``,!0),H.value.export?.state===`ready`?(L(),_(g(W),{key:3,loading:Ze.value,disabled:Ze.value,onClick:Mn},{default:I(()=>[...i[68]||=[n(`Скачать пакет`,-1)]]),_:1},8,[`loading`,`disabled`])):t(``,!0),u(g(W),{loading:Xe.value,disabled:Xe.value||$e.value,onClick:On},{default:I(()=>[...i[69]||=[n(` Подготовить новый пакет `,-1)]]),_:1},8,[`loading`,`disabled`]),i[72]||=B(`p`,null,` Новый пакет заменяет текущую подготовку. Результаты ранее скачанных пакетов можно загрузить позже. `,-1),Qe.value?(L(),_(g(W),{key:4,type:`warning`,loading:$e.value,disabled:Xe.value||$e.value,onClick:An},{default:I(()=>[...i[70]||=[n(` Сбросить локальный режим `,-1)]]),_:1},8,[`loading`,`disabled`])):t(``,!0)]),_:1})]),_:1})):t(``,!0),u($,null,{default:I(()=>[i[76]||=B(`p`,{class:`screens-title`},`Выпуск билетов`,-1),u(g(J),{vertical:``},{default:I(()=>[u(g(Lt),{value:ge.value,"onUpdate:value":i[10]||=e=>ge.value=e,min:1,max:100},null,8,[`value`]),(L(!0),z(M,null,C(_e.value,t=>(L(),z(`div`,{key:t.ID,class:`issued-ticket`},[B(`div`,null,`Билет №`+e(t.ID),1),B(`a`,{href:t.URL,class:`payment-link`,target:`_blank`,rel:`noreferrer`},` Открыть страницу билета `,8,Pr),u(g(W),{size:`small`,onClick:e=>or(t.URL,`Билет №${t.ID}`)},{default:I(()=>[...i[74]||=[n(` Показать QR `,-1)]]),_:1},8,[`onClick`])]))),128))]),_:1}),u(g(Y),{justify:`end`,class:`settings-actions`},{default:I(()=>[u(g(W),{loading:ye.value,disabled:ye.value,onClick:i[11]||=e=>sr()},{default:I(()=>[...i[75]||=[n(` Выпустить `,-1)]]),_:1},8,[`loading`,`disabled`])]),_:1})]),_:1})])]),_:1})):t(``,!0),U.value?(L(),_(g(Ae),{key:1,name:`screens`,tab:`Экраны`},{default:I(()=>[B(`div`,Fr,[wt.value?(L(),_(g(q),{key:0,type:`error`},{default:I(()=>[n(e(wt.value),1)]),_:1})):t(``,!0),Ct.value?(L(),z(`p`,Ir,`Загрузка экранов…`)):t(``,!0),B(`div`,Lr,[u($,null,{default:I(()=>[i[77]||=B(`h3`,{class:`screens-title`},`Превью экрана`,-1),Rt.value?.status===`connected`?(L(),_(Rn,{key:0,state:Rt.value,questions:jt.value,teams:Mt.value},null,8,[`state`,`questions`,`teams`])):(L(),z(`div`,Rr,`Экран не подключён`))]),_:1}),u($n,{screens:dt.value,"screen-binding":Ce.value,"is-busy":Q.value,onBind:un,onSetSound:gn,onUnbind:En},null,8,[`screens`,`screen-binding`,`is-busy`])]),B(`div`,zr,[u(Jn,{screens:dt.value,"preview-questions":jt.value,"preview-teams":Mt.value,"screen-plan":Tt.value,"screen-plan-draft":Et.value,"screen-plan-saving":Ot.value,"screen-plan-mode":kt.value,"screen-volume":It.value,"is-busy":Q.value,onAddStep:Jt,onEdit:Yt,onCancel:Zt,onRemoveStep:Qt,onMoveStep:$t,onDirty:tn,onClearPlan:rn,onSave:on,onSetStep:sn,onCommand:cn,"onUpdate:screenVolume":i[12]||=e=>It.value=e},null,8,[`screens`,`preview-questions`,`preview-teams`,`screen-plan`,`screen-plan-draft`,`screen-plan-saving`,`screen-plan-mode`,`screen-volume`,`is-busy`]),u(kn,{playlists:yt.value,music:bt.value,"is-busy":Z.value,onSetMusic:_n,onCreatePlaylist:vn,onRenamePlaylist:yn,onReorderTracks:xn,onDeletePlaylist:Sn,onUploadTrack:Cn,onDeleteTrack:wn},null,8,[`playlists`,`music`,`is-busy`])])])]),_:1})):t(``,!0),U.value?(L(),_(g(Ae),{key:2,name:`game`,tab:`Игра`},{default:I(()=>[B(`div`,Br,[u($,null,{default:I(()=>[u(g(Y),{justify:`space-between`},{default:I(()=>[u(g(J),null,{default:I(()=>[u(g(be),{type:`info`},{default:I(()=>[n(e(hi.value),1)]),_:1}),g(_t)(H.value.startAt)?(L(),_(g(be),{key:0,type:`info`},{default:I(()=>[n(` Начало: `+e(g(_t)(H.value.startAt)),1)]),_:1})):t(``,!0)]),_:1}),u(g(Y),{justify:`end`},{default:I(()=>[u(g(W),{onClick:Ht},{default:I(()=>[...i[78]||=[n(`Проверить звук`,-1)]]),_:1}),H.value.status==`draft`?t(``,!0):(L(),_(g(W),{key:0,type:`info`,dashed:``,"aria-label":`Сбросить игру`,onClick:i[13]||=e=>cr()},{default:I(()=>[u(g(V),null,{default:I(()=>[u(g(ln))]),_:1})]),_:1})),H.value.status==`draft`?(L(),_(g(W),{key:1,type:`info`,dashed:``,"aria-label":`Начать игру`,onClick:i[14]||=e=>ur()},{default:I(()=>[u(g(V),null,{default:I(()=>[u(g(an))]),_:1})]),_:1})):t(``,!0),H.value.status==`pause`?(L(),_(g(W),{key:2,type:`info`,dashed:``,"aria-label":`Продолжить игру`,onClick:i[15]||=e=>fr()},{default:I(()=>[u(g(V),null,{default:I(()=>[u(g(an))]),_:1})]),_:1})):t(``,!0),H.value.status==`run`?(L(),_(g(W),{key:3,type:`info`,dashed:``,"aria-label":`Поставить игру на паузу`,onClick:i[16]||=e=>dr()},{default:I(()=>[u(g(V),null,{default:I(()=>[u(g(nn))]),_:1})]),_:1})):t(``,!0),H.value.status==`finish`?t(``,!0):(L(),_(g(W),{key:4,type:`info`,dashed:``,"aria-label":`Завершить игру`,onClick:i[17]||=e=>pr()},{default:I(()=>[u(g(V),null,{default:I(()=>[u(g(en))]),_:1})]),_:1}))]),_:1})]),_:1})]),_:1}),u(bn,{"map-items":Nt.value,teams:H.value.teams||[],onSaveItem:hn,onDragging:i[18]||=e=>Ft.value=e,onGiveApplication:Kn},null,8,[`map-items`,`teams`]),u(g(Y),{justify:`space-between`,align:`center`},{default:I(()=>[u(g(be),{bordered:!1,type:`info`},{default:I(()=>[n(` Участвуют команд: `+e(ut.value),1)]),_:1}),ut.value?(L(),_(g(W),{key:0,quaternary:``,loading:l.value,disabled:l.value,onClick:i[19]||=e=>Ln()},{default:I(()=>[...i[79]||=[n(` QR команд `,-1)]]),_:1},8,[`loading`,`disabled`])):t(``,!0)]),_:1}),u(xr,{teams:H.value.teams||[],"can-print-receipts":g(Ee).environment===`venue`,"participation-options":ct,onAdd:i[20]||=e=>j.value=!0,onOpenQr:tr,onPrint:nr,onPreview:i[21]||=(e,t)=>Dn(e,t,!0),onDelete:Xn,onGiveApplication:Kn},null,8,[`teams`,`can-print-receipts`])])]),_:1})):t(``,!0),U.value?(L(),_(g(Ae),{key:3,name:`payment`,tab:`Оплата`},{default:I(()=>[B(`div`,Vr,[u($,null,{default:I(()=>[u(g(Y),{align:`center`,justify:`space-between`},{default:I(()=>[i[81]||=B(`p`,{class:`screens-title`},`Билеты`,-1),u(g(W),{size:`small`,onClick:i[22]||=e=>he.value=!0},{default:I(()=>[...i[80]||=[n(` Проверить билет `,-1)]]),_:1})]),_:1})]),_:1}),u($,null,{default:I(()=>[i[82]||=B(`p`,{class:`screens-title`},`Оплата игры`,-1),B(`div`,Hr,[u(g(Ue),{value:ai,size:300,padding:0})]),B(`p`,null,[B(`a`,{href:ai,class:`payment-link`,target:`_blank`,rel:`noreferrer`},` Открыть ссылку оплаты `)])]),_:1})])]),_:1})):t(``,!0),U.value?(L(),_(g(Ae),{key:4,name:`answers`,tab:`Проверка ответов`},{default:I(()=>[B(`div`,Ur,[u($,null,{default:I(()=>[i[89]||=B(`p`,{class:`screens-title`},`Таблица результатов`,-1),i[90]||=B(`p`,null,`Сохранённые оценки. Таблица обновляется после сохранения баллов.`,-1),Cr.value?(L(),_(g(Ge),{key:0},{default:I(()=>[...i[83]||=[n(`Загрузка результатов…`,-1)]]),_:1})):Tr.value?(L(),_(g(q),{key:1,type:`error`},{default:I(()=>[...i[84]||=[n(` Не удалось загрузить таблицу результатов. `,-1)]]),_:1})):Sr.value.length===0?(L(),z(`p`,Wr,`Результатов пока нет.`)):(L(),z(`div`,Gr,[u(g(Xt),{"single-line":!1},{default:I(()=>[B(`thead`,null,[B(`tr`,null,[i[85]||=B(`th`,{scope:`col`},`Место`,-1),i[86]||=B(`th`,{scope:`col`},`Команда`,-1),(L(!0),z(M,null,C(br.value,t=>(L(),z(`th`,{key:t.code,scope:`col`},e(t.code),1))),128)),i[87]||=B(`th`,{scope:`col`},`Сумма`,-1),i[88]||=B(`th`,{scope:`col`},`Поездки`,-1)])]),B(`tbody`,null,[(L(!0),z(M,null,C(Sr.value,t=>(L(),z(`tr`,{key:t.team?.ID},[B(`td`,null,e(t.place),1),B(`td`,null,e(t.team?.name),1),(L(!0),z(M,null,C(br.value,n=>(L(),z(`td`,{key:n.code},e(t.answers?.find(e=>e.questionCode===n.code)?.score??`—`),1))),128)),B(`td`,null,e(t.totalScore),1),B(`td`,null,e(t.actionsCount),1)]))),128))])]),_:1})]))]),_:1}),vr.value.length===0||yr.value.length===0?(L(),z(`div`,Kr,` Вопросы дела не заданы или команды ещё не отвечали. `)):(L(!0),z(M,{key:1},C(yr.value,t=>(L(),_($,{key:t.team?.ID},{default:I(()=>[B(`h3`,qr,e(t.team?.name),1),(L(!0),z(M,null,C(vr.value,n=>(L(),z(`div`,{key:n.code,class:`answers-question`},[B(`p`,Jr,e(n.code)+`: `+e(n.text),1),B(`p`,Yr,[B(`span`,Xr,e(n.answer||`—`),1)]),B(`div`,Zr,[B(`div`,Qr,e(si(t,n.code)||`—`),1),u(g(Lt),{value:Dr.value[oi(t.team?.ID,n.code)],"onUpdate:value":e=>ci(oi(t.team?.ID,n.code),e),placeholder:`Балл`,class:`answers-score-input`},null,8,[`value`,`onUpdate:value`])])]))),128))]),_:2},1024))),128)),u(g(Y),{justify:`end`},{default:I(()=>[u(g(W),{onClick:i[23]||=e=>fi(),disabled:vr.value.length===0||yr.value.length===0},{default:I(()=>[...i[91]||=[n(` Сохранить баллы `,-1)]]),_:1},8,[`disabled`])]),_:1})])]),_:1})):t(``,!0),Ie.value?(L(),_(g(Ae),{key:5,name:`state`,tab:`Состояние`,"tab-props":{tabindex:0,role:`tab`,"aria-selected":y.value===`state`,onKeydown:S}},{default:I(()=>[u(lr,{devices:g(Re),wifi:g(ze),"server-time":g(Ve),"is-loading":g(We),"has-error":g(Ke),summary:g(qe),onReload:g(Je)},null,8,[`devices`,`wifi`,`server-time`,`is-loading`,`has-error`,`summary`,`onReload`])]),_:1},8,[`tab-props`])):t(``,!0)]),_:1},8,[`value`])])]),Ye.value?(L(),_(g(Te),{key:0,show:et.value,"onUpdate:show":i[25]||=e=>et.value=e,"mask-closable":!$e.value,"close-on-esc":!$e.value},{default:I(()=>[u(g(ve),{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:I(()=>[...i[92]||=[B(`span`,{id:`reset-local-mode-title`},`Сбросить локальный режим?`,-1)]]),footer:I(()=>[u(g(Y),{justify:`end`},{default:I(()=>[u(g(W),{disabled:$e.value,onClick:i[24]||=e=>et.value=!1},{default:I(()=>[...i[93]||=[n(` Отмена `,-1)]]),_:1},8,[`disabled`]),u(g(W),{type:`warning`,loading:$e.value,disabled:$e.value,onClick:jn},{default:I(()=>[...i[94]||=[n(` Вернуть в обычный режим `,-1)]]),_:1},8,[`loading`,`disabled`])]),_:1})]),default:I(()=>[i[95]||=B(`p`,{id:`reset-local-mode-description`},` Игра вернётся в обычный режим на сервере. Данные игры сохранятся. Локальная площадка продолжит работать отдельно; её результаты можно будет загрузить позже. `,-1)]),_:1})]),_:1},8,[`show`,`mask-closable`,`close-on-esc`])):t(``,!0),U.value?(L(),_(Or,{key:1,show:he.value,"onUpdate:show":i[26]||=e=>he.value=e},null,8,[`show`])):t(``,!0),U.value&&g(Ee).environment===`venue`?(L(),_(wr,{key:2,show:ce.value,"onUpdate:show":i[27]||=e=>ce.value=e,name:R.value.name,preview:fe.value,"preparation-error":pe.value,"is-preparing":de.value,"is-printing":ue.value,onPrint:ar},null,8,[`show`,`name`,`preview`,`preparation-error`,`is-preparing`,`is-printing`])):t(``,!0),U.value?(L(),_(g(Te),{key:3,show:A.value,"onUpdate:show":i[30]||=e=>A.value=e},{default:I(()=>[u(g(ve),{style:{width:`600px`},title:`Настройки игры`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":I(()=>[u(g(W),{onClick:i[28]||=e=>A.value=!1},{default:I(()=>[...i[96]||=[n(` x `,-1)]]),_:1})]),footer:I(()=>[u(g(Y),{justify:`end`},{default:I(()=>[u(g(W),{onClick:i[29]||=e=>Yn(),ghost:``},{default:I(()=>[...i[99]||=[n(` Выдать `,-1)]]),_:1})]),_:1})]),default:I(()=>[u(g(J),{vertical:``},{default:I(()=>[i[97]||=B(`p`,null,`Команда`,-1),B(`h3`,null,e(Vn.value.name),1),i[98]||=B(`p`,null,`Улика`,-1),B(`h3`,null,e(Wn.value.name),1),g(mt)(Wn.value)==`image`&&Wn.value.image?(L(),z(`div`,$r,[B(`img`,{src:g(ht)(Wn.value.image),class:`give-application-image`},null,8,ei)])):g(mt)(Wn.value)==`audio`&&Wn.value.image?(L(),z(`audio`,{key:1,src:g(ht)(Wn.value.image),controls:``,preload:`none`,class:`give-application-audio`},null,8,ti)):g(mt)(Wn.value)==`pdf`&&Wn.value.image?(L(),z(`a`,{key:2,href:g(ht)(Wn.value.image),target:`_blank`,rel:`noopener`,class:`give-application-pdf-link`},` PDF `,8,ni)):t(``,!0)]),_:1})]),_:1})]),_:1},8,[`show`])):t(``,!0),U.value?(L(),_(g(Te),{key:4,show:j.value,"onUpdate:show":i[36]||=e=>j.value=e},{default:I(()=>[u(g(ve),{style:{width:`600px`},title:`Создание команды`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":I(()=>[u(g(W),{onClick:i[31]||=e=>j.value=!1},{default:I(()=>[...i[100]||=[n(` x `,-1)]]),_:1})]),footer:I(()=>[u(g(Y),{justify:`end`},{default:I(()=>[u(g(W),{onClick:i[35]||=e=>qn(),disabled:te.value.length==0},{default:I(()=>[...i[101]||=[n(` Создать `,-1)]]),_:1},8,[`disabled`])]),_:1})]),default:I(()=>[u(g(J),{vertical:``},{default:I(()=>[u(g(Be),{value:te.value,"onUpdate:value":i[32]||=e=>te.value=e,type:`text`,placeholder:`Три дебила`},null,8,[`value`]),u(g(Be),{value:ne.value,"onUpdate:value":i[33]||=e=>ne.value=e,"input-props":{type:`email`,autocomplete:`email`},placeholder:`Почта капитана (необязательно)`,"aria-label":`Почта капитана (необязательно)`},null,8,[`value`]),u(g(Lt),{value:F.value,"onUpdate:value":i[34]||=e=>F.value=e,min:1,max:8,precision:0,placeholder:`Количество игроков`,"aria-label":`Количество игроков`},null,8,[`value`])]),_:1})]),_:1})]),_:1},8,[`show`])):t(``,!0),U.value?(L(),_(g(Te),{key:5,show:N.value,"onUpdate:show":i[40]||=e=>N.value=e},{default:I(()=>[u(g(ve),{style:{width:`600px`},title:`Удаление команды`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":I(()=>[u(g(W),{onClick:i[37]||=e=>N.value=!1},{default:I(()=>[...i[102]||=[n(` x `,-1)]]),_:1})]),footer:I(()=>[u(g(Y),{justify:`end`},{default:I(()=>[u(g(W),{onClick:i[39]||=e=>Zn(),disabled:Hn.value!=Un.value.name},{default:I(()=>[...i[105]||=[n(` Удалить `,-1)]]),_:1},8,[`disabled`])]),_:1})]),default:I(()=>[u(g(J),{vertical:``},{default:I(()=>[B(`p`,null,[i[103]||=n(` Введите название команды `,-1),u(g(Ge),{class:`name-text`,strong:``},{default:I(()=>[n(e(Un.value.name),1)]),_:1}),i[104]||=n(` чтобы удалить его `,-1)]),u(g(Be),{value:Hn.value,"onUpdate:value":i[38]||=e=>Hn.value=e,type:`text`,placeholder:`Три дебила`},null,8,[`value`])]),_:1})]),_:1})]),_:1},8,[`show`])):t(``,!0),U.value?(L(),_(g(Te),{key:6,show:P.value,"onUpdate:show":i[44]||=e=>P.value=e},{default:I(()=>[u(g(ve),{style:{width:`600px`},title:`Удаление игры`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":I(()=>[u(g(W),{onClick:i[41]||=e=>P.value=!1},{default:I(()=>[...i[106]||=[n(` x `,-1)]]),_:1})]),footer:I(()=>[u(g(Y),{justify:`end`},{default:I(()=>[u(g(W),{onClick:i[43]||=e=>Qn(),disabled:re.value!=H.value.name},{default:I(()=>[...i[109]||=[n(` Удалить `,-1)]]),_:1},8,[`disabled`])]),_:1})]),default:I(()=>[u(g(J),{vertical:``},{default:I(()=>[B(`p`,null,[i[107]||=n(` Введите название игры `,-1),u(g(Ge),{class:`name-text`,strong:``},{default:I(()=>[n(e(H.value.name),1)]),_:1}),i[108]||=n(` чтобы удалить её `,-1)]),u(g(Be),{value:re.value,"onUpdate:value":i[42]||=e=>re.value=e,type:`text`,placeholder:`Дело №0 "Следствие ведут овечки"`},null,8,[`value`])]),_:1})]),_:1})]),_:1},8,[`show`])):t(``,!0),U.value?(L(),_(g(Te),{key:7,show:ie.value,"onUpdate:show":i[46]||=e=>ie.value=e},{default:I(()=>[u(g(ve),{style:{width:`600px`},title:se.value,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":I(()=>[u(g(W),{onClick:i[45]||=e=>ie.value=!1},{default:I(()=>[...i[110]||=[n(` x `,-1)]]),_:1})]),footer:I(()=>[...i[111]||=[]]),default:I(()=>[u(g(J),{vertical:``},{default:I(()=>[B(`div`,ri,[u(g(Ue),{value:oe.value,size:300,padding:0},null,8,[`value`])])]),_:1})]),_:1},8,[`title`])]),_:1},8,[`show`])):t(``,!0),U.value?(L(),_(g(Te),{key:8,show:mr.value,"onUpdate:show":i[48]||=e=>mr.value=e},{default:I(()=>[u(g(ve),{style:{width:`min(94vw, 800px)`},title:`Отзывы игры`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`,"content-style":{maxHeight:`70vh`,overflow:`auto`}},{"header-extra":I(()=>[u(g(W),{onClick:i[47]||=e=>mr.value=!1},{default:I(()=>[...i[112]||=[n(` x `,-1)]]),_:1})]),default:I(()=>[u(g(Y),{align:`center`,class:`reviews-summary`},{default:I(()=>[u(g(He),{value:gr.value,readonly:``,"allow-half":``},null,8,[`value`]),B(`span`,null,e(_r.value?`${gr.value.toFixed(1)} · ${_r.value}`:`Пока нет отзывов`),1)]),_:1}),hr.value.length==0?(L(),z(`div`,ii,`Отзывов пока нет.`)):t(``,!0),(L(!0),z(M,null,C(hr.value,r=>(L(),z(`div`,{key:r.ID,class:`review-row`},[u(g(Y),{justify:`space-between`,align:`center`},{default:I(()=>[B(`strong`,null,e(r.teamName),1),u(g(be),null,{default:I(()=>[n(e(r.status),1)]),_:2},1024)]),_:2},1024),u(g(He),{value:r.rating,readonly:``,size:`small`},null,8,[`value`]),B(`div`,null,`Сложность: `+e([``,`лёгкая`,`средняя`,`тяжёлая`][r.difficulty||0]),1),B(`p`,null,e(r.text),1),r.status==`pending`?(L(),_(g(Y),{key:0,justify:`end`},{default:I(()=>[u(g(W),{type:`success`,onClick:e=>di(r,`approved`)},{default:I(()=>[...i[113]||=[n(`Одобрить`,-1)]]),_:1},8,[`onClick`]),u(g(W),{type:`error`,ghost:``,onClick:e=>di(r,`rejected`)},{default:I(()=>[...i[114]||=[n(`Отклонить`,-1)]]),_:1},8,[`onClick`])]),_:2},1024)):r.status==`approved`?(L(),_(g(Y),{key:1,justify:`end`},{default:I(()=>[u(g(W),{type:`error`,ghost:``,onClick:e=>di(r,`hidden`)},{default:I(()=>[...i[115]||=[n(`Скрыть`,-1)]]),_:1},8,[`onClick`])]),_:2},1024)):t(``,!0)]))),128))]),_:1})]),_:1},8,[`show`])):t(``,!0),u(ft,{active:`games`})],64))}}),[[`__scopeId`,`data-v-44a77b26`]]),si=P({__name:`GameView`,setup(e){let t=w(0),n=ee();return(e,r)=>(L(),_(oi,{key:`${g(n).params.id}-${t.value}`,onResultsApplied:r[0]||=e=>t.value++}))}});export{si as default};