295 lines
131 KiB
JavaScript
295 lines
131 KiB
JavaScript
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 ee,d as O,f as k,g as A,ht as j,it as M,kt as N,l as te,lt as ne,mn as re,nt as P,on as F,ot as ie,p as ae,qt as I,rn as oe,sn as se,st as ce,tn as le,tt as L,u as ue,wt as R,xt as z,zn as de}from"./client-CH0l_cyC.js";import{a as fe,i as pe,o as me,t as he}from"./Follower-CaJ9Uz5i.js";import{d as ge}from"./utils-BVJruRIb.js";import{d as _e,s as ve,t as B,u as ye}from"./Card-DUKNL4qZ.js";import{i as be,n as V,r as xe,t as Se}from"./ui-DfDTPljW.js";import{i as H,n as Ce,w as we}from"./Suffix-DjsguQgO.js";import{t as Te}from"./Modal-BDS4yR9C.js";import{t as U}from"./use-merged-state-D6emBXqb.js";import{n as Ee,t as W}from"./Button-6aGlfFBR.js";import{n as De,t as Oe}from"./Popover-BI7t7jxQ.js";import{t as ke}from"./keep-jh_gDziX.js";import{n as Ae,t as je}from"./Tabs-B-zyVVjk.js";import{t as Me}from"./Select-BpOoEqpK.js";import{a as Ne,c as G,i as Pe,o as Fe,s as Ie,t as Le}from"./_plugin-vue_export-helper-CMIJnODt.js";import{t as Re}from"./Upload-BFre5Gjd.js";import{n as ze}from"./use-form-item-C11oxFRc.js";import{t as Be}from"./Add-G0WSV2_4.js";import{t as Ve}from"./Input-CBo4WY2m.js";import{t as He}from"./Remove-DbovAgsO.js";import{t as K}from"./Alert-Cphhiiyf.js";import{t as q}from"./Space-lK2ncWUK.js";import{t as J}from"./Flex-DFetgn7C.js";import{t as Ue}from"./Rate-BxgrWb3W.js";import{t as We}from"./QrCode-BXmEXBUo.js";import{t as Ge}from"./Spin-CCeKqTmW.js";import{t as Ke}from"./text-fV1Y7Tbk.js";import{A as qe,G as Je,H as Ye,M as Xe,N as Ze,O as Qe,Z as Y,at as $e,ct as et,dt as tt,ft as nt,h as rt,i as it,it as at,nt as ot,o as st,p as ct,pt as lt,r as ut,rt as dt,u as ft}from"./index-8AmrGIpl.js";import{t as pt}from"./HeaderMenu-C_pLd55f.js";import{t as mt}from"./binary_client-DuPgdTGe.js";import{n as ht,r as gt}from"./application-BB_PwA08.js";import{n as _t,t as vt}from"./datetime-BJNH0M1T.js";import{t as yt}from"./useDeviceContext-pJfmtPAG.js";var bt=N({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`}))}}),X=N({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`}))}}),xt=P(`collapse`,`width: 100%;`,[P(`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`,[M(`header`,`cursor: not-allowed;`,[M(`header-main`,`
|
||
color: var(--n-title-text-color-disabled);
|
||
`),P(`collapse-item-arrow`,`
|
||
color: var(--n-arrow-color-disabled);
|
||
`)])]),P(`collapse-item`,`margin-left: 32px;`),L(`&:first-child`,`margin-top: 0;`),L(`&:first-child >`,[M(`header`,`padding-top: 0;`)]),T(`left-arrow-placement`,[M(`header`,[P(`collapse-item-arrow`,`margin-right: 4px;`)])]),T(`right-arrow-placement`,[M(`header`,[P(`collapse-item-arrow`,`margin-left: 4px;`)])]),M(`content-wrapper`,[M(`content-inner`,`padding-top: 16px;`),Ze({duration:`0.15s`})]),T(`active`,[M(`header`,[T(`active`,[P(`collapse-item-arrow`,`transform: rotate(90deg);`)])])]),L(`&:not(:first-child)`,`border-top: 1px solid var(--n-divider-color);`),ie(`disabled`,[T(`trigger-area-main`,[M(`header`,[M(`header-main`,`cursor: pointer;`),P(`collapse-item-arrow`,`cursor: default;`)])]),T(`trigger-area-arrow`,[M(`header`,[P(`collapse-item-arrow`,`cursor: pointer;`)])]),T(`trigger-area-extra`,[M(`header`,[M(`header-extra`,`cursor: pointer;`)])])]),M(`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);
|
||
`,[M(`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);
|
||
`),M(`header-extra`,`
|
||
display: flex;
|
||
align-items: center;
|
||
transition: color .3s var(--n-bezier);
|
||
color: var(--n-text-color);
|
||
`),P(`collapse-item-arrow`,`
|
||
display: flex;
|
||
transition:
|
||
transform .15s var(--n-bezier),
|
||
color .3s var(--n-bezier);
|
||
font-size: 18px;
|
||
color: var(--n-arrow-color);
|
||
`)])])]),St=Object.assign(Object.assign({},ae.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}}),Z=S(`n-collapse`),Ct=N({name:`Collapse`,props:St,slots:Object,setup(e,{slots:t}){let{mergedClsPrefixRef:n,inlineThemeDisabled:r,mergedRtlRef:a}=v(e),o=w(e.defaultExpandedNames),c=U(D(()=>e.expandedNames),o),l=ae(`Collapse`,`-collapse`,xt,Qe,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(Z,{props:e,mergedClsPrefixRef:n,expandedNamesRef:c,slots:t,toggleItem:f});let p=A(`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)}}),wt=N({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(Ye,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?se(a,[[tt,e]]):e?a:null}})}}),Tt=N({name:`CollapseItem`,props:{title:String,name:[String,Number],disabled:Boolean,displayDirective:String},setup(e){let{mergedRtlRef:t}=v(e),n=$e(),r=at(()=>e.name??n),i=d(Z);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:A(`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`;ge(t,`arrow`)&&(n=`arrow`),ge(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(Y,{clsPrefix:a},{default:()=>this.rtlEnabled?l(bt,null):l(X,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(wt,{clsPrefix:a,displayDirective:i,show:!r},t))}});function Q(e){let{textColorDisabled:t}=e;return{iconColorDisabled:t}}var Et=k({name:`InputNumber`,common:O,peers:{Button:qe,Input:Xe},self:Q});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({},ct),{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:O,self:Dt},kt=L([P(`input-number-suffix`,`
|
||
display: inline-block;
|
||
margin-right: 10px;
|
||
`),P(`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=N({name:`InputNumber`,props:Object.assign(Object.assign({},ae.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=ae(`InputNumber`,`-input-number`,kt,Et,e,n),{localeRef:o}=H(`InputNumber`),s=ze(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),_=U(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=at(()=>{let{placeholder:t}=e;return t===void 0?o.value.placeholder:t}),C=at(()=>{let t=Pt(e.step);return t===null||t===0?1:Math.abs(t)}),T=at(()=>{let t=Pt(e.min);return t===null?null:t}),ee=at(()=>{let t=Pt(e.max);return t===null?null:t}),O=()=>{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)};O();let k=t=>{let{value:n}=_;if(t===n){O();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()},j=({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&&k(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}=ee,{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&&k(c),c)}}return!1},M=at(()=>j({offset:0,doUpdateIfValid:!1,isInputing:!1,fixPrecision:!1})===!1),N=at(()=>{let{value:t}=_;if(e.validator&&t===null)return!1;let{value:n}=C;return j({offset:-n,doUpdateIfValid:!1,isInputing:!1,fixPrecision:!1})!==!1}),te=at(()=>{let{value:t}=_;if(e.validator&&t===null)return!1;let{value:n}=C;return j({offset:+n,doUpdateIfValid:!1,isInputing:!1,fixPrecision:!1})!==!1});function ne(t){let{onFocus:n}=e,{nTriggerFormFocus:r}=s;n&&G(n,t),r()}function re(t){if(t.target===d.value?.wrapperElRef)return;let n=j({offset:0,doUpdateIfValid:!0,isInputing:!1,fixPrecision:!0});if(n!==!1){let e=d.value?.inputElRef;e&&(e.value=String(n||``)),_.value===n&&O()}else O();let{onBlur:r}=e,{nTriggerFormBlur:i}=s;r&&G(r,t),i(),h(()=>{O()})}function P(t){let{onClear:n}=e;n&&G(n,t)}function F(){let{value:t}=te;if(!t){pe();return}let{value:n}=_;if(n===null)e.validator||k(ce());else{let{value:e}=C;j({offset:e,doUpdateIfValid:!0,isInputing:!1,fixPrecision:!0})}}function ie(){let{value:t}=N;if(!t){de();return}let{value:n}=_;if(n===null)e.validator||k(ce());else{let{value:e}=C;j({offset:-e,doUpdateIfValid:!0,isInputing:!1,fixPrecision:!0})}}let I=ne,se=re;function ce(){if(e.validator)return null;let{value:t}=T,{value:n}=ee;return t===null?n===null?0:Math.min(0,n):Math.max(0,t)}function le(e){P(e),k(null)}function L(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 ue=null,R=null,z=null;function de(){z&&=(window.clearTimeout(z),null),ue&&=(window.clearInterval(ue),null)}let fe=null;function pe(){fe&&=(window.clearTimeout(fe),null),R&&=(window.clearInterval(R),null)}function me(){de(),z=window.setTimeout(()=>{ue=window.setInterval(()=>{ie()},It)},Ft),_e(`mouseup`,document,de,{once:!0})}function he(){pe(),fe=window.setTimeout(()=>{R=window.setInterval(()=>{F()},It)},Ft),_e(`mouseup`,document,pe,{once:!0})}let ge=()=>{R||F()},ve=()=>{ue||ie()};function B(t){var n;if(t.key===`Enter`){if(t.target===d.value?.wrapperElRef)return;j({offset:0,doUpdateIfValid:!0,isInputing:!1,fixPrecision:!0})!==!1&&((n=d.value)==null||n.deactivate())}else if(t.key===`ArrowUp`){if(!te.value||e.keyboard.ArrowUp===!1)return;t.preventDefault(),j({offset:0,doUpdateIfValid:!0,isInputing:!1,fixPrecision:!0})!==!1&&F()}else if(t.key===`ArrowDown`){if(!N.value||e.keyboard.ArrowDown===!1)return;t.preventDefault(),j({offset:0,doUpdateIfValid:!0,isInputing:!1,fixPrecision:!0})!==!1&&ie()}}function ye(t){y.value=t,e.updateValueOnInput&&!e.format&&!e.parse&&e.precision===void 0&&j({offset:0,doUpdateIfValid:!0,isInputing:!0,fixPrecision:!1})}oe(_,()=>{O()});let be={focus:()=>d.value?.focus(),blur:()=>d.value?.blur(),select:()=>d.value?.select()},V=A(`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:M,mergedSize:c,mergedDisabled:l,displayedValue:y,addable:te,minusable:N,mergedStatus:u,handleFocus:I,handleBlur:se,handleClear:le,handleMouseDown:L,handleAddClick:ge,handleMinusClick:ve,handleAddMousedown:he,handleMinusMousedown:me,handleKeyDown:B,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(Ee,{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(Y,{clsPrefix:e},{default:()=>l(He,null)})])}),r=()=>l(Ee,{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(Y,{clsPrefix:e},{default:()=>l(Be,null)})])});return l(`div`,{class:[`${e}-input-number`,this.rtlEnabled&&`${e}-input-number--rtl`]},l(Ve,{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=ve(zt),Vt=N({name:`NPopconfirmPanel`,props:zt,setup(e){let{localeRef:t}=H(`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({},H(`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(Y,{clsPrefix:t},{default:()=>l(Je,null)})])):null,e):null),i?l(`div`,{class:[`${t}-popconfirm__action`]},i):null)}}),Ht=P(`popconfirm`,[M(`body`,`
|
||
font-size: var(--n-font-size);
|
||
display: flex;
|
||
align-items: center;
|
||
flex-wrap: nowrap;
|
||
position: relative;
|
||
`,[M(`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;
|
||
`)]),M(`action`,`
|
||
display: flex;
|
||
justify-content: flex-end;
|
||
`,[L(`&:not(:first-child)`,`margin-top: 8px`),P(`button`,[L(`&:not(:last-child)`,`margin-right: 8px;`)])])]),Ut=N({name:`Popconfirm`,props:Object.assign(Object.assign(Object.assign({},ae.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=ae(`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({},ot(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=L([P(`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`,[P(`slider-handles`,[P(`slider-handle-wrapper`,`
|
||
transform: translate(50%, -50%);
|
||
`)]),P(`slider-dots`,[P(`slider-dot`,`
|
||
transform: translateX(50%, -50%);
|
||
`)]),T(`vertical`,[P(`slider-handles`,[P(`slider-handle-wrapper`,`
|
||
transform: translate(-50%, -50%);
|
||
`)]),P(`slider-marks`,[P(`slider-mark`,`
|
||
transform: translateY(calc(-50% + var(--n-dot-height) / 2));
|
||
`)]),P(`slider-dots`,[P(`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%;
|
||
`,[P(`slider-handles`,`
|
||
top: calc(var(--n-handle-size) / 2);
|
||
right: 0;
|
||
bottom: calc(var(--n-handle-size) / 2);
|
||
left: 0;
|
||
`,[P(`slider-handle-wrapper`,`
|
||
top: unset;
|
||
left: 50%;
|
||
transform: translate(-50%, 50%);
|
||
`)]),P(`slider-rail`,`
|
||
height: 100%;
|
||
`,[M(`fill`,`
|
||
top: unset;
|
||
right: 0;
|
||
bottom: unset;
|
||
left: 0;
|
||
`)]),T(`with-mark`,`
|
||
width: var(--n-rail-width-vertical);
|
||
margin: 0 32px 0 8px;
|
||
`),P(`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);
|
||
`,[P(`slider-mark`,`
|
||
transform: translateY(50%);
|
||
white-space: nowrap;
|
||
`)]),P(`slider-dots`,`
|
||
top: calc(var(--n-handle-size) / 2);
|
||
right: unset;
|
||
bottom: calc(var(--n-handle-size) / 2);
|
||
left: 50%;
|
||
`,[P(`slider-dot`,`
|
||
transform: translateX(-50%) translateY(50%);
|
||
`)])]),T(`disabled`,`
|
||
cursor: not-allowed;
|
||
opacity: var(--n-opacity-disabled);
|
||
`,[P(`slider-handle`,`
|
||
cursor: not-allowed;
|
||
`)]),T(`with-mark`,`
|
||
width: 100%;
|
||
margin: 8px 0 32px 0;
|
||
`),L(`&:hover`,[P(`slider-rail`,{backgroundColor:`var(--n-rail-color-hover)`},[M(`fill`,{backgroundColor:`var(--n-fill-color-hover)`})]),P(`slider-handle`,{boxShadow:`var(--n-handle-box-shadow-hover)`})]),T(`active`,[P(`slider-rail`,{backgroundColor:`var(--n-rail-color-hover)`},[M(`fill`,{backgroundColor:`var(--n-fill-color-hover)`})]),P(`slider-handle`,{boxShadow:`var(--n-handle-box-shadow-hover)`})]),P(`slider-marks`,`
|
||
position: absolute;
|
||
top: 18px;
|
||
left: calc(var(--n-handle-size) / 2);
|
||
right: calc(var(--n-handle-size) / 2);
|
||
`,[P(`slider-mark`,`
|
||
position: absolute;
|
||
transform: translateX(-50%);
|
||
white-space: nowrap;
|
||
`)]),P(`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);
|
||
`,[M(`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);
|
||
`)]),P(`slider-handles`,`
|
||
position: absolute;
|
||
top: 0;
|
||
right: calc(var(--n-handle-size) / 2);
|
||
bottom: 0;
|
||
left: calc(var(--n-handle-size) / 2);
|
||
`,[P(`slider-handle-wrapper`,`
|
||
outline: none;
|
||
position: absolute;
|
||
top: 50%;
|
||
transform: translate(-50%, -50%);
|
||
cursor: pointer;
|
||
display: flex;
|
||
`,[P(`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);
|
||
`,[L(`&:hover`,`
|
||
box-shadow: var(--n-handle-box-shadow-hover);
|
||
`)]),L(`&:focus`,[P(`slider-handle`,`
|
||
box-shadow: var(--n-handle-box-shadow-focus);
|
||
`,[L(`&:hover`,`
|
||
box-shadow: var(--n-handle-box-shadow-active);
|
||
`)])])])]),P(`slider-dots`,`
|
||
position: absolute;
|
||
top: 50%;
|
||
left: calc(var(--n-handle-size) / 2);
|
||
right: calc(var(--n-handle-size) / 2);
|
||
`,[T(`transition-disabled`,[P(`slider-dot`,`transition: none;`)]),P(`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);`)])])]),P(`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);
|
||
`,[Ce()]),P(`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;
|
||
`),Ce()]),ee(P(`slider`,[P(`slider-dot`,`background-color: var(--n-dot-color-modal);`)])),ne(P(`slider`,[P(`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=N({name:`Slider`,props:Object.assign(Object.assign({},ae.props),{to:me.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=ae(`Slider`,`-slider`,Wt,Ot,e,t),o=w(null),[s,c]=Kt(),[l,u]=Kt(),d=w(new Set),f=ze(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),_=U(E(e,`value`),g),b=D(()=>{let{value:t}=_;return(e.range?t:[t]).map(le)}),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),ee=w(-1),O=w(-1),k=w(!1),A=w(!1),j=D(()=>{let{vertical:t,reverse:n}=e;return t?n?`top`:`bottom`:n?`right`:`left`}),M=D(()=>{if(x.value)return;let t=b.value,n=L(e.range?Math.min(...t):e.min),r=L(e.range?Math.max(...t):t[0]),{value:i}=j;return e.vertical?{[i]:`${n}%`,height:`${r-n}%`}:{[i]:`${n}%`,width:`${r-n}%`}}),N=D(()=>{let t=[],{marks:n}=e;if(n){let r=b.value.slice();r.sort((e,t)=>e-t);let{value:i}=j,{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]:`${L(r)}%`}})}}return t});function te(e,t){let n=L(e),{value:r}=j;return{[r]:`${n}%`,zIndex:+(t===T.value)}}function ne(t){return e.showTooltip||O.value===t||T.value===t&&k.value}function re(e){return k.value?!(T.value===e&&ee.value===e):!0}function P(e){var t;~e&&(T.value=e,(t=s.get(e))==null||t.focus())}function F(){l.forEach((e,t)=>{ne(t)&&e.syncPosition()})}function ie(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 I(t){let{range:n}=e;if(n){if(Array.isArray(t)){let{value:e}=b;t.join()!==e.join()&&ie(t)}}else Array.isArray(t)||b.value[0]!==t&&ie(t)}function se(t,n){if(e.range){let e=b.value.slice();e.splice(n,1,t),I(e)}else I(t)}function ce(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=z(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=z(n,[Number((i*o).toFixed(s)),Number((l*o).toFixed(s)),...a],r)}else{let e=R(t);c=z(t,[...a,e])}return c?le(c.value):n}function le(t){return Math.min(e.max,Math.max(e.min,t))}function L(t){let{max:n,min:r}=e;return(t-r)/(n-r)*100}function ue(t){let{max:n,min:r}=e;return r+(n-r)*t}function R(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 z(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 de(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),ue(a)}function fe(t){if(p.value||!e.keyboard)return;let{vertical:n,reverse:r}=e;switch(t.key){case`ArrowUp`:t.preventDefault(),pe(n&&r?-1:1);break;case`ArrowRight`:t.preventDefault(),pe(!n&&r?-1:1);break;case`ArrowDown`:t.preventDefault(),pe(n&&r?1:-1);break;case`ArrowLeft`:t.preventDefault(),pe(!n&&r?1:-1);break}}function pe(t){let n=T.value;if(n===-1)return;let{step:r}=e,i=b.value[n];se(ce(Number(r)<=0||r===`mark`?i:i+r*t,i,t>0?1:-1),n)}function he(t){if(p.value||!Gt(t)&&t.button!==qt)return;let n=de(t);if(n===void 0)return;let r=b.value.slice(),i=e.range?z(n,r)?.index??-1:0;i!==-1&&(t.preventDefault(),P(i),ge(),se(ce(n,b.value[i]),i))}function ge(){k.value||(k.value=!0,e.onDragstart&&G(e.onDragstart),_e(`touchend`,document,be),_e(`mouseup`,document,be),_e(`touchmove`,document,B),_e(`mousemove`,document,B))}function ve(){k.value&&(k.value=!1,e.onDragend&&G(e.onDragend),ye(`touchend`,document,be),ye(`mouseup`,document,be),ye(`touchmove`,document,B),ye(`mousemove`,document,B))}function B(e){let{value:t}=T;if(!k.value||t===-1){ve();return}let n=de(e);n!==void 0&&se(ce(n,b.value[t]),t)}function be(){ve()}function V(e){T.value=e,p.value||(O.value=e)}function xe(e){T.value===e&&(T.value=-1,ve()),O.value===e&&(O.value=-1)}function Se(e){O.value=e}function H(e){O.value===e&&(O.value=-1)}oe(T,(e,t)=>void h(()=>ee.value=t)),oe(_,()=>{if(e.marks){if(A.value)return;A.value=!0,h(()=>{A.value=!1})}h(F)}),y(()=>{ve()});let Ce=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,Ce,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}}),Ee=r?i(`slider-indicator`,void 0,Te,e):void 0;return{mergedClsPrefix:t,namespace:n,uncontrolledValue:g,mergedValue:_,mergedDisabled:p,mergedPlacement:S,isMounted:dt(),adjustedTo:me(e),dotTransitionDisabled:A,markInfos:N,isShowTooltip:ne,shouldKeepTooltipTransition:re,handleRailRef:o,setHandleRefs:c,setFollowerRefs:u,fillStyle:M,getHandleStyle:te,activeIndex:T,arrifiedValues:b,followerEnabledIndexSet:d,handleRailMouseDown:he,handleHandleFocus:V,handleHandleBlur:xe,handleHandleMouseEnter:Se,handleHandleMouseLeave:H,handleRailKeyDown:fe,indicatorCssVars:r?void 0:Te,indicatorThemeClass:Ee?.themeClass,indicatorOnRender:Ee?.onRender,cssVars:r?void 0:Ce,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(fe,null,{default:()=>[l(pe,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(he,{ref:this.setFollowerRefs(n),show:i,to:this.adjustedTo,enabled:this.showTooltip&&!this.range||this.followerEnabledIndexSet.has(n),teleportDisabled:this.adjustedTo===me.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=L([P(`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);
|
||
`,[L(`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);
|
||
`,[L(`&:last-child`,`
|
||
border-right: 0px solid var(--n-merged-border-color);
|
||
`)]),L(`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);
|
||
`,[L(`&: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);
|
||
`,[L(`tr`,[L(`&:last-child`,[L(`td`,`
|
||
border-bottom: 0 solid var(--n-merged-border-color);
|
||
`)])])]),T(`single-line`,[L(`th`,`
|
||
border-right: 0px solid var(--n-merged-border-color);
|
||
`),L(`td`,`
|
||
border-right: 0px solid var(--n-merged-border-color);
|
||
`)]),T(`single-column`,[L(`tr`,[L(`&:not(:last-child)`,[L(`td`,`
|
||
border-bottom: 0px solid var(--n-merged-border-color);
|
||
`)])])]),T(`striped`,[L(`tr:nth-of-type(even)`,[L(`td`,`background-color: var(--n-td-color-striped)`)])]),ie(`bottom-bordered`,[L(`tr`,[L(`&:last-child`,[L(`td`,`
|
||
border-bottom: 0px solid var(--n-merged-border-color);
|
||
`)])])])]),ee(P(`table`,`
|
||
background-color: var(--n-td-color-modal);
|
||
--n-merged-border-color: var(--n-border-color-modal);
|
||
`,[L(`th`,`
|
||
background-color: var(--n-th-color-modal);
|
||
`),L(`td`,`
|
||
background-color: var(--n-td-color-modal);
|
||
`)])),ne(P(`table`,`
|
||
background-color: var(--n-td-color-popover);
|
||
--n-merged-border-color: var(--n-border-color-popover);
|
||
`,[L(`th`,`
|
||
background-color: var(--n-th-color-popover);
|
||
`),L(`td`,`
|
||
background-color: var(--n-td-color-popover);
|
||
`)]))]),Xt=N({name:`Table`,props:Object.assign(Object.assign({},ae.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=ae(`Table`,`-table`,Yt,ft,e,t),c=A(`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,[ce(`fontSize`,e)]:b,[ce(`tdPadding`,e)]:x,[ce(`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=N({name:`Edit`,render:function(e,t){return I(),R(`svg`,Zt,t[0]||=[z(`path`,{d:`M2 26h28v2H2z`,fill:`currentColor`},null,-1),z(`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=N({name:`Flag`,render:function(e,t){return I(),R(`svg`,$t,t[0]||=[z(`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=N({name:`Pause`,render:function(e,t){return I(),R(`svg`,tn,t[0]||=[z(`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),z(`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=N({name:`Play`,render:function(e,t){return I(),R(`svg`,rn,t[0]||=[z(`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=N({name:`Repeat`,render:function(e,t){return I(),R(`svg`,on,t[0]||=[z(`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),z(`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=N({name:`Reset`,render:function(e,t){return I(),R(`svg`,cn,t[0]||=[z(`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=N({name:`Stop`,render:function(e,t){return I(),R(`svg`,un,t[0]||=[z(`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=N({name:`Trophy`,render:function(e,t){return I(),R(`svg`,fn,t[0]||=[z(`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`,$=Le(N({__name:`UiBlock`,props:{tag:{default:`div`}},setup(e){return(t,n)=>(I(),_(p(e.tag),{class:`ui-block`},{default:F(()=>[x(t.$slots,`default`,{},void 0,!0)]),_:3}))}}),[[`__scopeId`,`data-v-80193f22`]]),hn=[`onPointerdown`],gn=[`onPointerdown`],_n={key:2},vn=[`onClick`],yn=20,bn=Le(N({__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 ee(e){e.button===0&&(p={startX:e.clientX,startY:e.clientY,offsetX:c.value.x,offsetY:c.value.y},window.addEventListener(`pointermove`,O),window.addEventListener(`pointerup`,k,{once:!0}))}function O(e){p&&(c.value={x:p.offsetX+e.clientX-p.startX,y:p.offsetY+e.clientY-p.startY})}function k(){p=void 0,window.removeEventListener(`pointermove`,O)}function A(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`,O),window.removeEventListener(`pointerup`,k)}),(i,a)=>(I(),_($,null,{default:F(()=>[u(g(J),{align:`center`,justify:`space-between`,class:`screen-header`},{default:F(()=>[a[6]||=z(`p`,{class:`screens-title`},`Карта помещения`,-1),u(g(q),null,{default:F(()=>[u(g(W),{size:`small`,onClick:a[0]||=e=>T(-.1)},{default:F(()=>[...a[3]||=[n(`−`,-1)]]),_:1}),u(g(Ke),null,{default:F(()=>[n(e(Math.round(s.value*100))+`%`,1)]),_:1}),u(g(W),{size:`small`,onClick:a[1]||=e=>T(.1)},{default:F(()=>[...a[4]||=[n(`+`,-1)]]),_:1}),u(g(W),{size:`small`,onClick:E},{default:F(()=>[...a[5]||=[n(`Сбросить`,-1)]]),_:1})]),_:1})]),_:1}),z(`div`,{ref_key:`mapField`,ref:l,class:`map-field`,onPointerdown:ee,onWheel:A},[z(`div`,{class:`map-canvas`,style:de({transform:`translate(${c.value.x}px, ${c.value.y}px) scale(${s.value})`})},[(I(!0),R(j,null,C(r.mapItems,r=>se((I(),R(`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:de({left:`${r.x||0}px`,top:`${r.y||0}px`}),onPointerdown:lt(e=>r.kind!==`team`&&v(r,e),[`stop`])},[r.kind===`team`?(I(),R(`div`,{key:0,class:`map-team-handle`,onPointerdown:lt(e=>v(r,e),[`stop`])},null,40,gn)):t(``,!0),z(`span`,null,e(r.label),1),r.kind===`team`&&d.value.has(r.itemID)?(I(),_(g(q),{key:1,class:`map-team-applications`,vertical:``},{default:F(()=>[(I(!0),R(j,null,C(d.value.get(r.itemID)?.applications,t=>(I(),_(g(W),{key:t.name,size:`small`,onClick:e=>o(`giveApplication`,d.value.get(r.itemID),t)},{default:F(()=>[n(` Выдать: `+e(t.name),1)]),_:2},1032,[`onClick`]))),128))]),_:2},1024)):t(``,!0),r.kind===`screen`?(I(),R(`small`,_n,e(r.status)+e(r.soundEnabled?` · звук`:``),1)):t(``,!0),z(`button`,{class:`map-item-hide`,type:`button`,onPointerdown:a[2]||=lt(()=>{},[`stop`]),onClick:lt(e=>S(r),[`stop`])},` × `,40,vn)],46,hn)),[[tt,!r.hidden]])),128))],4)],544),r.mapItems.some(e=>e.hidden)?(I(),_(g(q),{key:0,class:`map-hidden-items`},{default:F(()=>[(I(!0),R(j,null,C(r.mapItems.filter(e=>e.hidden),t=>(I(),_(g(W),{key:`hidden-${t.kind}-${t.itemID}`,size:`small`,onClick:e=>S(t)},{default:F(()=>[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=Le(N({__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),ee=D(()=>a.music?.playback===`MUSIC_PLAYBACK_PLAYING`),O=D(()=>ee.value?`Пауза`:a.music?.playback===`MUSIC_PLAYBACK_PAUSED`?`Продолжить`:`Старт`),k=D(()=>a.music?.playlist?.tracks?.[a.music.trackIndex??0]);function A(){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 M(){c.value=a.music?.playlist?.ID??a.playlists[0]?.ID??null,A(),s.value=!0}function N(){(x.value||S.value)&&!window.confirm(`Отменить несохранённые изменения плейлиста?`)||(A(),s.value=!1)}function te(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 ne(e){c.value&&e.file.file&&o(`uploadTrack`,c.value,e.file.file)}function re(e){e!==(a.music?.trackIndex??0)&&o(`setMusic`,{trackIndex:e,positionMs:0})}return oe(()=>a.music?.volume,e=>{f.value=e??100}),oe(c,A),oe(()=>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=``,A();return}if(!y.value){if(x.value||S.value)return;c.value=null,A();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)=>(I(),_($,{class:`music-panel`,"data-testid":`music-plan`},{default:F(()=>[u(g(q),{justify:`space-between`,align:`center`},{default:F(()=>[a[17]||=z(`h3`,null,`План музыки`,-1),s.value?(I(),_(g(W),{key:1,size:`small`,disabled:r.isBusy,onClick:N},{default:F(()=>[...a[16]||=[n(`Готово`,-1)]]),_:1},8,[`disabled`])):(I(),_(g(W),{key:0,size:`small`,square:``,"aria-label":`Редактировать музыку`,title:`Редактировать музыку`,disabled:r.isBusy,onClick:M},{default:F(()=>[u(g(V),{size:18},{default:F(()=>[u(g(Qt))]),_:1})]),_:1},8,[`disabled`]))]),_:1}),s.value?(I(),_(g(q),{key:0,vertical:``,class:`music-content`,"data-testid":`music-editor`},{default:F(()=>[u(g(q),{wrap:!1},{default:F(()=>[u(g(Ve),{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:F(()=>[...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):(I(),R(`p`,xn,`Плейлистов пока нет.`)),c.value&&!y.value?(I(),_(g(K),{key:1,type:`warning`},{default:F(()=>[a[20]||=n(` Плейлист удалён на сервере. Несохранённый черновик сохранён до отмены. `,-1),u(g(W),{size:`small`,disabled:r.isBusy,onClick:A},{default:F(()=>[...a[19]||=[n(`Загрузить актуальный список`,-1)]]),_:1},8,[`disabled`])]),_:1})):t(``,!0),y.value&&c.value?(I(),R(j,{key:2},[a[31]||=z(`label`,{for:`music-playlist-name`},`Название плейлиста`,-1),u(g(Ve),{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(q),null,{default:F(()=>[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:F(()=>[...a[21]||=[n(`Сохранить название`,-1)]]),_:1},8,[`disabled`]),u(g(Re),{accept:`.mp3,audio/mpeg`,"default-upload":!1,"show-file-list":!1,disabled:r.isBusy||x.value||T.value,onChange:ne},{default:F(()=>[u(g(W),{size:`small`,disabled:r.isBusy||x.value||T.value},{default:F(()=>[...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:F(()=>[...a[23]||=[n(`Использовать в игре`,-1)]]),_:1},8,[`disabled`]),u(g(Ut),{onPositiveClick:a[6]||=e=>o(`deletePlaylist`,c.value)},{trigger:F(()=>[u(g(W),{size:`small`,type:`error`,ghost:``,disabled:r.isBusy||x.value||S.value},{default:F(()=>[...a[24]||=[n(`Удалить плейлист`,-1)]]),_:1},8,[`disabled`])]),default:F(()=>[n(` Удалить плейлист «`+e(y.value.name)+`»? `,1)]),_:1})]),_:1}),T.value?(I(),_(g(K),{key:0,type:`warning`},{default:F(()=>[...a[25]||=[n(`Порядок или состав треков изменился на сервере. Загрузите актуальный список перед сохранением.`,-1)]]),_:1})):t(``,!0),x.value||S.value||T.value?(I(),_(g(q),{key:1},{default:F(()=>[u(g(W),{size:`small`,disabled:r.isBusy||!x.value||T.value,onClick:a[7]||=e=>o(`reorderTracks`,c.value,[...h.value])},{default:F(()=>[...a[26]||=[n(`Сохранить порядок`,-1)]]),_:1},8,[`disabled`]),u(g(W),{size:`small`,disabled:r.isBusy,onClick:A},{default:F(()=>[n(e(T.value?`Загрузить актуальный список`:`Отменить изменения`),1)]),_:1},8,[`disabled`])]),_:1})):t(``,!0),h.value.length?t(``,!0):(I(),R(`p`,Sn,`Треков пока нет.`)),(I(!0),R(j,null,C(h.value,(t,i)=>(I(),R(`div`,{key:t,class:`track-row`},[z(`span`,null,e(i+1)+`. `+e(y.value.tracks?.find(e=>e.ID===t)?.name??`Трек удалён на сервере`),1),u(g(q),null,{default:F(()=>[u(g(W),{size:`small`,disabled:r.isBusy||T.value||i===0,"aria-label":`Поднять трек ${i+1}`,onClick:e=>te(i,-1)},{default:F(()=>[...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=>te(i,1)},{default:F(()=>[...a[28]||=[n(`↓`,-1)]]),_:1},8,[`disabled`,`aria-label`,`onClick`]),u(g(Ut),{onPositiveClick:e=>o(`deleteTrack`,c.value,t)},{trigger:F(()=>[u(g(W),{size:`small`,type:`error`,ghost:``,disabled:r.isBusy||x.value||T.value},{default:F(()=>[...a[29]||=[n(`Удалить`,-1)]]),_:1},8,[`disabled`])]),default:F(()=>[a[30]||=n(` Удалить трек из плейлиста? `,-1)]),_:1},8,[`onPositiveClick`])]),_:2},1024)]))),128))],64)):t(``,!0)]),_:1})):(I(),_(g(q),{key:1,vertical:``,class:`music-content`},{default:F(()=>[z(`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:F(()=>[u(g(V),{size:18},{default:F(()=>[u(g(sn))]),_:1})]),_:1},8,[`type`,`aria-pressed`,`disabled`])]),k.value?(I(),R(`p`,wn,e(k.value.name)+` · `+e(ee.value?`Играет`:r.music?.playback===`MUSIC_PLAYBACK_PAUSED`?`Пауза`:`Остановлено`),1)):t(``,!0),u(g(q),{align:`center`},{default:F(()=>[u(g(W),{square:``,"aria-label":O.value,title:O.value,disabled:!E.value,onClick:a[10]||=e=>o(`setMusic`,{playback:ee.value?`MUSIC_PLAYBACK_PAUSED`:`MUSIC_PLAYBACK_PLAYING`})},{default:F(()=>[u(g(V),{size:18},{default:F(()=>[ee.value?(I(),_(g(nn),{key:0})):(I(),_(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:F(()=>[u(g(V),{size:18},{default:F(()=>[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:F(()=>[u(g(V),{size:18},{default:F(()=>[u(g(ln))]),_:1})]),_:1},8,[`disabled`]),z(`div`,Tn,[a[32]||=z(`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):(I(),R(`p`,Dn,`В плейлисте пока нет треков.`)):(I(),R(`p`,En,`Выберите плейлист для игры.`)),(I(!0),R(j,null,C(r.music?.playlist?.tracks??[],(t,i)=>(I(),R(`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},[z(`span`,null,e(i+1)+`. `+e(t.name),1),u(g(W),{size:`small`,disabled:r.isBusy||i===(r.music?.trackIndex??0),onClick:e=>re(i)},{default:F(()=>[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=Le(N({__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(()=>gt(n.state.introAudio)),p=D(()=>gt(n.state.conclusionVideo));return oe(()=>[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)=>(I(),R(`div`,{class:m([`screen-preview`,{"screen-thumbnail":t.isThumbnail}]),style:de(l.value)},[t.state.mode===`SCREEN_MODE_TIMER`?(I(),R(`div`,An,[z(`h2`,null,e(t.state.timerLabel||`Перерыв`),1),z(`strong`,null,e(d.value),1)])):t.state.mode===`SCREEN_MODE_INTRO`?(I(),R(`div`,jn,e(f.value?`Аудиозапись введения`:`Введение не задано`),1)):t.state.mode===`SCREEN_MODE_CONCLUSION`&&p.value?(I(),R(`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`?(I(),R(`div`,Nn,` Видео закрывашки не задано `)):t.state.mode===`SCREEN_MODE_TEXT`?(I(),R(`div`,Pn,e(t.state.text),1)):t.state.mode===`SCREEN_MODE_RESULTS`?(I(),R(`div`,Fn,[r[4]||=z(`h2`,null,`Результаты`,-1),z(`table`,null,[z(`thead`,null,[z(`tr`,null,[r[0]||=z(`th`,null,`Место`,-1),r[1]||=z(`th`,null,`Команда`,-1),(I(!0),R(j,null,C(t.questions,t=>(I(),R(`th`,{key:t.code},e(t.code),1))),128)),r[2]||=z(`th`,null,`Сумма`,-1),r[3]||=z(`th`,null,`Ходы`,-1)])]),z(`tbody`,null,[(I(!0),R(j,null,C(t.teams,n=>(I(),R(`tr`,{key:n.team?.ID},[z(`td`,null,e(n.place),1),z(`td`,null,e(n.team?.name),1),(I(!0),R(j,null,C(t.questions,t=>(I(),R(`td`,{key:t.code},e(n.answers?.find(e=>e.questionCode===t.code)?.score??0),1))),128)),z(`td`,null,e(n.totalScore),1),z(`td`,null,e(n.actionsCount),1)]))),128))])])])):t.state.coverImage?(I(),R(`img`,{key:6,src:t.state.coverImage,alt:`Обложка дела`,class:`preview-cover`},null,8,In)):(I(),R(`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=Le(N({__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)=>(I(),_($,{class:`screen-plan-panel`,"data-testid":`screen-plan`},{default:F(()=>[u(g(q),{align:`center`,justify:`space-between`},{default:F(()=>[a[14]||=z(`h3`,null,`План экранов`,-1),u(g(q),null,{default:F(()=>[r.screenPlanMode===`use`&&!r.screenPlan?(I(),_(g(W),{key:0,size:`small`,disabled:d.value,onClick:a[0]||=e=>o(`addStep`)},{default:F(()=>[...a[11]||=[n(`Создать план`,-1)]]),_:1},8,[`disabled`])):r.screenPlanMode===`use`?(I(),_(g(W),{key:1,size:`small`,square:``,"aria-label":`Редактировать план экранов`,title:`Редактировать план экранов`,disabled:d.value,onClick:a[1]||=e=>o(`edit`)},{default:F(()=>[u(g(V),{size:18},{default:F(()=>[u(g(Qt))]),_:1})]),_:1},8,[`disabled`])):(I(),R(j,{key:2},[u(g(W),{size:`small`,disabled:d.value,onClick:a[2]||=e=>o(`cancel`)},{default:F(()=>[...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:F(()=>[...a[13]||=[n(`Сохранить план`,-1)]]),_:1},8,[`loading`,`disabled`])],64))]),_:1})]),_:1}),f.value.length?t(``,!0):(I(),R(`p`,zn,e(r.screenPlanMode===`edit`?`Добавьте шаги или сохраните пустой план для удаления.`:`План экранов ещё не создан.`),1)),z(`div`,Bn,[(I(!0),R(j,null,C(f.value,(i,s)=>(I(),R(`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},[z(`div`,Hn,[u(Rn,{state:b(i),questions:r.previewQuestions,teams:r.previewTeams,"is-thumbnail":``},null,8,[`state`,`questions`,`teams`])]),z(`div`,Un,[r.screenPlanMode===`edit`?(I(),R(j,{key:0},[u(g(q),{align:`center`},{default:F(()=>[z(`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:F(()=>[...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:F(()=>[...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:F(()=>[...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`?(I(),_(g(Ve),{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`?(I(),R(j,{key:1},[z(`label`,{for:`timer-label-${s}`},`Надпись таймера`,8,Wn),u(g(Ve),{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`]),z(`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)):(I(),R(j,{key:1},[z(`div`,Kn,[z(`span`,null,[n(e(s+1)+`. `+e(y.find(e=>e.value===i.mode)?.label),1),i.mode===`SCREEN_MODE_TEXT`?(I(),R(j,{key:0},[n(`: `+e(i.text),1)],64)):t(``,!0),i.mode===`SCREEN_MODE_TIMER`?(I(),R(j,{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:F(()=>[n(e(r.screenPlan?.currentStep===s?`Показан`:`Показать`),1)]),_:2},1032,[`disabled`,`onClick`])]),r.screenPlan?.currentStep===s?(I(),R(j,{key:0},[i.mode===`SCREEN_MODE_TIMER`?(I(),_(g(q),{key:0},{default:F(()=>[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:F(()=>[u(g(V),{size:18},{default:F(()=>[(I(),_(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:F(()=>[u(g(V),{size:18},{default:F(()=>[u(g(ln))]),_:1})]),_:1},8,[`disabled`,`onClick`])]),_:2},1024)):i.mode===`SCREEN_MODE_INTRO`||i.mode===`SCREEN_MODE_CONCLUSION`?(I(),R(j,{key:1},[u(g(q),null,{default:F(()=>[(I(),R(j,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:F(()=>[u(g(V),{size:18},{default:F(()=>[(I(),_(p(e.icon)))]),_:2},1024)]),_:2},1032,[`aria-label`,`title`,`disabled`,`onClick`])),64))]),_:2},1024),z(`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`?(I(),_(g(q),{key:1},{default:F(()=>[u(g(W),{size:`small`,disabled:d.value,onClick:a[9]||=e=>o(`addStep`)},{default:F(()=>[...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:F(()=>[...a[19]||=[n(`Удалить план`,-1)]]),_:1},8,[`disabled`])]),_:1})):t(``,!0)]),_:1}))}}),[[`__scopeId`,`data-v-b90defbb`]]),Yn=Le(N({__name:`ScreenBindingModal`,props:o({binding:{type:Boolean}},{show:{type:Boolean,required:!0},showModifiers:{}}),emits:o([`scanned`],[`update:show`]),setup(r,{emit:i}){let a=le(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 oe(a,e=>{e?v():p()}),y(p),(i,o)=>(I(),_(g(Te),{show:a.value,"onUpdate:show":o[0]||=e=>a.value=e},{default:F(()=>[u(g(B),{style:{width:`min(600px, 94vw)`},title:`Привязать экран`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":F(()=>[u(g(W),{onClick:b},{default:F(()=>[...o[1]||=[n(` x `,-1)]]),_:1})]),default:F(()=>[u(g(q),{vertical:``},{default:F(()=>[z(`video`,{ref_key:`scannerVideo`,ref:c,class:`screen-scanner-video`,muted:``,playsinline:``},null,512),s.value?(I(),_(g(K),{key:0,type:`error`},{default:F(()=>[n(e(s.value),1)]),_:1})):t(``,!0),!l.value&&!r.binding?(I(),_(g(W),{key:1,type:`primary`,onClick:v},{default:F(()=>[...o[2]||=[n(` Сканировать QR-код `,-1)]]),_:1})):t(``,!0),l.value?(I(),_(g(W),{key:2,onClick:p},{default:F(()=>[...o[3]||=[n(`Остановить камеру`,-1)]]),_:1})):t(``,!0),r.binding?(I(),_(g(W),{key:3,type:`primary`,loading:``},{default:F(()=>[...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=Le(N({__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)=>(I(),R(j,null,[u($,null,{default:F(()=>[u(g(J),{align:`center`,justify:`space-between`,class:`screen-header`},{default:F(()=>[c[4]||=z(`p`,{class:`screens-title`},`Экраны`,-1),u(g(W),{size:`small`,disabled:r.isBusy||r.screenBinding,onClick:c[0]||=e=>s.value=!0},{default:F(()=>[...c[3]||=[n(` Привязать экран `,-1)]]),_:1},8,[`disabled`])]),_:1}),r.screens.some(e=>e.status===`disconnected`)?(I(),_(g(K),{key:0,type:`warning`,title:`Проверьте подключение экрана`},{default:F(()=>[...c[5]||=[n(` Один или несколько экранов не выходят на связь более минуты. `,-1)]]),_:1})):t(``,!0),r.screens.length===0?(I(),R(`p`,Xn,`К игре пока не привязаны экраны.`)):(I(!0),R(j,{key:2},C(r.screens,i=>(I(),R(`div`,{key:i.ID,class:`screen-row`},[z(`div`,null,[z(`div`,null,`Экран `+e(i.ID),1),z(`div`,Zn,e(i.status===`connected`?`Онлайн`:`Оффлайн`),1),i.error?(I(),R(`div`,Qn,e(i.error),1)):t(``,!0)]),u(g(J),{justify:`end`},{default:F(()=>[i.soundEnabled?(I(),_(g(be),{key:0,type:`success`},{default:F(()=>[...c[6]||=[n(`Со звуком`,-1)]]),_:1})):(I(),_(g(W),{key:1,size:`small`,disabled:r.isBusy,onClick:e=>o(`setSound`,i)},{default:F(()=>[...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:F(()=>[...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=Le(N({__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)=>(I(),R(j,null,[u($,null,{default:F(()=>[u(g(J),null,{default:F(()=>[u(g(be),{type:`success`},{default:F(()=>[n(`Доступны: `+e(r.summary.connected),1)]),_:1}),u(g(be),{type:`warning`},{default:F(()=>[n(`Нет связи: `+e(r.summary.disconnected),1)]),_:1}),u(g(be),null,{default:F(()=>[n(`Подключения: `+e(r.summary.connections),1)]),_:1})]),_:1}),r.serverTime?(I(),R(`p`,er,`Последнее обновление: `+e(g(vt)(r.serverTime)),1)):t(``,!0),o[2]||=z(`p`,null,`«Нет связи» означает отсутствие heartbeat сайта. UUID обозначает браузерный профиль.`,-1),r.hasError?(I(),_(g(K),{key:1,type:`error`,title:`Не удалось обновить состояние`},{default:F(()=>[u(g(W),{loading:r.isLoading,onClick:o[0]||=e=>a.$emit(`reload`)},{default:F(()=>[...o[1]||=[n(`Повторить`,-1)]]),_:1},8,[`loading`])]),_:1})):t(``,!0),r.isLoading&&!r.serverTime?(I(),_(g(Ge),{key:2})):!r.hasError&&!r.serverTime&&!r.isLoading?(I(),R(`p`,tr,`Загружаем состояние…`)):r.serverTime&&!r.devices.length?(I(),R(`p`,nr,`Устройства этой игры пока не зарегистрированы`)):t(``,!0)]),_:1}),u($,null,{default:F(()=>[o[4]||=z(`h3`,null,`Wi-Fi площадки`,-1),o[5]||=z(`p`,null,` Все Wi-Fi-клиенты Cudy, независимо от выбранной игры. MAC устройства и UUID браузера различаются. `,-1),r.wifi?.enabled?(I(),R(j,{key:1},[r.wifi.hasError?(I(),_(g(K),{key:0,type:`warning`,role:`alert`,title:`Не удалось обновить данные Cudy`})):t(``,!0),r.wifi.stale?(I(),_(g(be),{key:1,type:`warning`},{default:F(()=>[...o[3]||=[n(`Данные устарели`,-1)]]),_:1})):t(``,!0),r.wifi.collectedAt?(I(),R(`p`,ir,` Последний снимок Cudy: `+e(g(vt)(r.wifi.collectedAt)),1)):t(``,!0),r.wifi.collectedAt?(I(),R(j,{key:3},[z(`p`,null,`Wi-Fi-клиентов: `+e(r.wifi.clients?.length||0),1),r.wifi.clients?.length?t(``,!0):(I(),R(`p`,ar,`Wi-Fi-клиенты пока не подключены`)),(I(!0),R(j,null,C(r.wifi.clients,t=>(I(),R(`div`,{key:t.MAC,class:`connection device-details`},[z(`strong`,null,e(t.MAC),1),z(`p`,null,`IP: `+e(t.IP||`—`)+` · `+e(t.band),1),z(`p`,null,`Сигнал: `+e(t.signal===void 0?`Нет данных`:`${t.signal} dBm`),1)]))),128))],64)):t(``,!0)],64)):(I(),R(`p`,rr,`Сбор данных Cudy не настроен`))]),_:1}),(I(!0),R(j,null,C(r.devices,r=>(I(),_($,{key:r.ID},{default:F(()=>[z(`div`,or,[z(`strong`,null,e(r.ID),1),z(`p`,null,[u(g(be),{type:r.connected?`success`:`warning`},{default:F(()=>[n(e(r.connected?`Доступно`:`Нет связи`),1)]),_:2},1032,[`type`])]),z(`p`,null,`Последнее обращение: `+e(g(vt)(r.lastSeenAt)||`—`),1),u(g(Ct),null,{default:F(()=>[u(g(Tt),{title:`Подключения`,name:r.ID||``},{default:F(()=>[(I(!0),R(j,null,C(r.connections,n=>(I(),R(`div`,{key:n.ID,class:`connection`},[z(`strong`,null,e(i[n.kind||``]||n.kind),1),n.teamID?(I(),R(`p`,sr,`ID команды: `+e(n.teamID),1)):t(``,!0),n.screenID?(I(),R(`p`,cr,`ID экрана: `+e(n.screenID),1)):t(``,!0),z(`p`,null,e(n.connected?`Доступно`:`Нет связи`),1),z(`p`,null,`Последнее обращение: `+e(g(vt)(n.lastSeenAt)||`—`),1),z(`p`,null,`IP: `+e(n.IP||`—`),1),z(`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=Le(N({__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)=>(I(),R(j,null,[u($,{class:`team-block-hover`,onClick:o[0]||=e=>a(`add`)},{default:F(()=>[...o[1]||=[z(`p`,{class:`place-image-plus`},`+`,-1)]]),_:1}),(I(!0),R(j,null,C(r.teams,i=>(I(),_($,{key:i.ID},{default:F(()=>[z(`div`,ur,[u(g(J),{justify:`space-between`},{default:F(()=>[z(`div`,dr,[z(`span`,fr,[n(e(i.name)+` `,1),i.captainEmail?(I(),R(`small`,pr,` — `+e(i.captainEmail),1)):t(``,!0),i.participantsCount?(I(),R(`small`,mr,` · Участников: `+e(i.participantsCount),1)):t(``,!0)]),i.captainEmail||i.participationStatus!==`pending`?(I(),R(`div`,hr,[n(e(r.participationOptions.find(e=>e.value===i.participationStatus)?.label),1),i.participationSource===`automatic`?(I(),R(`span`,gr,` · автоматически`)):t(``,!0)])):t(``,!0),i.captainEmail?i.participationEmailError?(I(),R(`div`,vr,` Ошибка отправки: `+e(i.participationEmailError),1)):i.participationEmailSent?(I(),R(`div`,yr,`Письмо отправлено`)):t(``,!0):(I(),R(`div`,_r,`Почта капитана не указана`)),i.participationStatus===`cancelled`?t(``,!0):(I(),R(`div`,br,` Поездки: `+e(i.actionsCount),1))]),u(g(J),{justify:`end`},{default:F(()=>[r.canPrintReceipts&&i.participationStatus!==`cancelled`?(I(),_(g(W),{key:0,onClick:e=>a(`print`,i)},{default:F(()=>[...o[2]||=[n(` Печать чека `,-1)]]),_:1},8,[`onClick`])):t(``,!0),i.participationStatus===`cancelled`?t(``,!0):(I(),_(g(W),{key:1,onClick:e=>a(`open-qr`,i)},{default:F(()=>[...o[3]||=[n(`QR`,-1)]]),_:1},8,[`onClick`])),i.participationStatus===`cancelled`?t(``,!0):(I(),_(g(W),{key:2,onClick:e=>a(`preview`,i.ID,i.password)},{default:F(()=>[...o[4]||=[n(`Подсмотреть игру`,-1)]]),_:1},8,[`onClick`])),u(g(W),{type:`error`,ghost:``,onClick:e=>a(`delete`,i)},{default:F(()=>[...o[5]||=[n(`Удалить`,-1)]]),_:1},8,[`onClick`])]),_:2},1024)]),_:2},1024),(I(!0),R(j,null,C(i.applications,t=>(I(),_(g(W),{key:t.name,class:`link-button`,onClick:e=>a(`give-application`,i,t)},{default:F(()=>[n(` Выдать: `+e(t.name),1)]),_:2},1032,[`onClick`]))),128))])]),_:2},1024))),128))],64))}}),[[`__scopeId`,`data-v-70e02c3e`]]),Sr=[`src`,`alt`],Cr={key:2},wr=Le(N({__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)=>(I(),_(g(Te),{show:r.show,"mask-closable":!r.isPrinting,"close-on-esc":!r.isPrinting,"onUpdate:show":o[2]||=e=>a(`update:show`,e)},{default:F(()=>[u(g(B),{class:`receipt-modal`,title:`Чек команды`,role:`dialog`,"aria-modal":`true`},{default:F(()=>[r.preparationError?(I(),_(g(K),{key:0,type:`error`},{default:F(()=>[n(e(r.preparationError),1)]),_:1})):r.preview?(I(),R(`img`,{key:1,class:`receipt-preview`,src:r.preview,alt:`Чек команды ${r.name}`},null,8,Sr)):r.isPreparing?(I(),R(`p`,Cr,`Подготовка чека…`)):t(``,!0),o[5]||=z(`p`,null,`Включите MXW01 рядом с сервером площадки. Сервер напечатает один чек.`,-1),u(g(J),{justify:`end`},{default:F(()=>[u(g(W),{disabled:r.isPrinting,onClick:o[0]||=e=>a(`update:show`,!1)},{default:F(()=>[...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:F(()=>[...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=Le(N({__name:`TicketCheckModal`,props:{show:{type:Boolean,required:!0},showModifiers:{}},emits:[`update:show`],setup(r){let i=le(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 oe(i,e=>{e?C():T()}),y(T),(r,a)=>(I(),_(g(Te),{show:i.value,"onUpdate:show":a[1]||=e=>i.value=e},{default:F(()=>[u(g(B),{style:{width:`min(600px, 94vw)`},title:`Проверка билета`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":F(()=>[u(g(W),{onClick:E},{default:F(()=>[...a[2]||=[n(` x `,-1)]]),_:1})]),default:F(()=>[u(g(q),{vertical:``},{default:F(()=>[p.value?(I(),R(`video`,{key:0,ref_key:`video`,ref:f,class:`ticket-scanner-video`,muted:``,playsinline:``},null,512)):t(``,!0),l.value?(I(),_(g(K),{key:1,type:`error`},{default:F(()=>[n(e(l.value),1)]),_:1})):t(``,!0),p.value?(I(),_(g(W),{key:3,onClick:T},{default:F(()=>[...a[4]||=[n(`Остановить камеру`,-1)]]),_:1})):(I(),_(g(W),{key:2,onClick:C},{default:F(()=>[...a[3]||=[n(`Сканировать QR-код`,-1)]]),_:1})),u(g(Ve),{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:F(()=>[...a[5]||=[n(` Проверить билет `,-1)]]),_:1},8,[`loading`]),c.value?(I(),R(j,{key:4},[u(g(K),{type:c.value.status===`active`?`success`:`warning`},{default:F(()=>[n(e(c.value.gameName),1),a[6]||=z(`br`,null,null,-1),n(` Статус: `+e(c.value.status===`active`?`действителен`:`уже использован`)+` `,1),c.value.usedBy?(I(),R(`span`,Tr,` · `+e(c.value.usedBy),1)):t(``,!0),c.value.usedAt?(I(),R(`br`,Er)):t(``,!0),c.value.usedAt?(I(),R(`span`,Dr,`Использован: `+e(g(vt)(c.value.usedAt)),1)):t(``,!0)]),_:1},8,[`type`]),c.value.status===`active`&&c.value.gameStatus!==`finish`?(I(),_(g(W),{key:0,type:`primary`,loading:d.value,onClick:S},{default:F(()=>[...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 oe([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`}),ut(()=>{f()},5e3),re(()=>{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=Le(N({__name:`GamePage`,emits:[`resultsApplied`],setup(i,{emit:a}){let o=a,s=it(),c=mt(),l=w(!1),d=w(!1),f=ue(),p=te(),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`?!Fe.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:``}),ee=w(!1),O=w(!1),k=w(!1),A=w(!1),M=w(!1),N=w(``),ne=w(``),re=w(1),P=w(``),ie=w(!1),ae=w(``),se=w(``),ce=w(!1),le=w({name:``,teamID:``}),L=w(!1),de=w(!1),fe=w(``),pe=w(``),me=0,he=w(!1),ge=w(1),_e=w([]),ve=w(!1),ye=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}),Ce=st(),we=Se(),U=D(()=>Ce.hasAnyRole([`admin`,`organizer`,`author`])),Ee=0,De=0,Oe=!1,ke=!1,Ne,G,Pe=!1,Fe=D(()=>we.environment===`venue`&&Ce.hasAnyRole([`admin`,`organizer`,`developer`])),Ie=D(()=>Fe.value&&!U.value);yt(()=>U.value?{organizerGameID:Number(m)}:{});let{devices:Le,wifi:ze,serverTime:Be,isLoading:He,hasError:Ge,summary:qe,reload:Je}=kr(()=>Number(p.params.id),()=>Fe.value&&y.value===`state`);oe([()=>p.query.tab,Fe,U],()=>{let e=typeof p.query.tab==`string`?p.query.tab:``;y.value=Ie.value?`state`:h(e)&&(e!==`state`||Fe.value)?e:`game`,Ie.value&&e!==`state`&&f.replace({query:{...p.query,tab:`state`}})},{immediate:!0}),oe(Ie,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},Ht(Number(m)))},{immediate:!0});let Ye=D(()=>Number(H.value.ID)>0&&we.environment===`prod`&&Ce.hasAnyRole([`admin`,`organizer`,`developer`])),Xe=w(!1),Ze=w(!1),Qe=D(()=>Ye.value&&(H.value.export?.state===`preparing`||H.value.export?.state===`ready`)),Y=w(!1),$e=w(!1),et=w(``),tt=D(()=>we.environment===`venue`&&H.value.status===`finish`&&Ce.hasAnyRole([`admin`,`organizer`,`developer`])),nt=w(!1),rt=w(!1),at=w([]),ot=w(``),ct=[{label:`Ожидает ответа`,value:`pending`},{label:`Подтверждено`,value:`confirmed`},{label:`Отменено`,value:`cancelled`}],lt=D(()=>(H.value.teams||[]).filter(e=>e.participationStatus!==`cancelled`).length),dt=w([]),ft=w([]),bt=w(),X=w(!1),xt=0,St=Date.now(),Z=w(!1),Ct=w(!0),wt=w(``),Tt=w(),Q=w([]),Et=w(!1),Dt=w(!1),Ot=w(`use`),kt=0,At=w([]),jt=w([]),Mt=w([]),Nt=w(!1),Pt=w(!1),Ft=w(100),It=D(()=>dt.value.find(e=>e.status===`connected`)||dt.value[0]);oe(()=>It.value?.volume,e=>{Ft.value=e??100});function Rt(e){ke||Pe||(Pe=!0,T.warning(`Не удалось включить звуковые уведомления о выдаче улик`),console.error(`Звуковое уведомление о выдаче улик`,e))}async function zt(){if(!(!U.value||ke))try{Ne??=new AudioContext,Ne.state===`suspended`&&await Ne.resume();let e=Ne;G??=fetch(mn).then(async t=>{if(!t.ok)throw Error(`Не удалось загрузить звук уведомления`);return e.decodeAudioData(await t.arrayBuffer())}),await G}catch(e){G=void 0,Rt(e)}}async function Bt(){if(!(!Ne||Ne.state!==`running`||!G))try{let e=await G;if(ke||Ne.state!==`running`)return;let t=Ne.createBufferSource();t.buffer=e,t.connect(Ne.destination),t.onended=()=>t.disconnect(),t.start()}catch(e){Rt(e)}}async function Vt(){await zt(),await Bt()}b(()=>{window.addEventListener(`click`,zt),window.addEventListener(`keydown`,zt)}),r(()=>{ke=!0,me++,nr(),window.removeEventListener(`click`,zt),window.removeEventListener(`keydown`,zt),Ne?.close().catch(e=>{console.error(`Закрытие звуковых уведомлений`,e)})});async function Ht(e){let t=++Ee,n=U.value,r=await s.GetGame({ID:e});ke||n!==U.value||t<De||(De=t,U.value&&Oe&&Ar(H.value.teams||[],r.game?.teams||[])&&Bt(),Oe=!0,H.value=r.game,ee.value||=(E.value={name:H.value.name||``,description:H.value.description||``,format:H.value.format||`online`,location:H.value.location||``},!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&&Ht(Number(m));async function Ut(){try{let e=await s.GetGameScreens({gameID:Number(m)});if(dt.value=e.screens||[],wt.value=``,(Ot.value===`edit`?Q.value:Tt.value?.steps)?.some(e=>e.mode===`SCREEN_MODE_RESULTS`)||It.value?.mode===`SCREEN_MODE_RESULTS`){let e=await s.GetGameResults({gameID:Number(m)});At.value=e.questions||[],jt.value=e.teams||[]}}catch(e){wt.value=e instanceof Error?e.message:`Не удалось получить состояние экранов`}finally{Ct.value=!1}}U.value&&Ut();async function Wt(e=!1){if(X.value&&!e)return;let t=++xt;try{let e=await s.GetGameMusic({gameID:Number(m)});if(t!==xt)return;ft.value=e.playlists||[],bt.value=e.state,St=Date.now()}catch(e){T.error(e instanceof Error?e.message:`Не удалось получить музыку игры`)}}U.value&&Wt();function Gt(){return Ot.value===`edit`}async function Kt(){if(Gt()||Et.value||Z.value)return;let e=++kt;try{let t=await s.GetScreenPlan({gameID:Number(m)});if(e!==kt||Gt()||Z.value||Et.value)return;Tt.value=t.plan,Q.value=t.plan?.steps?.map(e=>({...e}))||[]}catch(e){T.error(e instanceof Error?e.message:`Не удалось получить план экранов`)}}U.value&&Kt();function qt(){Q.value.push({mode:`SCREEN_MODE_TEXT`,text:`Новый экран`,timerLabel:`Перерыв`,timerDurationSeconds:600}),Et.value=!0,Ot.value=`edit`}function Jt(){Tt.value&&(Q.value=Tt.value.steps?.map(e=>({...e}))||[],Ot.value=`edit`)}function Yt(){Et.value&&!window.confirm(`Отменить несохранённые изменения плана?`)||(Q.value=Tt.value?.steps?.map(e=>({...e}))||[],Et.value=!1,Ot.value=`use`)}function Zt(e){Q.value.splice(e,1),Et.value=!0}function Qt(e,t){let n=e+t;if(n<0||n>=Q.value.length)return;let[r]=Q.value.splice(e,1);Q.value.splice(n,0,r),Et.value=!0}function $t(){Et.value=!0}function tn(){Q.value=[],$t()}async function rn(){if(Dt.value)return;let e=Q.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}kt+=1,Dt.value=!0;try{let e=Math.min(Tt.value?.currentStep||0,Math.max(0,Q.value.length-1)),t=await s.SaveScreenPlan({gameID:Number(m),steps:Q.value,currentStep:e});Tt.value=t.plan,Q.value=t.plan?.steps?.map(e=>({...e}))||[],Et.value=!1,Ot.value=`use`,T.success(t.plan?`План экранов сохранён`:`План экранов удалён`)}catch(e){T.error(e instanceof Error?e.message:`Не удалось сохранить план экранов`)}finally{Dt.value=!1}}async function on(e){if(!(Et.value||!Tt.value||Z.value||Dt.value)){Z.value=!0,kt+=1;try{let t=await s.SetScreenPlanStep({gameID:Number(m),currentStep:e});Tt.value=t.plan,await Ut()}catch(e){T.error(e instanceof Error?e.message:`Не удалось перейти на шаг плана`)}finally{Z.value=!1}}}async function sn(e,t){if(!(Z.value||Dt.value||Et.value||e!==`SCREEN_MODE_TIMER`&&e!==`SCREEN_MODE_INTRO`&&e!==`SCREEN_MODE_CONCLUSION`)){Z.value=!0;try{await s.SendScreenCommand({gameID:Number(m),command:t,positionMs:0,volume:Math.max(0,Math.min(100,Math.round(Ft.value)))}),await Ut()}catch(e){T.error(e instanceof Error?e.message:`Не удалось управлять экраном`)}finally{Z.value=!1}}}async function cn(e,t){if(!ye.value){ye.value=!0;try{await s.BindScreen({screenID:e,accessToken:t,gameID:Number(m),initializeAudio:!1}),T.success(`Экран привязан к игре`),await Ut()}catch(e){T.error(e instanceof Error?e.message:`Не удалось привязать экран`)}finally{ye.value=!1}}}async function un(){if(Nt.value||Pt.value)return;let e=await s.GetGameMap({gameID:Number(m)});Nt.value||Pt.value||(Mt.value=e.items||[])}U.value&&un();async function dn(e,t=e.hidden){Nt.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{Nt.value=!1}}async function fn(e,t=e.hidden){await dn(e,t),await un()}async function hn(e){if(!Z.value){Z.value=!0;try{await s.SetScreenSound({screenID:e.ID,soundEnabled:!0}),await Ut()}catch(e){T.error(e instanceof Error?e.message:`Не удалось назначить звук`)}finally{Z.value=!1}}}async function gn(e){if(X.value)return;X.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{X.value=!1}}async function _n(e){if(!(X.value||!e.trim())){X.value=!0,xt+=1;try{await s.CreatePlaylist({name:e.trim()}),await Wt(!0)}catch(e){T.error(e instanceof Error?e.message:`Не удалось создать плейлист`)}finally{X.value=!1}}}async function vn(e,t){if(!(X.value||!t.trim())){X.value=!0,xt+=1;try{await s.UpdatePlaylist({ID:e,name:t.trim()}),await Wt(!0)}catch(e){T.error(e instanceof Error?e.message:`Не удалось переименовать плейлист`)}finally{X.value=!1}}}async function yn(e,t){if(!X.value){X.value=!0,xt+=1;try{await s.ReorderPlaylistTracks({playlistID:e,trackIDs:t}),await Wt(!0)}catch(e){T.error(e instanceof Error?e.message:`Не удалось сохранить порядок треков`)}finally{X.value=!1}}}async function xn(e){if(!X.value){X.value=!0,xt+=1;try{await s.DeletePlaylist({ID:e}),await Wt(!0)}catch(e){T.error(e instanceof Error?e.message:`Не удалось удалить плейлист`)}finally{X.value=!1}}}async function Sn(e,t){if(!X.value){if(!/\.mp3$/i.test(t.name)||t.size===0||t.size>64*1024*1024){T.error(`Выберите непустой MP3 размером до 64 МиБ`);return}X.value=!0,xt+=1;try{let n=wn(new Uint8Array(await t.arrayBuffer()));await s.UploadPlaylistTrack({playlistID:e,name:t.name,filename:t.name,data:n}),await Wt(!0)}catch(e){T.error(e instanceof Error?e.message:`Не удалось загрузить MP3`)}finally{X.value=!1}}}async function Cn(e,t){if(!X.value){X.value=!0,xt+=1;try{await s.DeletePlaylistTrack({playlistID:e,trackID:t}),await Wt(!0)}catch(e){T.error(e instanceof Error?e.message:`Не удалось удалить трек`)}finally{X.value=!1}}}function wn(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 Tn(e){if(!Z.value){Z.value=!0;try{await s.UnbindScreen({screenID:e.ID}),await Ut()}catch(e){T.error(e instanceof Error?e.message:`Не удалось отвязать экран`)}finally{Z.value=!1}}}async function En(e,t,n=!1){let r=`/team-story/`+e+`?password=`+t;if(n){window.open(r,`_blank`);return}f.push(r)}async function Dn(){if(!(!Ye.value||Xe.value||Y.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 On(){!Qe.value||Xe.value||Y.value||(et.value=H.value.export?.ID||``,$e.value=!0)}async function An(){if(!(!Ye.value||!et.value||Y.value)){Y.value=!0;try{await s.ResetGameLocalMode({ID:H.value.ID,exportID:et.value}),$e.value=!1,await Ht(Number(H.value.ID)),T.success(`Локальный режим сброшен`)}catch(e){T.error(e instanceof Error?e.message:`Не удалось сбросить локальный режим`)}finally{Y.value=!1}}}async function jn(){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 Mn({fileList:e}){rt.value||(at.value=e.slice(-1),ot.value=``)}async function Nn(){if(!(!tt.value||nt.value)){nt.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{nt.value=!1}}}async function Pn(){if(!Ye.value||rt.value)return;let e=at.value[0]?.file;if(!e||e.size===0){ot.value=`Выберите непустой ZIP-файл`;return}if(!e.name.toLowerCase().endsWith(`.zip`)){ot.value=`Выберите файл с расширением .zip`;return}if(e.size>1024**3){ot.value=`Размер пакета не должен превышать 1 ГиБ`;return}rt.value=!0,ot.value=``;try{await c.applyGameResultsPackage(H.value.ID,e),T.success(`Результаты приняты`),o(`resultsApplied`)}catch(e){ot.value=e instanceof Error?e.message:`Не удалось применить результаты`}finally{rt.value=!1}}async function Fn(){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 In(){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 Ln(){f.push(`/games/`+m+`/results`)}async function zn(){await s.UpdateGame({ID:H.value.ID,name:E.value.name,description:E.value.description,format:E.value.format,location:E.value.location.trim(),startAt:H.value.startAt,scenarioID:H.value.scenario?.ID}),await Ht(H.value.ID)}let Bn=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}),Vn=w(``),Hn=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}),Un=w({name:``,image:``,file_type:``}),Wn=window.location.href;function Gn(e,t){Bn.value=e,Un.value=t,O.value=!0}async function Kn(){if(re.value<1||re.value>8){T.error(`Укажите от 1 до 8 игроков`);return}await s.AddTeam({gameID:H.value.ID,name:N.value,captainEmail:ne.value.trim(),participantsCount:re.value}),await Ht(H.value.ID),k.value=!1,ne.value=``,re.value=1}async function qn(){await s.GiveTeamApplications({ID:Bn.value.ID,name:Un.value.name}),await Ht(H.value.ID),O.value=!1}async function Yn(e){Hn.value=e,A.value=!0}async function Xn(){await s.DeleteTeam({ID:Hn.value.ID}),await Ht(H.value.ID),A.value=!1}async function Zn(){await s.DeleteGame({ID:H.value.ID}),T.success(`Игра удалена`),f.push(`/games`)}function Qn(e,t){let n=new URL(`/team-story/${e}`,window.location.origin);return n.searchParams.set(`password`,t),n.toString()}function er(e){ar(Qn(e.ID,e.password),`Подсмотреть игру`)}function tr(e){if(we.environment!==`venue`||!e.ID||!e.name||e.participationStatus===`cancelled`){T.error(`У команды нет данных для печати чека`);return}le.value={name:e.name,teamID:e.ID},ce.value=!0}oe([ce,()=>le.value.teamID,U,()=>we.environment],rr);function nr(){fe.value&&URL.revokeObjectURL(fe.value),fe.value=``}async function rr(){let e=++me;if(nr(),pe.value=``,de.value=!1,!(!ce.value||!U.value||we.environment!==`venue`)){de.value=!0;try{let{blob:t}=await c.downloadTeamReceipt(Number(m),le.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 ir(){if(!(!fe.value||L.value||de.value)){L.value=!0;try{await s.PrintTeamReceipt({gameID:Number(m),teamID:le.value.teamID}),T.success(`Чек напечатан`)}catch(e){T.error(e instanceof Error?e.message:`Не удалось напечатать чек`)}finally{L.value=!1}}}async function ar(e,t){ae.value=e,se.value=t,ie.value=!0}async function or(){if(!(ve.value||!H.value.ID)){ve.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{ve.value=!1}}}ut(()=>{!U.value||rt.value||(Ht(Number(m)),Ut(),Wt(),Kt(),un())},2e3);async function sr(){await s.ResetGame({ID:H.value.ID}),await Ht(H.value.ID)}async function cr(){await s.StartGame({ID:H.value.ID}),await Ht(H.value.ID)}async function ur(){await s.PauseGame({ID:H.value.ID}),await Ht(H.value.ID)}async function dr(){await s.PlayGame({ID:H.value.ID}),await Ht(H.value.ID)}async function fr(){await s.FinishGame({ID:H.value.ID}),await Ht(H.value.ID)}let pr=w(!1),mr=w([]),hr=w(0),gr=w(0),_r=w([]),vr=w([]),yr=w([]),br=w([]),Sr=w(!1),Cr=w(!1);async function Tr(){Sr.value=!0,Cr.value=!1;try{let e=await s.GetGameResults({gameID:Number(m)});yr.value=e.questions||[],br.value=e.teams||[]}catch(e){Cr.value=!0,console.error(`Не удалось загрузить таблицу результатов`,e)}finally{Sr.value=!1}}let Er=w({});function Dr(e,t){return(e??``)+`:`+(t??``)}function oi(e,t){return(e.answers||[]).find(e=>e.questionCode==t)?.answer||``}function si(e,t){Er.value[e]=t===null?void 0:t}async function ci(){let e=await s.GetGameAnswers({gameID:Number(m)});_r.value=e.questions||[],vr.value=e.teams||[];let t={};for(let e of vr.value)for(let n of e.answers||[])t[Dr(e.team?.ID,n.questionCode)]=n.score;Er.value=t,await Tr()}async function li(){pr.value=!0;let e=await s.GetGameReviewsForModeration({gameID:Number(m)});mr.value=e.reviews||[],hr.value=e.averageRating||0,gr.value=e.reviewsCount||0}async function ui(e,t){await s.ModerateGameReview({ID:e.ID,status:t}),await li()}async function di(){for(let e of _r.value)for(let t of vr.value){let n=Er.value[Dr(t.team?.ID,e.code)];await s.SetTeamAnswerScore({ID:t.team?.ID,questionCode:e.code,score:n??void 0})}T.success(`Баллы сохранены`),await ci()}oe([U,y],([e,t])=>{e&&t===`answers`&&ci()},{immediate:!0});function fi(){let e=new Date;return new Date(e.getTime()-e.getTimezoneOffset()*6e4)}function pi(e,t){if(e==``)return`Игра ещё не началась`;let n=_t(e),r=fi();t!=``&&(r=_t(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 mi=w(``);return ut(()=>{mi.value=pi(H.value.startedAt||``,H.value.endedAt||``)},1e3),(r,i)=>(I(),R(j,null,[z(`div`,jr,[z(`div`,Mr,[U.value&&(H.value.export?.state===`preparing`||H.value.export?.state===`ready`)?(I(),_($,{key:0},{default:F(()=>[u(g(K),{type:`info`,title:H.value.export.state===`ready`?`Игра в офлайн-режиме`:`Подготовка офлайн-пакета`},{default:F(()=>[n(e(H.value.export.state===`ready`?`Изменения на онлайн-сервере не синхронизируются с офлайн-площадкой.`:`Создаётся пакет для офлайн-площадки.`),1)]),_:1},8,[`title`])]),_:1})):t(``,!0),Ie.value?(I(),_($,{key:1},{default:F(()=>[z(`h2`,null,e(H.value.name),1)]),_:1})):t(``,!0),u(g(je),{value:y.value,type:`line`,animated:``,"onUpdate:value":x},{default:F(()=>[U.value?(I(),_(g(Ae),{key:0,name:`settings`,tab:`Настройки`},{default:F(()=>[z(`div`,Nr,[u($,null,{default:F(()=>[u(g(J),{justify:`end`},{default:F(()=>[u(g(W),{loading:d.value,disabled:!H.value.ID||d.value,onClick:Fn},{default:F(()=>[...i[47]||=[n(` Скачать материалы для печати `,-1)]]),_:1},8,[`loading`,`disabled`]),u(g(W),{quaternary:``,onClick:i[0]||=e=>ar(g(Wn),`Админка`)},{default:F(()=>[...i[48]||=[n(`QR`,-1)]]),_:1}),H.value.status==`finish`?(I(),_(g(W),{key:0,quaternary:``,onClick:i[1]||=e=>Ln()},{default:F(()=>[u(g(V),{class:`settings-icon`},{default:F(()=>[u(g(pn))]),_:1}),i[49]||=n(` Итоги `,-1)]),_:1})):t(``,!0),(H.value.teams?.length||0)==0?(I(),_(g(W),{key:1,type:`error`,quaternary:``,onClick:i[2]||=e=>M.value=!0},{default:F(()=>[...i[50]||=[n(` Удалить игру `,-1)]]),_:1})):t(``,!0)]),_:1})]),_:1}),u($,null,{default:F(()=>[i[56]||=z(`p`,{class:`screens-title`},`Настройки игры`,-1),u(g(q),{vertical:``},{default:F(()=>[i[51]||=z(`p`,null,`Название`,-1),u(g(Ve),{value:E.value.name,"onUpdate:value":i[3]||=e=>E.value.name=e,type:`text`,placeholder:`Дело №0 "Следствие ведут овечки"`},null,8,[`value`]),i[52]||=z(`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[53]||=z(`p`,{class:`settings-header`},`Описание`,-1),u(g(Ve),{value:E.value.description,"onUpdate:value":i[5]||=e=>E.value.description=e,type:`textarea`,placeholder:`Убийство пастуха...`},null,8,[`value`]),i[54]||=z(`p`,{class:`settings-header`},`Место проведения`,-1),u(g(Ve),{value:E.value.location,"onUpdate:value":i[6]||=e=>E.value.location=e,type:`text`,placeholder:`Оставьте пустым для онлайн-игры`},null,8,[`value`])]),_:1}),u(g(J),{justify:`end`,class:`settings-actions`},{default:F(()=>[u(g(W),{onClick:i[7]||=e=>zn()},{default:F(()=>[...i[55]||=[n(`Сохранить изменения`,-1)]]),_:1})]),_:1})]),_:1}),tt.value?(I(),_($,{key:0},{default:F(()=>[u(g(W),{loading:nt.value,disabled:nt.value,onClick:Nn},{default:F(()=>[...i[57]||=[n(` Скачать результаты `,-1)]]),_:1},8,[`loading`,`disabled`])]),_:1})):t(``,!0),Ye.value?(I(),_($,{key:1},{default:F(()=>[i[61]||=z(`p`,{class:`screens-title`},`Возврат результатов с площадки`,-1),u(g(q),{vertical:``},{default:F(()=>[u(g(K),{type:`warning`},{default:F(()=>[...i[58]||=[n(` Команды, билеты, результаты и игровой сценарий будут заменены данными пакета. Онлайн-правки этих данных потеряются. Оформление и музыка сохраняются. `,-1)]]),_:1}),u(g(Re),{"file-list":at.value,"default-upload":!1,max:1,accept:`.zip`,disabled:rt.value,onChange:Mn},{default:F(()=>[u(g(W),{disabled:rt.value},{default:F(()=>[...i[59]||=[n(`Выбрать ZIP результатов`,-1)]]),_:1},8,[`disabled`])]),_:1},8,[`file-list`,`disabled`]),ot.value?(I(),_(g(K),{key:0,type:`error`,role:`alert`},{default:F(()=>[n(e(ot.value),1)]),_:1})):t(``,!0),u(g(W),{loading:rt.value,disabled:rt.value||!at.value.length,onClick:Pn},{default:F(()=>[...i[60]||=[n(` Применить ZIP и перезаписать результаты `,-1)]]),_:1},8,[`loading`,`disabled`])]),_:1})]),_:1})):t(``,!0),Ye.value?(I(),_($,{key:2},{default:F(()=>[i[69]||=z(`p`,{class:`screens-title`},`Передача игры на площадку`,-1),u(g(q),{vertical:``},{default:F(()=>[i[67]||=z(`p`,null,` Пакет содержит снимок на момент подготовки. Последующие онлайн-изменения в него не попадут. На площадке игра начнётся с нуля: ходы, ответы и баллы в пакет не входят. Статус и прогресс игры на сервере сохраняются. Готовность пакета не подтверждает импорт на площадку. `,-1),H.value.export?.state===`preparing`?(I(),_(g(K),{key:0,type:`info`,role:`status`},{default:F(()=>[...i[62]||=[n(`Подготовка пакета…`,-1)]]),_:1})):H.value.export?.state===`ready`?(I(),_(g(K),{key:1,type:`success`,role:`status`},{default:F(()=>[...i[63]||=[n(`Пакет готов`,-1)]]),_:1})):H.value.export?.state===`failed`?(I(),_(g(K),{key:2,type:`error`,role:`alert`},{default:F(()=>[n(e(H.value.export.failure||`Не удалось подготовить пакет`),1)]),_:1})):t(``,!0),H.value.export?.state===`ready`?(I(),_(g(W),{key:3,loading:Ze.value,disabled:Ze.value,onClick:jn},{default:F(()=>[...i[64]||=[n(`Скачать пакет`,-1)]]),_:1},8,[`loading`,`disabled`])):t(``,!0),u(g(W),{loading:Xe.value,disabled:Xe.value||Y.value,onClick:Dn},{default:F(()=>[...i[65]||=[n(` Подготовить новый пакет `,-1)]]),_:1},8,[`loading`,`disabled`]),i[68]||=z(`p`,null,` Новый пакет заменяет текущую подготовку. Результаты ранее скачанных пакетов можно загрузить позже. `,-1),Qe.value?(I(),_(g(W),{key:4,type:`warning`,loading:Y.value,disabled:Xe.value||Y.value,onClick:On},{default:F(()=>[...i[66]||=[n(` Сбросить локальный режим `,-1)]]),_:1},8,[`loading`,`disabled`])):t(``,!0)]),_:1})]),_:1})):t(``,!0),u($,null,{default:F(()=>[i[72]||=z(`p`,{class:`screens-title`},`Выпуск билетов`,-1),u(g(q),{vertical:``},{default:F(()=>[u(g(Lt),{value:ge.value,"onUpdate:value":i[8]||=e=>ge.value=e,min:1,max:100},null,8,[`value`]),(I(!0),R(j,null,C(_e.value,t=>(I(),R(`div`,{key:t.ID,class:`issued-ticket`},[z(`div`,null,`Билет №`+e(t.ID),1),z(`a`,{href:t.URL,class:`payment-link`,target:`_blank`,rel:`noreferrer`},` Открыть страницу билета `,8,Pr),u(g(W),{size:`small`,onClick:e=>ar(t.URL,`Билет №${t.ID}`)},{default:F(()=>[...i[70]||=[n(` Показать QR `,-1)]]),_:1},8,[`onClick`])]))),128))]),_:1}),u(g(J),{justify:`end`,class:`settings-actions`},{default:F(()=>[u(g(W),{loading:ve.value,disabled:ve.value,onClick:i[9]||=e=>or()},{default:F(()=>[...i[71]||=[n(` Выпустить `,-1)]]),_:1},8,[`loading`,`disabled`])]),_:1})]),_:1})])]),_:1})):t(``,!0),U.value?(I(),_(g(Ae),{key:1,name:`screens`,tab:`Экраны`},{default:F(()=>[z(`div`,Fr,[wt.value?(I(),_(g(K),{key:0,type:`error`},{default:F(()=>[n(e(wt.value),1)]),_:1})):t(``,!0),Ct.value?(I(),R(`p`,Ir,`Загрузка экранов…`)):t(``,!0),z(`div`,Lr,[u($,null,{default:F(()=>[i[73]||=z(`h3`,{class:`screens-title`},`Превью экрана`,-1),It.value?.status===`connected`?(I(),_(Rn,{key:0,state:It.value,questions:At.value,teams:jt.value},null,8,[`state`,`questions`,`teams`])):(I(),R(`div`,Rr,`Экран не подключён`))]),_:1}),u($n,{screens:dt.value,"screen-binding":ye.value,"is-busy":Z.value,onBind:cn,onSetSound:hn,onUnbind:Tn},null,8,[`screens`,`screen-binding`,`is-busy`])]),z(`div`,zr,[u(Jn,{screens:dt.value,"preview-questions":At.value,"preview-teams":jt.value,"screen-plan":Tt.value,"screen-plan-draft":Q.value,"screen-plan-saving":Dt.value,"screen-plan-mode":Ot.value,"screen-volume":Ft.value,"is-busy":Z.value,onAddStep:qt,onEdit:Jt,onCancel:Yt,onRemoveStep:Zt,onMoveStep:Qt,onDirty:$t,onClearPlan:tn,onSave:rn,onSetStep:on,onCommand:sn,"onUpdate:screenVolume":i[10]||=e=>Ft.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:ft.value,music:bt.value,"is-busy":X.value,onSetMusic:gn,onCreatePlaylist:_n,onRenamePlaylist:vn,onReorderTracks:yn,onDeletePlaylist:xn,onUploadTrack:Sn,onDeleteTrack:Cn},null,8,[`playlists`,`music`,`is-busy`])])])]),_:1})):t(``,!0),U.value?(I(),_(g(Ae),{key:2,name:`game`,tab:`Игра`},{default:F(()=>[z(`div`,Br,[u($,null,{default:F(()=>[u(g(J),{justify:`space-between`},{default:F(()=>[u(g(q),null,{default:F(()=>[u(g(be),{type:`info`},{default:F(()=>[n(e(mi.value),1)]),_:1}),g(vt)(H.value.startAt)?(I(),_(g(be),{key:0,type:`info`},{default:F(()=>[n(` Начало: `+e(g(vt)(H.value.startAt)),1)]),_:1})):t(``,!0)]),_:1}),u(g(J),{justify:`end`},{default:F(()=>[u(g(W),{onClick:Vt},{default:F(()=>[...i[74]||=[n(`Проверить звук`,-1)]]),_:1}),H.value.status==`draft`?t(``,!0):(I(),_(g(W),{key:0,type:`info`,dashed:``,"aria-label":`Сбросить игру`,onClick:i[11]||=e=>sr()},{default:F(()=>[u(g(V),null,{default:F(()=>[u(g(ln))]),_:1})]),_:1})),H.value.status==`draft`?(I(),_(g(W),{key:1,type:`info`,dashed:``,"aria-label":`Начать игру`,onClick:i[12]||=e=>cr()},{default:F(()=>[u(g(V),null,{default:F(()=>[u(g(an))]),_:1})]),_:1})):t(``,!0),H.value.status==`pause`?(I(),_(g(W),{key:2,type:`info`,dashed:``,"aria-label":`Продолжить игру`,onClick:i[13]||=e=>dr()},{default:F(()=>[u(g(V),null,{default:F(()=>[u(g(an))]),_:1})]),_:1})):t(``,!0),H.value.status==`run`?(I(),_(g(W),{key:3,type:`info`,dashed:``,"aria-label":`Поставить игру на паузу`,onClick:i[14]||=e=>ur()},{default:F(()=>[u(g(V),null,{default:F(()=>[u(g(nn))]),_:1})]),_:1})):t(``,!0),H.value.status==`finish`?t(``,!0):(I(),_(g(W),{key:4,type:`info`,dashed:``,"aria-label":`Завершить игру`,onClick:i[15]||=e=>fr()},{default:F(()=>[u(g(V),null,{default:F(()=>[u(g(en))]),_:1})]),_:1}))]),_:1})]),_:1})]),_:1}),u(bn,{"map-items":Mt.value,teams:H.value.teams||[],onSaveItem:fn,onDragging:i[16]||=e=>Pt.value=e,onGiveApplication:Gn},null,8,[`map-items`,`teams`]),u(g(J),{justify:`space-between`,align:`center`},{default:F(()=>[u(g(be),{bordered:!1,type:`info`},{default:F(()=>[n(` Участвуют команд: `+e(lt.value),1)]),_:1}),lt.value?(I(),_(g(W),{key:0,quaternary:``,loading:l.value,disabled:l.value,onClick:i[17]||=e=>In()},{default:F(()=>[...i[75]||=[n(` QR команд `,-1)]]),_:1},8,[`loading`,`disabled`])):t(``,!0)]),_:1}),u(xr,{teams:H.value.teams||[],"can-print-receipts":g(we).environment===`venue`,"participation-options":ct,onAdd:i[18]||=e=>k.value=!0,onOpenQr:er,onPrint:tr,onPreview:i[19]||=(e,t)=>En(e,t,!0),onDelete:Yn,onGiveApplication:Gn},null,8,[`teams`,`can-print-receipts`])])]),_:1})):t(``,!0),U.value?(I(),_(g(Ae),{key:3,name:`payment`,tab:`Оплата`},{default:F(()=>[z(`div`,Vr,[u($,null,{default:F(()=>[u(g(J),{align:`center`,justify:`space-between`},{default:F(()=>[i[77]||=z(`p`,{class:`screens-title`},`Билеты`,-1),u(g(W),{size:`small`,onClick:i[20]||=e=>he.value=!0},{default:F(()=>[...i[76]||=[n(` Проверить билет `,-1)]]),_:1})]),_:1})]),_:1}),u($,null,{default:F(()=>[i[78]||=z(`p`,{class:`screens-title`},`Оплата игры`,-1),z(`div`,Hr,[u(g(We),{value:ai,size:300,padding:0})]),z(`p`,null,[z(`a`,{href:ai,class:`payment-link`,target:`_blank`,rel:`noreferrer`},` Открыть ссылку оплаты `)])]),_:1})])]),_:1})):t(``,!0),U.value?(I(),_(g(Ae),{key:4,name:`answers`,tab:`Проверка ответов`},{default:F(()=>[z(`div`,Ur,[u($,null,{default:F(()=>[i[85]||=z(`p`,{class:`screens-title`},`Таблица результатов`,-1),i[86]||=z(`p`,null,`Сохранённые оценки. Таблица обновляется после сохранения баллов.`,-1),Sr.value?(I(),_(g(Ke),{key:0},{default:F(()=>[...i[79]||=[n(`Загрузка результатов…`,-1)]]),_:1})):Cr.value?(I(),_(g(K),{key:1,type:`error`},{default:F(()=>[...i[80]||=[n(` Не удалось загрузить таблицу результатов. `,-1)]]),_:1})):br.value.length===0?(I(),R(`p`,Wr,`Результатов пока нет.`)):(I(),R(`div`,Gr,[u(g(Xt),{"single-line":!1},{default:F(()=>[z(`thead`,null,[z(`tr`,null,[i[81]||=z(`th`,{scope:`col`},`Место`,-1),i[82]||=z(`th`,{scope:`col`},`Команда`,-1),(I(!0),R(j,null,C(yr.value,t=>(I(),R(`th`,{key:t.code,scope:`col`},e(t.code),1))),128)),i[83]||=z(`th`,{scope:`col`},`Сумма`,-1),i[84]||=z(`th`,{scope:`col`},`Поездки`,-1)])]),z(`tbody`,null,[(I(!0),R(j,null,C(br.value,t=>(I(),R(`tr`,{key:t.team?.ID},[z(`td`,null,e(t.place),1),z(`td`,null,e(t.team?.name),1),(I(!0),R(j,null,C(yr.value,n=>(I(),R(`td`,{key:n.code},e(t.answers?.find(e=>e.questionCode===n.code)?.score??`—`),1))),128)),z(`td`,null,e(t.totalScore),1),z(`td`,null,e(t.actionsCount),1)]))),128))])]),_:1})]))]),_:1}),_r.value.length===0||vr.value.length===0?(I(),R(`div`,Kr,` Вопросы дела не заданы или команды ещё не отвечали. `)):(I(!0),R(j,{key:1},C(vr.value,t=>(I(),_($,{key:t.team?.ID},{default:F(()=>[z(`h3`,qr,e(t.team?.name),1),(I(!0),R(j,null,C(_r.value,n=>(I(),R(`div`,{key:n.code,class:`answers-question`},[z(`p`,Jr,e(n.code)+`: `+e(n.text),1),z(`p`,Yr,[z(`span`,Xr,e(n.answer||`—`),1)]),z(`div`,Zr,[z(`div`,Qr,e(oi(t,n.code)||`—`),1),u(g(Lt),{value:Er.value[Dr(t.team?.ID,n.code)],"onUpdate:value":e=>si(Dr(t.team?.ID,n.code),e),placeholder:`Балл`,class:`answers-score-input`},null,8,[`value`,`onUpdate:value`])])]))),128))]),_:2},1024))),128)),u(g(J),{justify:`end`},{default:F(()=>[u(g(W),{onClick:i[21]||=e=>di(),disabled:_r.value.length===0||vr.value.length===0},{default:F(()=>[...i[87]||=[n(` Сохранить баллы `,-1)]]),_:1},8,[`disabled`])]),_:1})])]),_:1})):t(``,!0),Fe.value?(I(),_(g(Ae),{key:5,name:`state`,tab:`Состояние`,"tab-props":{tabindex:0,role:`tab`,"aria-selected":y.value===`state`,onKeydown:S}},{default:F(()=>[u(lr,{devices:g(Le),wifi:g(ze),"server-time":g(Be),"is-loading":g(He),"has-error":g(Ge),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?(I(),_(g(Te),{key:0,show:$e.value,"onUpdate:show":i[23]||=e=>$e.value=e,"mask-closable":!Y.value,"close-on-esc":!Y.value},{default:F(()=>[u(g(B),{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:F(()=>[...i[88]||=[z(`span`,{id:`reset-local-mode-title`},`Сбросить локальный режим?`,-1)]]),footer:F(()=>[u(g(J),{justify:`end`},{default:F(()=>[u(g(W),{disabled:Y.value,onClick:i[22]||=e=>$e.value=!1},{default:F(()=>[...i[89]||=[n(` Отмена `,-1)]]),_:1},8,[`disabled`]),u(g(W),{type:`warning`,loading:Y.value,disabled:Y.value,onClick:An},{default:F(()=>[...i[90]||=[n(` Вернуть в обычный режим `,-1)]]),_:1},8,[`loading`,`disabled`])]),_:1})]),default:F(()=>[i[91]||=z(`p`,{id:`reset-local-mode-description`},` Игра вернётся в обычный режим на сервере. Данные игры сохранятся. Локальная площадка продолжит работать отдельно; её результаты можно будет загрузить позже. `,-1)]),_:1})]),_:1},8,[`show`,`mask-closable`,`close-on-esc`])):t(``,!0),U.value?(I(),_(Or,{key:1,show:he.value,"onUpdate:show":i[24]||=e=>he.value=e},null,8,[`show`])):t(``,!0),U.value&&g(we).environment===`venue`?(I(),_(wr,{key:2,show:ce.value,"onUpdate:show":i[25]||=e=>ce.value=e,name:le.value.name,preview:fe.value,"preparation-error":pe.value,"is-preparing":de.value,"is-printing":L.value,onPrint:ir},null,8,[`show`,`name`,`preview`,`preparation-error`,`is-preparing`,`is-printing`])):t(``,!0),U.value?(I(),_(g(Te),{key:3,show:O.value,"onUpdate:show":i[28]||=e=>O.value=e},{default:F(()=>[u(g(B),{style:{width:`600px`},title:`Настройки игры`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":F(()=>[u(g(W),{onClick:i[26]||=e=>O.value=!1},{default:F(()=>[...i[92]||=[n(` x `,-1)]]),_:1})]),footer:F(()=>[u(g(J),{justify:`end`},{default:F(()=>[u(g(W),{onClick:i[27]||=e=>qn(),ghost:``},{default:F(()=>[...i[95]||=[n(` Выдать `,-1)]]),_:1})]),_:1})]),default:F(()=>[u(g(q),{vertical:``},{default:F(()=>[i[93]||=z(`p`,null,`Команда`,-1),z(`h3`,null,e(Bn.value.name),1),i[94]||=z(`p`,null,`Улика`,-1),z(`h3`,null,e(Un.value.name),1),g(ht)(Un.value)==`image`&&Un.value.image?(I(),R(`div`,$r,[z(`img`,{src:g(gt)(Un.value.image),class:`give-application-image`},null,8,ei)])):g(ht)(Un.value)==`audio`&&Un.value.image?(I(),R(`audio`,{key:1,src:g(gt)(Un.value.image),controls:``,preload:`none`,class:`give-application-audio`},null,8,ti)):g(ht)(Un.value)==`pdf`&&Un.value.image?(I(),R(`a`,{key:2,href:g(gt)(Un.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?(I(),_(g(Te),{key:4,show:k.value,"onUpdate:show":i[34]||=e=>k.value=e},{default:F(()=>[u(g(B),{style:{width:`600px`},title:`Создание команды`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":F(()=>[u(g(W),{onClick:i[29]||=e=>k.value=!1},{default:F(()=>[...i[96]||=[n(` x `,-1)]]),_:1})]),footer:F(()=>[u(g(J),{justify:`end`},{default:F(()=>[u(g(W),{onClick:i[33]||=e=>Kn(),disabled:N.value.length==0},{default:F(()=>[...i[97]||=[n(` Создать `,-1)]]),_:1},8,[`disabled`])]),_:1})]),default:F(()=>[u(g(q),{vertical:``},{default:F(()=>[u(g(Ve),{value:N.value,"onUpdate:value":i[30]||=e=>N.value=e,type:`text`,placeholder:`Три дебила`},null,8,[`value`]),u(g(Ve),{value:ne.value,"onUpdate:value":i[31]||=e=>ne.value=e,"input-props":{type:`email`,autocomplete:`email`},placeholder:`Почта капитана (необязательно)`,"aria-label":`Почта капитана (необязательно)`},null,8,[`value`]),u(g(Lt),{value:re.value,"onUpdate:value":i[32]||=e=>re.value=e,min:1,max:8,precision:0,placeholder:`Количество игроков`,"aria-label":`Количество игроков`},null,8,[`value`])]),_:1})]),_:1})]),_:1},8,[`show`])):t(``,!0),U.value?(I(),_(g(Te),{key:5,show:A.value,"onUpdate:show":i[38]||=e=>A.value=e},{default:F(()=>[u(g(B),{style:{width:`600px`},title:`Удаление команды`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":F(()=>[u(g(W),{onClick:i[35]||=e=>A.value=!1},{default:F(()=>[...i[98]||=[n(` x `,-1)]]),_:1})]),footer:F(()=>[u(g(J),{justify:`end`},{default:F(()=>[u(g(W),{onClick:i[37]||=e=>Xn(),disabled:Vn.value!=Hn.value.name},{default:F(()=>[...i[101]||=[n(` Удалить `,-1)]]),_:1},8,[`disabled`])]),_:1})]),default:F(()=>[u(g(q),{vertical:``},{default:F(()=>[z(`p`,null,[i[99]||=n(` Введите название команды `,-1),u(g(Ke),{class:`name-text`,strong:``},{default:F(()=>[n(e(Hn.value.name),1)]),_:1}),i[100]||=n(` чтобы удалить его `,-1)]),u(g(Ve),{value:Vn.value,"onUpdate:value":i[36]||=e=>Vn.value=e,type:`text`,placeholder:`Три дебила`},null,8,[`value`])]),_:1})]),_:1})]),_:1},8,[`show`])):t(``,!0),U.value?(I(),_(g(Te),{key:6,show:M.value,"onUpdate:show":i[42]||=e=>M.value=e},{default:F(()=>[u(g(B),{style:{width:`600px`},title:`Удаление игры`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":F(()=>[u(g(W),{onClick:i[39]||=e=>M.value=!1},{default:F(()=>[...i[102]||=[n(` x `,-1)]]),_:1})]),footer:F(()=>[u(g(J),{justify:`end`},{default:F(()=>[u(g(W),{onClick:i[41]||=e=>Zn(),disabled:P.value!=H.value.name},{default:F(()=>[...i[105]||=[n(` Удалить `,-1)]]),_:1},8,[`disabled`])]),_:1})]),default:F(()=>[u(g(q),{vertical:``},{default:F(()=>[z(`p`,null,[i[103]||=n(` Введите название игры `,-1),u(g(Ke),{class:`name-text`,strong:``},{default:F(()=>[n(e(H.value.name),1)]),_:1}),i[104]||=n(` чтобы удалить её `,-1)]),u(g(Ve),{value:P.value,"onUpdate:value":i[40]||=e=>P.value=e,type:`text`,placeholder:`Дело №0 "Следствие ведут овечки"`},null,8,[`value`])]),_:1})]),_:1})]),_:1},8,[`show`])):t(``,!0),U.value?(I(),_(g(Te),{key:7,show:ie.value,"onUpdate:show":i[44]||=e=>ie.value=e},{default:F(()=>[u(g(B),{style:{width:`600px`},title:se.value,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":F(()=>[u(g(W),{onClick:i[43]||=e=>ie.value=!1},{default:F(()=>[...i[106]||=[n(` x `,-1)]]),_:1})]),footer:F(()=>[...i[107]||=[]]),default:F(()=>[u(g(q),{vertical:``},{default:F(()=>[z(`div`,ri,[u(g(We),{value:ae.value,size:300,padding:0},null,8,[`value`])])]),_:1})]),_:1},8,[`title`])]),_:1},8,[`show`])):t(``,!0),U.value?(I(),_(g(Te),{key:8,show:pr.value,"onUpdate:show":i[46]||=e=>pr.value=e},{default:F(()=>[u(g(B),{style:{width:`min(94vw, 800px)`},title:`Отзывы игры`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`,"content-style":{maxHeight:`70vh`,overflow:`auto`}},{"header-extra":F(()=>[u(g(W),{onClick:i[45]||=e=>pr.value=!1},{default:F(()=>[...i[108]||=[n(` x `,-1)]]),_:1})]),default:F(()=>[u(g(J),{align:`center`,class:`reviews-summary`},{default:F(()=>[u(g(Ue),{value:hr.value,readonly:``,"allow-half":``},null,8,[`value`]),z(`span`,null,e(gr.value?`${hr.value.toFixed(1)} · ${gr.value}`:`Пока нет отзывов`),1)]),_:1}),mr.value.length==0?(I(),R(`div`,ii,`Отзывов пока нет.`)):t(``,!0),(I(!0),R(j,null,C(mr.value,r=>(I(),R(`div`,{key:r.ID,class:`review-row`},[u(g(J),{justify:`space-between`,align:`center`},{default:F(()=>[z(`strong`,null,e(r.teamName),1),u(g(be),null,{default:F(()=>[n(e(r.status),1)]),_:2},1024)]),_:2},1024),u(g(Ue),{value:r.rating,readonly:``,size:`small`},null,8,[`value`]),z(`div`,null,`Сложность: `+e([``,`лёгкая`,`средняя`,`тяжёлая`][r.difficulty||0]),1),z(`p`,null,e(r.text),1),r.status==`pending`?(I(),_(g(J),{key:0,justify:`end`},{default:F(()=>[u(g(W),{type:`success`,onClick:e=>ui(r,`approved`)},{default:F(()=>[...i[109]||=[n(`Одобрить`,-1)]]),_:1},8,[`onClick`]),u(g(W),{type:`error`,ghost:``,onClick:e=>ui(r,`rejected`)},{default:F(()=>[...i[110]||=[n(`Отклонить`,-1)]]),_:1},8,[`onClick`])]),_:2},1024)):r.status==`approved`?(I(),_(g(J),{key:1,justify:`end`},{default:F(()=>[u(g(W),{type:`error`,ghost:``,onClick:e=>ui(r,`hidden`)},{default:F(()=>[...i[111]||=[n(`Скрыть`,-1)]]),_:1},8,[`onClick`])]),_:2},1024)):t(``,!0)]))),128))]),_:1})]),_:1},8,[`show`])):t(``,!0),u(pt,{active:`games`})],64))}}),[[`__scopeId`,`data-v-5eec9bb8`]]),si=N({__name:`GameView`,setup(e){let t=w(0),n=te();return(e,r)=>(I(),_(oi,{key:`${g(n).params.id}-${t.value}`,onResultsApplied:r[0]||=e=>t.value++}))}});export{si as default}; |